Generasi Pengambilan Generasi (RAG) memberi kuasa kepada model bahasa yang besar (LLMS) dengan memasukkan pengambilan maklumat. Ini membolehkan LLM untuk mengakses pangkalan pengetahuan luaran, menghasilkan tindak balas yang lebih tepat, semasa, dan kontekstual yang sesuai. RAG Pembetulan (Crag), teknik RAG yang lebih maju, meningkatkan lagi ketepatan dengan memperkenalkan mekanisme refleksi diri dan penilaian diri untuk dokumen yang diambil.
Artikel ini merangkumi:
Diterbitkan sebagai sebahagian daripada Blogathon Sains Data.
Jadual Kandungan
Mekanisme asas Crag
CRAG meningkatkan kebolehpercayaan output LLM dengan mengintegrasikan carian web ke dalam proses pengambilan dan penjanaannya (lihat Rajah 1).
Pengambilan dokumen:
Penilaian Relevan:
Penilai menilai kaitan dokumen yang diambil. Jika lebih daripada 70% dokumen dianggap tidak relevan, tindakan pembetulan dimulakan; Jika tidak, hasil penjanaan tindak balas.
Integrasi Carian Web:
Sekiranya kaitan dokumen tidak mencukupi, Crag menggunakan carian web:
Generasi Respons:
CRAG mensintesis data dari kedua -dua pengambilan awal dan carian web untuk membuat tindak balas yang tepat dan tepat.
Crag vs Rag Tradisional
Crag secara aktif mengesahkan dan menyempurnakan maklumat yang diambil, tidak seperti kain tradisional, yang bergantung kepada dokumen yang diambil tanpa pengesahan. Crag sering menggabungkan carian web masa nyata, memberikan akses kepada maklumat yang paling terkini, tidak seperti pergantungan tradisional RAG pada pangkalan pengetahuan statik. Ini menjadikan CRAG sesuai untuk aplikasi yang memerlukan ketepatan yang tinggi dan integrasi data masa nyata.
Pelaksanaan CRAG praktikal
Bahagian ini memperincikan pelaksanaan CRAG menggunakan Python, Langchain, dan Tavily.
Langkah 1: Pemasangan Perpustakaan
Pasang perpustakaan yang diperlukan:
! Pip Pasang Tiktoken Langchain-Openai Langchainhub Chromadbang Langchain Langraph Tavily-Python ! Pip pemasangan -qu pypdf langchain_community
Langkah 2: Konfigurasi Kunci API
Tetapkan kunci API anda:
Import OS os.environ ["tavily_api_key"] = "" os.environ ["openai_api_key"] = ""
Langkah 3: Import Perpustakaan
Import Perpustakaan yang diperlukan (kod yang ditinggalkan untuk keringkasan, tetapi serupa dengan contoh asal).
Langkah 4: Dokumen Chunking dan Penciptaan Retriever
(Kod yang ditinggalkan untuk keringkasan, tetapi sama dengan contoh asal, menggunakan PYPDFLoader, RecursiveCharactertextsplitter, Openaiembeddings, dan Chroma).
Langkah 5: Persediaan Rantaian Rag
(Kod yang ditinggalkan untuk keringkasan, tetapi serupa dengan contoh asal, menggunakan hub.pull("rlm/rag-prompt")
dan ChatOpenAI
).
Langkah 6: Persediaan Penilai
(Kod yang ditinggalkan untuk keringkasan, tetapi serupa dengan contoh asal, menentukan kelas Evaluator
dan menggunakan ChatOpenAI
untuk penilaian).
Langkah 7: Persediaan Penulisan Pertanyaan
(Kod yang ditinggalkan untuk keringkasan, tetapi serupa dengan contoh asal, menggunakan ChatOpenAI
untuk penulisan pertanyaan).
Langkah 8: Persediaan Carian Web
dari langchain_community.tools.Tavily_Search Import TavilySearchResults web_search_tool = tavilysearchResults (k = 3)
Langkah 9-12: Persediaan dan pelaksanaan aliran kerja Langgraph
(Kod yang ditinggalkan untuk keringkasan, tetapi secara konseptual sama dengan contoh asal, yang menentukan GraphState
, nod fungsi ( retrieve
, generate
, evaluate_documents
, transform_query
, web_search
), dan menghubungkannya menggunakan StateGraph
.) Output akhir dan perbandingan dengan kain tradisional juga konseptual sama.
Cabaran crag
Keberkesanan Crag sangat bergantung pada ketepatan penilai. Penilai yang lemah boleh memperkenalkan kesilapan. Skalabiliti dan kebolehsuaian juga menjadi kebimbangan, yang memerlukan kemas kini dan latihan yang berterusan. Integrasi carian web memperkenalkan risiko maklumat yang berat sebelah atau tidak boleh dipercayai, yang memerlukan mekanisme penapisan yang mantap.
Kesimpulan
Crag ketara meningkatkan ketepatan dan kebolehpercayaan output LLM. Keupayaannya untuk menilai dan menambah maklumat yang diambil dengan data web masa nyata menjadikannya berharga untuk aplikasi yang menuntut ketepatan tinggi dan maklumat terkini. Walau bagaimanapun, penghalusan berterusan adalah penting untuk menangani cabaran yang berkaitan dengan ketepatan evaluator dan kebolehpercayaan data web.
Takeaways Utama (serupa dengan yang asal, tetapi diubahsuai untuk kesimpulan)
Soalan -soalan yang sering ditanya (serupa dengan yang asal, tetapi diubahsuai untuk kesesuaian)
(Nota: Imej tetap tidak berubah dan dimasukkan seperti dalam input asal.)
Atas ialah kandungan terperinci Rag pembetulan (Crag) dalam tindakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!