4 điểm bởi GN⁺ 2024-01-25 | 1 bình luận | Chia sẻ qua WhatsApp
  • 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ơn nccl-tests
    • torch-distributed-gpu-test.py: công cụ kiểm tra nhanh khả năng kết nối giữa các node
    • mamf-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ăm 2023-2026 và URL kho lưu trữ GitHub

1 bình luận

 
GN⁺ 2024-01-25
Ý 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

    • Với tư cách là một lập trình viên game đang cố bước vào machine learning/deep learning, thách thức lớn nhất là tìm được một bài toán không quá khó để vừa học vừa làm nhưng vẫn có giá trị thực tế; tôi nghĩ mình đã tìm được một bài toán và muốn nghe ý kiến
      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

    • Tôi nghĩ không thể tối ưu nếu không có profiling. Bước đầu tiên có thể là làm quen với các công cụ giúp hiểu hiệu năng mô hình
      Ví dụ: https://pytorch.org/tutorials/recipes/recipes/profiler_recip...
    • Tài liệu về hiệu năng hệ thống và profiling của Brendan Gregg là điểm khởi đầu tốt. Phần lớn vấn đề hiệu năng ML rốt cuộc quy về Linux perf, hoặc việc hiểu rốt cuộc chuyện gì đang diễn ra trong các hệ thống lập lịch tính toán hiệu năng cao như SLURM
      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?

    • Slurm gần như hiện diện khắp nơi trong cộng đồng tính toán hiệu năng cao (HPC). Trong lĩnh vực HPC, tôi nghĩ các đối thủ tương tự chỉ khoảng các bộ lập lịch tài nguyên SGE [1] và Torque/PBS [2]
      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
    • Theo Wikipedia, “Slurm được dùng làm trình quản lý workload trên khoảng 60% siêu máy tính TOP500”. Trong khoảng 10 năm qua, tôi đã dùng nó làm frontend quản lý job cho hầu hết các cụm tính toán
    • Mô hình Llama 2 cũng được huấn luyện trên Slurm
    • Liên quan đến chuyện này, tôi tò mò có ai đã chuyển thành công từ Slurm sang Kubernetes trên các cụm vật lý chủ yếu dùng nhiều GPU để huấn luyện mô hình lớn chưa
    • Nó được dùng trong hầu hết các cụm tính toán hiệu năng cao. Những nơi vẫn còn dùng Torque chắc là ngoại lệ
  • 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

    • Có lẽ bạn sẽ muốn làm cho các cập nhật huấn luyện có tính giao hoán nhiều nhất có thể. Như vậy sẽ không quan trọng áp dụng các cập nhật theo thứ tự nào
  • Làm sao có thể trải nghiệm những thứ này khi không có việc làm?

    • Đọc các tài liệu như cuốn sách được gửi lên, rồi tự làm các dự án nhỏ
      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ể
    • Nếu mục tiêu là kiếm việc, bạn cần đặt kỳ vọng thực tế
      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
    • Làm side project hoặc tham gia side project của người khác. Điều quan trọng nhất là kết nối với cộng đồng và học ngôn ngữ kỹ thuật để có thể trò chuyện với họ
      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
    • Theo kinh nghiệm của tôi, cách tốt nhất là side project. Đừng chỉ học công nghệ; hãy chọn một dự án khả thi có sử dụng công nghệ mới bạn muốn học rồi đào sâu vào đó
      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
    • Hãy thử khóa học fast.ai. Với một chút nỗ lực và sáng tạo, dù mất hơn 2 tuần, bạn vẫn có thể fine-tune một mô hình để đạt kết quả ở mức state-of-the-art
  • 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ế