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

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

譯文 精選
人工智能
本文將向你介紹一款新的免費開源的AI開發(fā)數(shù)據(jù)框架,它支持向量存儲、LLM和數(shù)據(jù)源集成,適用于Q&A問答、結(jié)構(gòu)化提取、聊天、語義搜索和代理開發(fā)等場景下的應(yīng)用。?

譯者 | 朱先忠

審校 | 重樓

引言

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

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

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

典型的LlamaIndex應(yīng)用程序執(zhí)行問答、結(jié)構(gòu)化提取、聊天或語義搜索,和/或充當代理。們可以使用檢索增強生成(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)的,因為星級好評會隨著時間的推移而積累;這也是為什么我用“超過”來修飾星級好評數(shù)的原因。GitHub上的星級好評數(shù)與歷史進程中的流行度存在松散的相關(guān)性。

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

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

LlamaIndex框架的功能

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

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

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

上下文增強

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

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

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

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

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

安裝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),然后才能運行使用這種安裝方式的示例。LlamaIndex starter程序示例非常簡單,基本上僅包含經(jīng)過幾個簡單的設(shè)置步驟后的五行代碼。官方的代碼倉庫中還提供了更多的例子和有關(guā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)點是,你可以在StackBlitz上在線運行示例,而無需任何本地設(shè)置。不過,你仍然需要提供一個OpenAI API密鑰。

LlamaCloud和LlamaParse

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

LlamaParse作為LlamaCloud的一個組件,允許你將PDF解析為結(jié)構(gòu)化數(shù)據(jù);它可以通過REST API、Python包和Web UI獲得。這個組件目前處于公測階段。在每周前7K頁的免費試用之后,你可以注冊使用LlamaParse,只需支付少量的使用費。官網(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交流你在計算機上本地保存的文件。這只是LlamaIndex的眾多使用場景案例之一,不過這種情況非常普遍。

LlamaIndex組件

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

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

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

學(xué)習(xí)LlamaIndex

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

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

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

為LLM提供上下文

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

最后,我建議你認真評估LlamaIndexLangChain、Semantic Kernel和Haystack等框架其中一個或多個可能會滿足你的需求。當然,我不能籠統(tǒng)地推薦其中一個,因為不同的應(yīng)用程序有不同的要求。

LlamaIndex優(yōu)點

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

LlamaIndex不足

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

LlamaIndex費用

開源:免費。

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

平臺支持

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

譯者介紹

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

原文標題:LlamaIndex review: Easy context-augmented LLM applications,作者:Martin Heller


責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2017-05-11 14:00:02

Flask請求上下文應(yīng)用上下文

2024-09-05 08:24:09

2024-06-06 08:42:01

2012-12-31 10:01:34

SELinuxSELinux安全

2012-12-06 10:34:36

戴爾

2022-09-14 13:13:51

JavaScript上下文

2024-04-07 08:50:00

谷歌框架

2020-08-23 08:59:35

number修飾鍵代碼

2022-09-15 08:01:14

繼承基礎(chǔ)設(shè)施基礎(chǔ)服務(wù)

2020-10-21 09:11:52

Spring Boot源碼分析代碼

2025-03-04 08:42:19

2023-07-11 10:02:23

2024-09-30 14:10:00

2025-03-18 08:14:05

2017-12-17 17:01:23

限界上下文系統(tǒng)模型

2022-10-28 16:24:33

Context上下文鴻蒙

2020-07-24 10:00:00

JavaScript執(zhí)行上下文前端

2021-07-26 07:47:36

Cpu上下文進程

2021-07-20 19:30:05

微軟Windows 11Windows

2024-11-26 11:58:26

模型開源
點贊
收藏

51CTO技術(shù)棧公眾號