Sách trực tuyến về kỹ thuật ML
(github.com/stas00)- Machine Learning Engineering Open Book là tài liệu mở tổng hợp phương pháp, công cụ và các lệnh theo từng bước để huấn luyện, fine-tune và suy luận thành công với các mô hình LLM, VLM và RAG
- Độc giả mục tiêu là kỹ sư và người vận hành huấn luyện LLM/VLM, đồng thời tài liệu chứa nhiều script và lệnh có thể sao chép để chạy ngay nhằm giúp giải quyết vấn đề nhanh chóng
- Nội dung dựa trên kinh nghiệm tích lũy từ quá trình huấn luyện BLOOM-176B năm 2022, IDEFICS-80B năm 2023 và các mô hình RAG tại Contextual.AI năm 2024
- Phạm vi bao gồm lựa chọn cloud, bộ tăng tốc·lưu trữ·mạng, orchestration, huấn luyện, suy luận, gỡ lỗi, kiểm thử và tài nguyên, đồng thời cũng cung cấp sách điện tử PDF và EPUB
- Đây là kho tri thức mở giúp cộng đồng khó có điều kiện trực tiếp làm việc với các cụm ML compute quy mô lớn vẫn có thể học hỏi gián tiếp kiến thức vận hành rút ra từ trải nghiệm huấn luyện thực tế ở quy mô lớn
Mục đích của cuốn sách và độc giả
- Machine Learning Engineering Open Book là bộ sưu tập tri thức mở dành cho việc huấn luyện, fine-tune và suy luận các mô hình ngôn ngữ lớn và mô hình đa phương thức
- Tài liệu mang tính kỹ thuật cao, đồng thời bao gồm script và các lệnh có thể sao chép để chạy ngay để kỹ sư và người vận hành huấn luyện LLM/VLM có thể áp dụng nhanh
- Nội dung của kho lưu trữ bắt đầu từ các ghi chú cá nhân nhằm nhanh chóng tìm lại những giải pháp đã từng được nghiên cứu và hoạt động trong thực tế, rồi được chia sẻ với cộng đồng ML rộng lớn hơn
Phạm vi dựa trên kinh nghiệm thực tế
- Phần lớn kiến thức được tích lũy từ kinh nghiệm huấn luyện mô hình quy mô lớn trong thực tế
- Huấn luyện mã nguồn mở BLOOM-176B năm 2022
- Huấn luyện mô hình đa phương thức IDEFICS-80B năm 2023
- Huấn luyện mô hình RAG tại Contextual.AI năm 2024
- Tài liệu tập trung vào việc giúp cộng đồng học hỏi gián tiếp những kiến thức ở lĩnh vực khó trực tiếp trải nghiệm do chi phí thuê cụm ML compute quy mô lớn rất cao
Các chủ đề được tổ chức
-
Insights
- AI Battlefield Engineering
- Cách chọn nhà cung cấp cloud
-
Hardware
- Compute: bộ tăng tốc, CPU, bộ nhớ CPU
- Storage: hệ thống tệp cục bộ, phân tán, dùng chung
- Network: mạng trong nội bộ node và giữa các node
-
Orchestration
- Hệ thống orchestration để quản lý container và tài nguyên
- SLURM: Simple Linux Utility for Resource Management
-
Training / Inference
- Hướng dẫn liên quan đến huấn luyện mô hình
- Insight liên quan đến suy luận mô hình
-
Development
- Gỡ lỗi và khắc phục sự cố cho cả vấn đề dễ và khó
- The Art of Debugging Open book chứa các công thức và phương pháp liên quan
- Mẹo và công cụ giúp viết kiểm thử
-
Miscellaneous
- Tài nguyên niên biểu LLM/VLM
Bảng so sánh và công cụ tra cứu nhanh
- Bảng so sánh bộ tăng tốc hiệu năng cao đề cập đến TFLOPS lý thuyết cùng dung lượng và tốc độ bộ nhớ của bộ tăng tốc
- Bảng so sánh mạng đề cập đến tốc độ lý thuyết của kết nối mạng giữa các node và trong nội bộ node
- Các công cụ thường dùng được cung cấp dưới dạng lối tắt riêng
all_reduce_bench.py: công cụ benchmark thông lượng mạng dễ hơnnccl-teststorch-distributed-gpu-test.py: công cụ kiểm tra nhanh khả năng kết nối giữa các nodemamf-finder.py: công cụ tìm số đo TFLOPS thực tế có thể đạt được trên bộ tăng tốc
- Các hướng dẫn thường dùng cũng được cung cấp dưới dạng lối tắt riêng
- Giải pháp gỡ lỗi có thể áp dụng nhanh khi ứng dụng PyTorch bị treo hoặc lỗi
- Cheat sheet và mẹo cho người dùng SLURM
- Cách tạo mô hình nhỏ, dataset nhỏ và tokenizer nhỏ
- Bộ sưu tập logbook huấn luyện LLM/VLM được công khai
Hình thức phát hành và tham gia
- Sách điện tử được cung cấp trên Hugging Face Hub
- Sách điện tử dự kiến sẽ được build lại khoảng vài tuần một lần, đồng thời cũng có hướng dẫn để tự build phiên bản mới nhất
- Có thể thảo luận về ML engineering trong community discussions của kho lưu trữ
- Có thể gửi bug, lỗi chính tả và đề xuất cải thiện qua Issue hoặc PR
- Giấy phép nội dung là Attribution-ShareAlike 4.0 International
- Thông tin trích dẫn bao gồm
Machine Learning Engineering Open Book, năm2023-2026và URL kho lưu trữ GitHub
1 bình luận
Ý kiến trên Hacker News
Tôi làm gỡ lỗi thiết lập huấn luyện LLM hằng ngày trong vai trò hỗ trợ nghiên cứu, và cảm thấy giá mà lúc mới bắt đầu có những ghi chú như thế này thì thật tốt
Hiện nay việc thu thập dữ liệu motion capture cho hoạt hình game/phim có hai hệ thống: quán tính và quang học. Hệ quán tính dễ dùng và rẻ hơn, nhưng có nhiều lỗi bắt chuyển động và sai số nên cần chỉnh sửa thủ công; hệ quang học chính xác hơn và ít cần dọn dẹp hơn, nhưng chi phí phần cứng và không gian lớn
Ý tưởng là mặc bộ đồ motion capture quán tính và đồng thời ghi lại cả phiên quang học, rồi dùng machine learning để học tự động hiệu chỉnh dữ liệu motion capture. Về lý thuyết, có vẻ có thể đưa dữ liệu ghi bằng hệ quán tính qua machine learning để đạt độ chính xác ở mức hệ quang học
Tôi muốn biết liệu đây có phải dự án đầu tay đáng làm không, nên giải quyết theo hướng nào, và có dự án hiện có nào đáng tham khảo không
Tôi đang hỗ trợ các nhà khoa học ứng dụng trong công việc liên quan đến huấn luyện và triển khai mô hình, và muốn biết làm thế nào để tiếp xúc với các công việc kỹ thuật cấp thấp hơn như tối ưu hóa·hiệu năng
Công ty có đội ML infra, nhưng mục tiêu của họ là xây dựng công cụ xung quanh nền tảng, chứ không tập trung vào việc chạy workload tối ưu
Ví dụ: https://pytorch.org/tutorials/recipes/recipes/profiler_recip...
https://www.brendangregg.com/linuxperf.html
Tôi đặc biệt thích phần Unsolicited Advice trong mục AI Battlefield. Nó xử lý rất thực tế thực trạng mọi thứ chuyển động nhanh đến chóng mặt, và gánh nặng cảm xúc như lúc nào cũng thấy mình đang chìm trong làn sóng tiến bộ cấp tiến không ngừng của phát triển AI
https://github.com/stas00/ml-engineering/blob/master/insight...
Slurm được dùng rộng rãi đến mức nào?
Tôi không biết con số chính xác, nhưng đoán rằng tuyệt đại đa số siêu máy tính Top 500 [3] đang chạy Slurm. Như những người khác đã nói, phần lớn các trung tâm tính toán nghiên cứu trong giới học thuật cũng dùng Slurm, và tại các phòng thí nghiệm quốc gia của DoE Mỹ, Slurm cũng chiếm ưu thế
Và một sự thật thú vị, có thể chỉ là giai thoại, là cái tên “Simple Linux Utility for Resource Management (SLURM)” được cho là một backronym xuất phát từ đồ uống Slurm trong Futurama [4]
[1] https://en.wikipedia.org/wiki/Oracle_Grid_Engine
[2] https://github.com/adaptivecomputing/torque
[3] https://www.top500.org/
[4] https://futurama.fandom.com/wiki/Slurm
Tôi bấm ngẫu nhiên vào mục tái lập, và vẫn thắc mắc làm sao đạt được khả năng tái lập trong huấn luyện phân tán. Nếu đồng bộ quyết định thì không bị chậm đi sao? Dù vậy tôi nghe nói ít nhất ở một vài công ty lớn, việc huấn luyện có thể tái lập được
Làm sao có thể trải nghiệm những thứ này khi không có việc làm?
Không khác nhiều so với việc học lập trình khi bạn chưa có công việc lập trình
Tất nhiên điều đó không có nghĩa là cái nào cũng dễ; cần sự tận tâm đáng kể
So với các lĩnh vực như phát triển web, thị trường tuyển dụng bên này rất nhỏ, và các dự án đòi hỏi chuyên gia có kiến thức rất sâu. Đây không phải kiểu công việc mà ChatGPT hay Stack Overflow có thể giúp được nhiều
Cộng đồng này tương đối nhỏ, và để bắt đầu cần nhiều thứ: một mức độ machine learning nhất định, năng lực lập trình vững, hiểu biết về cách các accelerator hiện đại hoạt động, và khả năng đọc hiểu các bài báo theo hướng này
Việc chọn thứ “khả thi” thường khá khó, nên đừng ngại đánh giá lại sau vài tuần và điều chỉnh kỳ vọng nếu cần
Điều quan trọng là tiếp tục tiến lên
Tôi muốn thử nghiệm cái này, nhưng không có GPU tử tế. Không biết thực tế mọi người chạy bằng cách nào
Để theo kịp thông tin mới nhất thì nên theo dõi những tài khoản Twitter nào?
Có PDF ở đâu không? Tôi thấy hướng dẫn build nhưng không thấy file thực tế