- 7 pola inti dirangkum berdasarkan "peningkatan performa vs. pengurangan biaya/risiko" dan "berorientasi data vs. berorientasi pengguna"
- Evals: mengukur performa
- RAG (Retrieval-Augmented Generation): menambahkan pengetahuan eksternal yang terbaru
- Fine-tuning: agar lebih baik dalam menjalankan tugas tertentu
- Caching: mengurangi latensi dan biaya
- Guardrails: menjamin kualitas output
- Defensive UX: untuk memprediksi dan mengelola kesalahan
- Collect user feedback: membangun data flywheel
Evals: mengukur performa
- Evals adalah serangkaian metrik yang digunakan untuk mengevaluasi performa model pada suatu tugas
- Mencakup data benchmark dan metrik
- Dapat mengukur seberapa baik sistem atau produk bekerja, serta mendeteksi regresi
- Ada banyak benchmark di bidang language modeling: MMLU, EleutherAI Eval, HELM, AlpacaEval
- Metrik dapat dibagi ke dalam dua kategori: context-dependent atau context-free
- Metrik yang umum digunakan: BLEU, ROUGE, BERTScore, MoverScore
- Tren yang sedang naik daun belakangan ini adalah menggunakan LLM yang kuat sebagai reference-free metric untuk mengevaluasi hasil generasi LLM lain
- G-Eval, makalah Vicuna, QLoRA
RAG (Retrieval-Augmented Generation): menambahkan pengetahuan eksternal yang terbaru
- Mengambil informasi dari luar foundation model dan memperkaya input dengan data tersebut untuk memberikan konteks yang lebih kaya, sehingga meningkatkan output
- RAG membantu mengurangi halusinasi dengan mendasarkan model pada konteks yang diambil, sehingga meningkatkan faktualitas
- Selain itu, menjaga indeks pencarian tetap mutakhir lebih murah daripada terus melakukan pretraining pada LLM
- Karena efisiensi biaya ini, LLM dapat mengakses data terbaru melalui RAG
- Jika perlu memperbarui/menghapus data seperti dokumen yang bias atau berbahaya, memperbarui indeks pencarian jauh lebih sederhana (dibandingkan fine-tuning pada LLM)
- Untuk RAG, memahami text embedding terlebih dahulu akan sangat membantu
- Text embedding adalah representasi abstrak terkompresi dari data teks yang dapat merepresentasikan teks dengan panjang sembarang sebagai vektor numerik berukuran tetap
- Umumnya dilatih pada korpus teks seperti Wikipedia
- Bisa dipahami sebagai encoding umum untuk teks, di mana item yang mirip saling berdekatan, dan item yang tidak mirip berada lebih jauh
- Embedding yang baik adalah embedding yang berkinerja baik pada tugas downstream seperti pencarian item serupa
- Massive Text Embedding Benchmark (MTEB) dari Huggingface memberi skor model pada berbagai tugas seperti klasifikasi, clustering, retrieval, dan ringkasan
- Di sini yang terutama dibahas adalah text embedding, tetapi embedding juga dapat digunakan pada berbagai modalitas
- Fusion-in-Decoder (FiD) menggunakan model generatif bersama retrieval untuk open-domain QA
- Internet-augmented LM mengusulkan penguatan LLM dengan memanfaatkan search engine yang sudah ada
- Cara menerapkan RAG
- Pencarian hibrida (indeks pencarian tradisional + pencarian berbasis embedding) bekerja lebih baik daripada masing-masing secara terpisah
Fine-tuning: agar lebih baik dalam menjalankan tugas tertentu
- Fine-tuning adalah proses mengambil model pralatih (model yang sudah dilatih pada data dalam jumlah sangat besar) lalu menyempurnakannya lebih lanjut untuk tugas tertentu
- Tujuannya adalah memanfaatkan pengetahuan yang telah diperoleh model selama pretraining untuk diterapkan pada tugas spesifik yang biasanya melibatkan dataset yang lebih kecil dan khusus tugas
- Istilah fine-tuning sering digunakan secara longgar untuk merujuk pada berbagai konsep
- pretraining berkelanjutan
- instruction fine-tuning
- fine-tuning tugas tunggal
- RLHF
- Mengapa melakukan fine-tuning?
- Performa dan kontrol:
- Meningkatkan performa foundation model yang sudah ada, bahkan bisa melampaui LLM pihak ketiga
- Dapat mengontrol perilaku LLM dengan lebih baik, sehingga sistem atau produk menjadi lebih kuat
- Melalui fine-tuning, dapat membangun produk yang terdiferensiasi alih-alih sekadar memakai LLM pihak ketiga atau open model
- Modularitas:
- Dengan fine-tuning tugas tunggal, kita dapat membangun armada model yang lebih kecil, masing-masing terspesialisasi pada tugas uniknya sendiri
- Dengan pengaturan seperti ini, sistem dapat dimodularisasi ke dalam tugas seperti moderasi konten, ekstraksi, dan ringkasan
- Pengurangan ketergantungan:
- Dengan melakukan fine-tuning dan hosting model sendiri, kita dapat mengurangi isu hukum terkait data proprietari yang terekspos ke API eksternal (misalnya PII, dokumen internal, dan kode)
- Juga dapat mengatasi batasan LLM pihak ketiga seperti rate limit, biaya tinggi, atau filter keamanan yang terlalu membatasi
- Generative Pre-trained Transformers (GPT; decoder only)
- Text-to-text Transfer Transformer (T5; encoder-decoder)
- InstructGPT
- Soft prompt tuning & Prefix Tuning
- Low-Rank Adaptation (LoRA) & QLoRA
- Cara menerapkan fine-tuning
- Mengumpulkan data demo/label
- Mendefinisikan metrik evaluasi
- Memilih model pralatih
- Memperbarui arsitektur model
- Memilih metode fine-tuning (LoRA, QLoRA, dll.)
- Tuning hyperparameter dasar
Caching: mengurangi latensi dan biaya
- Caching adalah teknik menyimpan data yang sebelumnya telah diambil atau dihitung
- Memungkinkan permintaan di masa depan untuk data yang sama diproses dengan lebih efisien
- Dalam LLM, ini berarti menyimpan respons LLM terhadap embedding dari permintaan input, lalu memberikan respons yang di-cache ketika permintaan berikutnya yang mirip secara semantik masuk
- Namun, beberapa praktisi menganggap ini seperti "menunggu bencana terjadi". Saya setuju
- Kunci untuk mengadopsi pola caching adalah menemukan cara melakukan cache dengan aman, alih-alih hanya mengandalkan kemiripan semantik
- Mengapa perlu caching? : untuk mengurangi latensi dan menghemat biaya dengan menurunkan jumlah permintaan ke LLM
- Bagaimana menerapkan caching?
- Harus dimulai dari memahami pola permintaan pengguna dengan baik
- Pertimbangkan apakah caching efektif untuk pola penggunaan tersebut
Guardrails: menjamin kualitas output
- Memvalidasi output LLM untuk memastikan hasilnya bukan hanya tampak bagus, tetapi juga benar secara sintaksis, faktual, dan bebas dari konten berbahaya
- Mengapa guardrails diperlukan?
- Membantu memastikan output model cukup andal dan konsisten untuk digunakan di produksi
- Memberikan lapisan keamanan tambahan dan menjaga quality control atas output LLM
- Salah satu pendekatan adalah mengontrol respons model melalui prompt
- Anthropic membagikan prompt yang dirancang untuk membimbing model menghasilkan respons yang helpful, harmless, and honest (HHH)
- Pendekatan yang lebih umum adalah memvalidasi output (seperti paket Guardrails)
- NeMo-Guardrails dari Nvidia mengikuti prinsip serupa, tetapi dirancang untuk memandu sistem percakapan berbasis LLM
- Seperti Guidance dari Microsoft, output juga bisa langsung diarahkan agar mengikuti tata bahasa tertentu (bisa dianggap sebagai DSL untuk LLM)
- Cara menerapkan guardrails
- Structural guidance
- Syntactic guardrails
- Content safety guardrails
- Semantic/factuality guardrails
- Input guardrails
Defensive UX: untuk memprediksi dan mengelola kesalahan
- Defensive UX adalah strategi desain yang mengakui bahwa hal-hal buruk seperti ketidakakuratan atau halusinasi dapat terjadi saat pengguna berinteraksi dengan produk berbasis machine learning atau LLM
- Tujuan utamanya adalah memprediksi dan mengelola hal tersebut sebelumnya dengan membimbing perilaku pengguna, mencegah penyalahgunaan, dan menangani kesalahan secara tepat
- Mengapa defensive UX?
- Machine learning dan LLM tidak sempurna. Keduanya dapat menghasilkan hasil yang tidak akurat
- Dapat merespons pertanyaan yang sama secara berbeda
- Defensive UX membantu mengurangi masalah di atas dengan memberikan:
- aksesibilitas yang lebih baik, peningkatan kepercayaan, Better UX
- Lihat panduan yang dirangkum oleh perusahaan-perusahaan berikut
- Microsoft’s Guidelines for Human-AI Interaction
- Google’s People + AI Guidebook
- Apple’s Human Interface Guidelines for Machine Learning
- Cara menerapkan defensive UX
- Menetapkan ekspektasi yang tepat
- Memungkinkan penolakan yang efisien (Enable efficient dismissal)
- Menyediakan attribution
- Anchor on familiarity
Collect user feedback: membangun data flywheel
- Mengumpulkan umpan balik pengguna memungkinkan kita memahami preferensi mereka
- Umpan balik pengguna yang spesifik untuk produk LLM berkontribusi pada evaluasi, fine-tuning, dan pembangunan guardrails
- Data seperti corpus untuk pretraining, demo buatan pakar, dan preferensi manusia untuk reward modeling adalah salah satu dari sedikit moat pada produk LLM
- Feedback dapat bersifat eksplisit maupun implisit
- Feedback eksplisit adalah informasi yang diberikan pengguna sebagai respons terhadap permintaan dari produk
- Feedback implisit adalah informasi yang dipelajari dari interaksi pengguna tanpa pengguna perlu sengaja memberikan feedback
- Mengapa mengumpulkan feedback pengguna
- Feedback pengguna membantu meningkatkan model
- Dengan mempelajari apa yang disukai, tidak disukai, atau dikeluhkan pengguna, model dapat ditingkatkan agar lebih baik memenuhi kebutuhan mereka
- Model juga dapat beradaptasi dengan preferensi individu
- Feedback loop membantu mengevaluasi performa sistem secara keseluruhan
- Cara mengumpulkan feedback pengguna
- Mudahkan pengguna meninggalkan feedback: seperti opsi suka/tidak suka pada respons ala ChatGPT
- Pertimbangkan juga feedback implisit: informasi yang muncul saat pengguna berinteraksi dengan produk
1 komentar
Di tulisan aslinya ada penjelasan rinci untuk tiap poin serta algoritme/metrik, tetapi bagian itu dihilangkan.
Lihat ringkasan kasarnya lewat tulisan ini, dan silakan rujuk juga ke artikel aslinya