llama 0.10.17??版本 閱讀
鏈接:?LlamaIndex ?? v0.10.17
LlamaIndex 是一個(gè)基于?LLM?的應(yīng)用程序的數(shù)據(jù)框架,它受益于上下文增強(qiáng)。這種LLM系統(tǒng)被稱為RAG系統(tǒng),代表“檢索-增強(qiáng)生成”。LlamaIndex 提供了必要的抽象,以便更輕松地?cái)z取、構(gòu)建和訪問私有或特定于域的數(shù)據(jù),以便將這些數(shù)據(jù)安全可靠地注入 LLM,以實(shí)現(xiàn)更準(zhǔn)確的文本生成。
?? 為什么選擇上下文增強(qiáng)?LLM的局限
LLM 在人類和數(shù)據(jù)之間提供了一個(gè)自然語(yǔ)言接口。廣泛可用的模型是在大量公開數(shù)據(jù)(如維基百科、郵件列表、教科書、源代碼等)上預(yù)先訓(xùn)練的。然而,雖然 LLM 是在大量數(shù)據(jù)上訓(xùn)練的,但它們并沒有在你的數(shù)據(jù)上訓(xùn)練,這些數(shù)據(jù)可能是私有的,也可能是特定于你試圖解決的問題。它位于 API 后面、SQL 數(shù)據(jù)庫(kù)中,或被困在 PDF 和幻燈片中。
您可以選擇使用您的數(shù)據(jù)微調(diào)?LLM,但是:LLM是昂貴的。由于培訓(xùn)成本高昂,很難用最新信息更新?LLM。缺乏可觀測(cè)性。當(dāng)你問一個(gè)LLM一個(gè)問題時(shí),LLM是如何得出答案的并不明顯。
無(wú)需微調(diào),而是可以使用稱為檢索增強(qiáng)生成 (RAG)?的上下文增強(qiáng)模式來獲取與特定數(shù)據(jù)相關(guān)的更準(zhǔn)確的文本生成。RAG 涉及以下高級(jí)步驟:首先從數(shù)據(jù)源中檢索信息,將其作為上下文添加到您的問題中,然后要求 LLM 根據(jù)豐富的提示回答。
通過這樣做,RAG 克服了微調(diào)方法的所有三個(gè)弱點(diǎn):不涉及培訓(xùn),所以很便宜。只有在您提出要求時(shí)才會(huì)獲取數(shù)據(jù),因此數(shù)據(jù)始終是最新的。LlamaIndex 可以向您顯示檢索到的文檔,因此更值得信賴。
?? 為什么選擇 LlamaIndex 進(jìn)行上下文增強(qiáng)?
首先,LlamaIndex 對(duì)您使用 LLM 的方式?jīng)]有限制。您仍然可以將 LLM 用作自動(dòng)完成、聊天機(jī)器人、半自主代理等(請(qǐng)參閱左側(cè)的用例)。它只會(huì)使 LLM 與您更相關(guān)。LlamaIndex 提供以下工具來幫助您快速建立生產(chǎn)就緒的 RAG 系統(tǒng):
數(shù)據(jù)連接器從其本機(jī)源和格式引入現(xiàn)有數(shù)據(jù)。這些可以是 API、PDF、SQL 等等。
數(shù)據(jù)索引以中間表示形式構(gòu)建數(shù)據(jù),這些表示形式對(duì) LLM 來說既簡(jiǎn)單又高效。
引擎提供對(duì)數(shù)據(jù)的自然語(yǔ)言訪問。例如:查詢引擎是用于知識(shí)增強(qiáng)輸出的強(qiáng)大檢索接口。聊天引擎是用于與數(shù)據(jù)進(jìn)行多消息“來回”交互的對(duì)話界面。
數(shù)據(jù)代理是由 LLM 驅(qū)動(dòng)的知識(shí)工作者,通過工具進(jìn)行增強(qiáng),從簡(jiǎn)單的幫助程序函數(shù)到 API 集成等。
應(yīng)用程序集成將?LlamaIndex 重新綁定到生態(tài)系統(tǒng)的其余部分。這可能是 LangChain、Flask、Docker、ChatGPT 或......別的東西!
開始
要安裝庫(kù),請(qǐng)執(zhí)行以下操作:
pip?install?llama-index
我們建議您從如何閱讀這些文檔開始,這些文檔將根據(jù)您的經(jīng)驗(yàn)水平為您指明正確的位置。
社區(qū)
-
推特:https://twitter.com/llama_index
-
不和諧?https://discord.gg/dGcwcsnxhU
相關(guān)項(xiàng)目
-
?? LlamaHub:https://llamahub.ai?|大型(且還在不斷增長(zhǎng))的自定義數(shù)據(jù)連接器集合
-
?? LlamaLab:GitHub - run-llama/llama-lab?|建立在LlamaIndex之上的雄心勃勃的項(xiàng)目
安裝設(shè)置過程略。
檢索增強(qiáng)生成 (RAG)
LLM 是在大量數(shù)據(jù)上訓(xùn)練的,但它們不是在您的數(shù)據(jù)上訓(xùn)練的。檢索增強(qiáng)生成 (RAG) 通過將數(shù)據(jù)添加到 LLM 已經(jīng)有權(quán)訪問的數(shù)據(jù)中來解決這個(gè)問題。在本文檔中,您將經(jīng)??吹綄?duì) RAG 的引用。在 RAG 中,您的數(shù)據(jù)被加載并準(zhǔn)備用于查詢或“索引”。用戶查詢作用于索引,索引將數(shù)據(jù)篩選到最相關(guān)的上下文。然后,此上下文和您的查詢會(huì)隨著提示一起轉(zhuǎn)到 LLM,LLM 會(huì)提供響應(yīng)。即使您正在構(gòu)建的是聊天機(jī)器人或代理,您也希望了解將數(shù)據(jù)導(dǎo)入應(yīng)用程序的 RAG 技術(shù)。
RAG 中的階段
RAG 中有五個(gè)關(guān)鍵階段,而這些階段又將成為您構(gòu)建的任何大型應(yīng)用程序的一部分。這些是:
-
加載:這是指將數(shù)據(jù)從其所在位置(無(wú)論是文本文件、PDF、其他網(wǎng)站、數(shù)據(jù)庫(kù)還是 API)獲取到管道中。LlamaHub?提供數(shù)百種連接器供您選擇。
-
索引:這意味著創(chuàng)建一個(gè)允許查詢數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。對(duì)于 LLM 來說,這幾乎總是意味著創(chuàng)建數(shù)據(jù)含義的數(shù)字表示,以及許多其他元數(shù)據(jù)策略,以便輕松準(zhǔn)確地找到上下文相關(guān)的數(shù)據(jù)。
vector?embeddings
-
存儲(chǔ):數(shù)據(jù)編制索引后,您幾乎總是希望存儲(chǔ)索引以及其他元數(shù)據(jù),以避免重新編制索引。
-
查詢:對(duì)于任何給定的索引策略,您可以通過多種方式利用 LLM 和 LlamaIndex 數(shù)據(jù)結(jié)構(gòu)進(jìn)行查詢,包括子查詢、多步查詢和混合策略。
-
評(píng)估:任何管道中的關(guān)鍵步驟是檢查它相對(duì)于其他策略的有效性,或者何時(shí)進(jìn)行更改。評(píng)估提供了客觀的衡量標(biāo)準(zhǔn),以衡量您對(duì)查詢的響應(yīng)的準(zhǔn)確性、忠實(shí)度和速度。
每個(gè)步驟中的重要概念
您還會(huì)遇到一些術(shù)語(yǔ),這些術(shù)語(yǔ)指的是每個(gè)階段中的步驟。
加載階段
節(jié)點(diǎn)和文檔:A?Document
是圍繞任何數(shù)據(jù)源的容器 - 例如,PDF、API 輸出或從數(shù)據(jù)庫(kù)檢索數(shù)據(jù)。A Node
是 LlamaIndex 中數(shù)據(jù)的原子單位,表示源的“塊Document
”。節(jié)點(diǎn)具有元數(shù)據(jù),可將它們與它們所在的文檔以及其他節(jié)點(diǎn)相關(guān)聯(lián)。
連接器: 數(shù)據(jù)連接器(通常稱為 Reader
)將來自不同數(shù)據(jù)源和數(shù)據(jù)格式的數(shù)據(jù)引入到 Documents
和 Nodes
中。
索引階段
索引: 攝取數(shù)據(jù)后,LlamaIndex 將幫助您將數(shù)據(jù)索引到易于檢索的結(jié)構(gòu)中。這通常涉及生成矢量嵌入,這些嵌入存儲(chǔ)在稱為矢量存儲(chǔ)的專用數(shù)據(jù)庫(kù)中。索引還可以存儲(chǔ)有關(guān)數(shù)據(jù)的各種元數(shù)據(jù)。
嵌入: LLM生成稱為embeddings
的數(shù)據(jù)的數(shù)字表示。在篩選數(shù)據(jù)的相關(guān)性時(shí),LlamaIndex 會(huì)將查詢轉(zhuǎn)換為嵌入,并且向量存儲(chǔ)將查找與查詢嵌入在數(shù)值上相似的數(shù)據(jù)。
查詢階段
獵犬: 檢索器定義在給定查詢時(shí)如何有效地從索引中檢索相關(guān)上下文。檢索策略是檢索數(shù)據(jù)的相關(guān)性和效率的關(guān)鍵。
路由器: 路由器確定將使用哪個(gè)檢索器從知識(shí)庫(kù)中檢索相關(guān)上下文。更具體地說,該RouterRetriever
類負(fù)責(zé)選擇一個(gè)或多個(gè)候選檢索器來執(zhí)行查詢。他們使用選擇器根據(jù)每個(gè)候選人的元數(shù)據(jù)和查詢來選擇最佳選項(xiàng)。
節(jié)點(diǎn)后處理器: 節(jié)點(diǎn)后處理器接收一組檢索到的節(jié)點(diǎn),并對(duì)其應(yīng)用轉(zhuǎn)換、過濾或重新排序邏輯。
響應(yīng)合成器: 響應(yīng)合成器使用用戶查詢和一組給定的檢索文本塊從 LLM 生成響應(yīng)。
把它們放在一起
數(shù)據(jù)支持的 LLM 應(yīng)用程序有無(wú)窮無(wú)盡的用例,但它們可以大致分為三類:
查詢引擎: 查詢引擎是一個(gè)端到端管道,可用于對(duì)數(shù)據(jù)提出問題。它接受自然語(yǔ)言查詢,并返回響應(yīng),以及檢索并傳遞給 LLM 的引用上下文。
聊天引擎: 聊天引擎是用于與數(shù)據(jù)進(jìn)行對(duì)話的端到端管道(多個(gè)來回而不是單個(gè)問答)。
代理商: 智能體是由 LLM 提供支持的自動(dòng)化決策者,它通過一組工具與世界互動(dòng)。座席可以采取任意數(shù)量的步驟來完成給定的任務(wù),動(dòng)態(tài)地決定最佳行動(dòng)方案,而不是遵循預(yù)先確定的步驟。這使其具有更大的靈活性,可以處理更復(fù)雜的任務(wù)。文章來源:http://www.zghlxwxcb.cn/news/detail-846150.html
自定義任務(wù)需求:自定義教程 - LlamaIndex ?? v0.10.17文章來源地址http://www.zghlxwxcb.cn/news/detail-846150.html
? 構(gòu)建 LLM 應(yīng)用程序#
到了這里,關(guān)于llama_index 官方文檔閱讀筆記 (持續(xù)更新版)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!