Tingkatkan kecekapan kejuruteraan - penjanaan carian dipertingkat (RAG)
Dengan kemunculan model bahasa berskala besar seperti GPT-3, penemuan besar telah dibuat dalam bidang pemprosesan bahasa semula jadi (NLP). Model bahasa ini mempunyai keupayaan untuk menjana teks seperti manusia dan telah digunakan secara meluas dalam pelbagai senario seperti chatbots dan terjemahan
Walau bagaimanapun, apabila ia berkaitan dengan senario aplikasi khusus dan tersuai, model bahasa besar tujuan umum Mungkin terdapat menjadi kekurangan dalam pengetahuan profesional. Penalaan halus model ini dengan korpora khusus selalunya mahal dan memakan masa. "Retrieval Enhanced Generation" (RAG) menyediakan penyelesaian teknologi baharu untuk aplikasi profesional.
Di bawah ini kami memperkenalkan terutamanya cara RAG berfungsi, dan menggunakan contoh praktikal untuk menggunakan manual produk sebagai korpus profesional dan menggunakan GPT-3.5 Turbo sebagai model soal jawab untuk mengesahkan keberkesanannya.
Kes: Bangunkan chatbot yang mampu menjawab soalan berkaitan produk tertentu. Perniagaan ini mempunyai manual pengguna yang unik
Pengenalan kepada RAG
RAG menyediakan penyelesaian yang berkesan untuk soalan dan jawapan khusus domain. Ia terutamanya menukar pengetahuan industri kepada vektor untuk penyimpanan dan pengambilan, menggabungkan hasil carian dengan soalan pengguna untuk membentuk maklumat segera, dan akhirnya menggunakan model besar untuk menjana jawapan yang sesuai. Dengan menggabungkan mekanisme perolehan semula dan model bahasa, responsif model dipertingkatkan dengan sangat baik
Langkah-langkah untuk mencipta program chatbot adalah seperti berikut:
- Baca PDF (fail PDF manual pengguna) dan tandakannya menggunakan chunk_size untuk 1000 token .
- Buat vektor (anda boleh menggunakan OpenAI EmbeddingsAPI untuk mencipta vektor).
- Simpan vektor dalam perpustakaan vektor tempatan. Kami akan menggunakan ChromaDB sebagai pangkalan data vektor (pangkalan data vektor juga boleh digantikan dengan Pinecone atau produk lain).
- Pengguna menyiarkan petua dengan pertanyaan/pertanyaan.
- Dapatkan data konteks pengetahuan daripada pangkalan data vektor berdasarkan soalan pengguna. Data konteks pengetahuan ini akan digunakan bersama-sama dengan kata-kata kiu dalam langkah-langkah seterusnya untuk meningkatkan kata-kata kiu, sering dirujuk sebagai pengayaan kontekstual.
- Kata gesaan yang mengandungi soalan pengguna dihantar ke LLM bersama-sama dengan pengetahuan kontekstual yang dipertingkatkan
- Jawapan LLM berdasarkan konteks ini.
Pembangunan tangan
(1) Sediakan persekitaran maya Python Sediakan persekitaran maya untuk sandbox Python kami untuk mengelakkan sebarang versi atau konflik pergantungan. Jalankan arahan berikut untuk mencipta persekitaran maya Python baharu.
需要重写的内容是:pip安装virtualenv,python3 -m venv ./venv,source venv/bin/activate
Kandungan yang perlu ditulis semula ialah: (2) Jana kunci OpenAI
Menggunakan GPT memerlukan kunci OpenAI untuk akses
Kandungan yang perlu ditulis semula ialah: (3) Pasang perpustakaan bergantung
Pelbagai kebergantungan diperlukan oleh pemasang. Termasuk perpustakaan berikut:
- lanchain: rangka kerja untuk membangunkan aplikasi LLM.
- chromaDB: Ini ialah VectorDB untuk pembenaman vektor berterusan.
- tidak berstruktur: digunakan untuk pramemproses dokumen Word/PDF.
- tiktoken: Rangka kerja Tokenizer
- pypdf: Rangka kerja untuk membaca dan memproses dokumen PDF.
- openai: Akses rangka kerja OpenAI.
pip install langchainpip install unstructuredpip install pypdfpip install tiktokenpip install chromadbpip install openai
Buat pembolehubah persekitaran untuk menyimpan kunci OpenAI.
export OPENAI_API_KEY=<openai-key></openai-key>
(4) Tukar fail PDF manual pengguna kepada vektor dan simpan dalam ChromaDB
Import semua perpustakaan dan fungsi bergantung yang perlu anda gunakan
import osimport openaiimport tiktokenimport chromadbfrom langchain.document_loaders import OnlinePDFLoader, UnstructuredPDFLoader, PyPDFLoaderfrom langchain.text_splitter import TokenTextSplitterfrom langchain.memory import ConversationBufferMemoryfrom langchain.embeddings.openai import OpenAIEmbeddingsfrom langchain.vectorstores import Chromafrom langchain.llms import OpenAIfrom langchain.chains import ConversationalRetrievalChain
untuk membaca PDF, tokenize dokumen dan pisahkan dokumen .
loader = PyPDFLoader("Clarett.pdf")pdfData = loader.load()text_splitter = TokenTextSplitter(chunk_size=1000, chunk_overlap=0)splitData = text_splitter.split_documents(pdfData)
Buat koleksi kroma dan direktori setempat untuk menyimpan data kroma. Kemudian, buat vektor (benam) dan simpan dalam ChromaDB.
collection_name = "clarett_collection"local_directory = "clarett_vect_embedding"persist_directory = os.path.join(os.getcwd(), local_directory)openai_key=os.environ.get('OPENAI_API_KEY')embeddings = OpenAIEmbeddings(openai_api_key=openai_key)vectDB = Chroma.from_documents(splitData,embeddings,collection_name=collection_name,persist_directory=persist_directory)vectDB.persist()
Selepas melaksanakan kod ini, anda sepatutnya melihat folder yang telah dibuat untuk menyimpan vektor.
Selepas pembenaman vektor disimpan dalam ChromaDB, anda boleh menggunakan ConversationalRetrievalChain API dalam LangChain untuk memulakan komponen sejarah sembang
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)chatQA = ConversationalRetrievalChain.from_llm(OpenAI(openai_api_key=openai_key, temperature=0, model_name="gpt-3.5-turbo"), vectDB.as_retriever(), memory=memory)
Selepas memulakan langchan, kami boleh menggunakannya untuk bersembang/Q A. Dalam kod di bawah, soalan yang dimasukkan oleh pengguna diterima, dan selepas pengguna memasukkan 'selesai', soalan itu diserahkan kepada LLM untuk mendapatkan balasan dan mencetaknya.
chat_history = []qry = ""while qry != 'done':qry = input('Question: ')if qry != exit:response = chatQA({"question": qry, "chat_history": chat_history})print(response["answer"])
Ringkasnya
RAG menggabungkan kelebihan model bahasa seperti GPT dengan kelebihan pencarian maklumat. Dengan menggunakan maklumat konteks pengetahuan khusus untuk meningkatkan kekayaan kata-kata pantas, model bahasa dapat menjana jawapan berkaitan konteks pengetahuan yang lebih tepat. RAG menyediakan penyelesaian yang lebih cekap dan kos efektif daripada "penalaan halus", menyediakan penyelesaian interaktif yang boleh disesuaikan untuk aplikasi industri atau aplikasi perusahaan
Atas ialah kandungan terperinci Tingkatkan kecekapan kejuruteraan - penjanaan carian dipertingkat (RAG). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Tingkatkan produktiviti, kecekapan dan ketepatan pembangun dengan menggabungkan penjanaan dipertingkatkan semula dan memori semantik ke dalam pembantu pengekodan AI. Diterjemah daripada EnhancingAICodingAssistantswithContextUsingRAGandSEM-RAG, pengarang JanakiramMSV. Walaupun pembantu pengaturcaraan AI asas secara semulajadi membantu, mereka sering gagal memberikan cadangan kod yang paling relevan dan betul kerana mereka bergantung pada pemahaman umum bahasa perisian dan corak penulisan perisian yang paling biasa. Kod yang dijana oleh pembantu pengekodan ini sesuai untuk menyelesaikan masalah yang mereka bertanggungjawab untuk menyelesaikannya, tetapi selalunya tidak mematuhi piawaian pengekodan, konvensyen dan gaya pasukan individu. Ini selalunya menghasilkan cadangan yang perlu diubah suai atau diperhalusi agar kod itu diterima ke dalam aplikasi

Penjanaan Dipertingkatkan Pengambilan Graf (GraphRAG) secara beransur-ansur menjadi popular dan telah menjadi pelengkap hebat kepada kaedah carian vektor tradisional. Kaedah ini mengambil kesempatan daripada ciri-ciri struktur pangkalan data graf untuk menyusun data dalam bentuk nod dan perhubungan, dengan itu mempertingkatkan kedalaman dan perkaitan kontekstual bagi maklumat yang diambil. Graf mempunyai kelebihan semula jadi dalam mewakili dan menyimpan maklumat yang pelbagai dan saling berkaitan, dan dengan mudah boleh menangkap hubungan dan sifat yang kompleks antara jenis data yang berbeza. Pangkalan data vektor tidak dapat mengendalikan jenis maklumat berstruktur ini dan ia lebih menumpukan pada pemprosesan data tidak berstruktur yang diwakili oleh vektor berdimensi tinggi. Dalam aplikasi RAG, menggabungkan data graf berstruktur dan carian vektor teks tidak berstruktur membolehkan kami menikmati kelebihan kedua-duanya pada masa yang sama, iaitu perkara yang akan dibincangkan oleh artikel ini. struktur

Halusinasi adalah masalah biasa apabila bekerja dengan model bahasa besar (LLM). Walaupun LLM boleh menjana teks yang lancar dan koheren, maklumat yang dijananya selalunya tidak tepat atau tidak konsisten. Untuk mengelakkan LLM daripada halusinasi, sumber pengetahuan luaran, seperti pangkalan data atau graf pengetahuan, boleh digunakan untuk memberikan maklumat fakta. Dengan cara ini, LLM boleh bergantung pada sumber data yang boleh dipercayai ini, menghasilkan kandungan teks yang lebih tepat dan boleh dipercayai. Pangkalan Data Vektor dan Graf Pengetahuan Pangkalan Data Vektor Pangkalan data vektor ialah satu set vektor berdimensi tinggi yang mewakili entiti atau konsep. Ia boleh digunakan untuk mengukur persamaan atau korelasi antara entiti atau konsep yang berbeza, dikira melalui perwakilan vektornya. Pangkalan data vektor boleh memberitahu anda, berdasarkan jarak vektor, bahawa "Paris" dan "Perancis" lebih dekat daripada "Paris" dan

RAG (RiskAssessmentGrid) ialah kaedah yang mempertingkatkan model bahasa besar (LLM) sedia ada dengan sumber pengetahuan luaran untuk memberikan jawapan yang lebih berkaitan kontekstual. Dalam RAG, komponen perolehan memperoleh maklumat tambahan, respons adalah berdasarkan sumber tertentu, dan kemudian menyuap maklumat ini ke dalam gesaan LLM supaya respons LLM adalah berdasarkan maklumat ini (fasa peningkatan). RAG lebih menjimatkan berbanding teknik lain seperti pemangkasan. Ia juga mempunyai kelebihan untuk mengurangkan halusinasi dengan menyediakan konteks tambahan berdasarkan maklumat ini (peringkat penambahan) - RAG anda menjadi kaedah aliran kerja untuk tugasan LLM hari ini (seperti pengesyoran, pengekstrakan teks, analisis sentimen, dsb.). Jika kita memecahkan idea ini dengan lebih lanjut, berdasarkan niat pengguna, kita biasanya melihat

Kami akan membincangkan cara untuk membina sistem penjanaan dipertingkatkan semula (RAG) menggunakan sumber terbuka LargeLanguageMulti-Modal. Fokus kami adalah untuk mencapai ini tanpa bergantung pada LangChain atau LLlamaindex untuk mengelakkan daripada menambah lebih banyak kebergantungan rangka kerja. Apakah itu RAG Dalam bidang kecerdasan buatan, kemunculan teknologi penjanaan dipertingkatkan semula (RAG) telah membawa peningkatan revolusioner kepada model bahasa besar (LargeLanguageModels). Intipati RAG adalah untuk meningkatkan kecerdasan buatan dengan membenarkan model mendapatkan maklumat masa nyata secara dinamik daripada sumber luaran

Hari ini, dalam bidang kecerdasan buatan, banyak perhatian diberikan kepada model berskala besar. Walau bagaimanapun, faktor seperti kos latihan yang tinggi dan masa latihan yang panjang telah menjadi halangan utama yang menyekat kebanyakan syarikat daripada mengambil bahagian dalam bidang model berskala besar Dalam konteks ini, pangkalan data vektor, dengan kelebihan uniknya, telah menjadi penyelesaian kepada masalah tersebut penyesuaian kos rendah dan pantas bagi model besar. Pangkalan data vektor ialah teknologi yang direka khusus untuk menyimpan dan memproses data vektor berdimensi tinggi. Ia menggunakan algoritma pengindeksan dan pertanyaan yang cekap untuk mencapai perolehan semula dan analisis data besar-besaran. Sebagai tambahan kepada prestasi cemerlang tersebut, pangkalan data vektor juga boleh menyediakan penyelesaian tersuai untuk bidang dan tugasan tertentu. Gergasi teknologi seperti Tencent dan Alibaba telah melabur dalam penyelidikan dan pembangunan pangkalan data vektor, dengan harapan untuk mencapai kejayaan dalam bidang model besar. Banyak syarikat kecil dan sederhana juga mengambil kesempatan

Dihasilkan oleh 51CTO Technology Stack (WeChat ID: blog51cto) Adalah diketahui umum bahawa LLM boleh menghasilkan halusinasi - iaitu, menjana maklumat yang salah, mengelirukan atau tidak bermakna. Menariknya, sesetengah orang, seperti Ketua Pegawai Eksekutif OpenAI Sam Altman, melihat imaginasi AI sebagai kreativiti, manakala yang lain percaya bahawa imaginasi boleh membantu membuat penemuan saintifik baharu. Walau bagaimanapun, dalam kebanyakan kes, adalah penting untuk memberikan jawapan yang betul, dan halusinasi bukanlah ciri tetapi kecacatan. Jadi, bagaimana untuk mengurangkan ilusi LLM? Konteks panjang? RAG? Penalaan halus? Malah, LLM konteks panjang tidak mudah, RAG carian vektor tidak memuaskan, dan penalaan halus datang dengan cabaran dan batasannya sendiri. Berikut adalah beberapa yang boleh digunakan

Selepas kelahiran ChatGPT, ia terus menyegarkan pemahaman kami dengan keupayaan penciptaan teks yang hebat. Apakah perubahan besar yang akan dibawa oleh AI ke kampus universiti? Masih belum ada yang bersedia. Nature telah mengeluarkan artikel, bimbang ChatGPT akan menjadi alat untuk pelajar menulis kertas kerja. Pautan artikel: https://www.nature.com/articles/d41586-022-04397-7 Secara kebetulan, seorang penulis Kanada Stephen Marche dengan sedih memanggil: Tesis universiti sudah mati! Menulis kertas dengan AI adalah terlalu mudah Katakan anda seorang profesor pendidikan dan anda telah memberikan kertas kerja tentang gaya pembelajaran untuk tujuan akademik. Seorang pelajar menghantar artikel untuk dibuka
