36 puan yazan xguru 2024-06-10 | 4 yorum | WhatsApp'ta paylaş
  • Soruyu yanıtlayan kişilerin görüşlerinin özeti

schmookeeg

  • Şu anda makine öğrenimi mühendisi olarak çalışırken en sevdiğim şey, teknik geçmişi olmayan insanlarla işbirliği yapmak
    • MS Outlook'u 5 seferin 3'ünden fazlasında açamayan insanlar bile kendi uzmanlık alanlarında şaşırtıcı bir derinlik ve içgörüye sahip
    • Bu insanı oldukça mütevazı kılıyor
  • Teknik geçmişi olmayan insanlar bana sihirbaz gözüyle bakıyor, ben de onlara voodoo rahibi gibi bakıyorum
    • Sevdiğimiz şeyleri eğitip tahminler ürettiğimizde bu her iki taraf için de çok ödüllendirici oluyor
  • Modellemenin çoğu sağlık alanıyla ilgili
    • Faturalar, reçeteler, doktor notları, yaşamsal bulgular, tanısal görüntüleme vb. devasa veri göllerinden içgörü çıkarıyorum
    • Bu bilgilere çok kolay erişilebilmesi de inanılmaz (HIPAA'yı bir kenara bırakırsak)
  • Zamanın pratik gerçekliği
    • Haftada yaklaşık 3 saat toplantı sürüyor
    • İşe hazırlık, ETL sorunlarını çözme, iş birimi için tek seferlik sorgular çalıştırma gibi işlere yaklaşık 3 saat gidiyor
    • Kalan zamanda, milyonlarca dolarlık geliri tahmin ederken küçük bir avantaj bulabilmek için veriyi keşfediyorum
      • Bu biraz matematikle Wally'yi bulmaya benziyor
      • O Wally sahnesi de yaklaşık 50 TB büyüklüğünde :D

burnedout_dc4e3

  • 2000'lerin ortalarından beri makine öğrenimiyle uğraşıyorum
  • Zamanın yarısı, model eğitimi ve kullanımı için veriyi düzenleyen "veri pipeline'ını çalışır halde tutma" işine gidiyor
  • Diğer yarısı ise neredeyse hiç kod yazma becerisi olmayan "AI bilimcileri" için teknik desteğe gidiyor
    • Onlar zamanlarını çeşitli chatbot servislerine bir şeyler kopyalayıp yapıştırarak geçiriyor
      • Benim esas işim onlara Python paketlerini kurmayı ve Git kullanmayı öğretmek
    • Yaptıkları işin üzerinde çalıştığımız projeye nasıl uygulanacağına dair bir plan yok
      • Ama transformer modellerinin tüm veri işleme sorunlarımızı çözeceğini iddia ediyorlar
  • Bu hype döngüsü bitene kadar yeni bir iş yapmadan ayrılmayı düşünüyorum

tambourineman88

  • Makine öğrenimi okurken beklediğimin tam tersi bir gerçeklikle karşılaştım
    • Bu işin %95'i veri temizleme, veri setlerini birleştirme ve feature engineering
    • Model fitting ve test ise sadece %5
  • Bu yazıya verilen yanıt #1
    • Başından beri böyleydi, şimdi de böyle, gelecekte de böyle olacak, amin
    • Staff/principal seviyesinde önemli olanlar
      • Çıkarım modeline dayanan ürün özellikleri ile veri yakalama arasındaki "data impedance"ı korumak önemli
      • Bunun nedeni, ürün ya da özellik değişse bile veri depolarına ve eğitim korpusuna veri sağlayan enstrümantasyonun ve veri ayrıntı düzeyinin bozulmamasını sağlamak
    • Pekiştirmeli öğrenme (RL) problemlerinde önemli olanlar
      • Durum ve eylem uzayı tuple'ları için doğru değişkenlerin yakalandığından emin olmak önemli
      • Sonrasında ise ödül geri bildirimi için arayüzü ya da ortam modelini nasıl ayarlayacağını bulmak geliyor

davedx

  • pip install pytorch çalıştır
  • Ortam bozulur
  • Python ortamını düzeltmek için 4 saat harca
  • pip install Pillow çalıştır
  • MacBook'un CPU mimarisiyle eşleşmediğine dair hata al
  • Python'la ilgili her şeyi kaldırıp en baştan yeniden kurmak için 4 saat daha harca
  • pip install ... çalıştıracaktım ama mesai bitti!

Xenoamorphous

  • Ben genel bir yazılım geliştiricisiyim ama ihtiyaçtan dolayı ML işi yapmak zorunda kaldım
  • "Gerçek" ML uzmanlarının olasılıksal/gradyan inişi sonuçlarını ve insanların beklentilerini nasıl yönettiğini merak ediyorum
  • Normal yazılım işlerinde bir şey ya çalışır ya çalışmaz; çalışmıyorsa nedenini açıklayabilir ve umarım düzeltebilirsiniz
  • Ama ML'de size "Bu metin sınıflandırıcı bu metni neden doğru sınıflandırmadı?" diye soruyorlar
    • Buna ancak "Eşiği geçmek için 0.004 puan eksikti" ya da "Kelime seçimi veya sıralaması nedeniyle sağlayamadı" gibi cevaplar verebiliyorsunuz
    • Bu da sanki herkesi tatminsiz bırakıyor

angarg12

  • Unvanım ML mühendisi ama yaptığım iş aslında neredeyse tamamen saf yazılım mühendisliğine yakın
  • Asıl işim, production ortamında ML sistemlerini destekleyen sistemler kurmak
    • Diğerlerinin de belirttiği gibi buna çoğunlukla veri dönüşümü, model eğitimi, model serving vb. dahil
  • Bilim insanlarının işlerini yapabilmesi için araçlar geliştirmek ya da mevcut sistemleri değiştirmek de işin bir parçası
  • Ama dışarıdan bakınca şirketim bu konuda istisna gibi görünüyor
  • Sektörde ML mühendisinden beklentiler daha çok veri/uygulamalı bilim insanlarının yaptığı işe uyuyor gibi görünüyor (ör. model kurma ve test etme)
    • Bu da her şirkette her rol için beklentiler konusunda çok fazla belirsizlik yaratıyor

runban

  • Yüksek maaşlı bir temizlikçi
    • Kirli veriden düzgün sonuç çıkmaz
    • Bu arada bu iş için Perl, Python'dan çok daha iyi
  • Yüksek maaşlı bir anakart sorun gidericisi
    • Sıvı soğutma kullansanız bile H100'ler gerçekten çok ısınıyor
    • Çünkü özel bir donanım sorumlumuz yok
  • Herkes gibi kendi kafasına göre davranan üçüncü taraf bağımlılıklarla uğraşıyorum

primaprashant

  • Son 5 yıldır MLE olarak çalışıyorum ve diğer yorumlarda da söylendiği gibi işin çoğu SWE'ye benziyor
  • Projenin aşamasına göre günlük işler değişiyor ama genel olarak şunlardan biri oluyor:
    • Paydaşlar ve TPM'lerle işbirliği yapıp veri analizi üzerinden yüksek öncelikli iş problemlerini çözmek için hipotezler geliştirmek
    • İş problemini bir ML problemine dönüştürmek ve ML modeliyle iş problemine uygun metrikler üretmek
    • Yeni özelliklerin ve fikirlerin teknik olarak uygulanabilir olup olmadığını doğrulamak için PoC'ler ve prototipler geliştirmek
    • Mimari ve teknik kararlar için tasarım dokümanları yazmak
    • Platform ekibiyle birlikte, yeni ve mevcut ML projelerinin ihtiyaçlarına göre veri pipeline'larını kurmak ve sürdürmek
    • Çıkarım için ML mikroservisleri kurmak, dağıtmak ve bakımını yapmak
    • A/B testleri yürütmek ve test sonrası analiz için tasarım dokümanları yazmak
    • ML modelini yeniden eğitmek için pipeline'lar kurmak

jackspawn

  • Zamanımın %50'sinden fazlasını backend engineering'e ayırıyorum
    • Çünkü ML daha büyük bir API'nin içinde kullanılıyor
  • O API'nin uçtan uca deneyiminden ben sorumluyum
    • Bu yüzden zaman karşılığında en yüksek değeri sağlayan neyse onu yapıyorum
    • Bunun da ML modeliyle çoğu zaman hiçbir ilgisi olmuyor

mardifoufs

  • Çıkarım kodunu optimize ediyor, eğitilmiş modelleri "ürünleştiriyorum"
  • Şu anda bulut servislerinin hâlâ yaygın olarak kullanılmadığı bir sektörde çalıştığım için eğitim ve çıkarımı yerelde yapıyorum
    • LLM olmadığı için hazır araç çok fazla yok; bu da ilginç
    • Birçok şeyi kendiniz inşa etmeniz gerekiyor
  • Veri kalitesini değerlendirmekten (yerel kısım zorlayıcı) doğrudan CUDA kullanmaya kadar çok çeşitli işler yapıyorum
    • Çünkü CUDA üzerine kurulmuş ve yararlanabileceğim sinyal işleme kütüphaneleri var
  • Bazen ekip içi araçlar da geliştiriyorum (araştırmacılar ve MLE'lerden oluşan karma ekip için)
    • Çok niş bir alan olduğu için veriyi ve çıkarımı görselleştirmek üzere araçları kendimiz yapmak zorundayız
  • Araçlar ve iç yazılım tasarımı konusunda tam özgürlüğüm var; bu sayede organizasyon içinde büyük etki yaratabildim
  • Hızlıca ortaya çıkardığım araçlardan biri şimdi amiral gemisi ürüne de eklenecek

hirako2000

  • Ana işim bu olmasa da zamanımın çoğu "bir şeyleri birbirine yapıştırmakla" geçiyor
    • Mevcut açık kaynağı ayarlamak
    • Kaynakları nasıl optimize edeceğini bulmak
    • Modelleri başka veri setleriyle yeniden eğitmek
    • Dağınık yazılmış Python kodunu çalıştırmaya uğraşmak
    • Eksik requirements dosyalarını eklemek
    • Veri temizlemek
  • Yıllar önce zaten yapılmamış, ML ile gerçekten faydalı biçimde çözülebilecek şeyin ne olduğunu düşünüyorum
  • Güncel GPU fiyatlarına bakıp, hosting sağlayıcısından pahalı süre kiralamak yerine GPU satın almanın değerli olup olmadığını hesaplıyorum
  • Başım ağrıyana kadar makale okuyorum
    • Özeti okuyup ortadaki birkaç diyagrama göz gezdirmek bile zaman alıyor

tenache

  • Makine öğrenimi okudum ve aslında o rol için işe alındım ama şirket yön değiştirince şu anda LLM üzerinde çalışıyorum
  • Zamanımın çoğunu şu işlere ayırıyorum:
    • Çeşitli LLM'lerin nasıl çalıştığını anlamak
    • En iyi parametreleri bulmak
    • RAG (Retrieval-Augmented Generation) nasıl yapılır
    • Diğer botlarla nasıl entegre edilir

trybackprop

  • Tipik bir haftada genelde şunları yapıyorum:
  • %15: Teknik tartışma toplantıları veya 1:1 görüşmeler
    • Genellikle model fikirleri, planlar veya ML ürün desteği konuşuluyor
  • %40: ML geliştirme
    • Projenin erken aşamalarında ürün gereksinimlerini anlamaya çalışıyorum
    • Ürün/iş hedeflerine ulaşmaya yardımcı olabilecek ML modellerini ya da algoritmaları ekiple tartışıyorum
    • Analistlerden ve veri bilimcilerinden mevcut veri setlerini topluyorum
    • Bu veri setlerini kullanarak eğitim ve doğrulama veri setleri üreten pipeline'lar kuruyorum
    • Eğitim/doğrulama veri setlerinin dolmasını beklerken (bu 2 haftaya kadar sürebiliyor), aynı anda geliştirme aşaması daha ileride ya da geride olan başka projelerde çalışıyorum
    • Yeni modeller üzerinde de çalışıyorum (PyTorch ile yazılmış), bunları küçük miktarda veriyle test ederek offline performansı değerlendiriyor ve beklendiği gibi çalışıp çalışmadıklarını inceliyorum
    • Büyük ölçekli deneyler olmadan sadece kendi ve ekip arkadaşlarımın sezgisine güvenebildiğimiz için, modelin mantıklı davranıp davranmadığını görmek amacıyla ürün bilgilerini modelle dolduran bazı manuel testler yürütüyorum
    • Eğitim/doğrulama veri setleri dolduğunda modeli büyük veri üzerinde eğitiyor, offline sonuçlara bakıyor, sorun varsa modeli ayarlıyor ya da mimariyi değiştiriyorum
    • Offline sonuçlar iyi ya da umut verici görünürse modeli deney için production'a dağıtıyorum
    • Aynı zamanda geliştirdiğim yeni modeli test etmek için ürün/infrastrüktür kodunu da değiştirebiliyorum
    • Deneyi başlatıp trafiği yavaş yavaş artırarak %1-5 atamaya getiriyor ve bunu birkaç hafta ya da bir ay çalıştırıyorum
    • Bu sırada sonuçları gözlemliyor ve ilgili tüm pipeline'ları izleyerek modelin düzgün eğitildiğinden emin olmaya çalışıyorum; böylece beklenmeyen altyapı/hata/ürün faktörleri deney sonucunu değiştirmiyor
    • Sonuçlar beklendiği gibi görünür ve ilk hipotezle uyuşursa, ekiple lansman yapıp yapmamayı tartışıyoruz; karar verilirse de yayına alıyoruz!
      • (Not: model geliştirme; feature yazımı, veri seti hazırlığı, analiz, ML modelinin kendisinin oluşturulması ve ürün/infrastrüktür kodu değişikliklerinin uygulanmasını içeriyor)
  • %20: Bakım
    • Yeni model geliştiriyor olmam, mevcut modelleri görmezden geldiğim anlamına gelmiyor
    • Performans düşüşü ya da beklenmedik değişiklik olup olmadığını görmek için her gün kontrol ediyorum
    • Ayrıca pipeline'ları düzeltiyor ve daha verimli hâle getiriyorum
  • %15: Araştırma makaleleri ve beceri geliştirme
    • AI/ML dünyası çok hızlı değiştiği için sürekli yeni makaleler okuyup güncel kalmak adına evde yeni teknikleri test ediyorum
    • Eğlenceli olduğu için yük gibi gelmiyor
    • Bunu sadece güncel kalmak için yapılan bir iş olarak görmüyorum
  • %10: İç araştırma
    • Bu zamanı ekipteki ya da şirketteki diğer ürünler hakkında daha fazla şey öğrenmek, ekibimizin nasıl yardımcı olabileceğini veya onlardan hangi teknikleri/yöntemleri ödünç alabileceğimizi anlamak için kullanıyorum
    • Ayrıca son 6 ay/1 yıl içindeki çalışmalarıma dönüp oradan çıkardığım içgörüleri yazmak için de bu zamanı kullanıyorum

4 yorum

 
ohyecloudy 2024-06-17

"Teknik geçmişi olmayan insanlar beni bir sihirbaz gibi görüyor, ben de onları bir vudu rahibi gibi görüyorum" ifadesi eğlenceli.

 
nutella 2024-06-12

Veri... veri... katılıyorum

 
halfenif 2024-06-10

Tam da belirsiz biçimde öyle yaptıklarını düşündüğüm gibiymiş.

 
tttttaa 2024-06-10

İlginç bir içerikmiş!