2 poin oleh GN⁺ 2023-09-18 | 1 komentar | Bagikan ke WhatsApp
  • Petals memungkinkan pembuatan teks dan fine-tuning tanpa memuat seluruh model bahasa besar ke satu perangkat, melainkan menjalankan sebagian saja dengan GPU rumahan atau Google Colab
  • Mendukung hingga Llama 3.1 405B, Mixtral 8x22B, Falcon 40B+, dan BLOOM 176B, sehingga model besar bisa ditangani bahkan dengan perangkat pribadi
  • Pengguna memuat potongan model yang menjadi bagiannya, lalu terhubung ke jaringan peserta yang menyediakan potongan lainnya, bekerja dengan struktur ala BitTorrent
  • Inferensi batch tunggal mencapai hingga 6 tokens/sec pada Llama 2 70B dan hingga 4 tokens/sec pada Falcon 180B, cukup untuk digunakan pada chatbot dan aplikasi interaktif
  • Dibanding API LLM biasa, pengguna dapat memilih metode fine-tuning dan sampling secara lebih luas, serta menangani jalur internal model dan hidden states

Menjalankan model besar secara terdistribusi

  • Petals bertujuan menjalankan model bahasa besar di rumah, dan bekerja dengan cara beberapa pengguna menyediakan bagian berbeda dari model seperti BitTorrent
  • Pengguna tidak memuat seluruh model, tetapi hanya mengunggah sebagian model, lalu bergabung ke jaringan yang menyediakan bagian lainnya
  • Model yang didukung:
    • Llama 3.1: hingga 405B
    • Mixtral: 8x22B
    • Falcon: 40B+
    • BLOOM: 176B
  • Dengan GPU rumahan atau Google Colab, pengguna dapat melakukan pembuatan teks dan fine-tuning per tugas
  • Performa inferensi batch tunggal:
    • Llama 2 70B: hingga 6 tokens/sec
    • Falcon 180B: hingga 4 tokens/sec
  • Kecepatan ini cukup untuk chatbot dan aplikasi interaktif

Rentang kontrol yang lebih luas daripada API

  • Petals memungkinkan pengguna memilih langsung metode fine-tuning dan sampling, melampaui API LLM tradisional
  • Pengguna dapat menjalankan jalur kustom yang melewati model atau memeriksa hidden states
  • Menyediakan kenyamanan API sekaligus fleksibilitas PyTorch dan 🤗 Transformers
  • Tersedia notebook Colab dan dokumentasi GitHub yang bisa langsung dicoba
  • Ada cara berpartisipasi dengan menyediakan GPU untuk menambah kapasitas Petals, dan kabar pengembangannya bisa diikuti di Discord
  • Proyek ini merupakan bagian dari lokakarya riset BigScience

1 komentar

 
GN⁺ 2023-09-18
Komentar Hacker News
  • Menarik. Tampaknya strukturnya membagi bobot model per lapisan, mendistribusikannya ke beberapa mesin, lalu tiap mesin mendaftarkan dirinya ke tabel hash besar ketika siap, dan melakukan inferensi atau fine-tuning “sebagai tim” untuk lapisan yang menjadi tanggung jawabnya
    Ini masih tahap awal, tetapi saya sudah mengerjakan hosting bobot model untuk https://github.com/jmorganca/ollama di registry Docker. Alasan utamanya adalah content addressability, sehingga Ollama dapat memverifikasi setiap kali bahwa bobot yang benar telah diunduh, dan pada akhirnya bisa mengambil bobot berdasarkan kontennya sendiri, bukan berdasarkan nama atau URL yang bisa berubah
    Sebagai langkah berikutnya, tampaknya model bisa dibagi per lapisan dan tiap lapisan disimpan secara independen untuk penggunaan seperti ini, atau dimanfaatkan untuk mengunduh dan menjalankan model yang lebih besar di beberapa mesin “lokal”

    • Bisakah sedikit mengurangi promosi diri? Saya sering melihat komentar ollama di hampir setiap tulisan terkait LLM
      Pedoman HN juga mengatakan “jangan gunakan HN terutama untuk promosi; sesekali memposting karya sendiri tidak apa-apa, tetapi tujuan utama menggunakan situs ini haruslah rasa ingin tahu”
      Dalam kasus ini juga, rasanya sudah cukup membahas pekerjaan OP tanpa menyertakan backlink gratis ke proyek tersebut
  • Bagian yang mengatakan “dapat di-fine-tune sesuai tugas” membuat saya mengernyit
    Fine-tuning 70B bukan sekadar sulit; secara harfiah mustahil kecuali Anda menyewa instance cloud yang sangat mahal, atau membeli PC seharga rumah, tak peduli seberapa lama Anda bersedia menunggu
    Kalau ada “llama training horde”, saya dengan senang hati akan ikut

    • Itu benar untuk fine-tuning tradisional, tetapi saya tidak yakin apakah itu juga berlaku untuk parameter-efficient fine-tuning atau qLORA
      Sepemahaman saya, model dengan N miliar parameter dapat di-fine-tune dengan GPU yang memiliki VRAM sedikit kurang dari N gigabyte
      Untuk model 70B parameter, mungkin sekelas A100?
    • H100 rasanya bukan seharga rumah, lebih mendekati harga mobil
    • Fine-tuning secara terdistribusi pada jaringan yang sulit dipercaya bisa jauh lebih buruk dari sisi efisiensi energi dan biaya dibanding node tunggal atau klaster yang terhubung dengan baik
      Selain itu, di Lambda Cloud model 70B bisa di-fine-tune dengan biaya 2 dolar per sejuta token, dan di Replicate kurang dari 10 dolar
    • Apa yang menghalangi pelatihan LLM diparalelkan? Entah membaca buku 1 dulu lalu buku 2, atau sebaliknya, hasil pembaruan pengetahuannya akan sama
      Jika LLM dianggap mempelajari tiap buku secara independen, sepertinya dua delta pada bobot LLM tinggal dijumlahkan saja
    • Dengan teknologi optimasi compiler dari CentML, Falcon 40B dapat di-fine-tune di 4×A10 tanpa mengubah model
  • Apakah LLM yang sudah dilatih bisa dikomposisikan dengan cara apa pun? Misalnya, jika keduanya mempercayai 99% data yang sama tetapi hanya berbeda pada 1%, apakah kita perlu dua model yang sepenuhnya terpisah, atau bisakah kita berbagi komputasi dengan orang lain yang memiliki pendapat sama untuk 99% itu, lalu membuat model turunan yang mengoreksi perbedaan model kepercayaan masing-masing?
    Pemahaman saya tentang neural network masih dasar, tetapi memanipulasi bobot dengan cara seperti itu sambil tetap menjaga kegunaan model tidak terlihat seperti hal yang mustahil
    Alasan saya bertanya adalah karena akan berguna jika kita bisa mengetahui kalimat mana yang disetujui oleh dua LLM dengan performa sama dan pada kalimat mana ada disagreement. Dengan begitu, perbedaan tersebut bisa dipetakan balik ke perbedaan data pelatihan. Mungkin hanya mungkin jika perbedaannya kecil
    Sebaliknya, jika dua LLM dengan performa sama lebih seperti melewatkan kesempatan untuk membuat satu model yang lebih kuat, dan analisis disagreement juga terlalu mahal, maka itu menjadi dunia yang cukup berbeda

  • Bagaimana mencegah peserta jahat mengubah output bagiannya dalam komputasi yang lebih besar? Bahkan jika tidak ada cara untuk membuat output jaringan yang ditentukan penyerang, jika banyak node masuk dan sekadar mengembalikan hasil sampah, tampaknya sistem ini praktis bisa mengalami serangan denial-of-service

    • Saya pengembang Petals. Kami sedang mengembangkan validator yang secara berkala menyisir semua server dan memblokir server yang mengembalikan hasil keliru
      Selain itu, klien dapat mengalirkan data melalui beberapa jalur yang tidak saling tumpang tindih di jaringan dan memeriksa apakah hasilnya cocok
      Ini akan menangkap penyerang yang sering berulah, tetapi tidak memberikan perlindungan 100%, jadi jika jaminan akurasi penuh dibutuhkan, saya rasa orang-orang akan membentuk swarm privat. Misalnya, jika Anda tidak memiliki cukup GPU untuk menjalankan LLM sendiri tetapi mengenal pemilik hardware yang tepercaya, Anda bisa membentuk swarm Petals privat untuk menjalankan LLM bersama-sama dan memproses data di hardware yang tersebar secara geografis
  • Pertanyaan pertama yang muncul adalah, “bagaimana kelayakan ekonominya?” Menurut FAQ:
    Apakah insentif Petals berbasis cryptocurrency, blockchain, dan sejenisnya? Tidak. Petals adalah sistem yang sepenuhnya terdesentralisasi dalam semua aspek lainnya, tetapi untuk insentif mereka sedang mengerjakan sistem terpusat yang mirip dengan kudos AI Horde. Mereka tidak berencana menyediakan layanan untuk menukar poin ini dengan uang, jadi anggap saja sebagai poin “game” yang dipakai di dalam sistem
    Petals adalah proyek yang berpusat pada machine learning untuk peneliti dan engineer machine learning, dan tidak terkait dengan keuangan. Alasan memilih sistem insentif terpusat adalah karena pengembangan dan pemeliharaannya jauh lebih mudah, sehingga mereka bisa fokus mengembangkan fitur yang berguna bagi peneliti machine learning
    https://github.com/bigscience-workshop/petals/wiki/FAQ:-Freq...

    • AI Horde kudos yang disebut di sini benar-benar keren, dan secara pribadi menurut saya sangat kurang dimanfaatkan:
      https://lite.koboldai.net/
      https://tinybots.net/artbot
      https://aihorde.net/
      Sebenarnya, kalau ada orang di HN yang ingin menguji model fine-tuned 13B~70B tertentu, saya bisa meng-host-nya sore ini:
      https://huggingface.co/models?sort=modified&search=70B+gguf
    • Di bidang desain grafis, renderfarm terdistribusi sudah ada sejak lama. Tidak ada insentif khusus selain prioritas pekerjaan yang naik jika poinnya tinggi
      https://www.sheepit-renderfarm.com/home
    • Untuk jawaban atas “apa motivasi meng-host layer model di swarm publik?”, orang yang menjalankan inference dan fine-tuning sendiri bisa mendapatkan peningkatan kecepatan tertentu jika meng-host sebagian model secara lokal. Selain itu, seperti pengguna BitTorrent yang membagikan data yang sudah mereka unduh untuk membantu orang lain, mungkin ada juga motivasi untuk memberi kembali kepada komunitas yang membantu mereka menjalankan model
      Itu mungkin tidak cukup untuk semua orang, jadi mereka juga sedang memperkenalkan “bloom points” sebagai insentif eksplisit bagi orang yang menyumbangkan waktu GPU ke swarm publik. Saat sistemnya siap, situs web akan menampilkan kontributor teratas, dan orang yang memperoleh poin bisa menggunakannya untuk inference atau fine-tuning dengan prioritas lebih tinggi atau jaminan keamanan yang ditingkatkan, atau mungkin menukarnya dengan imbalan lain
      Namun tetap saja, tampaknya mereka memang menginginkan semacam token terpusat
    • Sayang sekali sekarang semua proyek terdesentralisasi harus dibandingkan dengan cryptocurrency
    • Kesimpulan logisnya pada akhirnya adalah model-model akan terhubung dengan pembayaran cryptocurrency. Di sinilah Lightning menjadi penting
      Sebagai tambahan, maksud saya bukan menghubungkan “token” Petals ke sistem pembayaran. Maksudnya, secara umum, terlepas dari terdesentralisasi atau tidak, pemanggilan cluster model machine learning kemungkinan besar akan memakai pembayaran cryptocurrency yang sekaligus menyediakan autentikasi dan sarana pembayaran
      Petals adalah implementasi yang bagus untuk komputasi terdesentralisasi demi penggunaan model, dan sepertinya akan bernilai dalam jangka panjang
  • Saya ingin membagikan 3080 Ti saya, tetapi setelah menjalankan perintah di panduan memulai, tampaknya ada masalah versi dependensi: https://github.com/bigscience-workshop/petals/wiki/Run-Petal...
    ImportError: cannot import name 'get_full_repo_name' from 'huggingface_hub' (~/.local/lib/python3.8/site-packages/huggingface_hub/__init__.py)

  • Sepertinya kita bisa meng-host swarm server sendiri [0]
    Saya penasaran kira-kira seperti apa performa fine-tuning cluster Petals “privat”
    [0] https://github.com/bigscience-workshop/petals/wiki/Launch-yo...

    • Kalau menjalankan cluster di lingkungan tepercaya, rasanya memakai Ray atau semacamnya akan lebih efisien
  • Benar-benar keren. Semoga ini membuat bidang ini lebih mudah diakses oleh ribuan, bahkan jutaan developer lagi

  • Saya selalu berpikir crowdsourcing adalah masa depan. Baik untuk informasi maupun komputasi
    Sebenarnya “sumber daya”-nya sudah ada, ini hanya soal penempatan

  • Saya pernah memakai Petals di proyek lama. Saya juga membagikan GPU dan menulis kode untuk proyek itu
    Bagian Petals diabstraksikan dari saya, dan pengalaman menulis kodenya terasa biasa saja
    Saya tidak mengunggah proyek itu ke mana pun, dan juga tidak begitu tahu bagaimana kelanjutannya. Secara umum, itu dikerjakan oleh sekitar lima orang sebagai penggerak utamanya