23 poin oleh xguru 2023-08-28 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
xguru 2023-08-28

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