0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是LlamaIndex?LlamaIndex數(shù)據(jù)框架的特點和功能

新機(jī)器視覺 ? 來源:Coggle數(shù)據(jù)科學(xué) ? 2024-01-05 11:08 ? 次閱讀

來源:Coggle數(shù)據(jù)科學(xué)

什么是LlamaIndex ?

LlamaIndex是一個數(shù)據(jù)框架,用于讓基于LLM的應(yīng)用程序攝取、結(jié)構(gòu)化和訪問私有或領(lǐng)域特定的數(shù)據(jù)。它提供Python和Typescript版本。

LLMs提供了人類和數(shù)據(jù)之間的自然語言接口。廣泛可用的模型預(yù)先訓(xùn)練了大量公開可用的數(shù)據(jù),如維基百科、郵件列表、教科書、源代碼等。然而,雖然LLMs在大量數(shù)據(jù)上進(jìn)行了訓(xùn)練,但它們沒有接觸您的數(shù)據(jù),這可能是私有的或與您要解決的問題特定相關(guān)的數(shù)據(jù)。它可能存在于APIs、SQL數(shù)據(jù)庫中,或者被困在PDF和幻燈片中。

LlamaIndex特點

LlamaIndex采用了一種稱為檢索增強(qiáng)生成(RAG)的不同方法。與要求LLMs立即生成答案不同,LlamaIndex:

先從您的數(shù)據(jù)源中檢索信息,

將其添加到您的問題作為上下文,

要求LLMs基于豐富的提示進(jìn)行回答。

RAG克服了微調(diào)方法的所有三個缺點:

由于不涉及訓(xùn)練,因此它是便宜的。

僅在您要求時才檢索數(shù)據(jù),因此它始終保持最新。

LlamaIndex可以向您展示檢索到的文檔,因此它更可信。

LlamaIndex對您如何使用LLMs沒有限制。您仍然可以將LLMs用作自動完成、聊天機(jī)器人、半自主代理等(請參見左側(cè)的用例)。它只是使LLMs對您更有相關(guān)性。

LlamaIndex功能

LlamaIndex提供以下工具:

數(shù)據(jù)連接器從其原生來源和格式攝取您的現(xiàn)有數(shù)據(jù)。這可以是APIs、PDF、SQL等等。

數(shù)據(jù)索引將您的數(shù)據(jù)結(jié)構(gòu)化為中間表示,LLMs可以輕松高效地使用。

引擎為您的數(shù)據(jù)提供自然語言訪問。例如:

查詢引擎是用于知識增強(qiáng)輸出的強(qiáng)大檢索接口。

聊天引擎是用于與數(shù)據(jù)進(jìn)行多消息、“來回”交互的對話接口。

數(shù)據(jù)代理是由工具增強(qiáng)的LLM驅(qū)動的知識工作者,從簡單的輔助功能到API集成等等。

應(yīng)用集成將LlamaIndex與您的生態(tài)系統(tǒng)的其余部分相連接。這可以是LangChain、Flask、Docker、ChatGPT或… 其他任何東西!

LlamaIndex安裝

pipinstallllama-index

安裝通常所需的可選依賴項的方法。目前,這些依賴項分為三組:

pip install llama-index[local_models]安裝對私有LLMs、本地推理和HuggingFace模型有用的工具

pip install llama-index[postgres]如果您正在使用Postgres、PGVector或Supabase,則此選項很有用

pip install llama-index[query_tools]為您提供混合搜索、結(jié)構(gòu)化輸出和節(jié)點后處理的工具

檢索增強(qiáng)生成(RAG)

LLMs在龐大的數(shù)據(jù)集上進(jìn)行訓(xùn)練,但它們并沒有接觸您的數(shù)據(jù)。檢索增強(qiáng)生成(RAG)通過將您的數(shù)據(jù)添加到LLMs已經(jīng)可以訪問的數(shù)據(jù)中來解決這個問題。在本文檔中,您將經(jīng)常看到對RAG的引用。

在RAG中,您的數(shù)據(jù)被加載并準(zhǔn)備進(jìn)行查詢或“索引”。用戶的查詢作用于索引,將您的數(shù)據(jù)篩選到最相關(guān)的上下文。然后,此上下文和您的查詢與LLM一起傳遞給一個提示,LLM將提供響應(yīng)。

即使您正在構(gòu)建的是一個聊天機(jī)器人或代理,您也會想要了解RAG技術(shù),以將數(shù)據(jù)引入您的應(yīng)用程序。

d271009c-aae3-11ee-8b88-92fbcf53809c.png

RAG中的階段

RAG中有五個關(guān)鍵階段,這些階段將成為您構(gòu)建的任何更大應(yīng)用程序的一部分。這些階段是:

加載:這指的是從數(shù)據(jù)所在的地方(無論是文本文件、PDF、另一個網(wǎng)站、數(shù)據(jù)庫還是API)獲取您的數(shù)據(jù),將其引入您的管道。LlamaHub 提供了數(shù)百個可供選擇的連接器。

索引:這意味著創(chuàng)建一個允許查詢數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。對于LLMs,這幾乎總是意味著生成矢量嵌入,這是您的數(shù)據(jù)意義的數(shù)字表示,以及許多其他元數(shù)據(jù)策略,使其易于準(zhǔn)確找到上下文相關(guān)的數(shù)據(jù)。

存儲:一旦您的數(shù)據(jù)被索引,您幾乎總是希望存儲您的索引,以及其他元數(shù)據(jù),以避免必須重新索引它。

查詢:對于任何給定的索引策略,您可以使用LLMs和LlamaIndex數(shù)據(jù)結(jié)構(gòu)以多種方式進(jìn)行查詢,包括子查詢、多步查詢和混合策略。

評估:在任何管道中,檢查其相對于其他策略或在進(jìn)行更改時的有效性是一個關(guān)鍵步驟。評估提供了有關(guān)您對查詢的響應(yīng)的準(zhǔn)確性、忠實度和速度的客觀度量。

d27ebbba-aae3-11ee-8b88-92fbcf53809c.png

每個步驟中的重要概念

在每個階段中,您還會遇到一些涉及到這些階段的術(shù)語。

加載階段

節(jié)點和文檔:一個文檔是圍繞任何數(shù)據(jù)源的容器,例如PDF、API輸出或從數(shù)據(jù)庫檢索的數(shù)據(jù)。節(jié)點是LlamaIndex中數(shù)據(jù)的原子單位,表示源文檔的“塊”。節(jié)點具有將其與所在文檔和其他節(jié)點相關(guān)聯(lián)的元數(shù)據(jù)。

連接器:數(shù)據(jù)連接器(通常稱為讀取器)從不同的數(shù)據(jù)源和數(shù)據(jù)格式中攝取數(shù)據(jù)到文檔和節(jié)點中。

索引階段

索引:一旦攝取了您的數(shù)據(jù),LlamaIndex將幫助您將數(shù)據(jù)索引到易于檢索的結(jié)構(gòu)中。這通常涉及生成矢量嵌入,這些嵌入存儲在一個稱為矢量存儲的專用數(shù)據(jù)庫中。索引還可以存儲有關(guān)您的數(shù)據(jù)的各種元數(shù)據(jù)。

嵌入:LLMs生成稱為嵌入的數(shù)據(jù)的數(shù)字表示。在為相關(guān)性過濾數(shù)據(jù)時,LlamaIndex將查詢轉(zhuǎn)換為嵌入,并且您的矢量存儲將找到數(shù)值上與查詢嵌入相似的數(shù)據(jù)。

查詢階段

檢索器:檢索器定義了在給定查詢時如何有效地從索引中檢索相關(guān)上下文。您的檢索策略對于檢索的數(shù)據(jù)的相關(guān)性以及執(zhí)行此操作的效率至關(guān)重要。

路由器:路由器確定將使用哪個檢索器從知識庫中檢索相關(guān)上下文。更具體地說,RouterRetriever類負(fù)責(zé)選擇一個或多個候選檢索器來執(zhí)行查詢。它們使用選擇器根據(jù)每個候選的元數(shù)據(jù)和查詢選擇最佳選項。

節(jié)點后處理器:節(jié)點后處理器接收一組檢索到的節(jié)點并對其應(yīng)用變換、過濾或重新排序邏輯。

響應(yīng)合成器:響應(yīng)合成器使用用戶查詢和一組檢索到的文本塊從LLM生成響應(yīng)。

將所有內(nèi)容整合在一起

有無數(shù)數(shù)據(jù)支持的LLM應(yīng)用程序的用例,但它們大致可以分為三類:

查詢引擎:查詢引擎是一個端到端的管道,允許您在數(shù)據(jù)上提問。它接收自然語言查詢,并返回一個響應(yīng),以及檢索到的并傳遞給LLM的參考上下文。

聊天引擎:聊天引擎是一個端到端的管道,用于與您的數(shù)據(jù)進(jìn)行對話(而不是單一的問答)。

代理:代理是由LLM驅(qū)動的自動決策者,通過一組工具與世界互動。代理可以采取任意數(shù)量的步驟來完成給定任務(wù),動態(tài)決定最佳行動方案,而不是按照預(yù)先確定的步驟進(jìn)行。這使得它具有處理更復(fù)雜任務(wù)的額外靈活性。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8257

    瀏覽量

    149958
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    750

    瀏覽量

    43900
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3712

    瀏覽量

    64025
  • 自然語言
    +關(guān)注

    關(guān)注

    1

    文章

    279

    瀏覽量

    13295
  • LLM
    LLM
    +關(guān)注

    關(guān)注

    0

    文章

    247

    瀏覽量

    279

原文標(biāo)題:小白學(xué)大模型:LlamaIndex數(shù)據(jù)框架

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    功能程序框架

    功能程序框架,程序功能包括模擬采集,模擬輸出,數(shù)字輸入,數(shù)字輸出,脈沖采集,脈沖輸出,設(shè)置,記錄,圖形顯示等,有需要原程序的聯(lián)系我微信:***,售價:100元
    發(fā)表于 05-13 22:27

    五大Python Web框架詳解

    使用框架,可以讓程序員以更少的代碼實現(xiàn)自定義功能,還可以將更多的精力集中在業(yè)務(wù)邏輯上,更加的輕松便利!2018年主流的Python框架有以下5種:1.DjangoDjango是一個開源的Web應(yīng)用
    發(fā)表于 02-06 17:17

    主流web前端技術(shù)框架

    、強(qiáng)大的組件、單向響應(yīng)的數(shù)據(jù)流,具有高效、靈活的性能,且代碼邏輯簡單,受到越來越多的人的關(guān)注和使用!以上目前Web開發(fā)常用的框架,每個框架都有其不同的特點,且
    發(fā)表于 03-28 16:56

    power_supply框架包括哪些功能?

    power_supply框架包括哪些功能?power_supply框架工作流程是怎樣的?如何在power_supply框架下去添加充電IC驅(qū)動?
    發(fā)表于 07-28 06:02

    OpenHarmony 3.1 Beta版本關(guān)鍵特性解析——HiStreamer框架大揭秘

    是什么?在講 HiStreamer 之前,咱們先來了解下媒體管線框架是什么?媒體框架是處理數(shù)字媒體信息(如編解碼音視頻數(shù)據(jù))的軟件框架。為了更容易擴(kuò)展媒體
    發(fā)表于 03-29 11:51

    WCDB移動數(shù)據(jù)框架功能

    WCDB是一個高效、完整、易用的移動數(shù)據(jù)框架,基于SQLCipher,支持iOS, macOS和Android。 WCDB for iOS/macOS 基本功能 WINQ(WCDB語言集成查詢
    發(fā)表于 09-25 15:56 ?0次下載

    基于功能體驗ios新增了SiriKit框架

    Siri服務(wù) 在iOS10之后,蘋果希望Siri能夠給用戶帶來更多的功能體驗,基于這個出發(fā)點,新增了SiriKit框架。Siri通過語言處理系統(tǒng)對用戶發(fā)出的對話請求進(jìn)行解析之后生成一個用來描述對話
    發(fā)表于 09-26 14:40 ?0次下載
    基于<b class='flag-5'>功能</b>體驗ios新增了SiriKit<b class='flag-5'>框架</b>

    什么是Hibernate?Hibernate框架架構(gòu)與框架原理分析

    什么是Hibernate?直接的翻譯稱為”冬眠”. 框架提供的功能數(shù)據(jù)持久化操作. Hibernate是一個輕量級的, 以O(shè)RM設(shè)計思想構(gòu)建的, 持久化框架. 此
    發(fā)表于 12-07 17:31 ?5235次閱讀
    什么是Hibernate?Hibernate<b class='flag-5'>框架</b>架構(gòu)與<b class='flag-5'>框架</b>原理分析

    SHARC音頻模塊:裸機(jī)框架源代碼的結(jié)構(gòu)及功能

    概述裸機(jī)框架源代碼的結(jié)構(gòu)以及框架各部分的整體功能
    的頭像 發(fā)表于 06-27 06:05 ?2814次閱讀
    SHARC音頻模塊:裸機(jī)<b class='flag-5'>框架</b>源代碼的結(jié)構(gòu)及<b class='flag-5'>功能</b>

    數(shù)據(jù)具有哪些特點優(yōu)勢和應(yīng)用功能

    數(shù)據(jù)的出現(xiàn)給許多企業(yè)對尋找未來的方向帶來了巨大的幫助,許多企業(yè)開始關(guān)注大數(shù)據(jù),現(xiàn)在很多人開始關(guān)注大數(shù)據(jù),大數(shù)據(jù)可以給每個人帶來幫助,但你知道大數(shù)據(jù)
    的頭像 發(fā)表于 06-15 17:04 ?1w次閱讀

    AD7616產(chǎn)品數(shù)據(jù)手冊及功能框架

    AD7616產(chǎn)品數(shù)據(jù)手冊及功能框架
    發(fā)表于 11-09 15:08 ?48次下載

    DB4494_無線工業(yè)節(jié)點上的多傳感器AI數(shù)據(jù)監(jiān)控框架,STM32Cube的功能

    DB4494_無線工業(yè)節(jié)點上的多傳感器AI數(shù)據(jù)監(jiān)控框架,STM32Cube的功能
    發(fā)表于 11-23 20:29 ?0次下載
    DB4494_無線工業(yè)節(jié)點上的多傳感器AI<b class='flag-5'>數(shù)據(jù)</b>監(jiān)控<b class='flag-5'>框架</b>,STM32Cube的<b class='flag-5'>功能</b>包

    LlamaIndex:面向QA系統(tǒng)的全新文檔摘要索引

    添加關(guān)鍵字過濾器是增強(qiáng)檢索結(jié)果的一種方法。但這也帶來了一系列挑戰(zhàn)。我們需要手動或通過 NLP 關(guān)鍵字提取/主題標(biāo)記模型為每個文檔充分確定合適的關(guān)鍵字。此外,我們還需要從查詢中充分推斷出正確的關(guān)鍵字。
    的頭像 發(fā)表于 05-12 09:57 ?1202次閱讀
    <b class='flag-5'>LlamaIndex</b>:面向QA系統(tǒng)的全新文檔摘要索引

    fastapi框架原理及應(yīng)用

    Starlette 是目前測試最快的 Python 框架。只有 Uvicorn 超越了它,Uvicorn 不是框架,而是服務(wù)器。   Starlette 提供了所有基本的 Web 微框架功能
    發(fā)表于 07-18 11:30 ?755次閱讀

    谷歌模型框架是什么?有哪些功能和應(yīng)用?

    谷歌模型框架(Google Model Framework)并不是一個特定的框架,而是指谷歌開發(fā)的一系列軟件框架,用于支持機(jī)器學(xué)習(xí)和人工智能的應(yīng)用。以下是一些與谷歌模型框架相關(guān)的關(guān)鍵組
    的頭像 發(fā)表于 02-29 18:11 ?1229次閱讀