ML Mühendisliği Çevrimiçi Kitabı
(github.com/stas00)-
Yapay zeka savaş mühendisliği - bilinmesi gerekenler
- Yapay zeka (ML) modellerinin, özellikle büyük dil modelleri (LLM) ve çok modlu modellerin (VLM) başarılı şekilde eğitilmesi için yöntemleri bir araya getiren açık bir koleksiyon.
- LLM/VLM eğitim mühendisleri ve operatörleri için teknik bir kaynak olup, çok sayıda betik ve kopyala-yapıştır komutu içerdiğinden gerekli işleri hızlıca yapmayı sağlar.
- 2022'de açık kaynak BLOOM-176B modelini ve 2023'te IDEFICS-80B çok modlu modelini eğitirken edinilen deneyim ve birikim sürekli olarak kaydediliyor; şu anda ise Contextual.AI'de açık kaynak retrieval-augmented model geliştirme/eğitimi yürütülüyor.
-
İçindekiler
- Düzenin kararsız olduğu için özür dileniyor; yeni bölümler yazılırken içerik daha sezgisel olacak şekilde yeniden düzenleniyor.
-
Donanım bileşenleri
- Hızlandırıcılar - ML'nin yük beygiri; GPU, TPU, IPU, FPGA, HPU, QPU, RDU vb. dahildir.
- Ağ - Düğüm içi ve düğümler arası bağlantı, bant genişliği gereksinimlerinin hesaplanması.
- Depolama - Yerel ve dağıtık diskler ile dosya sistemleri.
- CPU - CPU ve affinity hakkında içerik.
- CPU belleği - Ne kadar CPU belleğinin yeterli olduğuna dair en kısa bölüm.
-
Performans
- Hata toleransı
- Performans
- Çok düğümlü ağ iletişimi
- Model paralelliği
-
Operasyonlar
- SLURM
- Eğitim hiperparametreleri ve model başlatma
- Kararsızlık
-
Geliştirme
- Yazılım ve donanım arızalarında hata ayıklama
- Daha fazla hata ayıklama
- Yeniden üretilebilirlik
- Tensor hassasiyeti / veri türleri
- HF Transformers notları - küçük modeller, tokenizer'lar, veri kümeleri vb. için ipuçları.
-
Diğer
- Kaynaklar - LLM/VLM kronolojisi.
-
Kısayollar
- Sık sık hızlıca bulunması gereken araçlar ve kılavuzlar.
- Araçlar:
all_reduce_bench.py,torch-distributed-gpu-test.py - Kılavuzlar:
debugging pytorch applications,slurm for users,make tiny models/datasets/tokenizers,LLM/VLM chronicles collection
-
Kitabı oluşturma
- PDF oluşturmak veya bağlantıları doğrulamak istiyorsanız 'Kitabı oluşturma' bölümüne bakın.
-
Teşekkürler
- Bu tür birikimi öğrenebilmek, büyük ML hesaplama kümelerini kiralamanın çok pahalı olması nedeniyle yalnızca az sayıda kişinin erişebildiği bir ayrıcalık.
- Thom Wolf ve HuggingFace'e özel teşekkürler.
-
Katkıda bulunma
- Hata, yazım yanlışı fark ederseniz veya iyileştirme öneriniz varsa issue açmanız ya da PR katkısında bulunmanız önerilir.
-
Lisans
- Bu sitedeki içerik Attribution-ShareAlike 4.0 International lisansı altında dağıtılmaktadır.
-
Depo haritam
- Makine öğrenimi: ML Engineering Open Book | ML ways | Porting
- Kılavuzlar: The Art of Debugging
- Uygulamalar: ipyexperiments
- Araçlar ve cheat sheet'ler: bash | conda | git | jupyter-notebook | make | python | tensorboard | unix
GN⁺ görüşü
- Bu kaynak, büyük dil modelleri ve çok modlu modelleri eğitmek için gereken pratik bilgi ve araçları sunarak ML topluluğuna büyük katkı sağlıyor.
- Gerçek proje deneyimlerinden edinilen birikimi paylaşarak, başlangıç seviyesindeki yazılım mühendislerinin büyük ölçekli ML model eğitimi için gerekli uygulamalı bilgiyi edinmesine yardımcı oluyor.
- Açık kaynak yaklaşımı, ML alanında bilgi paylaşımını ve iş birliğini teşvik ediyor; bu da araştırma ve inovasyonun hızlanmasında önemli bir rol oynuyor.
1 yorum
Hacker News görüşleri
Bu yazı gerçekten çok değerli. Araştırmayı desteklemek için LLM eğitim kurulumlarını debug etme işi yapıyorum; başlarken elimde böyle notlar olsaydı keşke.
Applied Scientist ile birlikte çalışıyor, model eğitimi ve dağıtımıyla ilgili işlere yardımcı oluyorum; benim gibi biri optimizasyon, performans gibi daha alt seviye mühendislik işlerine nasıl maruz kalabilir? Bizde bir ML altyapı ekibi var ama onların hedefi daha çok platform etrafında araçlar geliştirmek; iş yüklerini mutlaka en iyi şekilde çalıştırmak değil.
Bunu denemek istiyorum ama düzgün bir GPU'm yok. Siz bunları nasıl çalıştırıyorsunuz?
AI Battlefield bölümündeki "Unsolicited Advice" içindeki her şey için gerçekten teşekkürler [1]. Yapay zeka geliştirmedeki hızlı ilerlemeye sürekli yetişmeye çalışmanın ve bunun getirdiği duygusal yükün çok gerçekçi bir değerlendirmesi.
Slurm ne kadar yaygın kullanılıyor?
Rastgele tıklarken repeatability hakkında bir şeyler okudum ama bunun dağıtık eğitimde nasıl sağlandığını hâlâ merak ediyorum. Deterministic senkronizasyon işleri yavaşlatmıyor mu? Ama en azından bazı büyük şirketlerde eğitim süreçlerinin tekrarlanabilir olduğunu duydum.
Bir işiniz yokken bu tür konularda deneyimi nasıl kazanıyorsunuz?
Bunun bir PDF'i bir yerde var mı? Nasıl build edileceği var gibi görünüyor ama ortada gerçek dosya yok.