国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

RAG實戰(zhàn) 7 - 使用llama_index實現(xiàn)多模態(tài)RAG

這篇具有很好參考價值的文章主要介紹了RAG實戰(zhàn) 7 - 使用llama_index實現(xiàn)多模態(tài)RAG。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

LLM之RAG實戰(zhàn)(七)| 使用llama_index實現(xiàn)多模態(tài)RAG


轉(zhuǎn)載自:LLM之RAG實戰(zhàn)(七)| 使用llama_index實現(xiàn)多模態(tài)RAG
https://mp.weixin.qq.com/s/FVF09cEO5nUipcL9R8ydXQ


RAG實戰(zhàn) 7 - 使用llama_index實現(xiàn)多模態(tài)RAG,LLM,llama,語言模型,自動化


一、多模態(tài)RAG

OpenAI開發(fā)日上最令人興奮的發(fā)布之一是GPT-4V API(https://platform.openai.com/docs/guides/vision)的發(fā)布。GPT-4V是一個多模態(tài)模型,可以接收文本/圖像,并可以輸出文本響應(yīng)。最近還有一些其他的多模態(tài)模型:LLaVa和Fuyu-8B。

在過去的一年里,大部分應(yīng)用程序開發(fā)都是圍繞文本輸入/文本輸出范式。最典型的例子之一是檢索增強生成(RAG)——將LLM與外部文本語料庫相結(jié)合,對模型未經(jīng)訓(xùn)練的數(shù)據(jù)進行推理。通過處理任意文檔(比如PDF、網(wǎng)頁),將其切分為塊并存儲到向量數(shù)據(jù)庫中,然后通過檢索到相關(guān)的塊輸入給LLM,讓LLM給出用戶期待的回復(fù)。

**與標(biāo)準(zhǔn)RAG pipeline對比,我們看一下多模態(tài)RAG的所有步驟:

輸入:輸入可以是文本或圖像。

檢索:檢索到的上下文可以是文本或圖像。

合成:答案可以在文本和圖像上合成。

響應(yīng):返回的結(jié)果可以是文本和/或圖像。

也可以在圖像和文本之間采用鏈?zhǔn)?順序調(diào)用,例如檢索增強圖像字幕或在多模態(tài)代理進行循環(huán)。


二、多模態(tài)LLM

OpenAIMultiModal類可以直接支持GPT-4V模型,ReplicateMultiModal類可以支持開源多模式模型(目前處于測試版,因此名稱可能會更改)。SimpleDirectoryReader能夠接收音頻、圖像和視頻,現(xiàn)在可以直接將它們傳遞給GPT-4V并進行問答,如下所示:

from llama_index.multi_modal_llms import OpenAIMultiModal
from llama_index import SimpleDirectoryReader

image_documents = SimpleDirectoryReader(local_directory).load_data()

openai_mm_llm = OpenAIMultiModal(
    model="gpt-4-vision-preview", api_key=OPENAI_API_TOKEN, max_new_tokens=300
)
response = openai_mm_llm.complete(
    prompt="what is in the image?", image_documents=image_documents
)

與默認(rèn)具有標(biāo)準(zhǔn)的完成/聊天端點的LLM類不同,多模態(tài)模型(MultiModalLLM)可以接受圖像和文本作為輸入。


三、多模態(tài)嵌入

我們介紹一個新的MultiModalEmbedding基類,它既可以embedding文本也可以embedding圖像。它包含了我們現(xiàn)有嵌入模型的所有方法(子類BaseEmbedding),但也公開了get_image_embedding。我們在這里的主要實現(xiàn)是使用CLIP模型的ClipEmbedding。


四、多模態(tài)索引與檢索

MultiModalVectorIndex可以從向量數(shù)據(jù)庫中索引文本和圖像。與我們現(xiàn)有的(最流行的)索引VectorStoreIndex不同,這個新索引可以存儲文本和圖像文檔。索引文本與之前是一樣的——使用文本嵌入模型嵌入的,并存儲在矢量數(shù)據(jù)庫中。圖像索引是一個單獨的過程,如下所示:、

  • 使用CLIP嵌入圖像;
  • 使用base64編碼或路徑表示圖像節(jié)點,并將其與嵌入一起存儲在矢量數(shù)據(jù)庫中(與文本分離)。

我們將圖像和文本分開存儲,因為我們可能希望對文本使用純文本嵌入模型,而不是CLIP嵌入(例如ada或sbert)。

在檢索期間,我們執(zhí)行以下操作:

  • 通過在文本嵌入上進行矢量搜索來檢索文本;
  • 通過在圖像嵌入上進行矢量搜索來檢索圖像

文本和圖像作為節(jié)點返回到結(jié)果列表中,然后再匯總這些結(jié)果。


五、多模態(tài)RAG實戰(zhàn)

下面我們以查詢特斯拉為例展示llama_index實現(xiàn)多模態(tài)RAG,根據(jù)給出特斯拉的網(wǎng)站或車輛、SEC填充物和維基百科頁面的截圖來查詢特斯拉。

加載文本和圖像混合文本:*

documents = SimpleDirectoryReader("./mixed_wiki/").load_data()

然后,我們在Qdrant中定義兩個獨立的矢量數(shù)據(jù)庫:一個用于存儲文本文檔,一個用于存儲圖像。然后我們定義一個MultiModalVectorStoreIndex。

# Create a local Qdrant vector store
client = qdrant_client.QdrantClient(path="qdrant_mm_db")

text_store = QdrantVectorStore(
    client=client, collection_name="text_collection"
)
image_store = QdrantVectorStore(
    client=client, collection_name="image_collection"
)
storage_context = StorageContext.from_defaults(vector_store=text_store)

# Create the MultiModal index
index = MultiModalVectorStoreIndex.from_documents(
    documents, storage_context=storage_context, image_vector_store=image_store
)

**最后,我們可以通過我們的多模態(tài)語料庫進行提問。

**示例1:檢索增強字幕

我們復(fù)制/粘貼初始圖像標(biāo)題作為輸入,以獲得檢索增強輸出:

retriever_engine = index.as_retriever(
    similarity_top_k=3, image_similarity_top_k=3
)
# retrieve more information from the GPT4V response
retrieval_results = retriever_engine.retrieve(query_str)

檢索到的結(jié)果包含圖像和文本:

RAG實戰(zhàn) 7 - 使用llama_index實現(xiàn)多模態(tài)RAG,LLM,llama,語言模型,自動化


我們可以將其提供給GPT-4V,以提出后續(xù)問題或綜合一致的回答:

RAG實戰(zhàn) 7 - 使用llama_index實現(xiàn)多模態(tài)RAG,LLM,llama,語言模型,自動化


示例2:多模態(tài)RAG查詢

我們提出了一個問題,并從整個多模態(tài)RAG pipeline中得到回應(yīng)。SimpleMultiModalQueryEngine首先檢索相關(guān)圖像/文本集,并將其輸入給視覺模型,以便合成響應(yīng)。

from llama_index.query_engine import SimpleMultiModalQueryEngine

query_engine = index.as_query_engine(
    multi_modal_llm=openai_mm_llm,
    text_qa_template=qa_tmpl
)

query_str = "Tell me more about the Porsche"
response = query_engine.query(query_str)

生成的結(jié)果+來源如下所示:

RAG實戰(zhàn) 7 - 使用llama_index實現(xiàn)多模態(tài)RAG,LLM,llama,語言模型,自動化


RAG實戰(zhàn) 7 - 使用llama_index實現(xiàn)多模態(tài)RAG,LLM,llama,語言模型,自動化


參考文獻:

[1] https://blog.llamaindex.ai/multi-modal-rag-621de7525fea
[2] https://github.com/run-llama/llama_index/blob/main/docs/examples/multi_modal/llava_multi_modal_tesla_10q.ipynb文章來源地址http://www.zghlxwxcb.cn/news/detail-799357.html

到了這里,關(guān)于RAG實戰(zhàn) 7 - 使用llama_index實現(xiàn)多模態(tài)RAG的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • LLM之RAG實戰(zhàn)(八)| 使用Neo4j和LlamaIndex實現(xiàn)多模態(tài)RAG

    LLM之RAG實戰(zhàn)(八)| 使用Neo4j和LlamaIndex實現(xiàn)多模態(tài)RAG

    ? ? ? ?人工智能和大型語言模型領(lǐng)域正在迅速發(fā)展。一年前,沒有人使用LLM來提高生產(chǎn)力。時至今日,很難想象我們大多數(shù)人或多或少都在使用LLM提供服務(wù),從個人助手到文生圖場景。由于大量的研究和興趣,LLM每天都在變得越來越好、越來越聰明。不僅如此,他們的理解

    2024年02月02日
    瀏覽(28)
  • llama_index中query_engine的response_mode詳解

    llama_index中query_engine的response_mode詳解

    0. 前言 在使用llama_index進行內(nèi)容提煉、文章總結(jié)時,我們可以通過設(shè)置不同的ResponseMode來控制生成響應(yīng)的結(jié)果。 在上篇“使用langchain及l(fā)lama_index實現(xiàn)基于文檔(長文本)的相似查詢與詢問”博客中,我們給出了如下代碼(部分): 其中列舉了6種response_mode: 我們也可以通過導(dǎo)

    2024年02月09日
    瀏覽(18)
  • LLM之RAG實戰(zhàn)(十六)| 使用Llama-2、PgVector和LlamaIndex構(gòu)建LLM Rag Pipeline

    LLM之RAG實戰(zhàn)(十六)| 使用Llama-2、PgVector和LlamaIndex構(gòu)建LLM Rag Pipeline

    ? ? ? ?近年來,大型語言模型(LLM)取得了顯著的進步,然而大模型缺點之一是幻覺問題,即“一本正經(jīng)的胡說八道”。其中RAG(Retrieval Augmented Generation,檢索增強生成)是解決幻覺比較有效的方法。本文,我們將深入研究使用 transformer庫 、 Llama-2模型 、 PgVector數(shù)據(jù)庫 和

    2024年01月21日
    瀏覽(21)
  • 使用CLIP和LLM構(gòu)建多模態(tài)RAG系統(tǒng)

    使用CLIP和LLM構(gòu)建多模態(tài)RAG系統(tǒng)

    在本文中我們將探討使用開源大型語言多模態(tài)模型(Large Language Multi-Modal)構(gòu)建檢索增強生成(RAG)系統(tǒng)。本文的重點是在不依賴LangChain或LLlama index的情況下實現(xiàn)這一目標(biāo),這樣可以避免更多的框架依賴。 在人工智能領(lǐng)域,檢索增強生成(retrieve - augmented Generation, RAG)作為一種變革性

    2024年02月02日
    瀏覽(29)
  • [NLP] 使用Llama.cpp和LangChain在CPU上使用大模型-RAG

    [NLP] 使用Llama.cpp和LangChain在CPU上使用大模型-RAG

    下面是構(gòu)建這個應(yīng)用程序時將使用的軟件工具: 1.Llama-cpp-python ?下載llama-cpp, llama-cpp-python [NLP] Llama2模型運行在Mac機器-CSDN博客 2、LangChain LangChain是一個提供了一組廣泛的集成和數(shù)據(jù)連接器,允許我們鏈接和編排不同的模塊??梢猿R娏奶鞕C器人、數(shù)據(jù)分析和文檔問答等應(yīng)用。

    2024年02月04日
    瀏覽(21)
  • 通過Llama Index實現(xiàn)大模型的SQL生成的三種方法詳解

    文中使用了chatglm的llm和embedding modle,利用的智譜的免費token Text2SQL其實就是從文本到SQL,也是NLP中的一種實踐,這可以降低用戶和數(shù)據(jù)庫交互的門檻,無需懂SQL就可以拿到數(shù)據(jù)庫數(shù)據(jù)。Text2SQL實現(xiàn)了從自然語言到SQL語言的生成,更加進一步的是直接給出數(shù)據(jù)中的結(jié)果。在開始

    2024年04月14日
    瀏覽(30)
  • 探索檢索增強生成(RAG)技術(shù)的無限可能:Vector+KG RAG、Self-RAG、多向量檢索器多模態(tài)RAG集成

    探索檢索增強生成(RAG)技術(shù)的無限可能:Vector+KG RAG、Self-RAG、多向量檢索器多模態(tài)RAG集成

    由于 RAG 的整體思路是首先將文本切分成不同的組塊,然后存儲到向量數(shù)據(jù)庫中。在實際使用時,將計算用戶的問題和文本塊的相似度,并召回 top k 的組塊,然后將 top k 的組塊和問題拼接生成提示詞輸入到大模型中,最終得到回答。 優(yōu)化點: 優(yōu)化文本切分的方式,組塊大小

    2024年02月02日
    瀏覽(17)
  • RAG實戰(zhàn)2-如何使用LlamaIndex存儲和讀取向量

    本文是檢索增強生成(Retrieval-augmented Generation,RAG)實戰(zhàn)1-基于LlamaIndex構(gòu)建第一個RAG應(yīng)用的續(xù)集,在閱讀本文之前請先閱讀前篇。 在前篇中,我們介紹了如何使用LlamaIndex構(gòu)建一個非常簡單的RAG應(yīng)用,初步了解了LlamaIndex構(gòu)建RAG應(yīng)用的大體流程。在運行前篇的程序時,我們會發(fā)現(xiàn)兩

    2024年03月09日
    瀏覽(26)
  • RAG實戰(zhàn)6-如何在LlamaIndex中使用自己搭建的API

    在搭建一個大模型API服務(wù)中,我們介紹了如何使用SWIFT框架搭建一個大模型API服務(wù)。在RAG實戰(zhàn)1-5中,我們一直使用的是本地加載大模型的方式來調(diào)用大模型,本文將介紹如何在LlamaIndex中使用自己搭建的大模型API。 LlamaIndex支持部分廠商的API配置,如OpenAI,但我們想使用的是自

    2024年03月14日
    瀏覽(30)
  • LLM之RAG實戰(zhàn)(一):使用Mistral-7b, LangChain, ChromaDB搭建自己的WEB聊天界面

    LLM之RAG實戰(zhàn)(一):使用Mistral-7b, LangChain, ChromaDB搭建自己的WEB聊天界面

    ? ? ? 如何使用沒有被LLM訓(xùn)練過的數(shù)據(jù)來提高LLM性能?檢索增強生成(RAG)是未來的發(fā)展方向,下面將解釋一下它的含義和實際工作原理。 ?? ? ? ?假設(shè)您有自己的數(shù)據(jù)集,例如來自公司的文本文檔。如何讓ChatGPT和其他LLM了解它并回答問題? ? ? ? ? 這可以通過四個步驟

    2024年01月18日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包