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

開發(fā)者的LlamaIndex入門指南

譯文 精選
人工智能
雖然我們?nèi)匀蝗狈σ环N全面的語言來描述模型內(nèi)部發(fā)生的事情,但是通過LlamaIndex使用的RAG不乏一種可靠的途徑。它既可以增強(qiáng)針對特定領(lǐng)域信息的大語言模型,也可以確保處理結(jié)果的可驗(yàn)證性。而這一切都旨在減少錯誤應(yīng)答的可能,而這正是當(dāng)前困擾人工智能的典型問題。

想了解更多AIGC的內(nèi)容,請?jiān)L問:

51CTO AI.x社區(qū)

http://www.scjtxx.cn/aigc/

LlamaIndex是一個(gè)專注于檢索增強(qiáng)生成(RAG)的工具,可以協(xié)助您豐富大模型的數(shù)據(jù)提示。本文將用實(shí)例向您展示和介紹。

眾所周知,GPT(General Pretrained Transformer)為我們描述了一套通過各種矩陣乘法,實(shí)現(xiàn)輸入、轉(zhuǎn)換和輸出的循環(huán)。其中的單詞(實(shí)際上是文本、聲音或圖像的令牌)會被轉(zhuǎn)換為具有足夠維度的矢量,從而表達(dá)內(nèi)在意義。如下圖所示,為了確保被傳入的上下文是可以計(jì)算的,我們需要注意其臨近的動詞,并通過更多的矩陣乘法塊,來移動向量,進(jìn)而更接近其上下文的真正含義(例如,“黑洞”就不僅僅是一個(gè)黑暗的洞穴的含義)。

不過,GPT產(chǎn)品的瓶頸在于:其對于下一個(gè)詞的猜測,頂多只能和輸入文本語料庫的水平相當(dāng)。而如果我們需要向ChatGPT詢問那些它尚未學(xué)習(xí)過的文本時(shí),鑒于輸入窗口的限制,我們無法將大量文本一次性塞入查詢中。而此時(shí),我們就需要用RAG來對提示進(jìn)行“豐富”。

如果您使用過矢量數(shù)據(jù)庫,那么一定聽說過RAG,它是檢索增強(qiáng)生成(Retrieval Augmented Generation)的縮寫,是一種在無需重新訓(xùn)練的情況下,將新數(shù)據(jù)引入大語言模型(LLM)的方法。而LlamaIndex(https://docs.llamaindex.ai/en/stable/)則是一個(gè)專注于檢索的工具,可被用來協(xié)助您“豐富”數(shù)據(jù)的提示。

開始使用LlamaIndex

如果您想直接上手LlamaIndex,其快速的開始鏈接--https://docs.llamaindex.ai/en/stable/getting_started/installation/,給出了“5行代碼”入手法。

在Mac上,我選擇使用Visual Studio Code來安裝并運(yùn)行Python 3。為此,我會打開一個(gè)Warp終端,并輸入如下命令:

>brew install python3

完成后,我們可以通過如下截圖予以確認(rèn):

接著,我會在該空文件夾中啟動Visual Studio 。在安裝了Python擴(kuò)展后,我使用Python來創(chuàng)建環(huán)境,即:從命令面板(Palette)中創(chuàng)建了一個(gè)特定于項(xiàng)目的虛擬環(huán)境。然后,我選擇了Venv,并最后確認(rèn)了自己正在使用的是剛剛安裝好的Python:

根據(jù)LlamaIndex的說明,我們需要在Visual Studio Code的虛擬環(huán)境中,使用pip安裝lama-index包(注意,是在活動終端而非Warp中):

下面,我需要向環(huán)境出示自己的OpenAI密鑰。鑒于在IDE下運(yùn)行的虛擬環(huán)境的特性,我們將其粘貼在Visual Studio Code運(yùn)行項(xiàng)目所制作的launch.json文件中,是最安全的(當(dāng)然,您可能需要創(chuàng)建一個(gè)OpenAI帳戶。):

.. 
"configurations": 
[ 
{ 
"name": "Python Debugger: Current File", 
"type": "debugpy",
"request": "launch", 
"program": "${file}", 
"console": "integratedTerminal", 
"env": 
{  
"OPENAI_API_KEY": "XXXX" 
} 
} 
] 
..

按照LlamaIndex開始教程中的建議,我從鏈接--https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay.txt下載并放置了一個(gè)名為data的文件夾,其中包含了一本冗長的傳記。

在Visual Studio代碼中,我創(chuàng)建了一個(gè)starter.py文件,其內(nèi)容如下:

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data() 
index = VectorStoreIndex.from_documents(documents) 

query_engine = index.as_query_engine() 
response = query_engine.query("What did the author do growing up?") 
print(response)

可見,就算您對Python并無深入的了解,也能依靠llama_index軟件包構(gòu)建出大部分代碼。下面展示的是它對于查詢的回復(fù):

為了確認(rèn)我確實(shí)調(diào)用了OpenAI,以下便是我?guī)艋顒拥慕y(tǒng)計(jì)數(shù)據(jù):

那么,這段代碼到底能做什么呢?它會將新的文本嵌入到矢量存儲中,并通過調(diào)用VectorStoreIndex以便在查詢時(shí)提供檢索,并在調(diào)用進(jìn)入GPT-3.5之前,以英語形式添加到上下文的窗口中。這便是我在前文中提到的對提示進(jìn)行“豐富”的實(shí)踐。

通過添加兩行日志代碼,我既能夠提取大量密集的REST調(diào)用,也可以從llama_index包中提取如下實(shí)用的提示:

DEBUG:llama_index.core.indices.utils:> Top 2 nodes: 
> [Node 167d0eb4-7dba-4b93-85ec-3f5779b32daa] [Similarity score: 0.819982] 
"What I Worked On February 2021 Before college the two main things 
I worked on, outside of school..." 

> [Node ee847bc2-d56a-4c26-afd7-c4bee9a3d116] [Similarity score: 0.811733] 
"I remember taking the boys to the coast on a sunny day in 2015 and 
figuring out how to deal with ..."

據(jù)此,我們可以了解到其后臺發(fā)生的調(diào)用與變化了。

在完成之前,我會在data文件夾中添加另一個(gè)文檔:莎士比亞的《十四行詩》。雖然我無法保障LLM已經(jīng)有所“知曉”,但是顯然這一堆詩并不會構(gòu)成具有實(shí)際意義的敘事。

據(jù)此,我將使用一個(gè)故意模糊的問題,來運(yùn)行如下額外的查詢:

.. 
response = query_engine.query("Who is Blessed?") 
print(response)

就此,我得到的簡短回答是:

Adonis is Blessed.

是不是非常有趣?在后臺,llama_index包“捕獲”的是這十四行詩中提到Adonis的如下區(qū)域:

“你是被祝福的,你的價(jià)值給了你機(jī)會,你必須勝利,雖然缺乏希望。你的本質(zhì)是什么?你是由什么構(gòu)成的?既然每個(gè)人都有自己的影子,而你也有自己的那個(gè)。不過,每個(gè)影子都能借來指代Adonis和其贗品,也就是去模仿你。在Helen的臉頰上,所有美麗的藝術(shù),就像你在希臘的輪胎上涂上了新的顏色。雖說是春天,但一年后仍會腐朽。一個(gè)是你美麗的影子,另一個(gè)則是你的慷慨,你是我們所知道的每一個(gè)幸福的該有的形狀。”

就像我們之前看到的日志節(jié)點(diǎn)那樣,我也截獲到了如下節(jié)點(diǎn)信息:

DEBUG:llama_index.core.indices.utils:> Top 2 nodes: 
> [Node 38e29f53-3656-4b55-ab6b-08acf898f122] [Similarity score: 0.766188] 
"Blessed are you whose worthiness gives scope, Being had to triumph, 
being lacked to hope. What i..." 

> [Node 16d55fda-34ac-42cf-9b08-66d2c6944302] [Similarity score: 0.730936] 
"And other strains of woe, which now seem woe, Compared with loss of thee, 
will not seem so. Some..."

可見,其中大部分出自十四行詩的第53節(jié)?!癰lessed”一詞確實(shí)出現(xiàn)在“Adonis”的附近。

當(dāng)然,對于表現(xiàn)足夠好的LlamaIndex來說,這些都不是問題。我剛剛使用了構(gòu)建管道的第一步,LlamaIndex后續(xù)會為您提供更多的、以這類方式處理文檔的解釋。

小結(jié)

目前,雖然我們?nèi)匀蝗狈σ环N全面的語言來描述模型內(nèi)部發(fā)生的事情,但是通過LlamaIndex使用的RAG不乏一種可靠的途徑。它既可以增強(qiáng)針對特定領(lǐng)域信息的大語言模型,也可以確保處理結(jié)果的可驗(yàn)證性。而這一切都旨在減少錯誤應(yīng)答的可能,而這正是當(dāng)前困擾人工智能的典型問題。

譯者介紹

陳峻(Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項(xiàng)目實(shí)施經(jīng)驗(yàn),善于對內(nèi)外部資源與風(fēng)險(xiǎn)實(shí)施管控,專注傳播網(wǎng)絡(luò)與信息安全知識與經(jīng)驗(yàn)。

原文標(biāo)題:A Developer’s Guide to Getting Started with LlamaIndex,作者:David Eastman

鏈接:https://thenewstack.io/a-developers-guide-to-getting-started-with-llamaindex/。

想了解更多AIGC的內(nèi)容,請?jiān)L問:

51CTO AI.x社區(qū)

http://www.scjtxx.cn/aigc/

責(zé)任編輯:姜華 來源: 51CTO內(nèi)容精選
相關(guān)推薦

2017-11-27 13:09:00

AndroidGradle代碼

2013-08-30 09:41:46

JavaApache CameApache

2025-03-17 08:00:00

2024-02-01 09:37:42

Kubernetes服務(wù)網(wǎng)格? 命令

2018-03-27 23:25:40

Paddle

2024-03-21 08:18:00

Chrome前端瀏覽器

2019-08-16 10:55:37

開發(fā)者技能AI

2023-05-19 10:04:18

Vue開發(fā)者代碼

2019-02-21 13:40:35

Javascript面試前端

2022-01-02 23:26:08

開發(fā)SDK Sentry

2011-04-13 13:38:57

選項(xiàng)APIBlackBerry

2011-04-13 09:55:16

Mail APIBlackBerry

2022-01-11 20:42:54

開發(fā)Sentry標(biāo)志

2022-01-17 19:34:43

SentryWeb APISentry API

2022-01-15 23:33:47

SentryPyCharm配置

2009-02-19 08:46:31

Windows 7開發(fā)者指南下載

2022-01-18 23:26:45

開發(fā)

2011-07-19 09:51:32

性能優(yōu)化Designing FAndroid

2011-04-13 11:31:06

PIM APIBlackBerry

2012-06-13 01:23:30

開發(fā)者程序員
點(diǎn)贊
收藏

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