1 poin oleh GN⁺ 2024-08-21 | 1 komentar | Bagikan ke WhatsApp
  • Transformers.rb adalah library yang memungkinkan penggunaan Transformers dari Hugging Face di Ruby, dengan fokus pada menjalankan model transformer terbaru melalui kode Ruby
  • Instalasi dilakukan dengan memasang Torch.rb terlebih dahulu lalu menambahkan gem "transformers-rb" ke Gemfile
  • Contoh dukungan mencakup embedding, sparse embedding, dan model reranking, serta menunjukkan cara menggunakan model keluarga sentence-transformers, mixedbread-ai, BAAI, Snowflake, dan OpenSearch
  • Pipeline dibagi menjadi teks dan visi, dan NER, analisis sentimen, tanya jawab, klasifikasi gambar, ekstraksi fitur gambar, dan lainnya dipanggil dalam bentuk Transformers.pipeline
  • API mengikuti Transformers Python API dan saat ini mendukung arsitektur BERT, DeBERTa-v2, DistilBERT, MPNet, ViT, dan XLM-RoBERTa

Menggunakan Transformers di Ruby

  • Transformers.rb adalah library transformers modern untuk Ruby
  • Jika membutuhkan inferensi cepat, pengguna diarahkan untuk melihat Informers

Cara instalasi

  • Pertama, perlu memasang Torch.rb
  • Setelah itu, tambahkan baris berikut ke Gemfile aplikasi
gem "transformers-rb"

Contoh model yang didukung

Pipeline

  • Pipeline Text mendukung tugas berikut
    • embedding: menghasilkan embedding teks
    • reranking: menyusun ulang peringkat kueri dan array dokumen
    • ner: named-entity recognition
    • sentiment-analysis: analisis sentimen
    • question-answering: menghasilkan jawaban dari pertanyaan dan konteks sebagai input
    • feature-extraction: ekstraksi fitur teks
  • Pipeline Vision mendukung tugas berikut
    • image-classification: klasifikasi gambar
    • image-feature-extraction: ekstraksi fitur gambar

API dan arsitektur yang didukung

  • Library ini mengikuti Transformers Python API
  • Arsitektur model yang saat ini didukung adalah sebagai berikut
    • BERT
    • DeBERTa-v2
    • DistilBERT
    • MPNet
    • ViT
    • XLM-RoBERTa

Pengembangan dan kontribusi

  • Riwayat perubahan dapat dilihat di changelog
  • Cara berkontribusi mencakup pelaporan bug, memperbaiki bug dan mengirim pull request, menulis·memperjelas·memperbaiki dokumentasi, serta mengusulkan atau menambahkan fitur baru
  • Perintah untuk memulai pengembangan dijelaskan berurutan sebagai clone repositori, bundle install, bundle exec rake download:files, lalu bundle exec rake test

1 komentar

 
GN⁺ 2024-08-21
Komentar di Hacker News
  • ONNX Runtime untuk Ruby dari Ankane begitu mudah digunakan sampai membuat orang bertanya-tanya kenapa repositori JavaScript resminya begitu sulit dipahami.
    Padahal saya baru melihat sekilas apa yang orang ini kerjakan, tapi rasanya dia seperti pahlawan.

  • Serius, orang ini benar-benar manusia? Kalau ada individu setalenta ini, saya ingin berinvestasi bahkan 1 miliar dolar.

    • Bakat saya kira-kira seperseratusnya, tapi kalau ada investasi 10 juta dolar, saya bersedia menerimanya.
  • Mungkin bukan itu alasan dia melakukan ini, tapi kalau ada yang ingin menunjukkan apresiasi, saya sudah menominasikan Ankane untuk Rails 2024 Luminary award.
    https://rubyonrails.org/2024/8/2/nominations-open-for-2024-l...

    • Setuju. Volume pekerjaan berguna yang Ankane berikan ke komunitas benar-benar tidak masuk akal.
  • Kontribusi seperti ini benar-benar dibutuhkan komunitas Ruby, dan proyek ini juga terlihat menarik.

    • Benar sekali. Secara umum, kurangnya kontribusi seperti ini, atau makin lambatnya kemunculannya, membuat saya melihat komunitas Ruby melambat.
      Dalam kasus ini, Ruby tiba-tiba mendapat library yang hebat, dan itu sendiri adalah pencapaian yang sangat patut disyukuri. Namun “komunitas” baru “menciptakan” hal seperti ini beberapa bulan atau bahkan beberapa tahun setelah library yang sama muncul untuk Python, JavaScript, TypeScript, Rust, Go, dan lainnya.
      Ini tidak hanya terjadi pada machine learning/artificial intelligence, tetapi juga pada gem, library Ruby untuk teknologi baru. Dulu, SaaS atau startup sejak awal menyediakan Rubygem resmi, sering kali bahkan sebelum platform atau bahasa lain. Sekarang, kalau ingin berintegrasi dengan sesuatu seperti Notion, Slack, atau Cloudflare, sering kali tidak ada opsi Ruby, atau setidaknya tidak ada opsi resmi.
      Ini menyedihkan. Ruby adalah bahasa yang jauh lebih luas daripada Rails, dan saya bisa memahami keengganan atau antipati terhadap Rails. Tetap saja, Ruby adalah bahasa yang jauh lebih menyenangkan untuk digunakan dibanding Python, dan jelas jauh lebih menyenangkan daripada JavaScript. Ruby bisa saja menempati posisi Python saat ini, dan saya yakin jika itu terjadi, puluhan ribu developer akan sedikit lebih bahagia daripada sekarang.
  • Ankane, sendirian, benar-benar mengembalikan kontribusi luar biasa ke industri dalam begitu banyak cara. Mengagumkan.

  • Saya penasaran bagaimana satu orang bisa se-produktif ini. Hidupnya pasti cukup sibuk dengan pekerjaan, keluarga, dan lain-lain.

  • Sulit mengungkapkan betapa saya berterima kasih atas gem-gem Ankane. Hal-hal yang ia buat adalah komponen penting di beberapa aplikasi saya, dan menurut saya ia mengisi celah di ekosistem.

  • Tool yang dibuat orang ini benar-benar luar biasa. Saya akan senang kalau ada lebih banyak lagi.

  • Setahu saya Andrew Kane juga penulis pgvector, pgvector-ruby, dan neighbor, semuanya cukup hebat.
    Ia juga membuat banyak hal lainnya.
    Mungkin saja dia sudah menyelesaikan artificial intelligence/machine learning sendirian sejak lama, lalu menggunakannya untuk menjadi seproduktif ini.
    [0] https://github.com/pgvector/pgvector
    [1] https://github.com/pgvector/pgvector-ruby
    [2] https://github.com/ankane/neighbor
    [3] https://github.com/ankane/

    • Dia juga membuat sangat banyak hal di luar bidang artificial intelligence.
      https://github.com/ankane/pretender membuat impersonasi sebagai pengguna lain di aplikasi Rails menjadi sangat mudah.
      https://github.com/ankane/ahoy adalah tool analitik mandiri untuk Rails.
      https://github.com/ankane/blazer adalah tool business intelligence yang berjalan di dalam Rails.
      https://github.com/ankane/field_test adalah untuk A/B testing.
      Hal-hal seperti ini meningkatkan produktivitas Rails pada aplikasi web biasa. Untuk masing-masing mungkin ada produk vendor atau solusi khusus yang lebih baik, tetapi kalau bisa memasang gem, melakukan sedikit konfigurasi, dan mendapatkan solusi 80%, kita bisa merilis dengan sangat cepat.
    • Ada juga Chartkick, Ahoy, dan Searchkick.
      Chartkick adalah library chart untuk Ruby, Ahoy adalah library analitik Rails, dan Searchkick adalah library pencarian Rails.
      Profil GitHub-nya punya lebih dari 370 repositori.
    • Di repositori production kami juga sangat banyak memakai tool Andrew Kane. Berkat paket-paketnya, kami bisa membuat aplikasi artificial intelligence dengan Rails.
    • Kalau Anda memakai Ruby dan belum mengenal ankane, GitHub-nya berisi banyak tool yang sangat berguna.
      Misalnya, /disco adalah implementasi collaborative filtering yang sangat sederhana untuk menambahkan fitur rekomendasi cepat di mana saja.
      Kalau Anda mencari sesuatu terkait machine learning di Ruby, biasanya ankane sudah pernah meninjaunya.
    • Dia salah satu orang paling produktif yang saya kenal.
  • Di komunitas Ruby, menurut saya pribadi Andrew Kane dan Chris Oliver adalah yang terbaik di antara yang terbaik. Meski tidak memakai semua kontribusi mereka, kontribusi seperti itu selalu layak disambut.