- 大模型RAG實戰:RAG原理、應用與系統構建
- 汪鵬 谷清水 卞龍鵬
- 837字
- 2024-10-29 18:53:32
1.3.1 數據準備
根據LLM需要處理的任務類型,數據準備通常包括識別數據源、從數據源中提取數據、清洗數據并將其存儲在數據庫中等環節。用于存儲數據的數據庫類型和準備數據的步驟可能會因應用場景和檢索方法的不同而有所變化。例如,如果使用像Faiss這樣的向量存儲庫,需要為數據創建嵌入并將其存儲在向量存儲庫中;如果使用像Elasticsearch這樣的搜索引擎,需要將數據索引到搜索引擎中;如果使用像Neo4j這樣的圖數據庫,需要為數據創建節點和邊,并將它們存儲到圖數據庫中。下面將分別介紹不同類型的數據庫以及準備數據的步驟。
1.向量存儲庫
向量存儲庫非常適合存儲文本、圖像、音頻等非結構化數據,并根據語義相似性搜索數據。向量模型用于為數據庫中存儲的數據生成向量嵌入。根據數據類型、任務和向量模型的不同,數據需要被切分成更小的塊。例如,如果要存儲文本數據,則可以將數據切分成句子或段落。如果要存儲代碼,則可以將數據切分成函數或類。如果選擇提供更多的上下文片段,則可以使用更小的塊。將數據切分成塊后,可以為每個塊生成向量并將其存儲在向量存儲庫中。在最簡單的RAG系統中,當向量存儲庫接收到用戶查詢時,查詢也會被轉換為一個向量,向量存儲庫會返回與查詢最相似的候選數據。
2.搜索引擎
在RAG系統中,可以從通用搜索引擎(如百度、Bing等)或內部搜索引擎(如Elasticsearch、Solr等)中檢索數據。在RAG架構的檢索階段,使用問題/任務詳細信息查詢搜索引擎,搜索引擎返回最相關的文檔。搜索引擎對于從網絡中檢索數據和使用關鍵字搜索數據非常有用。可以將來自搜索引擎的數據與來自其他數據庫(如向量存儲庫、圖數據庫等)的數據結合起來,以提高輸出的質量。
3.圖數據庫
圖數據庫以節點和邊的形式存儲數據。它適用于存儲結構化數據,如表格、文檔等,并使用數據之間的關系搜索數據。例如,如果你正在存儲有關人員的數據,可以為每個人創建節點,并在彼此相識的人之間創建邊。當對圖數據庫進行查詢時,圖數據庫返回與查詢節點相連的節點。這種使用知識圖譜的檢索對于完成像問題回答這樣的任務非常有用,其中答案是人或實體。
- 軟件安全技術
- Visual C++程序設計教程
- Redis入門指南(第3版)
- Learning Selenium Testing Tools with Python
- Cocos2d-x游戲開發:手把手教你Lua語言的編程方法
- 架構不再難(全5冊)
- INSTANT Weka How-to
- Java面向對象程序開發及實戰
- 前端架構:從入門到微前端
- Windows Server 2012 Unified Remote Access Planning and Deployment
- Mastering Predictive Analytics with Python
- 領域驅動設計:軟件核心復雜性應對之道(修訂版)
- Spring MVC+MyBatis開發從入門到項目實踐(超值版)
- Python語言科研繪圖與學術圖表繪制從入門到精通
- 從“1”開始3D編程