4 poin oleh GN⁺ 2024-01-25 | 1 komentar | Bagikan ke WhatsApp
  • 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
  • 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 daripada nccl-tests
    • torch-distributed-gpu-test.py: alat untuk menguji konektivitas antar-node dengan cepat
    • mamf-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, tahun 2023-2026, dan URL repositori GitHub

1 komentar

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

    • Sebagai game developer, saya sedang mencoba masuk ke machine learning/deep learning, dan tantangan terbesar adalah menemukan masalah yang cukup tidak sulit untuk dicoba sambil belajar tetapi tetap punya nilai nyata. Sepertinya saya sudah menemukan satu, jadi ingin mendengar pendapat
      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

  • 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?

    • Slurm pada dasarnya ada di mana-mana di komunitas high-performance computing (HPC). Di ranah HPC, pesaing serupa yang terpikir adalah resource scheduler seperti SGE [1] dan Torque/PBS [2]
      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
    • Menurut Wikipedia, “Slurm digunakan sebagai workload manager di sekitar 60% superkomputer TOP500.” Selama kira-kira 10 tahun terakhir, saya memakainya sebagai frontend job manager di sebagian besar cluster komputasi
    • Model Llama 2 juga dilatih di Slurm
    • Terkait hal ini, saya penasaran apakah ada orang yang berhasil bermigrasi dari Slurm ke Kubernetes pada cluster fisik yang terutama digunakan untuk melatih model besar dengan banyak GPU
    • Dipakai di sebagian besar cluster high-performance computing. Tempat yang masih bertahan di Torque mungkin pengecualian
  • 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

    • Yang diinginkan adalah membuat update pelatihan sebisa mungkin bersifat komutatif. Dengan begitu, urutan penerapan update tidak menjadi masalah
  • Bagaimana bisa mendapatkan pengalaman dengan hal-hal seperti ini saat tidak punya pekerjaan?

    • Baca materi seperti buku yang dikirimkan ini, lalu coba proyek kecil sendiri
      Tidak jauh berbeda dari belajar pemrograman saat belum punya pekerjaan sebagai programmer
      Tentu saja bukan berarti keduanya mudah; perlu komitmen yang cukup besar
    • Jika tujuannya mencari kerja, perlu menetapkan ekspektasi yang realistis
      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
    • Kerjakan side project atau ikut side project orang lain. Yang paling penting adalah terhubung dengan komunitas dan mempelajari bahasa teknis untuk bisa berbicara dengan mereka
      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
    • Dari pengalaman saya, cara terbaik adalah side project. Jangan hanya belajar teknologinya; pilih proyek yang realistis yang memanfaatkan teknologi baru yang ingin dipelajari, lalu dalami
      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
    • Coba ikuti kursus fast.ai. Dengan sedikit usaha dan kreativitas, meski butuh lebih dari 2 minggu, Anda bisa melakukan fine-tuning model dan menghasilkan hasil setara state-of-the-art
  • 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