
GraphQL API滲透測試指南
RAG架構
完整的RAG應用流程主要包含兩個階段:
下面我們詳細介紹一下各環(huán)節(jié)的技術細節(jié)和注意事項:
數(shù)據(jù)準備一般是一個離線的過程,主要是將私域數(shù)據(jù)向量化后構建索引并存入數(shù)據(jù)庫的過程。主要包括:數(shù)據(jù)提取、文本分割、向量化、數(shù)據(jù)入庫等環(huán)節(jié)。
數(shù)據(jù)準備
向量化是一個將文本數(shù)據(jù)轉化為向量矩陣的過程,該過程會直接影響到后續(xù)檢索的效果。目前常見的embedding模型如表中所示,這些embedding模型基本能滿足大部分需求,但對于特殊場景(例如涉及一些罕見專有詞或字等)或者想進一步優(yōu)化效果,則可以選擇開源Embedding模型微調或直接訓練適合自己場景的Embedding模型。
模型名稱 | 描述 | 獲取地址 |
---|---|---|
ChatGPT-Embedding | ChatGPT-Embedding由OpenAI公司提供,以接口形式調用。 | https://platform.openai.com/docs/guides/embeddings/what-are-embeddings |
ERNIE-Embedding V1 | ERNIE-Embedding V1由百度公司提供,依賴于文心大模型能力,以接口形式調用。 | https://cloud.baidu.com/doc/WENXINWORKSHOP/s/alj562vvu |
M3E | M3E是一款功能強大的開源Embedding模型,包含m3e-small、m3e-base、m3e-large等多個版本,支持微調和本地部署。 | https://huggingface.co/moka-ai/m3e-base |
BGE | BGE由北京智源人工智能研究院發(fā)布,同樣是一款功能強大的開源Embedding模型,包含了支持中文和英文的多個版本,同樣支持微調和本地部署。 | https://huggingface.co/BAAI/bge-base-en-v1.5 |
數(shù)據(jù)向量化后構建索引,并寫入數(shù)據(jù)庫的過程可以概述為數(shù)據(jù)入庫過程,適用于RAG場景的數(shù)據(jù)庫包括:FAISS、Chromadb、ES、milvus等。一般可以根據(jù)業(yè)務場景、硬件、性能需求等多因素綜合考慮,選擇合適的數(shù)據(jù)庫。
在應用階段,我們根據(jù)用戶的提問,通過高效的檢索方法,召回與提問最相關的知識,并融入Prompt;大模型參考當前提問和相關知識,生成相應的答案。關鍵環(huán)節(jié)包括:數(shù)據(jù)檢索、注入Prompt等。
數(shù)據(jù)檢索
常見的數(shù)據(jù)檢索方法包括:相似性檢索、全文檢索等,根據(jù)檢索效果,一般可以選擇多種檢索方式融合,提升召回率。
LLM生成
Prompt作為大模型的直接輸入,是影響模型輸出準確率的關鍵因素之一。在RAG場景中,Prompt一般包括任務描述、背景知識(檢索得到)、任務指令(一般是用戶提問)等,根據(jù)任務場景和大模型性能,也可以在Prompt中適當加入其他指令優(yōu)化大模型的輸出。一個簡單知識問答場景的Prompt如下所示:
【任務描述】
假如你是一個專業(yè)的客服機器人,請參考【背景知識】,回
【背景知識】
{content} // 數(shù)據(jù)檢索得到的相關文本
【問題】
石頭掃地機器人P10的續(xù)航時間是多久?
Prompt的設計只有方法、沒有語法,比較依賴于個人經驗,在實際應用過程中,往往需要根據(jù)大模型的實際輸出進行針對性的Prompt調優(yōu)。
本文搜集了一些開源的基于LLM的RAG(Retrieval-Augmented Generation)框架,旨在吸納業(yè)界最新的RAG應用方法與思路。
文章轉自微信公眾號@機器學習AI算法工程
GraphQL API滲透測試指南
Python + BaiduTransAPI :快速檢索千篇英文文獻(附源碼)
掌握ChatGPT API集成的方便指南
node.js + express + docker + mysql + jwt 實現(xiàn)用戶管理restful api
nodejs + mongodb 編寫 restful 風格博客 api
表格插件wpDataTables-將 WordPress 表與 Google Sheets API 連接
手把手教你用Python和Flask創(chuàng)建REST API
使用 Django 和 Django REST 框架構建 RESTful API:實現(xiàn) CRUD 操作
ASP.NET Web API快速入門介紹