成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

開發者的LlamaIndex入門指南 原創

發布于 2024-5-7 08:41
瀏覽
0收藏

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

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

開發者的LlamaIndex入門指南-AI.x社區

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

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

開始使用LlamaIndex

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

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

>brew install python3

完成后,我們可以通過如下截圖予以確認:

開發者的LlamaIndex入門指南-AI.x社區

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

開發者的LlamaIndex入門指南-AI.x社區

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

開發者的LlamaIndex入門指南-AI.x社區

開發者的LlamaIndex入門指南-AI.x社區

下面,我需要向環境出示自己的OpenAI密鑰。鑒于在IDE下運行的虛擬環境的特性,我們將其粘貼在Visual Studio Code運行項目所制作的launch.json文件中,是最安全的(當然,您可能需要創建一個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下載并放置了一個名為data的文件夾,其中包含了一本冗長的傳記。

在Visual Studio代碼中,我創建了一個starter.py文件,其內容如下:

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軟件包構建出大部分代碼。下面展示的是它對于查詢的回復:

開發者的LlamaIndex入門指南-AI.x社區

為了確認我確實調用了OpenAI,以下便是我帳戶活動的統計數據:

開發者的LlamaIndex入門指南-AI.x社區

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

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

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 ..."

據此,我們可以了解到其后臺發生的調用與變化了。

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

開發者的LlamaIndex入門指南-AI.x社區

據此,我將使用一個故意模糊的問題,來運行如下額外的查詢:

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

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

Adonis is Blessed.

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

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

就像我們之前看到的日志節點那樣,我也截獲到了如下節點信息:

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節。“blessed”一詞確實出現在“Adonis”的附近。

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

小結

目前,雖然我們仍然缺乏一種全面的語言來描述模型內部發生的事情,但是通過LlamaIndex使用的RAG不乏一種可靠的途徑。它既可以增強針對特定領域信息的大語言模型,也可以確保處理結果的可驗證性。而這一切都旨在減少錯誤應答的可能,而這正是當前困擾人工智能的典型問題。

譯者介紹

陳峻(Julian Chen),51CTO社區編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗。

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

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

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 国产精品人人做人人爽 | 中文字幕不卡视频在线观看 | 日本中文字幕在线视频 | av免费在线播放 | www.久久久久久久久久久 | 综合久久av | 国产真实乱全部视频 | 精品一区电影 | 久久久91精品国产一区二区精品 | 中文字幕男人的天堂 | 蜜臀网 | 日韩精品一区二区三区免费视频 | 国产视频久久 | 久久久久国产精品一区三寸 | 国产精品观看 | 啪啪网页 | 欧美一区精品 | 精品一区二区三区视频在线观看 | 午夜国产精品视频 | 国产精品久久精品 | 成年免费大片黄在线观看岛国 | 欧美精品一二三 | 日韩三级在线观看 | 91精品国产色综合久久不卡蜜臀 | 亚洲欧美日韩精品久久亚洲区 | 黄色大全免费看 | 91精品久久久久久久 | 国产伦精品一区二区三区在线 | 99免费在线视频 | 欧美视频在线一区 | 国产精品精品视频一区二区三区 | 国产视频中文字幕在线观看 | 欧美人成在线视频 | 精品欧美激情精品一区 | 久久久久免费精品国产 | 中文字幕一区二区三区日韩精品 | 2019天天操 | 亚洲精品女人久久久 | 91精品国产91久久久久久不卞 | 成人影院午夜 | 欧美日韩成人在线 |