"This is a positive sentence." Positive
"Negative sentiment in this text." Negative
"Neutral statement here." Neutral

問(wèn)答類任務(wù)

數(shù)據(jù)通常包括問(wèn)題和相應(yīng)的答案,當(dāng)需要結(jié)合上下文信息理解問(wèn)題語(yǔ)境時(shí),通常還需要加上上下文信息,樣本格式示例:

Context                                   Question                            Answer
"The Eiffel Tower is located in Paris." "Where is the Eiffel Tower?" "Paris"
"There are nine planets in our solar system, including Earth."
"How many planets are there?" "Nine"
"William Shakespeare, a famous playwright, wrote 'Romeo and Juliet'."
"Who is the author of this play?" "William Shakespeare"
"Guacamole is a popular Mexican dish made with mashed avocados."
"What is the main ingredient?" "Avocado"

3、建立向量索引

將文檔分塊以后,通常需要對(duì)每個(gè)分塊建立索引用于后續(xù)的檢索。

常見(jiàn)的建立索引的方法如下:

其中,建立向量索引是當(dāng)下最為流行的一種方法。首先,通過(guò)embedding模型將高維度的數(shù)據(jù)映射到低維空間生成向量表示,再對(duì)這些向量進(jìn)行索引和搜索。

embedding模型需要根據(jù)任務(wù)的性質(zhì)和輸入數(shù)據(jù)的特點(diǎn)進(jìn)行選擇。以文本嵌入為例,早期的有Word2Vec、GloVe等模型,現(xiàn)在常用的有 Sentence Transformers、OpenAI的text-embedding-ada-002等。為了更好地匹配數(shù)據(jù)類型和任務(wù)性質(zhì),還需要對(duì)embedding模型進(jìn)行微調(diào)處理。

為分塊的文檔生成向量表示后,通常采用相似度檢索的方式進(jìn)行查詢,可以采用內(nèi)積、歐式距離、余弦距離等方法,其中余弦距離最為常用。

在實(shí)際應(yīng)用中,建立向量索引和查詢存在以下需要考慮的問(wèn)題,可能并不全面,提出來(lái)供大家討論:

1、向量化以后的數(shù)據(jù)膨脹問(wèn)題

2、大規(guī)模向量相似性檢索的效率問(wèn)題

4、大模型選擇與微調(diào)

目前已經(jīng)開(kāi)源的大模型項(xiàng)目有很多,如何選擇適合的大模型,可結(jié)合任務(wù)類型、算力水平等因素綜合考慮,具體可參考之前的文章《該選多大參數(shù)量的大模型?》

如果基礎(chǔ)預(yù)訓(xùn)練大模型無(wú)法滿足在特定任務(wù)上的應(yīng)用要求,還需要對(duì)模型進(jìn)行微調(diào)。目前常用的高效微調(diào)方法主要有LoRA、P- Tuning、Prompt Tuning等,能夠以較低的數(shù)據(jù)量,以及算力和時(shí)間的投入取得較好的微調(diào)效果。

完成大模型微調(diào)以后,可以結(jié)合任務(wù)要求選擇適合的公開(kāi)數(shù)據(jù)集進(jìn)行測(cè)評(píng),以驗(yàn)證微調(diào)效果。

二、開(kāi)源知識(shí)庫(kù)項(xiàng)目

1. FastGPT

FastGPT是一個(gè)基于 LLM 大語(yǔ)言模型的知識(shí)庫(kù)問(wèn)答系統(tǒng),提供開(kāi)箱即用的數(shù)據(jù)處理、模型調(diào)用等能力。同時(shí)可以通過(guò) Flow 可視化進(jìn)行工作流編排,從而實(shí)現(xiàn)復(fù)雜的問(wèn)答場(chǎng)景。項(xiàng)目地址:https://github.com/labring/FastGPT。

功能架構(gòu)圖如下。可以看到,F(xiàn)astGPT可接入多種LLM,將存入知識(shí)庫(kù)的知識(shí)處理為QA對(duì)或問(wèn)題的形式,向量化后存入數(shù)據(jù)庫(kù)。對(duì)話時(shí)將提問(wèn)內(nèi)容向量化,在數(shù)據(jù)庫(kù)中進(jìn)行向量相似性搜索,將搜索到的內(nèi)容發(fā)送給LLM進(jìn)行輸出。

應(yīng)用FastGPT時(shí),首先要?jiǎng)?chuàng)建一個(gè)知識(shí)庫(kù),在知識(shí)庫(kù)中上傳文檔后自動(dòng)生成QA對(duì)或分塊,然后再創(chuàng)建一個(gè)對(duì)話式的應(yīng)用并與創(chuàng)建的知識(shí)庫(kù)相關(guān)聯(lián),這樣大模型在回答時(shí)就能夠應(yīng)用到我們創(chuàng)建的知識(shí)庫(kù)中的知識(shí)。

2. Anything LLM

Anything LLM是一個(gè)開(kāi)源的企業(yè)智能知識(shí)庫(kù)解決方案,能夠通過(guò)聊天的形式,快速地獲取曾經(jīng)喂給它的任何信息。

目前可以通過(guò)https://useanything.com/免費(fèi)試用。

使用步驟

  1. 選擇使用的大模型:目前提供OpenAI,Azure OpenAI和Anthropic Claude 2三種大模型可供選擇,后續(xù)的版本中將允許用戶使用自己的大模型;
  2. 選擇向量數(shù)據(jù)庫(kù):目前提供Chroma、Pinecone、Qdrant、Weaviate和LanceDB,默認(rèn)使用LanceDB;
  3. 可定制界面和使用方式:用戶可自定義logo;支持個(gè)人使用or團(tuán)隊(duì)使用,進(jìn)行相關(guān)配置即可;
  4. 創(chuàng)建workspace:用于上傳與LLM對(duì)話時(shí)需要用到的文檔;上傳的文檔可以在多個(gè)workspace中進(jìn)行復(fù)用。在workspace中可定義“temperature”這個(gè)參數(shù),它主要影響LLM回答的隨機(jī)性和創(chuàng)造性;此外,可以配置展示歷史對(duì)話的個(gè)數(shù),以及自定義對(duì)話的prompt。
  5. 進(jìn)行對(duì)話:對(duì)話時(shí)大模型能夠根據(jù)上傳的文檔進(jìn)行回答,并展示引用的文檔以及具體段落,確保回答可信可溯源。

3. LangChain-Chatchat

LangChain-Chatchat(原LangChain-ChatGLM),基于ChatGLM等大模型與LangChain等應(yīng)用框架實(shí)現(xiàn),是一款開(kāi)源、可離線部署的RAG大模型知識(shí)庫(kù)項(xiàng)目,能夠解決數(shù)據(jù)安全保護(hù)、私域化部署的企業(yè)痛點(diǎn)。

實(shí)現(xiàn)原理如下圖所示。過(guò)程包括加載文件 -> 讀取文本 -> 文本分割 -> 文本向量化 -> 問(wèn)句向量化 -> 在文本向量中匹配出與問(wèn)句向量最相似的 top k個(gè) -> 匹配出的文本作為上下文和問(wèn)題一起添加到 prompt中 -> 提交給 LLM生成回答。

在最佳實(shí)踐中推薦的模型組合如下,用戶也可以根據(jù)需要自由選擇,目前項(xiàng)目支持的大模型、向量數(shù)據(jù)庫(kù)、開(kāi)源embedding模型等非常豐富,可通過(guò)官方wiki進(jìn)行查看。

LLM: Chatglm2-6b

Embedding Models: m3e-base

TextSplitter: ChineseRecursiveTextSplitter

Kb_dataset: faiss

結(jié)語(yǔ)

基于RAG與LLM的知識(shí)庫(kù)作為目前最有潛力的企業(yè)端大模型應(yīng)用之一,從技術(shù)角度可以看到,建設(shè)方案已經(jīng)完備;從業(yè)務(wù)角度,最終的應(yīng)用效果和業(yè)務(wù)價(jià)值還需要觀察,并通過(guò)業(yè)務(wù)側(cè)的反饋不斷地促進(jìn)建設(shè)方案的進(jìn)一步優(yōu)化,比如增加對(duì)多模態(tài)知識(shí)的處理能力等。讓我們共同期待這類應(yīng)用普及那一天的到來(lái)。

參考資料

1、萬(wàn)字長(zhǎng)文:檢索增強(qiáng)LLM

2、RAG 分塊Chunk技術(shù)優(yōu)劣、技巧、方法匯總(五)

3、https://github.com/labring/FastGPT

4、https://github.com/Mintplex-Labs/anything-llm

5、hhttps://github.com/chatchat-space/Langchain-Chatchat/wiki

本文來(lái)源:

https://mp.weixin.qq.com/s/Tqj-traqFWogbQCUeCXtiw

https://mp.weixin.qq.com/s/RqD_4EaonrcaCg8pI6tNsw

上一篇:

產(chǎn)品經(jīng)理必備的API技術(shù)知識(shí)

下一篇:

AI辦公工具類API幫助開(kāi)發(fā)者快速集成辦公應(yīng)用
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門(mén)場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)