您可以在大模型RAG服務中整合Elasticsearch資訊檢索組件,來增強模型產生答案的準確性和資訊豐富度。Elasticsearch不僅具有高效檢索能力,還提供了詞典配置、索引管理等特色功能,使RAG對話系統能夠更準確地理解查詢意圖,提供更為貼切和有價值的反饋。本文為您介紹如何在部署RAG服務時關聯Elasticsearch,以及對RAG對話系統的基礎功能和Elasticsearch的特色功能進行說明。
背景資訊
EAS簡介
EAS(Elastic Algorithm Service)是PAI的模型線上服務平台,支援將模型部署為線上推理服務和AI-Web應用。EAS提供了彈性擴縮容和藍綠部署等功能,可以支撐您以較低的資源成本擷取高並發且穩定的線上演算法模型服務。此外,EAS具備資源群組管理和版本控制等功能,並且有完整營運監控體系等能力。更詳細的內容介紹,請參見EAS概述。
RAG簡介
隨著AI技術的飛速發展,產生式人工智慧在文本產生、映像產生等領域展現出了令人矚目的成就。然而,在廣泛應用大語言模型(LLM)的過程中,一些固有局限性逐漸顯現:
領域知識局限:大語言模型通常基於大規模通用資料集訓練而成,難以針對專業垂直領域提供深入和針對性處理。
資訊更新滯後:由於模型訓練所依賴的資料集具有靜態特性,大模型無法即時擷取和學習最新的資訊與知識進展。
模型誤導性輸出:受制於資料偏差、模型內在缺陷等因素,大語言模型可能會出現看似合理實則錯誤的輸出,即所謂的“大模型幻覺”。
為克服這些挑戰,並進一步強化大模型的功能性和準確性,檢索增強產生技術RAG(Retrieval-Augmented Generation)應運而生。這一技術通過整合外部知識庫,能夠顯著減少大模型虛構的問題,並提升其擷取及應用最新知識的能力,從而實現更個人化和精準化的LLM定製。
Elasticsearch簡介
Elasticsearch是基於開源Elasticsearch構建的全託管Elasticsearch雲端服務,在100%相容開源功能的同時,支援開箱即用、按需付費。不僅提供雲上開箱即用的Elasticsearch、Logstash、Kibana、Beats在內的Elastic Stack生態組件,還與Elastic官方合作提供免費X-Pack(白金版進階特性)商業外掛程式,整合了安全、SQL、機器學習、警示、監控等進階特性,被廣泛應用於即時日誌分析處理、資訊檢索以及資料的多維查詢和統計分析等情境。更多關於Elasticsearch的詳細介紹,請參見什麼是Elasticsearch。
使用流程
EAS自建了RAG系統化解決方案,提供了靈活可調的參數配置,您可以通過WebUI或者API調用RAG服務,定製自己專屬的對話系統。RAG技術架構的核心為檢索和產生:
在檢索方面,EAS支援多種向量檢索庫,包括開源的Faiss、Elasticsearch、Hologres、OpenSearch以及RDS PostgreSQL。
在產生方面,EAS支援豐富的開源模型,例如千問、Llama、Mistral、百川等,同時支援ChatGPT調用。
本方案以Elasticsearch為例,為您介紹如何使用EAS與Elasticsearch構建一個大模型RAG對話系統。具體流程如下:
首先建立Elasticsearch執行個體,並準備部署RAG服務關聯Elasticsearch執行個體時依賴的配置項。
在EAS模型線上服務平台部署RAG服務,並關聯Elasticsearch執行個體。
您可以在RAG對話系統中串連Elasticsearch,上傳企業知識庫檔案,並進行知識問答。
前提條件
已建立Virtual Private Cloud、交換器和安全性群組。具體操作,請參見搭建IPv4專用網路和建立安全性群組。
注意事項
本實踐受制於LLM服務的伺服器資源大小以及預設Token數量限制,能支援的對話長度有限,旨在協助您體驗RAG對話系統的基本檢索功能。
準備向量檢索庫Elasticsearch
步驟一:建立Elasticsearch執行個體
登入Elasticsearch控制,在Elasticsearch執行個體頁面建立Elasticsearch執行個體。其中關鍵參數配置說明如下,其他配置詳情,請參見建立Elasticsearch執行個體。
參數 | 描述 |
地區和可用性區域 | 選擇與EAS服務相同的地區。 |
執行個體類型 | 選擇通用商業版。 |
登入密碼 | 配置登入密碼,並儲存到本地。 |
步驟二:準備配置項
準備Elasticsearch URL。
在Elasticsearch執行個體頁面的頂部功能表列,選擇建立執行個體的地區,在執行個體列表中單擊已建立的ES執行個體ID。
在基本資料地區,擷取私網地址和相應連接埠號碼,並拼接成Elasticsearch URL。

格式為
http://<私網地址>:<私網連接埠>。重要當使用私網地址時,需確保Elasticsearch執行個體和PAI-RAG服務位於同一VPC內,否則串連失敗。
準備索引名稱。
在Elasticsearch執行個體的頁面,單擊修改配置,更新YML檔案配置,將自動建立索引設定為允許自動建立索引。具體操作,請參見配置YML參數。

完成配置後,您在部署PAI-RAG服務時即可自訂索引名稱,例如es-test。
準備ES User和password。
ES User預設為elastic,ES password是您在建立ES執行個體時設定的登入密碼。如果您忘記了登入密碼,可重設密碼,具體操作,請參見重設執行個體訪問密碼。
部署RAG服務並關聯Elasticsearch
登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS。
在推理服務頁簽,單擊部署服務,然後在情境化模型部署地區,單擊大模型RAG对话系统部署。
在部署大模型RAG對話系統頁面,配置以下關鍵參數,其他參數配置說明,請參見步驟一:部署RAG服務。
參數
描述
基本資料
版本選擇
選擇LLM一體化部署。
RAG版本
選擇pai-rag:0.3.4。
模型類別
選擇qwen1.5-1.8b。
資源資訊
部署資源
系統會根據已選擇的模型類別,自動推薦適合的資源規格。更換至其他資源規格,可能會導致模型服務啟動失敗。
向量檢索庫設定
版本類型
選擇Elasticsearch。
私網地址/連接埠
配置為步驟二中已擷取的Elasticsearch URL,格式為
http://<私網地址>:<私網連接埠>。索引名稱
輸入新的索引名稱或已存在的索引名稱。對於已存在的索引名稱,索引結構應符合PAI-RAG要求,例如您可以填寫之前通過EAS部署RAG服務時自動建立的索引。
帳號
配置為elastic。
密碼
配置為步驟二中已設定的登入密碼。
OSS地址
請選擇當前地區下已建立的OSS儲存目錄。通過掛載OSS路徑實現知識庫管理員。
專用網路
Virtual Private Cloud
請確保所配置的專用網路與Elasticsearch執行個體保持一致。
交換器
安全性群組名稱
參數配置完成後,單擊部署。
使用RAG對話系統
RAG對話系統的基本使用方法如下,更多詳細介紹,請參見大模型RAG對話系統(v0.3.x)。
1、檢查向量檢索庫配置
單擊目標RAG服務名稱,然後在頁面右上方單擊查看Web應用。
檢查向量檢索庫Elasticsearch配置是否正確。
系統已自動設定知識庫default,並自動識別應用了部署RAG服務時配置的向量檢索庫設定。在向量資料庫配置地區,檢查Elasticsearch配置是否正確,可修改對應配置項為正確配置,然後單擊更新知識庫。
2、上傳企業知識庫檔案
在知識庫頁簽的檔案管理Tab頁上傳知識庫檔案。
知識庫上傳完成後,系統會自動按照PAI-RAG格式將檔案儲存體到向量檢索庫。對於同名知識庫檔案,除了FAISS外,其他向量檢索庫將會覆蓋原有檔案。支援的檔案類型為.html、.htm、.txt、.pdf、.pptx、.md、Excel(.xlsx或.xls)、.jsonl、.jpeg、.jpg、.png、.csv或Word(.docx),例如rag_chatbot_test_doc.txt。
3、進行知識問答
在對話頁簽,選擇知識庫名稱、使用意圖(使用更多工具選擇查詢知識庫)進行知識問答。
Elasticsearch特色功能支援
分詞/停用詞典個人化
Elasticsearch內建了IK分詞外掛程式(analysis-ik)。IK分詞器就像是一個詞典,收納了各類常用詞,能夠將語句按照詞語進行拆分,而不是拆分為獨立的漢字。IK內建了主分詞詞庫和停用詞詞庫,主分詞詞庫能夠處理複雜的中文文本分詞,而停用詞詞庫能夠去除無意義的高頻詞(如“的”、“是”、“在”等),二者都能提高檢索的效率和準確性。儘管IK分詞外掛程式內建的詞庫比較強大,但是在特定領域(如法律、醫學等)往往存在大量專業術語,或者知識庫還可能存在一些產品名稱、公司名稱和品牌名稱等,這些詞彙可能不在預設的詞庫中,您可以根據具體業務需求來設定自訂字典,以獲得更準確的檢索效果。更多關於Elasticsearch的IK分詞外掛程式的介紹,請參見使用IK分詞外掛程式(analysis-ik)。
1、準備主詞典或停用詞詞典
在本地準備一份自訂的主詞典或停用詞詞典:
詞典檔案格式:
.dic類型的檔案,檔案名稱包含大小寫字母、數字或底線,且長度不超過30個字元。例如new_word.dic。內容要求:在詞典檔案中,按行添加新詞或停用詞。以主詞典為例,使用內建分詞表,會把“雲端服務器”分為“雲”和“伺服器”兩個詞,按照業務需求希望將其作為一個詞,您可以將“雲端服務器”加入主詞典中,new_word.dic檔案內容樣本如下:
雲端服務器 自訂分詞
2、上傳詞典檔案
準備好詞典檔案後,您需要將詞典檔案上傳到指定位置。以熱更新為例,具體操作步驟如下。更多關於更新詞典檔案的操作方法,請參見使用IK分詞外掛程式(analysis-ik)。
進入Elasticsearch執行個體詳情頁面。
在左側導覽列,單擊Elasticsearch執行個體。
進入目標執行個體。
在頂部功能表列處,選擇資源群組和地區。
在Elasticsearch執行個體中單擊目標執行個體ID。
進入
analysis-ik外掛程式的熱更新頁面。在左側導覽列,選擇。
在系統預設外掛程式列表頁簽,找到
analysis-ik外掛程式,單擊右側操作列的熱更新。
執行熱更新操作。
在IK詞庫配置-熱更新對話方塊,單擊目標詞典右側的編輯,按照介面指引上傳所需的詞典檔案後單擊儲存。
您可通過如下方式上傳詞典檔案:
上傳本地檔案:按照介面指引,單擊
表徵圖或通過拖拽方式上傳本地檔案。上傳OSS檔案:輸入Bucket名稱和詞典檔案名稱,單擊添加。
Bucket與阿里雲ES執行個體需在同一地區。
不支援自動同步更新OSS中的詞典檔案。若源端OSS中的詞典檔案內容發生變化,需通過IK詞典更新操作使之生效。
說明支援上傳多個詞典檔案。詞典檔案尾碼必須是
.dic,檔案名稱可包含大小寫字母、數字和底線,長度不超過30個字元。如需修改已上傳詞典的檔案內容,可單擊目標詞典檔案右側的
表徵圖,下載並修改詞典檔案,然後刪除原詞典檔案並重新上傳。注意刪除原詞典檔案後,需單擊儲存,否則上傳時會提示已存在同名檔案。
單擊確定,等待ES節點完成詞典載入。
阿里雲ES節點的外掛程式具有自動載入詞典檔案的功能,但每個節點擷取詞典檔案的時間存在差異。載入完成後,詞典即可生效,請耐心等待。
詞典檔案更新後,您需要在RAG服務的WebUI頁面重連Elasticsearch,具體操作,請參見串連向量檢索庫。
重連Elasticsearch後,在WebUI頁面進行知識問答。當Retrieval Mode選擇Keyword Only(關鍵詞檢索)或Hybrid(向量檢索+關鍵詞檢索)時,則可以使用更新詞典後的Elasticsearch進行全文檢索索引。

索引管理
Elasticsearch提供了索引管理功能,管理好索引是確保RAG對話系統能夠高效、準確地從大量資訊中檢索出有價值內容,並產生高品質回答的基礎。具體操作步驟如下:
進入Elasticsearch執行個體詳情頁面。
在左側導覽列,單擊Elasticsearch執行個體。
進入目標執行個體。
在頂部功能表列處,選擇資源群組和地區。
在Elasticsearch執行個體中單擊目標執行個體ID。
在左側導覽列,選擇。
在Kibana地區,單擊修改配置,配置Kibana公網或私網訪問白名單。
具體操作,請參見通過Kibana串連叢集。
登入Kibana控制台。
單擊頁面左上方的返回表徵圖,返回可視化控制頁面。
在Kibana地區,單擊公網入口或私網入口。
說明開啟Kibana公網訪問或Kibana私網訪問開關後,頁面才會顯示公網入口或私網入口。

在Kibana登入頁面,輸入使用者名稱和密碼。
使用者名稱:ES執行個體的預設使用者為elastic。
您也可以建立自訂使用者,具體操作請參見通過Elasticsearch X-Pack角色管理實現使用者權限管控。
密碼:使用者的密碼。elastic使用者的密碼在建立執行個體時設定,如果忘記可重設。
重設密碼的注意事項和操作步驟,請參見重設執行個體訪問密碼。
單擊登入,進入的介面如下圖所示。

查看並管理索引。
在Kibana控制台單擊左上方的
,然後在下拉式清單中選擇。在左側導覽列資料地區,單擊索引管理。
在右側索引頁簽,查看相應的索引(例如已建立的索引es_test),並進行包括關閉索引、重新整理索引、清空索引以及刪除索引等管理操作。
相關文檔
針對AIGC和LLM的典型前沿情境,EAS提供了簡化的部署方式。您可以很方便地一鍵拉起服務,詳情請參見EAS情境化部署說明。
RAG服務WebUI介面提供了豐富的推理參數配置選項,以滿足多樣化需求。此外,RAG服務也支援通過API介面進行調用。具體實現細節以及參數配置說明,請參見大模型RAG對話系統(v0.3.x)。
大模型RAG對話系統還支援與其他向量檢索庫進行關聯,例如OpenSearch或RDS PostgreSQL等。詳情請參見基於EAS&OpenSearch搭建RAG檢索增強對話系統或基於EAS&RDS PostgreSQL搭建RAG檢索增強對話系統。