通過(guò)阿里云Milvus與PAI搭建高效的檢索增強(qiáng)對(duì)話系統(tǒng)
阿里云Milvus現(xiàn)已無(wú)縫集成于阿里云PAI平臺(tái),一站式賦能用戶構(gòu)建高性能的RAG(Retrieval-Augmented Generation)對(duì)話系統(tǒng)。您可以利用Milvus作為向量數(shù)據(jù)的實(shí)時(shí)存儲(chǔ)與檢索核心,高效結(jié)合PAI和LangChain技術(shù)棧,實(shí)現(xiàn)從理論到實(shí)踐的快速轉(zhuǎn)化,搭建起功能強(qiáng)大的RAG解決方案。
背景信息
EAS簡(jiǎn)介
模型在線服務(wù)EAS(Elastic Algorithm Service)是一種模型在線服務(wù)平臺(tái),可支持您一鍵部署模型為在線推理服務(wù)或AI-Web應(yīng)用。它提供的彈性擴(kuò)縮容和藍(lán)綠部署等功能,可以支撐您以較低的資源成本獲取高并發(fā)且穩(wěn)定的在線算法模型服務(wù)。此外,EAS還提供了資源組管理、版本控制以及資源監(jiān)控等功能,方便您將模型服務(wù)應(yīng)用于業(yè)務(wù)。EAS適用于實(shí)時(shí)同步推理、近實(shí)時(shí)異步推理等多種AI推理場(chǎng)景,并具備完整運(yùn)維監(jiān)控體系等能力。
更多信息,請(qǐng)參見EAS模型服務(wù)概述。
RAG簡(jiǎn)介
隨著AI技術(shù)的飛速發(fā)展,生成式人工智能在文本生成、圖像生成等領(lǐng)域展現(xiàn)出了令人矚目的成就。然而,在廣泛應(yīng)用大語(yǔ)言模型(LLM)的過(guò)程中,一些固有局限性逐漸顯現(xiàn):
領(lǐng)域知識(shí)局限:大語(yǔ)言模型通常基于大規(guī)模通用數(shù)據(jù)集訓(xùn)練而成,這意味著它們?cè)谔幚韺I(yè)垂直領(lǐng)域的具體應(yīng)用時(shí)可能缺乏針對(duì)性和深度。
信息更新滯后:由于模型訓(xùn)練所依賴的數(shù)據(jù)集具有靜態(tài)特性,大模型無(wú)法實(shí)時(shí)獲取和學(xué)習(xí)最新的信息與知識(shí)進(jìn)展。
模型誤導(dǎo)性輸出:受制于數(shù)據(jù)偏差、模型內(nèi)在缺陷等因素,大語(yǔ)言模型有時(shí)會(huì)出現(xiàn)看似合理實(shí)則錯(cuò)誤的輸出,即所謂的“大模型幻覺”。
為克服這些挑戰(zhàn),并進(jìn)一步強(qiáng)化大模型的功能性和準(zhǔn)確性,檢索增強(qiáng)生成技術(shù)RAG應(yīng)運(yùn)而生。這一技術(shù)通過(guò)整合外部知識(shí)庫(kù),能夠顯著減少大模型虛構(gòu)的問題,并提升其獲取及應(yīng)用最新知識(shí)的能力,從而實(shí)現(xiàn)更個(gè)性化和精準(zhǔn)化的LLM定制。
RAG技術(shù)架構(gòu)的核心為檢索和生成。其中,檢索部分采用了高效的向量檢索引擎和向量數(shù)據(jù)庫(kù)技術(shù),例如基于開源庫(kù)Faiss、Annoy以及HNSW算法優(yōu)化構(gòu)建的Milvus系統(tǒng),極大地提升了對(duì)大規(guī)模數(shù)據(jù)進(jìn)行快速檢索和精確分析的能力。這樣的設(shè)計(jì)使得RAG能夠在必要時(shí)即時(shí)調(diào)用相關(guān)領(lǐng)域或最新信息,有效彌補(bǔ)了傳統(tǒng)大語(yǔ)言模型的不足之處。
前提條件
已創(chuàng)建Milvus實(shí)例,并配置了公網(wǎng)訪問。具體操作請(qǐng)參見快速創(chuàng)建Milvus實(shí)例和網(wǎng)絡(luò)訪問與安全設(shè)置。
已開通PAI(EAS)并創(chuàng)建了默認(rèn)工作空間。具體操作,請(qǐng)參見開通PAI并創(chuàng)建默認(rèn)工作空間。
使用限制
Milvus實(shí)例和PAI(EAS)須在相同地域下。
操作流程
步驟一:通過(guò)PAI部署RAG系統(tǒng)
進(jìn)入模型在線服務(wù)頁(yè)面。
登錄PAI控制臺(tái)。
在左側(cè)導(dǎo)航欄單擊工作空間列表,在工作空間列表頁(yè)面中單擊待操作的工作空間名稱,進(jìn)入對(duì)應(yīng)工作空間內(nèi)。
在工作空間頁(yè)面的左側(cè)導(dǎo)航欄選擇模型部署>模型在線服務(wù)(EAS),進(jìn)入模型在線服務(wù)(EAS)頁(yè)面。
在PAI-EAS模型在線服務(wù)頁(yè)面,單擊部署服務(wù)。
在部署服務(wù)頁(yè)面,選擇大模型RAG對(duì)話系統(tǒng)部署。
在部署大模型RAG對(duì)話系統(tǒng)頁(yè)面,配置以下關(guān)鍵參數(shù),其余參數(shù)可使用默認(rèn)配置,更多參數(shù)詳情請(qǐng)參見大模型RAG對(duì)話系統(tǒng)。
參數(shù)
描述
基本信息
服務(wù)名稱
您可以自定義。
模型來(lái)源
使用默認(rèn)的開源公共模型。
模型類別
本示例以Qwen1.5-1.8b為例。
資源配置
實(shí)例數(shù)
使用默認(rèn)的1。
資源配置選擇
按需選擇GPU資源配置。例如,ml.gu7i.c16m30.1-gu30。
向量檢索庫(kù)設(shè)置
版本類型
選擇Milvus。
訪問地址
Milvus實(shí)例的內(nèi)網(wǎng)地址。您可以在Milvus實(shí)例的實(shí)例詳情頁(yè)面查看。
代理端口
Milvus實(shí)例的Proxy Port。您可以在Milvus實(shí)例的實(shí)例詳情頁(yè)面查看。默認(rèn)為19530。
賬號(hào)
配置為root。
密碼
配置為創(chuàng)建Milvus實(shí)例時(shí),由您自定義的root用戶的密碼。
數(shù)據(jù)庫(kù)名稱
配置為已創(chuàng)建的數(shù)據(jù)庫(kù)名稱,例如default。
Collection名稱
輸入新的Collection名稱。
專有網(wǎng)絡(luò)配置
VPC
創(chuàng)建Milvus實(shí)例時(shí)選擇的VPC、交換機(jī)和安全組。您可以在Milvus實(shí)例的實(shí)例詳情頁(yè)面查看。
交換機(jī)
安全組名稱
單擊部署。
當(dāng)服務(wù)狀態(tài)變?yōu)?b data-tag="uicontrol" id="47d3bcb00aviu" class="uicontrol">運(yùn)行中時(shí),表示服務(wù)部署成功。
步驟二:通過(guò)RAG WebUI上傳知識(shí)庫(kù)
配置RAG對(duì)話系統(tǒng)。
在模型在線服務(wù)(EAS)頁(yè)面,單擊查看Web應(yīng)用,進(jìn)入WebUI頁(yè)面。
配置Embedding模型。
在RAG服務(wù)WebUI界面的Settings選項(xiàng)卡中,系統(tǒng)已自動(dòng)識(shí)別并應(yīng)用了部署服務(wù)時(shí)配置的向量檢索庫(kù)設(shè)置。
Embedding Model Name:系統(tǒng)內(nèi)置四種模型供您選擇,將自動(dòng)為您配置最合適的模型。
Embedding Dimension:選擇Embedding Model Name后,系統(tǒng)會(huì)自動(dòng)進(jìn)行配置,無(wú)需手動(dòng)操作。
測(cè)試向量檢索庫(kù)連接是否正常。
系統(tǒng)已自動(dòng)識(shí)別并應(yīng)用了部署服務(wù)時(shí)配置的向量檢索庫(kù)設(shè)置,并且該設(shè)置不支持修改。您可以單擊Connect Milvus,來(lái)驗(yàn)證Milvus連接是否正常。
上傳知識(shí)庫(kù)。
在RAG服務(wù)WebUI界面的Upload選項(xiàng)卡中,可以上傳知識(shí)庫(kù)文檔。
設(shè)置語(yǔ)義切塊參數(shù)。
通過(guò)配置以下參數(shù)來(lái)控制文檔切塊粒度的大小和進(jìn)行QA信息提?。?/p>
參數(shù)
描述
Chunk Size
指定每個(gè)分塊的大小,單位為字節(jié),默認(rèn)為500。
Chunk Overlap
表示相鄰分塊之間的重疊量,默認(rèn)為10。
Process with QA Extraction Model
通過(guò)選中Yes復(fù)選框啟動(dòng)QA信息提取功能,系統(tǒng)將在您上傳業(yè)務(wù)數(shù)據(jù)文件后自動(dòng)抽取出QA對(duì),以獲得更好的檢索和回答效果。
在Files頁(yè)簽下上傳業(yè)務(wù)數(shù)據(jù)文件(支持多文件上傳)。
本文以唐詩(shī)三百首的poems.txt文檔作為示例數(shù)據(jù),您可以直接使用。
單擊Upload,系統(tǒng)會(huì)先對(duì)上傳的文件進(jìn)行數(shù)據(jù)清洗(文本提取、超鏈接替換等)和語(yǔ)義切塊,然后進(jìn)行上傳。
步驟三:通過(guò)RAG WebUI對(duì)話
在RAG服務(wù)WebUI界面的Chat選項(xiàng)卡中,提供了多種不同的Prompt策略,您可以選擇合適的預(yù)定義Prompt模板或輸入自定義的Prompt模板以獲得更好的推理效果。
配置LLM問答策略
在RAG服務(wù)WebUI界面的Chat選項(xiàng)卡中,選擇LLM。
直接與LLM對(duì)話,返回大模型的回答。
配置Retrieval問答策略
配置RAG(Retrieval + LLM)問答策略
選擇RAG (Retrieval + LLM),然后進(jìn)行向量檢索等一系列實(shí)驗(yàn)。
步驟四:查看知識(shí)庫(kù)切塊
Attu是一款專為Milvus向量數(shù)據(jù)庫(kù)打造的開源數(shù)據(jù)庫(kù)管理工具,提供了便捷的圖形化界面,極大地簡(jiǎn)化了對(duì)Milvus數(shù)據(jù)庫(kù)的操作與管理流程。下面,我們將使用Milvus的Attu工具,查看向量數(shù)據(jù)庫(kù)的存儲(chǔ)內(nèi)容。
進(jìn)入安全配置頁(yè)面。
在左側(cè)導(dǎo)航欄,單擊Milvus實(shí)例。
在頂部菜單欄處,根據(jù)實(shí)際情況選擇地域。
在Milvus實(shí)例頁(yè)面,單擊目標(biāo)實(shí)例名稱。
單擊安全配置頁(yè)簽。
配置公網(wǎng)訪問。
在安全配置頁(yè)簽,單擊開啟公網(wǎng)。
輸入當(dāng)前服務(wù)器的公網(wǎng)訪問IP地址或符合CIDR定義的IP地址段。
多個(gè)IP條目以半角逗號(hào)(,)隔開,不可重復(fù)。您可以通過(guò)訪問IP地址,獲取當(dāng)前服務(wù)器的公網(wǎng)訪問IP地址。
單擊確定。
訪問Attu頁(yè)面。
單擊頁(yè)面上方的Attu manager。
在彈出的對(duì)話框中輸入所要訪問的數(shù)據(jù)庫(kù)、用戶名和密碼,單擊連接,即可打開Attu管理頁(yè)面。
實(shí)例創(chuàng)建完成后,系統(tǒng)會(huì)自動(dòng)創(chuàng)建一個(gè)名為default的默認(rèn)數(shù)據(jù)庫(kù),并為您創(chuàng)建一個(gè)名為root的用戶,該用戶的密碼由您在創(chuàng)建實(shí)例時(shí)自行設(shè)置。
在Attu頁(yè)面,您可以看到RAG服務(wù)自動(dòng)創(chuàng)建的Collection。
相關(guān)文檔
更多關(guān)于Milvus的介紹,請(qǐng)參見什么是向量檢索服務(wù)Milvus版。
更多關(guān)于EAS的介紹,請(qǐng)參見EAS模型服務(wù)概述。