ML Mühendisliği Çevrimiçi Kitabı
(github.com/stas00)- Machine Learning Engineering Open Book, LLM, VLM ve RAG modellerinin eğitimi, fine-tuning’i ve çıkarımını başarıyla gerçekleştirmek için metodolojileri, araçları ve adım adım komutları bir araya getiren açık bir kaynaktır
- Hedef okuyucular LLM/VLM eğitim mühendisleri ve operatörleri olup, sorunları hızlıca çözebilmeleri için çok sayıda script ve kopyalanıp çalıştırılabilir komut içerir
- İçerik, 2022’de BLOOM-176B, 2023’te IDEFICS-80B ve 2024’te Contextual.AI’nin RAG modeli eğitimi deneyimlerinden biriken know-how’a dayanır
- Kapsam; bulut seçimi, hızlandırıcılar, depolama, ağ, orkestrasyon, eğitim, çıkarım, hata ayıklama, test ve kaynaklara kadar uzanır; PDF ve EPUB e-kitapları da sunulur
- Büyük ölçekli ML compute cluster’larını doğrudan ele alması zor olan toplulukların, gerçek büyük ölçekli eğitim deneyimlerinden çıkan operasyonel bilgiyi dolaylı olarak öğrenmesini sağlayan açık bir bilgi deposudur
Kitabın amacı ve okuyucuları
- Machine Learning Engineering Open Book, büyük dil modelleri ve multimodal modellerin eğitimi, fine-tuning’i ve çıkarımı için açık bir bilgi derlemesidir
- Teknik doküman niteliği ağır basar; LLM/VLM eğitim mühendisleri ve operatörlerinin hızlıca uygulayabilmesi için script’ler ve kopyalanıp çalıştırılabilir komutlar içerir
- Depodaki içerik, geçmişte araştırılıp gerçekten çalışan çözümleri hızlıca yeniden bulmak için tutulan kişisel notlardan doğmuş ve daha geniş ML topluluğuyla paylaşılmıştır
Deneyime dayalı kapsam
- Know-how’ın önemli bir bölümü, gerçek büyük ölçekli model eğitimi deneyimlerinden birikmiştir
- 2022’de açık kaynak BLOOM-176B eğitimi
- 2023’te multimodal model IDEFICS-80B eğitimi
- 2024’te Contextual.AI bünyesinde RAG modeli eğitimi
- Büyük ölçekli ML compute cluster kiralama maliyetlerinin yüksek olması nedeniyle doğrudan deneyimlemesi zor alanlardaki bilgileri topluluğun dolaylı olarak öğrenebilmesine odaklanır
Ele alınan konular
-
Insights
- AI Battlefield Engineering
- Bulut sağlayıcısı seçme yöntemi
-
Hardware
- Compute: hızlandırıcılar, CPU, CPU belleği
- Storage: yerel, dağıtık ve paylaşımlı dosya sistemleri
- Network: düğüm içi ve düğümler arası ağ bağlantıları
-
Orchestration
- Konteynerleri ve kaynakları yöneten orkestrasyon sistemleri
- SLURM: Simple Linux Utility for Resource Management
-
Training / Inference
- Model eğitimiyle ilgili rehberler
- Model çıkarımıyla ilgili içgörüler
-
Development
- Hem kolay hem de zor problemleri ele alan hata ayıklama ve sorun giderme
- İlgili tarifleri ve metodolojileri içeren The Art of Debugging Open book
- Test yazmaya yardımcı ipuçları ve araçlar
-
Miscellaneous
- LLM/VLM kronolojisi kaynakları
Hızlı erişim karşılaştırma tabloları ve araçlar
- Yüksek performanslı hızlandırıcı karşılaştırma tablosu, teorik TFLOPS değerlerini ve hızlandırıcı bellek kapasitesi ile hızını kapsar
- Ağ karşılaştırma tablosu, düğümler arası ağ bağlantıları ve düğüm içi ağ bağlantılarının teorik hızını kapsar
- Sık kullanılan araçlar ayrı kısayollar olarak sunulur
all_reduce_bench.py: ağ throughput’ununccl-tests’ten daha kolay benchmark etmeye yarayan araçtorch-distributed-gpu-test.py: düğümler arası bağlantıyı hızlıca test etmeye yarayan araçmamf-finder.py: hızlandırıcılarda pratikte elde edilebilen TFLOPS ölçümlerini bulmaya yarayan araç
- Sık kullanılan rehberler de ayrı kısayollar olarak sunulur
- PyTorch uygulaması takıldığında veya bozulduğunda hızlıca uygulanabilecek hata ayıklama çözümleri
- SLURM kullanıcıları için cheat sheet ve püf noktaları
- Küçük model, veri kümesi ve tokenizer oluşturma yöntemi
- Yayınlanmış LLM/VLM eğitim logbook’ları derlemesi
Dağıtım biçimi ve katkı
- E-kitap Hugging Face Hub üzerinden sunulur
- E-kitap birkaç haftada bir yeniden build edilecek şekilde planlanmıştır; en güncel e-kitabı doğrudan build etmek için yönergeler de sunulur
- ML mühendisliğiyle ilgili tartışmalar, deponun community discussions bölümünde yapılabilir
- Hata, yazım hatası ve iyileştirme önerileri Issue veya PR olarak kabul edilir
- İçerik lisansı Attribution-ShareAlike 4.0 International’dır
- Atıf bilgisi
Machine Learning Engineering Open Book,2023-2026yılı ve GitHub deposu URL’sini içerir
1 yorum
Hacker News yorumları
Araştırma destek işleri kapsamında her gün LLM eğitim ayarlarında hata ayıklama yapıyorum; ilk başladığımda böyle notlar olsaydı gerçekten çok iyi olurdu diye düşünüyorum.
Şu anda oyun/film animasyonu için motion capture veri toplamada ataletsel ve optik olmak üzere iki sistem var. Ataletsel olan daha kolay ve ucuz ama daha fazla yakalama hatası ve tutarsızlık içeriyor, bu yüzden elle düzeltme gerekiyor; optik olan daha doğru ve daha az temizlik gerektiriyor ama donanım ve alan maliyeti yüksek.
Fikir şu: Ataletsel motion capture suit giyilip aynı anda optik oturum da kaydedilir, ardından motion capture verisinin otomatik düzeltilmesi için makine öğrenimi eğitilir. Teoride, ataletsel kayıt verisini makine öğreniminden geçirerek optik seviyesinde hassasiyet elde etmek mümkün olabilir gibi görünüyor.
Bunun ilk proje olarak uygun olup olmadığı, nasıl ele alınabileceği ve bakılabilecek mevcut projeler olup olmadığı konusunda fikirlerinizi merak ediyorum.
Model eğitimi ve dağıtımıyla ilgili işlerde uygulamalı bilim insanlarına yardımcı oluyorum; optimizasyon·performans gibi daha düşük seviyeli mühendislik işlerine nasıl maruz kalabileceğimi merak ediyorum.
Şirkette bir ML altyapı ekibi var ama hedefleri iş yüklerini en iyi şekilde çalıştırmaya odaklanmaktan çok, platform çevresindeki araçları geliştirmek.
Örnek: https://pytorch.org/tutorials/recipes/recipes/profiler_recip...
https://www.brendangregg.com/linuxperf.html
AI Battlefield bölümündeki Unsolicited Advice kısmını özellikle çok beğendim. Her şeyin baş döndürücü bir hızla aktığı ve AI geliştirmedeki inatçı, radikal ilerleme yüzünden insanın sürekli suya düşmüş gibi hissettiği duygusal yükü çok gerçekçi ele alıyor.
https://github.com/stas00/ml-engineering/blob/master/insight...
Slurm ne kadar yaygın kullanılıyor?
Kesin rakamları bilmiyorum ama Top 500 süper bilgisayarın [3] ezici çoğunluğunun Slurm çalıştırdığını tahmin ediyorum. Başkalarının da dediği gibi, akademik araştırma hesaplama merkezlerinin çoğu Slurm kullanıyor ve ABD DoE ulusal laboratuvarlarında da Slurm baskın durumda.
Bir de eğlenceli bir bilgi olarak, belki şehir efsanesidir ama “Simple Linux Utility for Resource Management (SLURM)” adının Futurama'daki Slurm içeceğinden türetilmiş ters akronim olduğu söylenir [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
Rastgele yeniden üretilebilirlik bölümüne tıkladım ama dağıtık eğitimde yeniden üretilebilirliğin nasıl sağlandığını hâlâ merak ediyorum. Deterministik senkronizasyon yapılırsa yavaşlamaz mı? Yine de en azından bazı büyük şirketlerde eğitimin yeniden üretilebilir olduğunu duydum.
İşim yokken bu şeyleri nasıl deneyimleyebilirim?
Bu, zaten programlama işi yokken programlama öğrenmekten çok da farklı değil.
Elbette bu ikisinin de kolay olduğu anlamına gelmiyor; ciddi bağlılık gerektiriyor.
Web geliştirme gibi alanlarla kıyaslandığında bu tarafın işe alım pazarı çok küçük ve projeler çok derin bilgiye sahip uzmanlar gerektiriyor. ChatGPT ya da Stack Overflow'un çok yardımcı olduğu türden işler değil.
Bu topluluk nispeten küçük ve başlamak için birçok şey gerekiyor. Bir miktar makine öğrenimi bilgisi, sağlam kodlama becerisi, modern hızlandırıcıların nasıl çalıştığına dair bilgi ve bu alandaki makaleleri okuyup anlayabilme yeteneği lazım.
“Uygulanabilir” bir şey seçmek sık sık zor oluyor; bu yüzden birkaç hafta sonra yeniden değerlendirmekten ve gerekirse beklentileri ayarlamaktan korkmayın.
Önemli olan hareket etmeye devam etmek.
Bunu denemek istiyorum ama düzgün bir GPU'm yok. İnsanlar bunu pratikte nasıl çalıştırıyor, merak ediyorum.
Güncel gelişmeleri takip etmek için hangi Twitter hesaplarını takip etmek iyi olur?
PDF bir yerde var mı? Derleme talimatlarını görüyorum ama asıl dosyayı göremiyorum.