什么是Embedding?
Embedding是一種多維向量陣列,由一系列數字組成,可以代表任何事物,如文本、音樂、視頻等,在這里我們將重點關注文本部分,Embedding之所以重要,是因為它讓我們可以進行語意搜索,也就是通過文本的含義進行相似性檢索,
為什么Embedding在AI中如此重要?
Embedding在AI中的重要性在于,它可以幫助我們解決LLM的tokens長度限制問題,通過使用Embedding,我們可以在與LLM互動時,僅在背景關系視窗中包含相關的文本內容,從而不會超過tokens的長度限制,
如何將Embedding與LLM結合?
我們可以利用Embedding,在和LLM互動時,僅包含相關的文本內容,具體操作方法是,首先將文本內容分塊并轉換為向量陣列,然后將其存盤在向量資料庫中,在回答問題時,我們可以使用相似性搜索將問題向量與檔案向量進行比較,找到最相關的文本塊,然后將這些文本塊與問題一起輸入到LLM中,得到準確的回答,

舉例來說
我們可以利用Embedding,在和LLM互動時,僅包含相關的文本內容,以一個巨大的書籍PDF檔案為例,假設這是一本講述人類歷史的書籍,我們希望從中提取關于某個重要歷史人物的資訊,但不想閱讀整個檔案,
具體操作方法是:
- 將PDF檔案的文本內容分塊,
- 使用Embedding模型將每個文本塊轉換為向量陣列,
- 將這些向量陣列存盤在向量資料庫中,同時保存向量陣列與文本塊之間的關系,
當我們需要回答關于該PDF檔案的問題時,例如:“作者對xxx人物的看法是什么?”我們可以:
- 使用Embedding模型將問題轉換為向量陣列,
- 使用相似性搜索(如,chatGPT推薦的余弦相似度)將問題向量與PDF檔案的向量進行比較,找到最相關的文本塊,
- 將找到的最相關文本塊與問題一起輸入到LLM(如GPT-3)中,得到準確的回答,
通過這種方法,我們可以將Embedding與LLM結合,實作高效的文本搜索和問答功能,目前比較火的類chatPDF、以及檔案問答產品都采用類似的技術,
產品案例
開源fireBase解決方案SupBase二月份時就推出了一款基于chatGPT API的,支持問答的檔案系統(https://supabase.com/blog/chatgpt-supabase-docs)
其中就對這個檔案系統的技術路徑進行了相應的描述:

一些值得參考的資料
- https://openai.com/blog/introducing-text-and-code-embeddings (主要是關于基于embedding的文本與代碼搜索的)
- https://github.com/openai/openai-cookbook/blob/main/examples/Question_answering_using_embeddings.ipynb (openAI提供的jupyter基于embedding的QA代碼示例)
- https://supabase.com/blog/chatgpt-supabase-docs
- 詳細內容會同步至微信公眾號(Hobbes View)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/552005.html
標籤:其他
下一篇:返回列表
