1 puan yazan GN⁺ 2024-08-21 | 1 yorum | WhatsApp'ta paylaş
  • Transformers.rb, Hugging Face’in Transformers’ını Ruby’de kullanmayı sağlayan bir kütüphanedir ve modern transformer modellerini Ruby koduyla çalıştırmaya odaklanır
  • Kurulum, önce Torch.rb kurulduktan sonra Gemfile’a gem "transformers-rb" eklenerek yapılır
  • Desteklenen örnekler embedding, sparse embedding ve reranking modellerini içerir; sentence-transformers, mixedbread-ai, BAAI, Snowflake, OpenSearch ailesi modellerin kullanımını gösterir
  • Pipeline’lar metin ve görsel olarak ayrılır; NER, duygu analizi, soru-cevap, görüntü sınıflandırma, görüntü özellik çıkarımı gibi işlemler Transformers.pipeline biçiminde çağrılır
  • API, Transformers Python API’yi izler ve şu anda BERT, DeBERTa-v2, DistilBERT, MPNet, ViT, XLM-RoBERTa mimarilerini destekler

Ruby’de Transformers kullanımı

  • Transformers.rb, Ruby için modern transformers kütüphanesidir
  • Hızlı çıkarım gerekiyorsa Informers incelemesi önerilir

Kurulum yöntemi

  • Önce Torch.rb kurulumu gereklidir
  • Ardından uygulamanın Gemfile’ına şu satır eklenir
gem "transformers-rb"

Desteklenen model örnekleri

Pipeline’lar

  • Text pipeline’ı şu görevleri destekler
    • embedding: metin embedding’i üretimi
    • reranking: sorgu ve belge dizisinin sıralamasını yeniden düzenleme
    • ner: named-entity recognition
    • sentiment-analysis: duygu analizi
    • question-answering: soru ve bağlamı girdi olarak alıp yanıt üretme
    • feature-extraction: metin özellik çıkarımı
  • Vision pipeline’ı şu görevleri destekler
    • image-classification: görüntü sınıflandırma
    • image-feature-extraction: görüntü özellik çıkarımı

API ve desteklenen mimariler

  • Bu kütüphane Transformers Python API’yi izler
  • Şu anda desteklenen model mimarileri şunlardır
    • BERT
    • DeBERTa-v2
    • DistilBERT
    • MPNet
    • ViT
    • XLM-RoBERTa

Geliştirme ve katkı

  • Değişiklik geçmişi changelog üzerinden görülebilir
  • Katkı yöntemleri; hata bildirme, hata düzeltme ve pull request gönderme, dokümantasyon yazma·netleştirme·düzeltme, yeni özellik önerme veya eklemeyi içerir
  • Geliştirmeye başlama komutları depo klonlama, bundle install, bundle exec rake download:files, bundle exec rake test sırasıyla açıklanır

1 yorum

 
GN⁺ 2024-08-21
Hacker News yorumları
  • Ankane’in Ruby için ONNX runtime’ı kullanması o kadar kolay ki, resmi JavaScript deposunun neden bu kadar anlaşılması zor olduğunu sorgulatıyor
    Bu kişinin yaptıklarına daha sadece yüzeysel baktım ama şimdiden kahraman gibi görünüyor

  • Cidden, bu adam insan mı? Bu kadar yetenekli bir bireye olsa olsa 1 milyar dolar yatırım yapmak isterdim

    • Ben onun yeteneğinin belki yüzde biri kadarım ama 10 milyon dolarlık yatırım teklifine açığım
  • Bunu yapmak için değildir herhalde ama teşekkür etmek isteyen biri olursa diye Ankane’i Rails 2024 Luminary award için aday gösterdim
    https://rubyonrails.org/2024/8/2/nominations-open-for-2024-l...

    • Katılıyorum. Ankane’in topluluğa sunduğu yararlı iş miktarı gerçekten gerçek dışı seviyede
  • Ruby topluluğunun tam da böyle katkılara ihtiyacı var ve bu proje de ilgi çekici görünüyor

    • Kesinlikle öyle. Genel olarak da bu tür katkıların eksikliği ya da çok yavaş çıkması nedeniyle Ruby topluluğunun yavaşladığını düşünmeye başladım
      Bu örnekte Ruby bir anda harika bir kütüphane kazandı ve bu başlı başına gerçekten takdire değer bir başarı. Ama “topluluk”, bunu Python, JavaScript, TypeScript, Rust, Go vb. için aynı kütüphaneler çıktıktan aylar hatta yıllar sonra ancak “üretebildi”
      Bu sadece makine öğrenmesi/yapay zeka için değil; yeni teknolojilere yönelik Ruby kütüphaneleri, yani gem’lerde de aynı durum geçerli. Eskiden SaaS ya da startup şirketleri en baştan resmi Rubygem sunardı, hatta çoğu zaman bunu diğer platform ya da dillerden önce yapardı. Bugünlerde Notion, Slack, Cloudflare gibi servislerle entegrasyon yapmak istediğinizde Ruby seçeneği ya hiç olmuyor ya da en azından resmi bir seçenek olmuyor
      Bu üzücü. Ruby, Rails’ten çok daha geniş bir dil ve Rails’e karşı çekince ya da hoşnutsuzluk olmasını anlayabilirim. Yine de Ruby, Python’dan ve hele JavaScript’ten çok daha keyifli bir çalışma dili. Ruby bugün Python’un bulunduğu yerde olabilirdi ve öyle olsaydı on binlerce geliştiricinin şu ankinden biraz daha mutlu olacağına eminim
  • Ankane tek başına bile sektöre gerçekten çok fazla şekilde muazzam katkı sağlıyor. İnanılmaz

  • Bir insan nasıl bu kadar üretken olabilir, merak ediyorum. İş, aile vs. derken muhtemelen oldukça yoğun bir hayatı vardır

  • Ankane’in gem’leri için ne kadar minnettar olduğumu anlatmak zor. Yaptıkları birkaç uygulamamda vazgeçilmez unsur oldu ve ekosistemdeki boşlukları dolduruyorlar

  • Bu kişinin yaptığı araçlar gerçekten etkileyici. Daha fazlasını görmek güzel olurdu

  • Bildiğim kadarıyla Andrew Kane aynı zamanda pgvector, pgvector-ruby ve neighbor’ın da yazarı ve hepsi de oldukça iyi
    Bunun dışında da pek çok şey yaptı
    Belki de uzun zaman önce yapay zeka/makine öğrenmesini tek başına çözdü de şimdi bunu kullanarak bu kadar üretken oluyordur
    [0] https://github.com/pgvector/pgvector
    [1] https://github.com/pgvector/pgvector-ruby
    [2] https://github.com/ankane/neighbor
    [3] https://github.com/ankane/

    • Yapay zeka tarafının dışında da gerçekten çok şey yaptı
      https://github.com/ankane/pretender Rails uygulamalarında başka bir kullanıcı gibi davranmayı çok kolaylaştırıyor
      https://github.com/ankane/ahoy Rails için kendi analitik aracı
      https://github.com/ankane/blazer Rails içine gömülü bir iş zekası aracı
      https://github.com/ankane/field_test A/B testleri için
      Bunlar gibi araçlar sıradan web uygulamalarında Rails üretkenliğini artırıyor. Her biri için daha iyi bir vendor ürünü ya da daha uzmanlaşmış bir çözüm olabilir ama gem’i ekleyip biraz yapılandırmayla yüzde 80’lik bir çözüm elde edebiliyorsanız çok hızlı şekilde yayına çıkabilirsiniz
    • Bir de Chartkick, Ahoy ve Searchkick var
      Chartkick Ruby için bir grafik kütüphanesi, Ahoy Rails için bir analitik kütüphanesi, Searchkick ise Rails için bir arama kütüphanesi
      GitHub profilinde 370’ten fazla depo var
    • Biz de prodüksiyon depolarımızda Andrew Kane’in araçlarını gerçekten çok kullanıyoruz. Paketleri sayesinde Rails ile yapay zeka uygulamaları geliştirebiliyoruz
    • Ruby kullanıp da hâlâ ankane’i tanımıyorsanız, GitHub’ında çok sayıda faydalı araç var
      Örneğin /disco, herhangi bir yere hızlıca öneri özelliği eklemek için kullanılabilecek çok basit bir işbirlikçi filtreleme uygulaması
      Ruby ile makine öğrenmesiyle ilgili bir şey arıyorsanız ankane muhtemelen ona zaten en az bir kez bakmıştır
    • Tanıdığım en velut insanlardan biri
  • Ruby topluluğunda Andrew Kane ile Chris Oliver’ın kişisel olarak en iyilerin de iyisi olduğunu düşünüyorum. Tüm katkılarını kullanmasanız bile, böyle katkılar her zaman memnuniyetle karşılanır