Buku daring tentang rekayasa ML
(github.com/stas00)- Machine Learning Engineering Open Book adalah sumber terbuka yang mengumpulkan metodologi, alat, dan perintah langkah demi langkah untuk berhasil melakukan pelatihan, fine-tuning, dan inferensi model LLM, VLM, dan RAG
- Pembaca sasarannya adalah insinyur dan operator pelatihan LLM/VLM, dan buku ini memuat banyak skrip serta perintah yang bisa disalin-tempel dan langsung dijalankan agar masalah dapat diselesaikan dengan cepat
- Isinya didasarkan pada pengetahuan praktis yang terkumpul dari pengalaman melatih BLOOM-176B pada 2022, IDEFICS-80B pada 2023, dan model RAG di Contextual.AI pada 2024
- Cakupannya meliputi pemilihan cloud, akselerator·penyimpanan·jaringan, orkestrasi, pelatihan, inferensi, debugging, pengujian, hingga sumber daya, serta menyediakan ebook PDF dan EPUB
- Ini adalah repositori pengetahuan terbuka yang memungkinkan komunitas yang sulit menangani klaster komputasi ML skala besar secara langsung untuk mempelajari pengetahuan operasional dari pengalaman pelatihan berskala besar secara tidak langsung
Tujuan buku dan pembacanya
- Machine Learning Engineering Open Book adalah kumpulan pengetahuan terbuka untuk pelatihan, fine-tuning, dan inferensi model bahasa besar serta model multimodal
- Sifatnya sangat teknis, dan memuat skrip serta perintah yang bisa langsung disalin dan dijalankan agar insinyur dan operator pelatihan LLM/VLM dapat segera menerapkannya
- Isi repositori ini berawal dari catatan pribadi untuk dengan cepat menemukan kembali solusi yang pernah diteliti dan benar-benar berhasil, lalu dibagikan ke komunitas ML yang lebih luas
Cakupan berbasis pengalaman
- Sebagian besar pengetahuan praktisnya dikumpulkan dari pengalaman nyata melatih model skala besar
- Pelatihan BLOOM-176B open source pada 2022
- Pelatihan model multimodal IDEFICS-80B pada 2023
- Pelatihan model RAG di Contextual.AI pada 2024
- Fokusnya adalah membantu komunitas mempelajari secara tidak langsung pengetahuan di area yang sulit dialami langsung karena biaya sewa klaster komputasi ML skala besar sangat tinggi
Topik yang disusun
-
Insights
- AI Battlefield Engineering
- Cara memilih penyedia cloud
-
Hardware
- Compute: akselerator, CPU, memori CPU
- Storage: sistem file lokal, terdistribusi, dan bersama
- Network: jaringan di dalam node dan antar-node
-
Orchestration
- Sistem orkestrasi untuk mengelola kontainer dan sumber daya
- SLURM: Simple Linux Utility for Resource Management
-
Training / Inference
- Panduan terkait pelatihan model
- Insight terkait inferensi model
-
Development
- Debugging dan troubleshooting yang mencakup masalah mudah maupun sulit
- The Art of Debugging Open book yang memuat resep dan metodologi terkait
- Tips dan alat yang membantu menulis pengujian
-
Miscellaneous
- Sumber daya kronologi LLM/VLM
Tabel perbandingan dan alat untuk pencarian cepat
- Tabel perbandingan akselerator berkinerja tinggi membahas TFLOPS teoretis serta ukuran dan kecepatan memori akselerator
- Tabel perbandingan jaringan membahas kecepatan teoretis untuk jaringan antar-node dan jaringan di dalam node
- Alat yang sering dipakai disediakan sebagai pintasan terpisah
all_reduce_bench.py: alat untuk melakukan benchmark throughput jaringan lebih mudah daripadanccl-teststorch-distributed-gpu-test.py: alat untuk menguji konektivitas antar-node dengan cepatmamf-finder.py: alat untuk mencari pengukuran TFLOPS yang benar-benar bisa diperoleh pada akselerator
- Panduan yang sering dipakai juga disediakan sebagai pintasan terpisah
- Solusi debugging yang bisa cepat diterapkan saat aplikasi PyTorch macet atau rusak
- Cheat sheet dan trik untuk pengguna SLURM
- Cara membuat model, dataset, dan tokenizer kecil
- Kumpulan logbook pelatihan LLM/VLM yang dipublikasikan
Format distribusi dan partisipasi
- Ebook tersedia di Hugging Face Hub
- Ebook direncanakan akan dibangun ulang setiap beberapa minggu sekali, dan tersedia juga panduan untuk membangun ebook terbaru secara langsung
- Diskusi terkait rekayasa ML dapat dilakukan di community discussions repositori
- Bug, typo, dan usulan perbaikan dapat dikirim melalui Issue atau PR
- Lisensi kontennya adalah Attribution-ShareAlike 4.0 International
- Informasi sitasi mencakup
Machine Learning Engineering Open Book, tahun2023-2026, dan URL repositori GitHub
1 komentar
Komentar Hacker News
Saya setiap hari melakukan debugging pengaturan pelatihan LLM sebagai pekerjaan pendukung riset, dan merasa akan sangat menyenangkan kalau catatan seperti ini sudah ada saat saya baru mulai
Saat ini, untuk pengumpulan data motion capture bagi animasi game/film, ada dua sistem: inertial dan optical. Sistem inertial lebih mudah dan murah, tetapi banyak error capture dan ketidakakuratan sehingga perlu koreksi manual; sistem optical lebih akurat dan butuh lebih sedikit pembersihan, tetapi biaya hardware dan ruangnya besar
Idenya adalah mengenakan suit motion capture inertial sambil sekaligus merekam sesi optical, lalu melatih machine learning untuk koreksi otomatis data motion capture. Secara teori, data rekaman inertial bisa dilewatkan melalui machine learning untuk mendapatkan presisi setingkat optical
Saya ingin tahu apakah ini layak dikerjakan sebagai proyek pertama, bagaimana sebaiknya memecahkannya, dan apakah ada proyek yang sudah ada untuk dijadikan referensi
Saya membantu para applied scientist dalam pekerjaan terkait pelatihan dan deployment model, dan penasaran bagaimana saya bisa terekspos pada pekerjaan engineering level lebih rendah seperti optimasi·performa
Di perusahaan ada tim infrastruktur ML, tetapi tujuannya lebih ke membuat tooling di sekitar platform, bukan berfokus menjalankan workload secara optimal
Contoh: https://pytorch.org/tutorials/recipes/recipes/profiler_recip...
https://www.brendangregg.com/linuxperf.html
Bagian Unsolicited Advice di seksi AI Battlefield khususnya sangat bagus. Itu membahas dengan sangat realistis kenyataan bahwa semuanya bergerak sangat cepat dan beban emosional karena terus merasa seperti tenggelam di tengah kemajuan agresif pengembangan AI
https://github.com/stas00/ml-engineering/blob/master/insight...
Seberapa luas Slurm digunakan?
Saya tidak tahu angka persisnya, tetapi saya memperkirakan mayoritas besar superkomputer Top 500 [3] menjalankan Slurm. Seperti dikatakan orang lain, kebanyakan pusat komputasi riset akademik juga memakai Slurm, dan Slurm juga dominan di laboratorium nasional DoE AS
Dan fakta menariknya, walau mungkin cuma legenda, nama “Simple Linux Utility for Resource Management (SLURM)” konon adalah backronym dari minuman Slurm di 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
Saya mencoba mengeklik secara acak bagian reproducibility, dan masih penasaran bagaimana reproducibility dalam distributed training dicapai. Bukankah sinkronisasi deterministik membuatnya lambat? Meski begitu, saya dengar setidaknya di beberapa perusahaan besar, pelatihan bisa direproduksi
Bagaimana bisa mendapatkan pengalaman dengan hal-hal seperti ini saat tidak punya pekerjaan?
Tidak jauh berbeda dari belajar pemrograman saat belum punya pekerjaan sebagai programmer
Tentu saja bukan berarti keduanya mudah; perlu komitmen yang cukup besar
Dibanding bidang seperti web development, pasar kerja di area ini sangat kecil, dan proyek-proyeknya menuntut pakar dengan pengetahuan yang sangat mendalam. Ini bukan jenis pekerjaan yang banyak terbantu oleh ChatGPT atau Stack Overflow
Komunitas ini relatif kecil, dan untuk memulai diperlukan beberapa hal: pemahaman machine learning sampai tingkat tertentu, kemampuan coding yang solid, pengetahuan tentang cara kerja akselerator modern, serta kemampuan membaca dan memahami paper di arah ini
Memilih sesuatu yang “realistis” sering kali sulit, jadi jangan takut mengevaluasi ulang setelah beberapa minggu dan menyesuaikan ekspektasi jika perlu
Yang penting adalah terus bergerak
Saya ingin bereksperimen dengan ini, tetapi tidak punya GPU yang layak. Penasaran bagaimana orang-orang sebenarnya menjalankannya
Untuk mengikuti informasi terbaru, akun Twitter apa yang sebaiknya diikuti?
Apakah ada PDF di suatu tempat? Saya melihat instruksi build, tetapi tidak melihat file sebenarnya