自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于開源AI數(shù)據(jù)框架LlamaIndex構(gòu)建上下文增強(qiáng)型LLA應(yīng)用 原創(chuàng)

發(fā)布于 2024-7-3 22:28
瀏覽
0收藏

譯者 | 朱先忠

審校 | 重樓

引言


“將你的企業(yè)數(shù)據(jù)轉(zhuǎn)化為可用于實(shí)際生產(chǎn)環(huán)境的LLM應(yīng)用程序,”??LlamaIndex主頁???用60號字體這樣高亮顯示。其副標(biāo)題是“LlamaIndex是構(gòu)建LLM應(yīng)用程序的領(lǐng)先數(shù)據(jù)框架?!蔽也惶_定它是否是業(yè)內(nèi)領(lǐng)先的數(shù)據(jù)框架,但我認(rèn)為它是一個與??LangChain???和??Semantic Kernel??一起構(gòu)建大型語言模型應(yīng)用的領(lǐng)先數(shù)據(jù)框架。

LlamaIndex目前提供兩種開源語言框架和一個云端支持。一種開源語言是Python;另一種開源語言是TypeScript。??LlamaCloud???(目前處于個人預(yù)覽版本)通過??LlamaHub???提供存儲、檢索、數(shù)據(jù)源鏈接,以及針對復(fù)雜文檔的付費(fèi)方式的專有解析服務(wù)??LlamaParse??,該服務(wù)也可作為獨(dú)立服務(wù)提供。

LlamaIndex在加載數(shù)據(jù)、存儲和索引數(shù)據(jù)、通過編排LLM工作流進(jìn)行查詢以及評估LLM應(yīng)用程序的性能方面都具有優(yōu)勢。當(dāng)前,LlamaIndex集成了40多個向量存儲、40多個LLM和160多個數(shù)據(jù)源。其中,LlamaIndex Python代碼存儲庫已獲得超過30K的星級好評。

典型的LlamaIndex應(yīng)用程序會執(zhí)行問答、結(jié)構(gòu)化提取、聊天或語義搜索,和/或充當(dāng)代理。它們可以使用檢索增強(qiáng)生成(RAG)技術(shù)將LLM與特定的數(shù)據(jù)源聯(lián)系起來,這些源通常不包括在模型的原始訓(xùn)練集中。

顯然,LlamaIndex框架將會與LangChain、Semantic Kernel和Haystack等框架展開市場競爭。不過,并非所有這些框架都有完全相同的應(yīng)用范圍和功能支持,但就流行程度而言,LangChain的Python代碼倉庫有超過80K的星級好評,幾乎是LlamaIndex(超過30K的星級好評)的三倍,而相對最晚出現(xiàn)的Semantic Kernel已經(jīng)獲得超過18K的星級好評,略高于LlamaIndex的一半,Haystack的代碼倉庫有超過13K的星級好評。

上述好評結(jié)果是與代碼倉庫的年齡密切相關(guān)的,因?yàn)樾羌壓迷u會隨著時間的推移而積累;這也是為什么我用“超過”來修飾星級好評數(shù)的原因。GitHub上的星級好評數(shù)與歷史進(jìn)程中的流行度存在松散的相關(guān)性。

LlamaIndex、LangChain和Haystack都擁有許多大公司作為用戶,其中一些公司使用了不止一個這樣的框架。Semantic Kernel來自微軟,除了案例研究之外,微軟通常不會公布用戶數(shù)據(jù)。

基于開源AI數(shù)據(jù)框架LlamaIndex構(gòu)建上下文增強(qiáng)型LLA應(yīng)用-AI.x社區(qū)

LlamaIndex框架可幫助你將數(shù)據(jù)、嵌入、LLM、向量數(shù)據(jù)庫和求值連接到應(yīng)用程序中。這些支持可以用于問答、結(jié)構(gòu)化提取、聊天、語義搜索和代理等環(huán)境。

LlamaIndex框架的功能

從高層面來看,LlamaIndex框架的開發(fā)主旨在幫助你構(gòu)建上下文增強(qiáng)的LLM應(yīng)用程序,意味著你可以將自己的私有數(shù)據(jù)與大型語言模型相結(jié)合。上下文增強(qiáng)LLM應(yīng)用程序的示例包括問答聊天機(jī)器人、文檔理解和提取以及自動化代理等領(lǐng)域。

LlamaIndex提供的工具可執(zhí)行數(shù)據(jù)加載、數(shù)據(jù)索引和存儲、使用LLM查詢數(shù)據(jù)以及評估LLM應(yīng)用程序的性能:

  • 數(shù)據(jù)連接器從其本機(jī)源和格式中獲取現(xiàn)有數(shù)據(jù)。?
  • 數(shù)據(jù)索引,也稱為嵌入,以中間表示形式構(gòu)建數(shù)據(jù)。?
  • 引擎提供對數(shù)據(jù)的自然語言訪問。其中包括用于回答問題的查詢引擎,以及用于與你的數(shù)據(jù)進(jìn)行多消息對話的聊天引擎。?
  • 代理是LLM驅(qū)動的知識工具,結(jié)合其他軟件工具增強(qiáng)性能。?
  • 可觀察性/評估集成使你能夠?qū)?yīng)用程序進(jìn)行實(shí)驗(yàn)、評估和監(jiān)控。?

上下文增強(qiáng)

LLM受過大量文本的訓(xùn)練,但不一定是關(guān)于你的領(lǐng)域的文本信息。當(dāng)前,存在三種主要方法可以執(zhí)行上下文增強(qiáng)并添加有關(guān)域的信息,即提供文檔、執(zhí)行RAG和微調(diào)模型。

首先,最簡單的上下文擴(kuò)充方法是將文檔與查詢一起提供給模型,為此你可能不需要LlamaIndex。除非文檔的總大小大于你正在使用的模型的上下文窗口;否則,提供文檔是可以正常工作的,這在最近還是一個常見的問題?,F(xiàn)在,有了具有百萬個標(biāo)記上下文窗口的LLM,這可以使你在執(zhí)行許多任務(wù)時避免繼續(xù)下一步操作。如果你計(jì)劃對一百萬個標(biāo)記語料庫執(zhí)行許多查詢,那么需要對文檔進(jìn)行緩存處理;但是,這是另外一個待討論的話題了。

檢索增強(qiáng)生成在推理時將上下文與LLM相結(jié)合,通常與向量數(shù)據(jù)庫相結(jié)合。RAG過程通常使用嵌入來限制長度并提高檢索到的上下文的相關(guān)性,這既繞過了上下文窗口的限制,又增加了模型看到回答問題所需信息的概率。

從本質(zhì)上講,嵌入函數(shù)獲取一個單詞或短語,并將其映射到浮點(diǎn)數(shù)的向量;這些向量通常存儲在支持向量搜索索引的數(shù)據(jù)庫中。然后,檢索步驟使用語義相似性搜索,通常使用查詢嵌入和存儲向量之間的角度的余弦,來找到“附近”的信息,以便在增強(qiáng)提示中使用。

微調(diào)LLM是一個有監(jiān)督的學(xué)習(xí)過程,涉及到根據(jù)特定任務(wù)調(diào)整模型的參數(shù)。這是通過在一個較小的、特定于任務(wù)或特定于領(lǐng)域的數(shù)據(jù)集上訓(xùn)練模型來完成的,該數(shù)據(jù)集標(biāo)有與目標(biāo)任務(wù)相關(guān)的樣本。使用許多服務(wù)器級GPU進(jìn)行微調(diào)通常需要數(shù)小時或數(shù)天時間,并且需要數(shù)百或數(shù)千個標(biāo)記的樣本。

安裝LlamaIndex

你可以通過三種方式安裝Python版本的LlamaIndex:從??GitHub存儲庫???中的源代碼,使用??llama index starter???安裝,或者使用??llama-index-core??結(jié)合選定的集成組件。starter方式的安裝如下所示:

pip install llama-index

除了LlamaIndex核心之外,這種安裝方式還將安裝OpenAI LLM和嵌入。注意,你需要提供OpenAI API密鑰(請參閱鏈接https://platform.openai.com/docs/quickstart),然后才能運(yùn)行使用這種安裝方式的示例。LlamaIndex starter程序示例非常簡單,基本上僅包含經(jīng)過幾個簡單的設(shè)置步驟后的五行代碼。在??官方的代碼倉庫??中還提供了更多的例子和有關(guān)參考文檔。

進(jìn)行自定義安裝可能看起來像下面這樣:

pip install llama-index-core llama-index-readers-file llama-index-llms-ollama llama-index-embeddings-huggingface

這將安裝一個Ollama和Hugging Face嵌入的接口。此安裝還提供一個本地starter級的示例。無論從哪種方式開始,你都可以使用pip添加更多的接口模塊。

如果你更喜歡用JavaScript或TypeScript編寫代碼,那么你可以使用??LlamaIndex.TS???。TypeScript版本的一個優(yōu)點(diǎn)是,你可以在??StackBlitz??上在線運(yùn)行示例,而無需任何本地設(shè)置。不過,你仍然需要提供一個OpenAI API密鑰。

LlamaCloud和LlamaParse

??LlamaCloud???是一個云服務(wù),允許你上傳、解析和索引文檔,并使用LlamaIndex進(jìn)行搜索。當(dāng)前,該項(xiàng)服務(wù)仍處于個人alpha測試階段,我無法訪問它。

LlamaParse作為LlamaCloud的一個組件,允許你將PDF解析為結(jié)構(gòu)化數(shù)據(jù);它可以通過REST API、Python包和Web UI獲得。這個組件目前處于公測階段。在每周前7K頁的免費(fèi)試用之后,你可以注冊使用LlamaParse,只需支付少量的使用費(fèi)。官網(wǎng)上提供的有關(guān)針對蘋果10K大小文件基礎(chǔ)上的對于LlamaParse和PyPDF比較的例子令人印象深刻,但我自己沒有測試過。

LlamaHub

??LlamaHub??讓你可以訪問LlamaIndex的大量集成,其中包括代理、回調(diào)、數(shù)據(jù)加載程序、嵌入以及大約17個其他類別。通常,這些集成內(nèi)容位于LlamaIndex存儲庫、PyPI和NPM中,你可以使用pip-install或NPM-install加載使用。

create-llama CLI

??create-lama??是一個命令行工具,用于生成LlamaIndex應(yīng)用程序。這是開始使用LlamaIndex的快速方法。生成的應(yīng)用程序中包含一個Next.js驅(qū)動的前端和三種后端方案可供選擇。

RAG-CLI

??RAG CLI???也是一個命令行工具,用于與LLM交流你在計(jì)算機(jī)上本地保存的文件。這只是LlamaIndex的眾多使用場景案例之一,不過這種情況非常普遍。

LlamaIndex組件

??LlamaIndex組件指南??會為你提供有關(guān)LlamaIndex各個部分的具體幫助。下面的第一個屏幕截圖顯示了組件指南菜單。第二個顯示了提示的組件指南,滾動到關(guān)于自定義提示的部分。

基于開源AI數(shù)據(jù)框架LlamaIndex構(gòu)建上下文增強(qiáng)型LLA應(yīng)用-AI.x社區(qū)

LlamaIndex組件指南記錄了構(gòu)成框架的不同部分,其中介紹了相當(dāng)多的組件。

基于開源AI數(shù)據(jù)框架LlamaIndex構(gòu)建上下文增強(qiáng)型LLA應(yīng)用-AI.x社區(qū)

我們正在研究這種提示詞的使用模式。這個特殊的例子展示了如何自定義問答提示,以莎士比亞戲劇的風(fēng)格回答問題。值得注意的是,這是一個零樣本提示,因?yàn)樗鼪]有提供任何示例。

學(xué)習(xí)LlamaIndex

一旦你閱讀、理解并用你喜歡的編程語言(Python或TypeScript)運(yùn)行了入門示例,我建議你盡可能多地閱讀、理解和嘗試其他看起來更有趣的一些示例。下面的屏幕截圖顯示了通過運(yùn)行essay.ts并使用chatEngine.ts詢問相關(guān)問題來生成一個名為essay的文件的結(jié)果。這是一個使用RAG進(jìn)行問答的示例。

其中,chatEngine.ts程序使用LlamaIndex的ContextChatEngine、Document、Settings和VectorStoreIndex等組件。當(dāng)我分析其??源代碼???時,我看到它依賴于OpenAI gpt-3.5-turb-16k模型;這種情況可能會隨著時間的推移而改變。如果我對文檔的分析是正確的話,那么VectorStoreIndex模塊使用了開源的、基于Rust的??Qdrant??向量數(shù)據(jù)庫。

基于開源AI數(shù)據(jù)框架LlamaIndex構(gòu)建上下文增強(qiáng)型LLA應(yīng)用-AI.x社區(qū)

在用我的OpenAI密鑰設(shè)置了終端環(huán)境后,我運(yùn)行essay.ts來生成一個散文題材的文件,并運(yùn)行chatEngine.ts來實(shí)現(xiàn)有關(guān)此文章的查詢。

為LLM提供上下文

正如你所看到的,LlamaIndex非常容易用于創(chuàng)建LLM應(yīng)用程序。我能夠針對OpenAI LLM和RAG Q&A應(yīng)用程序的文件數(shù)據(jù)源進(jìn)行測試。值得注意的是,LlamaIndex集成了40多個向量存儲、40多個LLM和160多個數(shù)據(jù)源;它適用于幾種使用場景,包括Q&A問答、結(jié)構(gòu)化提取、聊天、語義搜索和代理應(yīng)用等。

最后,我建議你認(rèn)真評估LlamaIndex與LangChain、Semantic Kernel和Haystack等框架。這其中的一個或多個很可能會滿足你的需求。當(dāng)然,我不能籠統(tǒng)地推薦其中某一個,因?yàn)椴煌膽?yīng)用程序會有不同的要求。

LlamaIndex優(yōu)點(diǎn)

  1. 幫助創(chuàng)建問答、結(jié)構(gòu)化提取、聊天、語義搜索和代理等類型的LLM應(yīng)用程序?
  2. 支持Python和TypeScript?
  3. 框架是免費(fèi)和開源的?
  4. 提供大量示例和集成組件?

LlamaIndex不足

  1. 云環(huán)境僅限于私人預(yù)覽?
  2. 營銷有點(diǎn)言過其實(shí)?

LlamaIndex費(fèi)用

開源:免費(fèi)。

LlamaParse導(dǎo)入服務(wù):每周免費(fèi)支持7K頁的文檔,然后每1000頁需要支付3美元。

平臺支持

支持Python和TypeScript,以及云端SaaS(目前處于私人預(yù)覽狀態(tài))。

譯者介紹

朱先忠,51CTO社區(qū)編輯,51CTO專家博客、講師,濰坊一所高校計(jì)算機(jī)教師,自由編程界老兵一枚。

原文標(biāo)題:LlamaIndex review: Easy context-augmented LLM applications,作者:Martin Heller

鏈接:https://www.infoworld.com/article/3715622/llamaindex-review-easy-context-augmented-llm-applications.html

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任
標(biāo)簽
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦