Model Bahasa Besar (LLM) sering kali secara mengejutkan memiliki pengetahuan yang luas tentang berbagai topik, tetapi mereka hanya terbatas pada data yang dilatih. Ini berarti bahwa klien yang ingin menggunakan LLM dengan informasi bisnis yang bersifat pribadi atau hak milik tidak dapat menggunakan LLM 'di luar kebiasaan' untuk menjawab pertanyaan, membuat korespondensi, atau sejenisnya.
Generasi dengan dukungan pengambilan data (RAG) adalah pola arsitektur yang memungkinkan model dasar menghasilkan hasil yang benar secara faktual untuk topik khusus atau berpemilik yang bukan bagian dari data pelatihan model. Dengan menambah pertanyaan dan prompt pengguna dengan data yang relevan yang diambil dari sumber data eksternal, RAG memberikan fakta dan detail 'baru' (untuk model) kepada model sebagai dasar untuk memberikan respons.
Pola RAG, yang ditunjukkan pada diagram di bawah ini, terdiri dari dua bagian: penyematan data selama waktu pembuatan, dan permintaan pengguna (atau mengembalikan hasil) selama waktu proses.
Seorang Insinyur AI menyiapkan data klien (misalnya, manual prosedur, dokumentasi produk, atau tiket meja bantuan, dll.) selama Pemrosesan Data. Data klien diubah dan/atau diperkaya agar cocok untuk augmentasi model. Transformasi dapat mencakup konversi format sederhana seperti mengonversi dokumen PDF ke teks, atau transformasi yang lebih kompleks seperti menerjemahkan struktur tabel yang rumit ke dalam pernyataan tipe if-then. Pengayaan dapat mencakup perluasan singkatan umum, menambahkan meta-data seperti informasi mata uang, dan tambahan lainnya untuk meningkatkan relevansi hasil pencarian.
Model penyematan digunakan untuk mengonversi data sumber menjadi serangkaian vektor yang mewakili kata-kata dalam data klien. Penyematan membuatnya lebih mudah untuk melakukan machine learning pada input besar seperti vektor jarang yang mewakili kata-kata. Penyematan disimpan sebagai bagian (disebut potongan) dari data klien, seperti sub-bagian atau paragraf, untuk memudahkan pencarian informasi.
Penyematan yang dihasilkan disimpan dalam basis data vektor. Setiap sumber data yang mendukung kueri 'fuzzy' yang mengembalikan hasil berdasarkan kemungkinan relevansi, misalnya watsonx Discovery, dapat digunakan dalam arsitektur RAG tetapi implementasi yang paling umum menggunakan basis data vektor seperti Milvus, FAISS, atau Chroma.
Sistem sekarang siap digunakan oleh pengguna akhir.
Pengguna akhir berinteraksi dengan aplikasi yang diaktifkan GenAI dan memasukkan kueri.
Aplikasi GenAI menerima kueri, dan melakukan pencarian pada basis data vektor untuk mendapatkan informasi yang paling banyak (kami menyebutnya K teratas) yang paling sesuai dengan kueri pengguna. Misalnya, jika kueri pengguna adalah "Berapa batas penarikan harian di akun MaxSavers", pencarian dapat mengembalikan bagian seperti "Akun MaxSavers adalah...", "Batas penarikan harian adalah...". dan "... batas akun... ".
Bagian teratas, beserta prompt yang dikurasi untuk aplikasi spesifik dikirimkan ke LLM.
LLM mengembalikan respons seperti manusia berdasarkan kueri pengguna, prompt, dan informasi konteks yang disajikan kepada pengguna akhir.
Pemetaan portofolio produk watsonx ke pola RAG ditunjukkan pada diagram di atas.
watsonx Discovery mengimplementasikan fungsi pra-pemrosesan, pembuatan embedding, serta penyimpanan dan pengambilan relevansi pola. Untuk beberapa jenis solusi tertentu, watsonx Discovery juga dapat digunakan sebagai aplikasi AI generatif front-end bagi pengguna. Selain hanya mengganti basis data vektor, watsonx Discovery menawarkan pengayaan NLP out-of-the-box termasuk ekstraksi entitas, analisis sentimen, emotion analysis, ekstraksi kata kunci, klasifikasi kategori, penandaan konsep, dan lainnya.
Untuk solusi obrolan, watsonx Assistant menyediakan antarmuka pengguna dan juga kemampuan percakapan seperti mengingat subjek kueri sebelumnya. Misalnya, jika pengguna bertanya "Ceritakan tentang Toast-o-matic" dan kemudian "Berapa harganya?" watsonx Assistant tahu bahwa "nya" dalam kueri terakhir mengacu pada pemanggang roti di yang pertama.
Terakhir, watsonx.ai menyediakan pilihan model bahasa besar yang dapat dipilih oleh para klien dalam lingkungan hosting cloud. Dengan watsonx.ai, pelanggan dapat melatih, memvalidasi, menyetel, dan menerapkan kemampuan AI generatif, model dasar, dan machine learning dengan mudah serta membangun aplikasi AI dalam waktu yang singkat dengan data yang sedikit.
Beberapa klien tidak memiliki watsonx.ai tersedia di wilayah lokal mereka, atau mungkin memiliki masalah keamanan atau persyaratan peraturan yang mencegah mereka menggunakan watsonx.ai Solusi SaaS. Untuk klien ini, kami menawarkan watsonx.ai sebagai sekumpulan layanan kontainer yang dapat diterapkan pada Red Hat Openshift yang berjalan di dalam pusat data klien, atau dalam cloud pribadi virtual (VPC) dalam infrastruktur penyedia layanan cloud.
Mayoritas LLM dilatih pada teks dominan bahasa Inggris yang berisi sebagian kecil teks dalam bahasa lain, seringkali bahasa Eropa Barat. Untuk aplikasi yang memerlukan dukungan multibahasa atau bahasa lokal dapat menerapkan langkah penerjemahan pra- dan pasca-kueri untuk menerjemahkan input ke bahasa 'dasar' dokumen yang telah diproses terlebih dahulu, misalnya Bahasa Inggris, dan menerjemahkan hasil model ke bahasa target, misalnya Spanyol. Pendekatan ini ditunjukkan dalam diagram berikut.
Pendekatan ini mengubah pola RAG dasar sebagai berikut (mengesampingkan langkah-langkah pembuatan embedding):
Seorang pengguna memasukkan kueri dalam bahasa yang berbeda dari bahasa dominan dari dokumentasi yang telah diproses sebelumnya. Misalnya, kueri dalam bahasa Spanyol dan basis dokumentasi dominan bahasa Inggris.
Aplikasi AI generatif prompt model bahasa yang besar untuk menerjemahkan permintaan pengguna ke bahasa basis dokumentasi. Dalam contoh kami, dari Spanyol ke Inggris.
Kueri yang diterjemahkan digunakan untuk mengambil bagian K teratas dari informasi yang paling relevan dengan kueri pengguna.
Kueri yang diterjemahkan dan konteks yang diambil dikirim ke LLM untuk menghasilkan respons.
Aplikasi AI generatif kembali menggunakan model bahasa besar untuk menerjemahkan respons yang dihasilkan ke bahasa target pengguna. Dalam contoh kami, dari bahasa Inggris ke bahasa Spanyol.
Respons yang diterjemahkan dalam bahasa Spanyol disajikan kepada pengguna akhir.
Pengalaman menunjukkan bahwa akurasi 80% atau lebih tinggi, tergantung pada konteks dan jenis kueri yang dikirim, dalam hasil non-bahasa dasar dapat dicapai dengan menggunakan pendekatan ini. Model multi-bahasa yang sedang berkembang, yang dilatih dengan persentase yang lebih besar dari bahasa yang berbeda, diharapkan dapat mencapai akurasi yang lebih tinggi.
RAG adalah solusi kandidat untuk skenario bisnis apa pun di mana terdapat banyak dokumentasi dan business rules yang harus dikonsultasikan oleh pengguna untuk memberikan jawaban yang otoritatif. Ini juga merupakan solusi yang kuat untuk menanamkan chatbot berbasis LLM dengan pengetahuan eksklusif atau khusus domain dan mencegah halusinasi.
Penggunaan kandidat meliputi:
Underwriting asuransi dan ajudikasi klaim. RAG memiliki banyak aplikasi potensial dalam industri asuransi. Penjamin emisi dan pialang membutuhkan pengetahuan mendalam tentang ribuan halaman dokumentasi yang mencakup syarat dan ketentuan ratusan produk asuransi. Demikian pula, ajudikator klaim mungkin diharuskan memiliki pengetahuan mendalam tentang dokumentasi yang sama, serta kontrak dengan pengesampingan dan persyaratan tambahan yang spesifik untuk masing-masing klien. Pola arsitektur RAG dapat berfungsi sebagai 'tulang punggung' arsitektur solusi untuk membantu penjamin emisi, pialang, dan adjuster dalam menanyakan dokumentasi produk dan kontrak untuk merespons pertanyaan klien dengan lebih baik dan meningkatkan produktivitas proses.
Dukungan agen pusat panggilan. Agen pusat panggilan membutuhkan pengetahuan yang mendalam tentang potensi ratusan produk dan layanan, serta masalah produk yang umum terjadi dan penyelesaiannya. Pola RAG adalah fondasi arsitektur yang kuat untuk menciptakan solusi guna membantu agen menemukan jawaban atas permintaan klien dengan cepat.
Chatbot pelanggan. RAG merupakan pendorong kuat untuk menciptakan chatbot yang berhadapan langsung dengan pelanggan untuk menjawab pertanyaan. Menggabungkan kemampuan bahasa alami dari Model Bahasa Besar dan respons khusus perusahaan dari RAG dapat memberikan pengalaman pelanggan yang menarik dan komunikatif. Perhatikan bahwa RAG sendiri hanya memberikan kemampuan Question and Answer; ia tidak memiliki kemampuan untuk 'bertransaksi', yaitu berinteraksi dengan sistem perusahaan untuk menarik informasi atau memperbarui catatan. Komponen tambahan harus ditambahkan untuk deteksi niat pengguna dan berinteraksi dengan sistem perusahaan.
Dukungan/meja bantuan. Seperti pusat panggilan, operasi TI dan personel pendukung memerlukan pengetahuan mendalam tentang konfigurasi penerapan sistem yang kompleks bersama dengan pengetahuan tentang masalah umum dan yang terlihat sebelumnya dan penyelesaiannya. Pola RAG adalah fondasi arsitektur yang kuat untuk menciptakan solusi guna membantu personel dukungan dengan cepat menemukan jawaban yang relevan untuk masalah yang dilaporkan dan masalah yang diamati.
Keputusan dan Pertimbangan Arsitektur
Banyak faktor yang harus dipertimbangkan dalam memilih model yang akan bekerja dengan baik untuk proyek Anda.
Lisensi model dapat membatasi penggunaan model tersebut. Sebagai contoh, lisensi model dapat mencegah model tersebut digunakan sebagai bagian dari aplikasi komersial.
Kumpulan data yang digunakan untuk melatih model pelatihan memiliki dampak langsung pada seberapa baik model bekerja untuk aplikasi tertentu dan secara signifikan memengaruhi risiko bahwa model dapat menghasilkan respons yang tidak masuk akal, menyinggung, atau tidak diinginkan. Demikian pula, model yang dilatih dengan data yang memiliki hak cipta atau data pribadi dapat membuat penggunanya bertanggung jawab secara hukum. IBM menyediakan transparansi penuh atas data pelatihan dan ganti rugi dari klaim hukum yang timbul dari model-modelnya.
Ukuran model, jumlah parameter yang dilatih, dan ukuran jendela konteksnya (seberapa panjang bagian teks yang dapat diterima model) memengaruhi kinerja model, kebutuhan sumber daya, dan keluaran. Seringkali kita berpikir bahwa "model yang lebih besar pasti lebih baik" dan memilih model dengan 20 miliar parameter, namun dari segi kebutuhan sumber daya dan peningkatan akurasi (jika ada), hal ini tidak dapat dibenarkan. Penelitian terbaru menunjukkan bahwa model yang lebih kecil dapat secara signifikan mengungguli model yang lebih besar untuk beberapa solusi.
Setiap penyempurnaan yang diterapkan pada model dapat memengaruhi kesesuaiannya untuk suatu tugas. Misalnya, IBM menawarkan dua versi model Granite: satu disetel untuk aplikasi obrolan umum, dan yang lain disetel untuk mengikuti instruksi.
Pertimbangan lain ketika memilih model termasuk:
Pemilihan parameter model, misalnya suhu model, untuk menyeimbangkan pembuatan teks seperti manusia dan respons faktual. Mengatur suhu model ke nilai yang tinggi akan menghasilkan respons yang konsisten tetapi berpotensi tidak menarik atau terlalu singkat, sementara mengatur suhu ke nilai yang rendah akan memperkenalkan lebih banyak variasi ke dalam respons, tetapi akan menambah ketidakpastian dalam panjang dan isi respons.
Pemilihan dan penerapan pembatas model untuk melindungi dari hasil yang tidak efektif atau menyinggung.
Pilihan model tergantung pada aplikasi, jenis data, dan persyaratan dukungan bahasa. Model penyematan mungkin harus diperluas untuk secara akurat mengkodekan dan mencari istilah atau akronim khusus industri atau klien.
Basis data vektor hanyalah satu opsi untuk mengimplementasikan penyimpanan data penyematan. Watson Discovery menyediakan alat dan fungsionalitas tambahan yang dapat meningkatkan kinerja dan akurasi solusi RAG; dan beberapa database 'tradisional' menyediakan penyimpanan dan pencarian vektor, dan/atau pencarian kesamaan yang akan mendukung solusi RAG.
Ada juga banyak opsi untuk basis data vektor. Basis data dalam memori sederhana yang disematkan langsung dalam aplikasi GenAI memberikan kinerja run-time yang sangat baik tetapi mungkin tidak berskala dengan baik ke kumpulan data besar, dan dapat menimbulkan tantangan operasional yang signifikan untuk tetap terkini, atau untuk menskalakan ke konfigurasi multi-server. Basis data lain yang menggunakan arsitektur server pusat lebih mudah dioperasikan dan diskalakan, tetapi mungkin tidak memenuhi kebutuhan kinerja solusi tertentu.
Ada sejumlah metode yang tersedia untuk mengintegrasikan model pengambilan dan pembuatan. Mengambil bagian K teratas dan menggunakannya untuk menambah kueri pengguna adalah hal yang sederhana dan bijaksana, tetapi bisa jadi kurang memberikan nuansa yang diperlukan untuk menjawab pertanyaan yang kompleks. Pencarian sederhana dengan kata kunci juga dapat menghasilkan hasil yang memuaskan.
Solusi yang lebih kompleks dapat menggunakan LLM untuk menghasilkan beberapa kueri dari kueri asli pengguna dan menggunakannya untuk mengambil sekumpulan bagian yang lebih besar. Logika tambahan dapat ditambahkan untuk mengurutkan lebih lanjut dan memilih bagian yang diambil dengan relevansi tertinggi.
Memproses data sebelum memasukkannya ke dalam sistem RAG merupakan langkah penting untuk memastikan bahwa data input dalam format yang sesuai untuk model. Metode sederhana melibatkan pemecahan data input menjadi potongan-potongan berukuran tetap dengan tumpang tindih, misalnya, 10 karakter terakhir dari sebuah potongan adalah 10 karakter pertama yang sama dengan karakter berikutnya, tetapi hal ini dapat menghilangkan nuansa dalam data input.
Pra-pemrosesan yang lebih canggih dapat memanipulasi teks input untuk menghapus akhiran kata umum, misalnya. stopper, stopping, dan stopped semua menjadi stop; hilangkan kata 'stop' yang tidak informatif seperti the, as, is, dan sejenisnya; dan teknik-teknik lainnya. Hal ini secara substansial dapat meningkatkan relevansi informasi yang diambil, tetapi menambah kompleksitas pada fase penyematan data dan permintaan pengguna.
Bahkan teknik yang lebih maju dapat beroperasi pada kalimat penuh, untuk menjaga sebanyak mungkin makna dalam teks.
Mengevaluasi kinerja sistem RAG dapat menjadi tantangan karena sifat tugas yang kompleks. Metrik evaluasi umum meliputi kebingungan, kefasihan, relevansi, dan koherensi - serta metrik BLU dan ROUGE. Penting untuk memilih metrik yang selaras dengan tujuan spesifik tugas dan hasil yang diinginkan.
RAG membutuhkan teks biasa, dan pilihan metode konversi memiliki dampak besar pada kualitas data. Misalnya, saat mengonversi file PDF, bagaimana tabel, gambar, dan elemen metadata lainnya ditangani.
Menghasilkan respons seperti manusia dari LLM membutuhkan sumber daya komputasi yang substansial dan seringkali dapat memakan waktu beberapa detik tergantung pada ukuran model, kompleksitas kueri pengguna, dan jumlah informasi tambahan yang diteruskan ke model. Solusi yang perlu melayani sekelompok besar pengguna atau memerlukan waktu respons yang cepat mungkin perlu menerapkan mekanisme untuk men-cache respons model terhadap kueri yang sering terjadi.
Menanamkan informasi kepemilikan, yang berpotensi rahasia, dan berpotensi berisi informasi identifikasi pribadi ke dalam prompt LLM adalah inti dan penting untuk pola RAG. Organisasi yang menggunakan platform model host harus mengetahui kebijakan penyedia seperti retensi data prompt dan kebijakan penggunaan (mis. apakah penyedia menangkap data prompt dan menggunakannya untuk pelatihan ulang model?), kontrol untuk mencegah data prompt yang cepat 'bocor' ke pengguna lain, dll; dan menyeimbangkannya dengan kebijakan dan kontrol keamanan informasi mereka sendiri.
Meskipun transmisi beberapa informasi hak milik tidak dapat dihindari, organisasi dapat membatasi risikonya dengan hanya menyertakan referensi dokumen atau URL ke informasi paling sensitif dalam data yang diproses. Misalnya, daripada menanamkan tabel diskon harga ke dalam data RAG, sertakan hanya deskripsi tabel dan referensi atau tautan ke dokumen internal atau situs web dalam konten.
Keamanan tingkat transportasi sederhana (TLS) pada komunikasi antar zona mungkin cukup untuk memenuhi persyaratan keamanan data tetapi arsitek mungkin perlu mempertimbangkan untuk memberikan perlindungan tambahan dengan menambahkan komponen untuk mengenkripsi dan mendekripsi prompt dan respons sebelum meneruskannya melintasi batas zona.
Tipe koneksi antara zona penerapan memiliki dampak pada beberapa persyaratan non-fungsional. Menggunakan koneksi jaringan pribadi virtual (VPN) melalui Internet publik adalah opsi berbiaya rendah, tetapi mungkin tidak sepenuhnya menghilangkan masalah keamanan, dan mungkin tidak dapat memenuhi waktu respons atau persyaratan throughput solusi. Sambungan jaringan pribadi ke lingkungan hosting model memiliki biaya yang jauh lebih tinggi tetapi menawarkan keamanan yang jauh lebih baik dan memberikan kemampuan kepada para arsitek untuk mengontrol latensi jaringan dan bandwidth.