Searching...
Polski
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Designing Machine Learning Systems

Designing Machine Learning Systems

An Iterative Process for Production-Ready Applications
przez Chip Huyen 2022 368 stron
4.49
500+ oceny
Słuchaj
Listen to Summary

Kluczowe wnioski

1. Wybór modelu wymaga zrównoważenia wydajności, złożoności i praktycznych ograniczeń

"Prostota spełnia trzy cele. Po pierwsze, prostsze modele są łatwiejsze do wdrożenia, a wczesne wdrożenie modelu pozwala zweryfikować, czy twój proces przewidywania jest zgodny z danymi treningowymi. Po drugie, zaczynając od czegoś prostego i dodając bardziej złożone komponenty krok po kroku, łatwiej jest zrozumieć model i go debugować. Po trzecie, najprostszy model służy jako punkt odniesienia, do którego można porównywać bardziej złożone modele."

Wymiana wydajności na złożoność. Przy wyborze modelu weź pod uwagę:

  • Wydajność modelu (dokładność, wynik F1 itp.)
  • Wymagania obliczeniowe (czas treningu, szybkość wnioskowania)
  • Interpretowalność
  • Ilość potrzebnych danych treningowych
  • Łatwość wdrożenia i utrzymania

Zacznij od prostych modeli bazowych, takich jak regresja logistyczna czy drzewa decyzyjne, zanim przejdziesz do bardziej złożonych sieci neuronowych. To pozwoli ci:

  • Ustalić punkt odniesienia wydajności
  • Zweryfikować swój proces przetwarzania danych i sformułowanie problemu
  • Zyskać interpretowalność, jak cechy wpływają na przewidywania

Unikaj pułapki najnowocześniejszych rozwiązań. Najnowsze modele mogą nie być optymalne dla twojego konkretnego przypadku użycia. Weź pod uwagę:

  • Charakterystyki i objętość danych
  • Ograniczenia obliczeniowe
  • Potrzebę wyjaśnienia
  • Środowisko wdrożeniowe

2. Metody zespołowe mogą znacznie zwiększyć wydajność modelu

"20 z 22 zwycięskich rozwiązań w konkursach Kaggle w 2021 roku, na sierpień 2021, korzysta z zespołów."

Rodzaje zespołów:

  • Bagging: Trenuj modele na zestawach danych bootstrapped (np. Random Forests)
  • Boosting: Trenuj modele sekwencyjnie, koncentrując się na błędnie sklasyfikowanych przykładach (np. XGBoost)
  • Stacking: Użyj przewidywań z modeli bazowych jako wejść do meta-ucznia

Zespoły działają poprzez łączenie różnych modeli w celu redukcji biasu i wariancji. Kluczowe rozważania:

  • Używaj nieskorelowanych modeli bazowych dla maksymalnych korzyści
  • Zrównoważ zysk wydajności w stosunku do zwiększonej złożoności
  • Popularne w konkursach, ale mogą być trudne do wdrożenia w produkcji

Metody zespołowe, takie jak XGBoost i Random Forests, często zapewniają silną wydajność od razu dla wielu problemów, szczególnie z danymi strukturalnymi.

3. AutoML i strojenie hiperparametrów automatyzują optymalizację modelu

"Zamiast płacić grupie 100 badaczy/ inżynierów ML, aby bawili się różnymi modelami i ostatecznie wybrali suboptymalny, dlaczego nie wykorzystać tych pieniędzy na obliczenia, aby znaleźć optymalny model?"

Poziomy AutoML:

  1. Strojenie hiperparametrów: Optymalizuj hiperparametry modelu
  2. Wyszukiwanie architektury neuronowej: Odkryj optymalne architektury sieci neuronowych
  3. Uczone optymalizatory: Użyj ML do nauki algorytmów optymalizacji

Strojenie hiperparametrów to najłatwiej dostępna i najczęściej stosowana forma AutoML. Powszechne podejścia:

  • Losowe wyszukiwanie
  • Wyszukiwanie siatki
  • Optymalizacja bayesowska

Korzyści z AutoML:

  • Redukuje wysiłek manualny w rozwoju modelu
  • Może odkrywać nieintuicyjne konfiguracje modelu
  • Umożliwia osobom niebędącym ekspertami skuteczne stosowanie ML

Wyzwania obejmują wysokie koszty obliczeniowe i potencjalne przeuczenie na zbiorze walidacyjnym. Używaj AutoML z rozwagą i zawsze oceniaj ostateczną wydajność na zarezerwowanym zbiorze testowym.

4. Rozproszone uczenie umożliwia skalowanie do dużych zbiorów danych i modeli

"W miarę jak modele stają się coraz większe i bardziej zasobożerne, firmy znacznie bardziej dbają o uczenie na dużą skalę."

Wyzwania związane z rozproszonym uczeniem:

  • Dane, które nie mieszczą się w pamięci
  • Koordynowanie aktualizacji na wielu maszynach
  • Zrównoważenie obciążenia obliczeniowego i komunikacyjnego

Techniki do uczenia na dużą skalę:

  • Punkt kontrolny gradientu: Wymiana obliczeń na oszczędności pamięci
  • Uczenie na dużych partiach: Efektywne wykorzystanie wielu GPU/TPU
  • Mieszana precyzja: Użyj arytmetyki o niższej precyzji, aby przyspieszyć uczenie

Rozproszone uczenie wymaga starannego rozważenia:

  • Ustawienia sprzętowe (GPU, szybkie połączenia)
  • Ramy oprogramowania (PyTorch Distributed, Horovod)
  • Algorytmy optymalizacji (synchronizowany vs asynchronizowany SGD)

W miarę wzrostu modeli (np. dużych modeli językowych, takich jak GPT-3), rozproszone uczenie staje się niezbędne do przesuwania granic możliwości ML.

5. Śledzenie eksperymentów i wersjonowanie są kluczowe dla reprodukowalności

"Wyobraź sobie ten scenariusz. Ty i twój zespół spędziliście ostatnie kilka tygodni na dostosowywaniu modelu, a jeden z biegów w końcu pokazał obiecujące wyniki. Chciałeś użyć go do szerszych testów, więc próbowałeś go powtórzyć, używając zestawu hiperparametrów, które gdzieś zanotowałeś, tylko po to, aby odkryć, że wyniki nie były takie same."

Kluczowe elementy do śledzenia:

  • Wersje kodu
  • Wersje danych i kroki wstępnego przetwarzania
  • Architektura modelu i hiperparametry
  • Środowisko treningowe (sprzęt, wersje oprogramowania)
  • Metryki oceny i artefakty (krzywe strat, punkty kontrolne modelu)

Narzędzia do śledzenia eksperymentów:

  • MLflow
  • Weights & Biases
  • DVC (Data Version Control)

Korzyści z rygorystycznego śledzenia:

  • Reprodukowalność wyników
  • Łatwiejsza współpraca w zespołach
  • Możliwość porównania eksperymentów i identyfikacji istotnych zmian

Wyzwania obejmują wersjonowanie dużych zbiorów danych i radzenie sobie z niedeterministycznością w treningu. Ustal jasne protokoły dokumentacji eksperymentów w swoim zespole.

6. Równoległość danych i równoległość modeli oferują różne podejścia do rozproszonego uczenia

"Najczęściej stosowaną metodą równoległości jest równoległość danych: dzielisz swoje dane na wiele maszyn, trenujesz swój model na wszystkich z nich i akumulujesz gradienty."

Równoległość danych:

  • Każda maszyna ma pełną kopię modelu
  • Dane są dzielone między maszyny
  • Gradienty są agregowane, aby zaktualizować globalny model

Zalety:

  • Łatwiejsze do wdrożenia
  • Dobrze skaluje się z rozmiarem zbioru danych

Wady:

  • Ograniczone przez rozmiar modelu, który mieści się na jednym urządzeniu
  • Obciążenie komunikacyjne dla synchronizacji gradientów

Równoległość modeli:

  • Model jest dzielony między wiele urządzeń
  • Każde urządzenie przetwarza część modelu

Zalety:

  • Może obsługiwać bardzo duże modele
  • Zmniejsza wymagania pamięciowe na urządzenie

Wady:

  • Bardziej skomplikowane do wdrożenia
  • Może prowadzić do niedostatecznego wykorzystania urządzeń

Podejścia hybrydowe, takie jak równoległość potokowa, łączą elementy obu, aby zoptymalizować wykorzystanie zasobów. Najlepsze podejście zależy od konkretnej architektury modelu i ograniczeń sprzętowych.

7. Skuteczne systemy ML często zaczynają się od prostoty i zwiększają złożoność w miarę upływu czasu

"Istnieją cztery fazy przyjmowania ML. Rozwiązania z jednej fazy mogą być używane jako punkty odniesienia do oceny rozwiązań z następnej fazy."

Cztery fazy przyjmowania ML:

  1. Przed ML: Używaj heurystyk i systemów opartych na regułach
  2. Najprostsze modele ML: Wdrażaj podstawowe algorytmy (np. regresja logistyczna)
  3. Optymalizacja prostych modeli: Inżynieria cech, zespoły, strojenie hiperparametrów
  4. Złożone systemy: Uczenie głębokie, AutoML, niestandardowe architektury

Korzyści z tego stopniowego podejścia:

  • Ustala punkty odniesienia do porównań
  • Stopniowo buduje niezbędną infrastrukturę
  • Identyfikuje łatwe do poprawy obszary

Zacznij od jasnego zdefiniowania swojego problemu i metryk sukcesu. Prosty model, który rozwiązuje 80% twojego problemu, może być wystarczający na początku. W miarę gromadzenia większej ilości danych i spostrzeżeń, stopniowo zwiększaj złożoność modelu, aby rozwiązać pozostałe wyzwania.

Pamiętaj, że ML nie zawsze jest odpowiedzią – czasami proste heurystyki lub tradycyjne podejścia inżynieryjne mogą być bardziej odpowiednie i łatwiejsze w utrzymaniu.

Ostatnia aktualizacja:

FAQ

What's "Designing Machine Learning Systems" about?

  • Comprehensive Guide: "Designing Machine Learning Systems" by Chip Huyen is a comprehensive guide to building production-ready machine learning applications. It covers the entire lifecycle of machine learning systems, from data engineering to deployment and monitoring.
  • Iterative Process: The book emphasizes an iterative process for developing machine learning systems, highlighting the importance of continuous improvement and adaptation to changing environments and requirements.
  • Real-World Challenges: It addresses real-world challenges in deploying machine learning systems, such as data management, scalability, and ethical considerations, providing practical solutions and insights.
  • Focus on Production: Unlike many other resources, this book focuses on the practical aspects of deploying machine learning systems in production, making it a valuable resource for practitioners in the field.

Why should I read "Designing Machine Learning Systems"?

  • Practical Insights: The book offers practical insights into the challenges and solutions of deploying machine learning systems in production, which are often overlooked in academic settings.
  • Comprehensive Coverage: It covers a wide range of topics, from data engineering and feature engineering to model development and deployment, providing a holistic view of the machine learning lifecycle.
  • Real-World Examples: The author uses real-world examples and case studies to illustrate key concepts, making the content relatable and applicable to real-world scenarios.
  • Expert Author: Chip Huyen is an experienced engineer and educator, bringing her expertise in machine learning systems design to the book, making it a credible and authoritative resource.

What are the key takeaways of "Designing Machine Learning Systems"?

  • Iterative Development: Machine learning systems should be developed iteratively, with continuous monitoring and updates to adapt to changing data and requirements.
  • Data is Crucial: The success of machine learning systems heavily depends on the quality and quantity of data, emphasizing the importance of data engineering and management.
  • System Design: Designing machine learning systems involves considering various components, including algorithms, data, infrastructure, and hardware, to meet specified requirements.
  • Ethical Considerations: The book highlights the importance of addressing ethical and societal challenges, such as fairness and interpretability, in deploying machine learning systems.

What are the best quotes from "Designing Machine Learning Systems" and what do they mean?

  • "Data is profoundly dumb." This quote emphasizes the importance of intelligent design and the limitations of relying solely on data for machine learning systems.
  • "Machine learning is not a magic tool that can solve all problems." It highlights the need for careful consideration of when and how to use machine learning, rather than viewing it as a one-size-fits-all solution.
  • "Complex ML systems are made up of simpler building blocks." This underscores the importance of understanding and mastering the fundamental components of machine learning systems to build more complex applications.
  • "The vast majority of ML-related jobs will be, and already are, in productionizing ML." This quote reflects the growing demand for skills in deploying and maintaining machine learning systems in production environments.

How does "Designing Machine Learning Systems" approach data engineering?

  • Data Importance: The book emphasizes the critical role of data in building successful machine learning systems, highlighting the need for effective data management and processing.
  • Data Sources: It discusses various data sources, including user input, system-generated data, and third-party data, and their implications for machine learning systems.
  • Data Formats: The book covers different data serialization formats, such as JSON, CSV, and Parquet, and their suitability for different use cases.
  • ETL Process: It explains the Extract, Transform, Load (ETL) process, which is essential for preparing data for machine learning applications.

What is the iterative process for designing machine learning systems in "Designing Machine Learning Systems"?

  • Project Scoping: The process begins with scoping the project, defining goals, objectives, constraints, and evaluation criteria.
  • Data Engineering: It involves processing and manipulating data to create training datasets, which is crucial for model development.
  • Model Development: This step includes generating features, training models, optimizing them, and evaluating their performance.
  • Deployment and Monitoring: After deployment, models need to be monitored for performance decay and updated to adapt to changing environments and requirements.

How does "Designing Machine Learning Systems" address model development and evaluation?

  • Model Selection: The book discusses how to select the best model for a problem, considering factors like performance, interpretability, and computational requirements.
  • Training Techniques: It covers training techniques, including distributed training and experiment tracking, to handle large-scale models and datasets.
  • Evaluation Methods: The book emphasizes the importance of robust evaluation methods, such as perturbation tests and slice-based evaluation, to ensure model reliability and fairness.
  • AutoML: It explores the use of automated machine learning (AutoML) for hyperparameter tuning and architecture search to optimize model performance.

What are the challenges of deploying machine learning systems in production according to "Designing Machine Learning Systems"?

  • Scalability: Machine learning systems must be scalable to handle large volumes of data and traffic, requiring efficient resource management and infrastructure.
  • Reliability: The systems should be reliable, performing correctly even in the face of hardware or software faults and human errors.
  • Ethical Challenges: Deploying machine learning systems involves addressing ethical challenges, such as fairness, interpretability, and bias, to ensure responsible AI use.
  • Data Management: Effective data management is crucial, as data in production is often messy, constantly shifting, and subject to privacy and regulatory concerns.

How does "Designing Machine Learning Systems" handle feature engineering?

  • Feature Importance: The book discusses the importance of feature engineering in improving model performance and provides techniques for handling missing values, scaling, and encoding categorical features.
  • Data Leakage: It highlights the risk of data leakage, where information from the future or test data leaks into the training process, and provides strategies to detect and prevent it.
  • Feature Generalization: The book emphasizes the need for features that generalize well to unseen data, considering factors like feature coverage and distribution.
  • Cross Features: It covers the creation of cross features to model non-linear relationships between variables, which can enhance model performance.

What is the role of AutoML in "Designing Machine Learning Systems"?

  • Hyperparameter Tuning: AutoML is used for hyperparameter tuning, automating the process of finding the optimal set of hyperparameters for a given model.
  • Architecture Search: The book explores neural architecture search (NAS), which automates the design of model architectures by searching for the best configuration of building blocks.
  • Learned Optimizers: It discusses the concept of learned optimizers, which replace traditional learning algorithms with neural networks to improve model training.
  • Efficiency and Performance: AutoML techniques, such as EfficientNets, demonstrate significant improvements in model accuracy and efficiency, making them valuable for production systems.

How does "Designing Machine Learning Systems" address ethical considerations in machine learning?

  • Fairness: The book emphasizes the importance of fairness in machine learning systems, highlighting the need to address biases and ensure equitable treatment of all users.
  • Interpretability: It discusses the need for interpretability in machine learning models, enabling users to understand and trust the decisions made by the system.
  • Bias Detection: The book provides methods for detecting and mitigating biases in machine learning models, such as invariance tests and slice-based evaluation.
  • Societal Impact: It highlights the potential societal impact of machine learning systems, urging practitioners to consider the ethical implications of their work.

What are the best practices for deploying machine learning systems in production according to "Designing Machine Learning Systems"?

  • Iterative Development: The book advocates for an iterative development process, with continuous monitoring and updates to adapt to changing data and requirements.
  • Scalable Infrastructure: It emphasizes the need for scalable infrastructure to handle large volumes of data and traffic, ensuring efficient resource management.
  • Robust Evaluation: The book highlights the importance of robust evaluation methods, such as perturbation tests and model calibration, to ensure model reliability and fairness.
  • Ethical Considerations: It stresses the importance of addressing ethical challenges, such as fairness and interpretability, to ensure responsible AI use in production systems.

Recenzje

4.49 z 5
Średnia z 500+ oceny z Goodreads i Amazon.

Projektowanie systemów uczenia maszynowego zdobywa wysokie uznanie za wszechstronne omówienie MLOps oraz praktycznej implementacji systemów ML. Czytelnicy doceniają jego nacisk na koncepcje, a nie konkretne narzędzia, co czyni go wartościowym zarówno dla początkujących, jak i doświadczonych praktyków. Książka porusza zagadnienia inżynierii danych, inżynierii cech, wdrażania modeli oraz monitorowania, oferując wgląd w rzeczywiste wyzwania. Wielu recenzentów uznaje ją za lekturę obowiązkową dla naukowców zajmujących się danymi oraz inżynierów ML, podkreślając jej znaczenie w kontekście aktualnych praktyk branżowych oraz akcentując projektowanie systemów ML w pełnym cyklu.

Your rating:

O autorze

Chip Huyen to autorka i naukowczyni zajmująca się informatyką, posiadająca różnorodne doświadczenie. Urodziła się w wiosce ryżowej w Wietnamie, a następnie podróżowała po Azji, Afryce i Ameryce Południowej, wykonując różne prace. Huyen ma doświadczenie w dziedzinie uczenia maszynowego, pracując w takich firmach jak NVIDIA i Netflix. Ukończyła Uniwersytet Stanforda, gdzie obecnie prowadzi zajęcia z zakresu projektowania systemów uczenia maszynowego. Huyen interesuje się sztuczną inteligencją w kontekście opowiadania historii i założyła oraz sprzedała własną firmę. Jej unikalne doświadczenia oraz wiedza w zakresie projektowania systemów ML przyczyniają się do praktycznych spostrzeżeń zawartych w jej książce.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Home
Library
Get App
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Recommendations: Get personalized suggestions
Ratings: Rate books & see your ratings
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 10
📜 Unlimited History
Free users are limited to 10
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on May 5,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
100,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Scanner
Find a barcode to scan

Settings
General
Widget
Appearance
Loading...
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →