4 puan yazan GN⁺ 2024-01-25 | 1 yorum | WhatsApp'ta paylaş
  • 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
  • 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’unu nccl-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-2026 yılı ve GitHub deposu URL’sini içerir

1 yorum

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

    • Bir oyun geliştiricisi olarak makine öğrenimi/derin öğrenme alanına girmeye çalışıyorum; öğrenirken üzerinde çalışılabilecek kadar zor olmayan ama gerçek değeri de olan bir problem bulmak en büyük zorluktu ve sanırım bir tane buldum, görüşlerinizi merak ediyorum.
      Ş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.

    • Bence optimizasyon, profilleme olmadan mümkün değil. Model performansını anlamaya yarayan araçlara alışmak ilk adım olabilir.
      Örnek: https://pytorch.org/tutorials/recipes/recipes/profiler_recip...
    • Brendan Gregg'in sistem performansı ve profilleme materyalleri iyi bir başlangıç noktası. ML performans sorunlarının önemli bir kısmı sonuçta Linux perf'e ya da SLURM gibi yüksek başarımlı hesaplama zamanlama sistemlerinde aslında neler olup bittiğini anlamaya çıkıyor.
      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?

    • Slurm, yüksek başarımlı hesaplama (HPC) topluluğunda fiilen her yerde. HPC tarafında benzer rakipler olarak en fazla SGE [1] ve Torque/PBS [2] kaynak zamanlayıcılarını sayabilirim.
      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
    • Wikipedia'ya göre “Slurm, TOP500 süper bilgisayarlarının yaklaşık %60'ında iş yükü yöneticisi olarak kullanılıyor.” Son 10 yıldır çoğu hesaplama kümesinde iş yöneticisi frontend'i olarak kullanılıyor.
    • Llama 2 modeli de Slurm üzerinde eğitildi.
    • Bununla bağlantılı olarak, çok sayıda GPU ile büyük model eğitiminin ağırlıklı olduğu fiziksel kümelerde Slurm'dan Kubernetes'e geçip başarılı olan biri olup olmadığını merak ediyorum.
    • Çoğu yüksek başarımlı hesaplama kümesinde kullanılıyor. Hâlâ Torque kullanan yerler varsa onlar istisna sayılır.
  • 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.

    • Muhtemelen eğitim güncellemelerini mümkün olduğunca değişme özelliğine sahip olacak şekilde tasarlamak istersiniz. Böylece güncellemelerin hangi sırayla uygulandığı önemini yitirir.
  • İşim yokken bu şeyleri nasıl deneyimleyebilirim?

    • Gönderilen kitap gibi kaynakları okuyup kendiniz küçük projeler yapabilirsiniz.
      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.
    • Hedef işe girmekse gerçekçi beklentiler belirlemek gerekir.
      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.
    • Yan proje yapabilir ya da başkasının yan projesine katılabilirsiniz. En önemli şey toplulukla bağ kurmak ve onlarla konuşabilecek teknik dili öğrenmektir.
      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.
    • Benim deneyimime göre en iyi yöntem yan proje. Sadece beceri öğrenmeyin; öğrenmek istediğiniz yeni becerileri kullanan uygulanabilir bir proje seçip derinlemesine girin.
      “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.
    • fast.ai kursunu deneyebilirsiniz. Biraz çaba ve yaratıcılıkla, iki haftadan uzun sürse bile bir modeli ince ayar yaparak son teknoloji seviyesinde sonuçlar elde edebilirsiniz.
  • 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.