Pembuatan Jawaban

Menjelajahi lebih lanjut tentang apa yang ditawarkan RAG Cookbook untuk mendapatkan insight yang lebih dalam tentang solusi RAG saat ini

Diagram alir dengan berbagai bentuk dan simbol, termasuk gelembung ucapan berwarna biru, tanda tanya, dan lain-lain.
Ikhtisar

Pembuatan jawaban adalah komponen solusi RAG yang menciptakan respons terhadap kueri pengguna menggunakan informasi yang diambil dari sumber data perusahaan yang ditargetkan atau korpus teks. 

Pertimbangan

Parameter Model

Angka-angka yang mengikuti nama LLM sumber terbuka menunjukkan parameter model.  Misalnya Granite 3.0 8B Instruct, adalah model dengan parameter 8B.  Pikirkan parameter sebagai konduktor yang mengatur bagaimana model memanipulasi dan memahami data input dan menghasilkan output. Mereka dapat bermanifestasi sebagai bobot atau bias, mempengaruhi signifikansi fitur input spesifik pada output yang dihasilkan.

Jumlah parameter yang lebih besar umumnya sama dengan model dengan peningkatan kompleksitas dan kemampuan beradaptasi (meskipun tidak sepenuhnya benar di seluruh arsitektur yang berbeda, umumnya benar dalam arsitektur transformator). Model bahasa besar dengan jumlah parameter yang lebih tinggi dapat membedakan pola yang lebih rumit dari data, membuka jalan untuk output yang lebih kaya dan lebih tepat. Namun, seperti banyak hal dalam kehidupan, selalu ada kompromi yang harus dihadapi. Lonjakan parameter berarti tuntutan komputasi yang lebih tinggi, kebutuhan memori yang lebih besar, dan risiko pemasangan yang berlebihan.

Jenis Model: menginstruksikan vs. kode menginstruksikan vs obrolan

Mode obrolan dirancang untuk konteks percakapan, sedangkan mode instruksi dirancang untuk tugas pemrosesan bahasa alami di domain tertentu.

Penyelarasan dalam mode obrolan membantu LLM melakukan pekerjaan yang lebih baik dalam menghasilkan respons alami dan koheren yang relevan dan menarik bagi pengguna. Penyelarasan dalam mode instruksi membantu LLM melakukan pekerjaan yang lebih baik dalam mengikuti berbagai jenis instruksi dan menghasilkan output yang akurat dan sesuai dengan tugas.

Pengaturan Model

LLM menyediakan beberapa pengaturan untuk 'mengonfigurasi' bagaimana respons dihasilkan.

  • Pengaturan “suhu” menentukan seberapa variabel respons model. Sederhananya, semakin rendah suhu mode deterministik/konsisten respons model nantinya. Nilai suhu yang sangat rendah, idealnya 0, direkomendasikan untuk solusi RAG.
  • “max_tokens / max_new_tokens” membatasi jumlah token (kata kira-kira setara dengan 1,5 token) yang akan digunakan model dalam responsnya. Pengembang solusi perlu bereksperimen untuk menemukan nilai yang menyeimbangkan jawaban lengkap dengan terlalu banyak informasi untuk contoh penggunaan mereka tetapi 100 umumnya merupakan batas yang baik untuk solusi RAG Q & A.
  • strategi pengambilan sampel menentukan bagaimana model memilih token berikutnya dalam respons. Solusi RAG harus menggunakan strategi pengambilan sampel yang serakah , yang akan menjamin tanggapan yang konsisten terhadap prompt.

Rekayasa prompt

Pertama-tama, mari kita jelajahi aturan prompt untuk meningkatkan kinerja pembuatan di tempat pertama.

Aturan #1: Mulailah dengan Sederhana

Jangan mulai dengan menulis prompt yang sangat panjang, dan hanya setelah itu, ujilah.

Misalnya, jangan memulai dengan prompt panjang seperti:

-    Anda bekerja di departemen Keuangan perusahaan elektronik besar di S&P 1000. Anda perlu meringkas transkrip rapat pemegang saham triwulanan untuk mengidentifikasi topik, tren, dan sentimen utama. 

Balas dalam format daftar numerik berpoin.

Pastikan setiap item adalah kalimat lengkap dan lengkap.
Jangan berhalusinasi. Jawab hanya dengan informasi yang terkandung dalam transkrip.

Berikut transkripnya sebagai rangkuman:

Tapi mulailah di sini:

- Ringkas topik-topik utama yang terkandung dalam transkrip rapat berikut:

Aturan #2: Hanya Kenaikan

Jangan membuat perubahan besar dalam parameter model. 

Dalam kebanyakan kasus:

  • Perubahan kecil dalam Suhu dan penalti Pengulangan memiliki dampak yang nyata.
  • Perubahan besar sering menyembunyikan keberhasilan yang mungkin terjadi dengan perubahan kecil.

Terapkan prinsip-prinsip teknik terbaik:

  • Ubah hanya satu parameter pada satu waktu. Validasi setiap perubahan secara terpisah.
  • Batalkan perubahan yang tidak memiliki efek yang diinginkan. Kembali ke nilai sebelumnya.
  • Setiap perubahan dari default harus memiliki penjelasan yang baik.

Aturan #3: Silang memvalidasi

Cobalah untuk melanggar prompt Anda.  Jangan menguji prompt Anda sekali dan mengklaim keberhasilan. Jalankan lusinan tes terhadap prompt Anda.

  • Cobalah untuk mematahkan prompt Anda sebelum pelanggan melakukannya.

Buat kumpulan data pengujian dan terus tambahkan contoh Anda.  Setelah setiap rilis POC, uji ulang untuk memastikan prompt Anda Lanjutkan berfungsi.

Aturan #4: Ekstraksi kompleks tidak dapat dilakukan dengan prompt tunggal

Jangan khawatir, beberapa prompt diproses secara paralel menggunakan watsonx.ai

Diagram alur untuk analisis laporan keuangan dengan enam prompt dan tiga bagian.

Aturan #5: Rantai Prompt

Pisahkan tugas menjadi sub-tugas yang lebih kecil.

Diagram alir yang menggambarkan proses perencanaan liburan ke negara anggur California.

Aturan #6: Triase Tugas (atau Arsitektur Prompt)

Pisahkan setiap langkah dalam proses di beberapa prompt dan model khusus mereka.

Diagram alir yang menggambarkan proses asisten multi-LLM, dari permintaan pengguna hingga data perusahaan.

Aturan #7: granite.13b.chat.v

Model obrolan memerlukan desain prompt yang berbeda dari model instruksi.

Tangkapan layar format instruksi khusus model dengan prompt sistem dan prompt generik.
Tangkapan layar dari prompt umum untuk pembelajaran dalam konteks.
Prompt untuk format khusus model RAG.

Aturan # 8: Bersenang-senang dan bermain dengan model

Sungguh, kita belajar banyak dari bermain seperti dari pekerjaan.  Cobalah LLM terbaru dan tantang mereka dengan tugas-tugas di luar pekerjaan normal Anda.

Pilih sesuatu yang mungkin bisa dicapai LLM.

  • Tulis puisi 4 kalimat tentang burung. 
  • Tantangan obrolan: Oke, sekarang tentang anjing
  •  Ceritakan kisah lucu tentang seekor burung bernama Midori dalam waktu kurang dari 5 kalimat. 
  • Tantangan obrolan: Ubah nama burung menjadi Charlie dan tambahkan warna biru ditambah panjangnya 7 kalimat. 
  • Jawab pertanyaan berikut hanya dalam 10 kata: “mengapa langit biru?” 
  • Tantangan obrolan: Bagus, beri tahu saya alasan yang terdengar benar tetapi sebenarnya tidak.

Tambahkan interaksi multi-level untuk bereksperimen dengan merangkai prompt Anda.

Prompt sistem & Prompt pengguna

Mengedit prompt sistem sama pentingnya dengan mengedit prompt pengguna. Prompt sistem dapat membuat perbedaan besar dalam kualitas jawaban, nada, dll. Perintah sistem mengatur konteks untuk interaksi, memandu perilaku model dan memastikan konsistensi, sementara permintaan pengguna mendorong konten spesifik percakapan. Sangat penting untuk memiliki kemampuan untuk mengedit prompt sistem untuk meningkatkan kinerja.

Prompt Sistem

Prompt sistem memberikan instruksi mendasar yang memandu perilaku AI selama interaksi.  Prompt ini menetapkan peran, nada, dan batasan etika model tersebut. Menggunakan Delimiter dapat membantu model dan menghindari Injeksi Prompt.  Delimeter menentukan di mana dalam prompt Anda memasukkan input pengguna, membantu model mengidentifikasi di mana input pengguna dimulai dan diakhiri.  Delimeter juga membantu menghindari injeksi prompt. Delimeter dapat berupa apa saja: ``**, **”””**, **< >**, ** `.

Berikut adalah contoh prompt sistem untuk model Granite:

< |system| >\nAnda adalah Granite Chat, model bahasa AI yang dikembangkan oleh IBM® . Anda adalah asisten yang berhati-hati. Anda mengikuti instruksi dengan cermat. Anda membantu dan tidak berbahaya dan Anda mengikuti pedoman etika dan mempromosikan perilaku positif. Anda selalu menanggapi salam (misalnya, hai, halo, hari, pagi, sore, malam, apa kabar, senang bertemu dengan Anda, sup, dll) dengan “Halo! Saya Granite Chat, dibuat oleh IBM®. Bagaimana saya bisa membantu Anda hari ini?” Jangan katakan apa-apa lagi dan jangan memulai percakapan. {instruction}\n{session_history}< |user|>\n{query}\n<|assistant|>\n

Prompt Pengguna

Prompt pengguna adalah instruksi atau pertanyaan spesifik yang diberikan oleh pengguna untuk mencapai respons yang diinginkan dari model. Prompt pengguna harus jelas dan ringkas untuk memastikan model memahami tugas.

Alat Bantu IBM®

Prompt Lab

Prompt Lab adalah platform IBM yang memungkinkan Anda bekerja dengan model dasar dan membangun prompt menggunakan rekayasa cepat. Di dalam Prompt Lab, pengguna dapat berinteraksi dengan model dasar di editor perintah menggunakan mode Chat, Freeform, atau Structured. Beberapa opsi ini akan memungkinkan Anda untuk menyusun konfigurasi model terbaik untuk mendukung berbagai tugas berjenis Pemrosesan Bahasa Alami (NLP), termasuk menjawab pertanyaan, pembuatan konten dan ringkasan, klasifikasi teks, dan ekstraksi.

Untuk informasi tentang cara memulai dan yang lainnya Prompt Lab silakan merujuk ke Situs Lab Prompt Resmi

InstructLab

Strategi yang muncul untuk meningkatkan akurasi solusi RAG adalah dengan menggunakan model pembuatan yang disesuaikan dengan baik pada korpus data. Hal ini dapat menyebabkan peningkatan akurasi dari ujung ke ujung karena beberapa alasan.  Yang paling penting yang berasal dari kemampuan untuk tahap pembuatan dapat meningkatkan dan bahkan memperbaiki hasil pengambilan.  Ini juga dapat memberikan jawaban relevan yang lebih spesifik untuk perusahaan karena dapat disesuaikan dengan konten bisnis Anda.

Untuk informasi tentang cara mendapatkan strated dan yang lainnya InstructLab, silakan merujuk ke Repositori Resmi InstructLab

Granite

Granite 3.0 mencakup berbagai model, seperti Granite 3.0 8B Instruct, 2B Instruct, 8B Base, dan 2B Base, yang telah dilatih pada lebih dari 12 triliun token di 12 bahasa alami dan 116 bahasa pemrograman. Model-model ini cocok atau mengungguli model berukuran serupa dari penyedia terkemuka pada tolok ukur akademisi dan perusahaan, menunjukkan kinerja yang kuat dalam tugas-tugas seperti pemahaman bahasa, pembuatan kode, dan ringkasan dokumen.

Pembeda Granite 3.0

Transparansi dan Keamanan

Komitmen IBM terhadap transparansi dan keamanan terbukti dalam pengungkapan terperinci dari kumpulan data pelatihan, penyaringan, dan proses kurasi dalam laporan teknis Granite 3.0. Model ini dirilis di bawah lisensi Apache 2.0 permisif, memastikan fleksibilitas dan otonomi untuk klien perusahaan dan komunitas AI yang lebih luas. Selain itu, model Granite Guardian 3.0 memberikan kemampuan deteksi risiko dan bahaya yang komprehensif, mengungguli model keselamatan lainnya di pasar.

Efisiensi dan Efektivitas Biaya

Model Granite 3.0 direkayasa agar hemat biaya, memungkinkan perusahaan untuk mencapai kinerja model perbatasan dengan biaya yang lebih murah. Penggunaan InstructLab, pendekatan sumber terbuka kolaboratif, memungkinkan penyempurnaan model yang lebih kecil untuk tugas-tugas tertentu, mengurangi biaya sebesar 3x-23x dibandingkan dengan model yang lebih besar. Model Arsitektur Mixture of Experts (MoE), seperti Granite 3.0 3B-A800M dan 1B-A400M, menawarkan efisiensi inferensi tinggi dengan pertukaran kinerja minimal, menjadikannya ideal untuk aplikasi latensi rendah dan penerapan berbasis CPU.

Kemampuan Multimodal dan Pembaruan di Masa Depan

Pada akhir tahun 2024, model Granite 3.0 diperkirakan akan mendukung jendela konteks yang diperluas hingga 128K serta kemampuan pemahaman dokumen multimodal, termasuk tugas yang menerima input berupa gambar dan menghasilkan output berupa teks. Perluasan ini akan semakin meningkatkan Utilitas mereka dalam berbagai contoh penggunaan perusahaan.

Integrasi Ekosistem

Model Granite 3.0 tersedia melalui beberapa platform, termasuk watsonx.ai IBM®, Hugging Face, Google Cloud's Vertex AI, layanan mikro NVIDIA NIM, Ollama, dan Replicate, menyediakan pengembang dengan berbagai opsi penerapan dan memastikan integrasi yang mulus dengan alur kerja yang ada. Singkatnya, model Granite 3.0 IBM® menawarkan solusi yang kuat, transparan, dan hemat biaya untuk AI perusahaan, menggabungkan kinerja canggih dengan fitur keamanan yang kuat dan dukungan ekosistem yang luas.

Untuk informasi tentang cara memulai dan yang lainnya Granite silakan merujuk ke Situs Granite Resmi

Tips & Rekomendasi

Prompting yang Lebih Baik

Konten dan struktur prompt yang dikirimkan ke LLM dapat sangat mempengaruhi kualitas dan kesetiaan tanggapan yang mereka hasilkan.

Enam Jenis Prompt

Prompt dapat dibagi menjadi enam jenis besar:

Hanya Kata Kunci

Prompt hanya kata kunci sudah jelas; prompt ini terdiri dari kata kunci yang berkaitan dengan topik yang bersangkutan. Misalnya, prompt:

Berapa waktu memanggang yang optimal untuk kue cokelat di ketinggian tinggi

dapat direduksi menjadi kata kunci:

waktu memanggang kue coklat ketinggian tinggi

Prompt hanya kata kunci biasanya menghasilkan respons yang lebih luas dan lebih fokus pada topik, relevansi yang kuat dari teks augmentasi yang diambil. Ini bisa menjadi efek yang diinginkan untuk solusi yang membutuhkan tanggapan yang luas dan informatif seperti chatbot asisten operator tetapi dapat menghasilkan terlalu banyak informasi untuk solusi yang membutuhkan respons percakapan yang ringkas.

Komparatif

Petunjuk komparatif meminta LLM untuk membuat perbandingan antara satu atau lebih topik atau konsep dalam prompt. Sebagai contoh:

Apa perbedaan antara aturan dan penugasan peran?

Prompt komparatif dapat berguna ketika model generatif dan korpus pendukung sama-sama memiliki informasi tentang seluruh konsep yang dibandingkan, serta terdapat dimensi atau materi pendukung yang jelas untuk melakukan perbandingan tersebut secara bermakna. Tanpa ini, prompt komparatif kemungkinan akan menghasilkan respons yang tidak masuk akal atau tidak efektif.

Agregat

Permintaan agregat meminta model untuk menggabungkan dua atau lebih konsep atau kueri dalam satu prompt. Sebagai contoh:

Bagaimana cara membuat izin dan grup izin?

Prompt agregat umumnya lebih sulit untuk LLM karena ambiguitas yang melekat dalam pertanyaan.   

  • Apakah ini tentang beberapa konsep yang akan dieksekusi secara paralel untuk meminimalkan waktu pemrosesan?
  • Apakah ini tentang konsep pelengkap yang saling menguatkan?
  • Apakah maksud untuk menjelaskan bagaimana melakukan tindakan dalam serangkaian langkah berurutan? 

Untuk mengatasi ambiguitas ini, umumnya disarankan untuk membagi prompt agregat menjadi beberapa prompt topik tunggal, atau untuk memberikan konteks tambahan yang secara eksplisit menggambarkan respons yang diinginkan.

Ambigu

Prompt yang ambigu adalah salah satu yang dapat ditafsirkan dalam berbagai cara. Sebagai contoh:

Apa itu peran?

Prompt ini dapat menghasilkan tanggapan tentang peran dalam konteks akting dan diskusi selanjutnya tentang aktor terkenal dan peran mereka, peran dalam konteks solusi keamanan TI, atau peran dalam konteks organisasi. Ketidakpastian yang ditimbulkan membuat prompt yang ambigu menjadi pilihan yang kurang tepat untuk sebagian besar solusi. Oleh karena itu, prompt tersebut sebaiknya diperbaiki dengan menambahkan detail dan konteks tambahan agar LLM dapat lebih terfokus pada topik yang diinginkan.

Menyimpang

Dalam konteks solusi RAG, prompt menyimpang adalah yang tanpa jawaban dalam kumpulan dokumen pendukung. Hal ini dapat menyebabkan respons halusinasi/improvisasi berdasarkan pengetahuan yang tertanam dalam LLM, atau tanggapan yang tidak relevan berdasarkan hasil pencarian relevansi rendah dari korpus.

Meskipun tidak mungkin untuk melindungi dari respons yang menyimpang dalam semua contoh penggunaan (misalnya chatbot percakapan), pengembang solusi dapat meminimalkannya dengan membatasi input pengguna melalui daftar pilihan, misalnya. “Saya dapat membantu Anda dengan...” diikuti oleh serangkaian tombol topik yang telah ditentukan sebelumnya, atau 'mendorong' pengguna menuju tanggapan yang aman melalui bahasa deskriptif atau direktif dalam arah pengguna dan respons model.

Tidak langsung

Prompt tidak langsung adalah prompt yang kata kuncinya tidak langsung di korpus tetapi memiliki sinonim yang ada. Prompt tidak langsung cukup menantang bagi pengembang solusi karena tingkat keandalannya bergantung pada jumlah sinonim yang tersedia untuk kata kunci dalam prompt, serta bagaimana sinonim tersebut dapat mengarah pada kueri yang tidak ambigu.

Pengembang disarankan untuk menerapkan mekanisme pemfilteran kueri daftar hitam untuk menambahkan detail disambiguasi ke kata kunci, atau untuk mengganti kata kunci yang ‘merepotkan‘ dengan sinonim atau frasa yang tidak ambigu.

Praktik Pemberian Prompt yang Baik

Meskipun penciptaan prompt 'baik' adalah seni dan juga ilmu, ada sejumlah praktik yang diterima yang mengarah pada prompt yang lebih baik dan dengan demikian hasil yang lebih baik.

Contoh prompt yang baik adalah:

  • Relevan dengan domain target dan berisi detail dan konteks yang cukup untuk membuat konten dan nada output yang diinginkan jelas dan spesifik.

  • Disesuaikan dengan target audiens. Respons yang ditujukan untuk analis keuangan perusahaan akan memiliki nada, struktur, dan konten yang sangat berbeda dibandingkan dengan respons untuk klien retail. Prompt yang baik akan memiliki instruksi (“Anda adalah analis keuangan tingkat menengah. Buat laporan...”) atau indikasi yang jelas dari audiens (“... ditulis untuk pelanggan retail banking yang tidak memiliki pengetahuan tentang terminologi keuangan”) untuk tanggapan.

  • Dirancang untuk contoh penggunaan tertentu. Prompt yang baik harus dirancang dengan mempertimbangkan contoh penggunaan tertentu dan mencakup detail seputar di mana dan bagaimana respons yang dihasilkan akan digunakan (“... respons akan dipublikasikan di majalah industri perjalanan untuk operator tur”); yang pada gilirannya akan mempengaruhi nada, bahasa, dan gaya respons yang dihasilkan.

Jelajahi lebih lanjut

Dapatkan pola teknologi terbaru, arsitektur solusi, dan publikasi arsitektur dari IBM®.

  1. Buka Pusat Arsitektur IBM®
Kontributor