Memahami RAG Bahagian II: Cara RAG Klasik Berfungsi
Dalam catatan pertama dalam siri ini, kami memperkenalkan generasi dipertingkatkan semula (RAG), menjelaskan bahawa adalah perlu untuk mengembangkan keupayaan model bahasa besar (LLM) konvensional. Kami juga menggariskan secara ringkas apakah idea utama yang menyokong RAG: mendapatkan maklumat berkaitan kontekstual daripada pangkalan pengetahuan luaran untuk memastikan LLM menghasilkan maklumat yang tepat dan terkini, tanpa mengalami halusinasi dan tanpa perlu sentiasa melatih semula model.
Artikel kedua dalam siri mendedahkan ini menafikan mekanisme di mana sistem RAG konvensional beroperasi. Walaupun banyak versi RAG yang dipertingkatkan dan lebih canggih terus berkembang hampir setiap hari sebagai sebahagian daripada kemajuan AI yang membosankan pada masa kini, langkah pertama untuk memahami pendekatan RAG terkini yang terkini adalah dengan terlebih dahulu memahami aliran kerja RAG klasik.
Aliran Kerja RAG Klasik
Sistem RAG biasa (digambarkan dalam rajah di bawah) mengendalikan tiga komponen berkaitan data utama:
- LLM yang telah memperoleh pengetahuan daripada data yang telah dilatih dengannya, biasanya berjuta-juta hingga berbilion-bilion dokumen teks.
- Pangkalan data vektor, juga dipanggil pangkalan pengetahuan menyimpan dokumen teks. Tetapi mengapa nama pangkalan data vektor? Dalam sistem RAG dan pemprosesan bahasa semula jadi (NLP) secara keseluruhan, maklumat teks diubah menjadi perwakilan berangka yang dipanggil vektor, menangkap makna semantik teks. Vektor mewakili perkataan, ayat atau keseluruhan dokumen, mengekalkan sifat utama teks asal supaya dua vektor serupa dikaitkan dengan perkataan, ayat atau kepingan teks dengan semantik yang serupa. Menyimpan teks sebagai vektor berangka meningkatkan kecekapan sistem, supaya dokumen yang berkaitan cepat ditemui dan diambil.
- Pertanyaan atau gesaan dirumuskan oleh pengguna dalam bahasa semula jadi.
Secara ringkasnya, apabila pengguna bertanya soalan dalam bahasa semula jadi kepada pembantu berasaskan LLM yang dikurniakan enjin RAG, tiga peringkat berlaku antara menghantar soalan dan menerima jawapan:
- Retriever: komponen yang dipanggil retriever mengakses pangkalan data vektor untuk mencari dan mendapatkan semula dokumen yang berkaitan dengan pertanyaan pengguna.
- Pembesaran: pertanyaan pengguna asal ditambah dengan memasukkan pengetahuan kontekstual daripada dokumen yang diambil.
- Penjanaan: LLM -juga biasanya dirujuk sebagai penjana dari sudut pandangan RAG- menerima pertanyaan pengguna ditambah dengan maklumat kontekstual yang berkaitan dan menjana respons teks yang lebih tepat dan benar.
Di dalam Retriever
Retriever ialah komponen dalam sistem RAG yang mencari maklumat yang berkaitan untuk meningkatkan output akhir yang dijana kemudian oleh LLM. Anda boleh membayangkannya seperti enjin carian yang dipertingkatkan yang bukan sahaja memadankan kata kunci dalam pertanyaan pengguna dengan dokumen yang disimpan tetapi memahami maksud di sebalik pertanyaan itu.
Retriever mengimbas sekumpulan besar pengetahuan domain yang berkaitan dengan pertanyaan, disimpan dalam format vektor (perwakilan berangka teks), dan mengeluarkan potongan teks yang paling relevan untuk membina konteks di sekelilingnya yang dilampirkan pada pertanyaan pengguna asal. Teknik biasa untuk mengenal pasti pengetahuan yang berkaitan ialah carian persamaan, di mana pertanyaan pengguna dikodkan ke dalam perwakilan vektor dan vektor ini dibandingkan dengan data vektor yang disimpan. Dengan cara ini, mengesan cebisan pengetahuan yang paling berkaitan dengan pertanyaan pengguna, bermuara kepada melaksanakan beberapa pengiraan matematik secara berulang untuk mengenal pasti vektor yang paling hampir (paling serupa) kepada perwakilan vektor bagi pertanyaan itu. Oleh itu, retriever berjaya menarik maklumat yang tepat dan sedar konteks bukan sahaja dengan cekap, tetapi juga dengan tepat.
Di dalam Penjana
Penjana dalam RAG lazimnya ialah model bahasa yang canggih, selalunya LLM berdasarkan seni bina pengubah, yang mengambil input tambahan daripada retriever dan menghasilkan respons yang tepat, sedar konteks dan biasanya benar. Hasil ini biasanya melebihi kualiti LLM kendiri dengan memasukkan maklumat luaran yang berkaitan.
Di dalam model, proses penjanaan melibatkan pemahaman dan penjanaan teks, diuruskan oleh komponen yang mengekod input tambahan dan menjana teks output perkataan demi perkataan. Setiap perkataan diramalkan berdasarkan perkataan sebelumnya: tugasan ini, yang dilakukan sebagai peringkat terakhir dalam LLM, dikenali sebagai masalah ramalan perkataan seterusnya: meramalkan perkataan seterusnya yang berkemungkinan besar mengekalkan kesepaduan dan kaitan. dalam mesej yang dihasilkan.
Catatan ini menghuraikan lagi proses penjanaan bahasa yang diketuai oleh penjana.
Memandang ke Hadapan
Dalam siaran seterusnya dalam siri artikel ini tentang memahami RAG, kami akan mendedahkan kaedah gabungan untuk RAG, dicirikan dengan menggunakan pendekatan khusus untuk menggabungkan maklumat daripada berbilang dokumen yang diambil, dengan itu meningkatkan konteks untuk menjana respons.
Satu contoh biasa kaedah gabungan dalam RAG ialah penyusunan semula, yang melibatkan pemarkahan dan keutamaan berbilang dokumen yang diambil berdasarkan perkaitan pengguna mereka sebelum menyerahkan yang paling relevan kepada penjana. Ini membantu mempertingkatkan lagi kualiti konteks ditambah, dan tindak balas akhirnya yang dihasilkan oleh model bahasa.