1 poin oleh GN⁺ 2023-07-23 | 1 komentar | Bagikan ke WhatsApp
  • Artikel ini membahas penambahan sampling berbasis tata bahasa pada API baru di llama.cpp untuk mengarahkan dan membatasi proses generasi.
  • API llama menerima struktur data yang merepresentasikan tata bahasa bebas konteks, yang memungkinkan sampling berdasarkan aturan tata bahasa.
  • Kode sampling tata bahasa memodelkan automata pushdown nondeterministik dan mempertahankan beberapa stack untuk status parsing.
  • Artikel ini memberikan contoh penggunaan API tata bahasa untuk berbagai skenario seperti catur, aritmetika, JSON, dan bahasa Jepang.
  • Disebutkan pula potensi optimasi seperti mengompilasi tata bahasa menjadi tensor transisi status dan menjalankannya di GPU.
  • Para kontributor mendiskusikan penambahan dukungan file tata bahasa, peningkatan parser tata bahasa, dan optimasi evaluasi token.
  • Kegunaan kontribusi ini ditekankan, dan ada usulan untuk memisahkan API sampling menjadi modul terpisah.
  • Proyek lain yang menggunakan pendekatan serupa untuk generasi berbasis tata bahasa, seperti lmql.ai dan jsonformer, juga disebutkan.
  • Ada usulan untuk mereferensikan token penuh dari tata bahasa dan menyertakan parser dalam API llama.cpp agar kegunaannya meningkat.
  • Para kontributor meninjau kode, memberikan umpan balik, mendiskusikan potensi perbaikan, dan berbagi pengalaman mereka terkait fitur tersebut.
  • Seorang software engineer ikut berkontribusi pada proyek terkait sampling tata bahasa dan mengalami masalah pada ARM64+CUDA.
  • Editor menyarankan bahwa masalah itu mungkin terkait kombinasi paket toolchain dan menawarkan bantuan.
  • Ada pull request untuk menambahkan fungsi LocalAI, serta usulan agar proyek menggunakan sintaks BNF yang lebih standar.
  • Pelanggaran terhadap tata bahasa dianggap sebagai hasil terburuk, dan backtracking diusulkan untuk pertimbangan di masa depan.
  • Diskusi tentang implementasi EBNF dan format yang akan diikuti masih berlangsung.
  • Dalam pembaruan terbaru, sampling dibatasi pada kecocokan token penuh, dan diusulkan perbaikan tambahan untuk menangani kasus saat token terpisah secara tidak semestinya.
  • Perubahan pada proyek telah disetujui dan siap digabungkan, dan editor menantikan untuk bereksperimen dengan proyek yang telah diperbarui.
  • Disebutkan pula masalah serupa yang sedang dikerjakan di proyek lain, dengan usulan pra-perhitungan distribusi token leksikal.
  • Seorang software engineer menyatakan ketertarikannya pada pendekatan tersebut dan bersedia berbagi pendapat.
  • Percakapan di GitHub berlanjut dengan banyak peserta.

1 komentar

 
GN⁺ 2023-07-23
Opini Hacker News
  • Model bahasa menghasilkan token satu per satu, sehingga memungkinkan kontrol yang rinci.
  • Sampling berbasis tata bahasa dapat digunakan untuk menerapkan batasan gramatikal pada teks yang dihasilkan.
  • Sampling berbasis tata bahasa mungkin tidak menyelesaikan masalah alignment atau menjamin pelabelan yang benar.
  • Ada repositori GitHub untuk mengimplementasikan sampling berbasis tata bahasa di PyTorch.
  • Dengan mempertimbangkan probabilitas gabungan, pilihan dalam enumerasi string multichoice dapat dipilih dengan lebih baik.
  • Sebagai contoh seperti apa formatnya, sebuah pustaka tata bahasa disebutkan.
  • Sebagian pengguna tertarik pada konsep ini, tetapi mempertanyakan efek jangka panjangnya.
  • Sampling berbasis tata bahasa dapat berguna untuk bidang tertentu dan DSL internal.
  • Rekayasa prompt tetap diperlukan untuk mendapatkan keluaran yang diinginkan.
  • Ada juga metode dan alat lain yang serupa.
  • Permintaan rekomendasi tentang metode decoding di era jaringan saraf.