Model dan platform AI
Menjelajahi Retrieval-Augmented Generation dalam LLM
Bayangkan Anda sebagai seorang Analis, dan Anda memiliki akses ke Large Language Model. Anda sangat bersemangat tentang prospek yang ditawarkannya untuk alur kerja Anda. Namun, ketika Anda bertanya tentang harga saham terbaru atau tingkat inflasi saat ini, model tersebut memberikan respons:
“Mohon maaf, tetapi saya tidak dapat memberikan data waktu nyata atau data setelah tanggal pemotongan. Data pelatihan saya hanya sampai Januari 2022.”
Large Language Model, dengan semua kekuatan linguistiknya, tidak dapat memahami ‘sekarang‘. Dan di dunia yang cepat, ‘sekarang‘ adalah segalanya.
Penelitian telah menunjukkan bahwa model bahasa besar (LLM) juga merupakan repositori pengetahuan faktual.
Mereka telah dilatih pada begitu banyak data sehingga mereka telah menyerap banyak fakta dan angka. Ketika difine-tuning, mereka dapat mencapai hasil yang luar biasa pada berbagai tugas NLP.
Namun, ada satu hal yang perlu diperhatikan: kemampuan mereka untuk mengakses dan memanipulasi pengetahuan yang disimpan tidak selalu sempurna. Terutama ketika tugas yang diberikan adalah tugas yang intensif pengetahuan, model ini dapat ketinggalan dibandingkan dengan arsitektur yang lebih khusus. Ini seperti memiliki perpustakaan dengan semua buku di dunia, tetapi tidak memiliki katalog untuk menemukan apa yang Anda cari.
OpenAI’s ChatGPT Mendapatkan Peningkatan Pencarian
Pengumuman OpenAI tentang kemampuan browsing ChatGPT merupakan lompatan besar dalam arah Retrieval-Augmented Generation (RAG). Dengan ChatGPT sekarang dapat mencari internet untuk informasi terkini dan otoritatif, ini mencerminkan pendekatan RAG dengan menarik data dari sumber eksternal untuk memberikan respons yang diperkaya.
https://twitter.com/OpenAI/status/1707077710047216095
Saat ini tersedia untuk pengguna Plus dan Enterprise, OpenAI berencana untuk segera mengeluarkan fitur ini untuk semua pengguna. Pengguna dapat mengaktifkan ini dengan memilih ‘Browse with Bing’ di bawah opsi GPT-4.
Teknik Prompt yang Efektif tetapi Tidak Cukup
Prompt berfungsi sebagai gerbang untuk pengetahuan LLM. Mereka membimbing model, memberikan arah untuk respons. Namun, membuat prompt yang efektif tidak sepenuhnya menjadi solusi untuk mendapatkan apa yang Anda inginkan dari LLM. Mari kita lihat beberapa praktik baik yang perlu dipertimbangkan saat menulis prompt:
- Kejelasan: Prompt yang jelas menghilangkan keragaman. Ini harus langsung, memastikan model memahami niat pengguna. Kejelasan ini sering kali berarti respons yang lebih koheren dan relevan.
- Konteks: Terutama untuk input yang luas, penempatan instruksi dapat mempengaruhi output. Misalnya, memindahkan instruksi ke akhir prompt panjang dapat sering kali menghasilkan hasil yang lebih baik.
- Presisi dalam Instruksi: Kekuatan pertanyaan, sering kali disampaikan melalui kerangka “siapa, apa, di mana, kapan, mengapa, bagaimana”, dapat membimbing model menuju respons yang lebih fokus. Selain itu, menentukan format output yang diinginkan atau ukuran dapat lebih memperjelas output model.
- Menangani Ketidakpastian: Sangat penting untuk membimbing model tentang cara merespons ketika ragu. Misalnya, menginstruksikan model untuk merespons dengan “Saya tidak tahu” ketika ragu dapat mencegahnya menghasilkan respons yang tidak akurat atau “halusinasi“.
- Berpikir Langkah demi Langkah: Untuk instruksi yang kompleks, membimbing model untuk berpikir secara sistematis atau memecah tugas menjadi subtugas dapat menghasilkan output yang lebih komprehensif dan akurat.
Dalam kaitannya dengan pentingnya prompt dalam membimbing ChatGPT, sebuah artikel komprehensif dapat ditemukan di Unite.ai.
Tantangan dalam Model AI Generatif
Teknik prompt melibatkan penyetelan direktif yang diberikan kepada model untuk meningkatkan kinerjanya. Ini adalah cara yang sangat efektif dan efisien untuk meningkatkan akurasi aplikasi AI Generatif, hanya memerlukan penyesuaian kode kecil. Sementara teknik prompt dapat sangat meningkatkan output, penting untuk memahami keterbatasan bawaan model bahasa besar (LLM). Dua tantangan utama adalah halusinasi dan penghapusan pengetahuan.
- Halusinasi: Ini merujuk pada kasus di mana model dengan percaya diri mengembalikan respons yang salah atau dibuat-buat. Meskipun LLM canggih memiliki mekanisme bawaan untuk mengenali dan menghindari output tersebut.
- Penghapusan Pengetahuan: Setiap model LLM memiliki tanggal akhir pelatihan, setelah itu model tidak menyadari peristiwa atau perkembangan. Keterbatasan ini berarti pengetahuan model dibekukan pada titik tanggal pelatihan terakhir. Misalnya, model yang dilatih hingga 2022 tidak akan mengetahui peristiwa pada 2023.
Generasi yang diperkuat dengan pengambilan (RAG) menawarkan solusi untuk tantangan ini. Ini memungkinkan model untuk mengakses informasi eksternal, mengatasi masalah halusinasi dengan memberikan akses ke data khusus domain atau propietary. Untuk penghapusan pengetahuan, RAG dapat mengakses informasi terkini di luar tanggal pelatihan model, memastikan outputnya mutakhir.
Ini juga memungkinkan LLM untuk menarik data dari berbagai sumber eksternal secara real-time. Ini bisa berupa basis pengetahuan, database, atau bahkan luasnya internet.
Pengenalan Retrieval-Augmented Generation
Generasi yang diperkuat dengan pengambilan (RAG) adalah kerangka kerja, bukan teknologi spesifik, yang memungkinkan Model Bahasa Besar untuk mengakses data yang tidak mereka latih sebelumnya. Ada beberapa cara untuk mengimplementasikan RAG, dan yang terbaik tergantung pada tugas spesifik Anda dan sifat data Anda.
Kerangka kerja RAG beroperasi dengan cara yang terstruktur:
Input Prompt
Proses dimulai dengan input pengguna atau prompt. Ini bisa berupa pertanyaan atau pernyataan yang mencari informasi spesifik.
Pengambilan dari Sumber Eksternal
Sebagai gantinya untuk langsung menghasilkan respons berdasarkan pelatihannya, model, dengan bantuan komponen pengambil, mencari melalui sumber data eksternal. Sumber-sumber ini bisa berkisar dari basis pengetahuan, database, dan toko dokumen hingga data yang dapat diakses internet.
Mengerti Pengambilan
Pada intinya, pengambilan mencerminkan operasi pencarian. Ini tentang mengekstrak informasi paling relevan sebagai respons terhadap input pengguna. Proses ini dapat dibagi menjadi dua tahap:
- Indexing: Ini adalah bagian paling menantang dari perjalanan RAG. Proses indexing dapat dibagi menjadi dua fase: Loading dan Splitting. Dalam alat seperti LangChain, proses ini disebut “loaders” dan “splitters“. Loaders mengambil konten dari berbagai sumber, baik itu halaman web atau PDF. Setelah diambil, splitters kemudian membagi konten ini menjadi potongan-potongan kecil, mengoptimalkannya untuk penyematan dan pencarian.
- Penyarian: Ini adalah tindakan mengekstrak fragmen pengetahuan paling relevan berdasarkan istilah pencarian.
Sementara ada banyak cara untuk mendekati pengambilan, dari pencocokan teks sederhana hingga menggunakan mesin pencari seperti Google (GOOGL ), sistem RAG modern bergantung pada pencarian semantik. Di jantung pencarian semantik terletak konsep penyematan.
Penyematan sangat penting dalam memahami bahasa oleh Model Bahasa Besar (LLM). Ketika manusia mencoba menjelaskan bagaimana mereka mendapatkan makna dari kata-kata, penjelasan sering kali kembali ke pemahaman bawaan. Di dalam struktur kognitif kita, kita mengenali bahwa “anak” dan “bocah” sinonim, atau bahwa “merah” dan “hijau” keduanya menunjukkan warna.
Mengembangkan Prompt
Informasi yang diperoleh kemudian digabungkan dengan prompt asli, menciptakan prompt yang diperluas atau diperkaya. Prompt yang diperkaya ini memberikan model dengan konteks tambahan, yang sangat berharga jika data adalah domain-spesifik atau tidak termasuk dalam corpus pelatihan model asli.
Menghasilkan Kelengkapan
Dengan prompt yang diperkaya di tangan, model kemudian menghasilkan kelengkapan atau respons. Respons ini tidak hanya berdasarkan pelatihan model tetapi juga dipandu oleh data waktu nyata yang diperoleh.
Arsitektur RAG LLM Pertama
Makalah penelitian oleh Meta yang diterbitkan pada 2020 “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” memberikan pandangan mendalam tentang teknik ini. Model Generasi yang Diperkuat dengan Pengambilan (RAG) memperkaya proses generasi tradisional dengan mekanisme pengambilan atau pencarian eksternal. Ini memungkinkan model untuk menarik informasi relevan dari korpus data besar, meningkatkan kemampuannya untuk menghasilkan respons yang akurat secara kontekstual.
Berikut adalah cara kerjanya:
- Memori Parametrik: Ini adalah model bahasa tradisional, seperti model seq2seq. Ini telah dilatih pada sejumlah besar data dan mengetahui banyak hal.
- Memori Non-Parametrik: Bayangkan ini sebagai mesin pencari. Ini adalah indeks vektor padat dari, katakanlah, Wikipedia, yang dapat diakses menggunakan pengambil neural.
Ketika digabungkan, keduanya menciptakan model yang akurat. Model RAG pertama-tama mengambil informasi relevan dari memori non-parametriknya dan kemudian menggunakan pengetahuan parametriknya untuk memberikan respons yang koheren.
1. Proses Dua Langkah:
RAG LLM beroperasi dalam proses dua langkah:
- Pengambilan: Model pertama-tama mencari dokumen atau pasangan relevan dari dataset besar. Ini dilakukan menggunakan mekanisme pengambilan padat, yang menggunakan penyematan untuk merepresentasikan baik query dan dokumen. Penyematan kemudian digunakan untuk menghitung skor kesamaan, dan dokumen teratas dipilih.
- Generasi: Dengan dokumen relevan teratas di tangan, mereka kemudian disalurkan ke generator urutan-ke-urutan bersama dengan query awal. Generator ini kemudian menciptakan output akhir, menggambar konteks dari kedua query dan dokumen yang ditarik.
2. Pengambilan Padat:
Sistem pengambilan tradisional sering bergantung pada representasi yang jarang seperti TF-IDF. Namun, RAG LLM menggunakan representasi padat, di mana kedua query dan dokumen disematkan ke dalam ruang vektor kontinu. Ini memungkinkan perbandingan kesamaan yang lebih nuansa, menangkap hubungan semantik di luar pencocokan kata kunci.
3. Generasi Urutan-ke-Urutan:
Dokumen yang ditarik bertindak sebagai konteks yang diperluas untuk model generasi. Model ini, sering berdasarkan arsitektur seperti Transformer, kemudian menghasilkan output akhir, memastikan bahwa itu koheren dan relevan secara kontekstual.
Pencarian Dokumen
Indexing dan Pengambilan Dokumen
Untuk pengambilan informasi yang efisien, terutama dari dokumen besar, data sering disimpan dalam database vektor. Setiap potongan data atau dokumen diindeks berdasarkan vektor penyematan, yang menangkap esensi semantik konten. Indexing yang efisien memastikan pengambilan informasi relevan yang cepat berdasarkan prompt input.
Database Vektor

Source: Redis
Database vektor, kadang-kadang disebut penyimpanan vektor, adalah database yang dirancang untuk menyimpan dan mengambil data vektor. Dalam bidang AI dan ilmu komputer, vektor pada dasarnya adalah daftar angka yang mewakili titik dalam ruang multi-dimensi. Tidak seperti database tradisional, yang lebih sesuai untuk data tabel, database vektor unggul dalam mengelola data yang secara alami sesuai dengan format vektor, seperti penyematan dari model AI.
Beberapa database vektor yang terkenal termasuk Annoy, Faiss oleh Meta, Milvus, dan Pinecone. Database ini sangat penting dalam aplikasi AI, membantu dalam tugas mulai dari sistem rekomendasi hingga pencarian gambar. Platform seperti AWS juga menawarkan layanan yang dirancang untuk kebutuhan database vektor, seperti Amazon (AMZN ) OpenSearch Service dan Amazon RDS untuk PostgreSQL. Layanan ini dioptimalkan untuk kasus penggunaan tertentu, memastikan indexing dan pengambilan yang efisien.
Penggalan untuk Relevansi
Mengingat bahwa banyak dokumen dapat panjang, teknik yang disebut “penggalan” sering digunakan. Ini melibatkan membagi dokumen besar menjadi potongan-potongan kecil yang koheren secara semantik. Potongan-potongan ini kemudian diindeks dan ditarik sesuai kebutuhan, memastikan bahwa bagian paling relevan dari dokumen digunakan untuk pengembangan prompt.
Pertimbangan Jendela Konteks
Setiap LLM beroperasi dalam jendela konteks, yang pada dasarnya adalah jumlah maksimum informasi yang dapat dipertimbangkan sekaligus. Jika sumber data eksternal memberikan informasi yang melebihi jendela ini, perlu dipecah menjadi potongan-potongan kecil yang sesuai dengan jendela konteks model.
Manfaat Menggunakan Generasi yang Diperkuat dengan Pengambilan
- Akurasi yang Ditingkatkan: Dengan menggunakan sumber data eksternal, RAG LLM dapat menghasilkan respons yang tidak hanya berdasarkan data pelatihan tetapi juga dipandu oleh informasi paling relevan dan mutakhir yang tersedia dalam corpus pengambilan.
- Mengatasi Kesenjangan Pengetahuan: RAG secara efektif mengatasi keterbatasan pengetahuan bawaan LLM, baik karena tanggal pelatihan model atau ketiadaan data khusus domain dalam corpus pelatihannya.
- Flexibilitas: RAG dapat diintegrasikan dengan berbagai sumber data eksternal, dari database propietary dalam sebuah organisasi hingga data internet yang dapat diakses publik. Ini membuatnya dapat disesuaikan dengan berbagai aplikasi dan industri.
- Mengurangi Halusinasi: Salah satu tantangan dengan LLM adalah potensi untuk “halusinasi” atau penghasilan informasi yang tidak akurat atau dibuat-buat. Dengan memberikan konteks data waktu nyata, RAG dapat secara signifikan mengurangi kemungkinan output tersebut.
- Skalabilitas: Salah satu manfaat utama RAG LLM adalah kemampuan skalanya. Dengan memisahkan proses pengambilan dan generasi, model dapat menangani dataset besar dengan efisien, membuatnya cocok untuk aplikasi dunia nyata di mana data melimpah.
Tantangan dan Pertimbangan
- Beban Komputasi: Proses dua langkah dapat komputasi-intensif, terutama saat menangani dataset besar.
- Ketergantungan Data: Kualitas dokumen yang ditarik langsung mempengaruhi kualitas generasi. Oleh karena itu, memiliki corpus pengambilan yang komprehensif dan terawat dengan baik sangat penting.
Kesimpulan
Dengan mengintegrasikan proses pengambilan dan generasi, Generasi yang Diperkuat dengan Pengambilan menawarkan solusi yang kuat untuk tugas yang intensif pengetahuan, memastikan output yang tidak hanya dipandu tetapi juga relevan secara kontekstual.
Janji nyata RAG terletak pada potensi aplikasi dunia nyata. Untuk sektor seperti kesehatan, di mana informasi yang tepat waktu dan akurat dapat menentukan, RAG menawarkan kemampuan untuk mengekstrak dan menghasilkan wawasan dari literatur medis dengan lancar. Dalam ranah keuangan, di mana pasar berkembang menit demi menit, RAG dapat memberikan wawasan data yang dipandu waktu nyata, membantu dalam pengambilan keputusan yang tepat. Selain itu, dalam akademis dan penelitian, sarjana dapat menggunakan RAG untuk memindai repositori informasi yang luas, membuat tinjauan literatur dan analisis data lebih efisien.

















