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

如何使用自己的數(shù)據(jù)和文檔自定義像ChatGPT這樣的大型語言模型

人工智能
本文將展示一個(gè)框架,通過使用文檔嵌入為用戶自己的數(shù)據(jù)提供ChatGPT或GPT-4(或任何其他大型語言模型)的場景。

如果企業(yè)提示ChatGPT關(guān)于其企業(yè)的文檔中包含的內(nèi)容,它將提供不準(zhǔn)確的響應(yīng)。如果用戶正在處理的應(yīng)用程序的語言是高度技術(shù)性的或特定于某個(gè)領(lǐng)域的,那么這可能會出現(xiàn)問題。

為了解決這個(gè)問題,用戶可以用自己的定制文檔來增強(qiáng)大型語言模型。本文將展示一個(gè)框架,通過使用文檔嵌入為用戶自己的數(shù)據(jù)提供ChatGPT或GPT-4(或任何其他大型語言模型)的場景。

為大型語言模型提供場景

大型語言模型對場景敏感。如果用戶給它一個(gè)簡單的提示,就會根據(jù)它們從訓(xùn)練數(shù)據(jù)中提取的知識做出反應(yīng)。但是,如果在提示符前添加自定義信息,則可以修改它們的行為。

例如,如果用戶問ChatGPT這個(gè)問題,“使用運(yùn)行率的風(fēng)險(xiǎn)是什么?”,它會提供一個(gè)很長的答案。

ChatGPT給出的一般性答案

但是,用戶可以提示ChatGPT根據(jù)特定文檔提供答案。在下面的例子中,問了ChatGPT同樣的問題,但是在提示符前加上了“根據(jù)以下文檔回答我的問題”,后面是來自Investopedia公司的一篇關(guān)于運(yùn)行率的文章。這一次,ChatGPT提供了一個(gè)不同的答案,從文章的文本中提取。

從文檔中給出ChatGPT場景

ChatGPT根據(jù)文檔場景進(jìn)行響應(yīng)

這種技術(shù)的價(jià)值是顯而易見的,特別是在場景非常重要的應(yīng)用程序中。但是,人工向提示添加場景是不切實(shí)際的,特別是有數(shù)千個(gè)文檔時(shí)。

假設(shè)企業(yè)有一個(gè)網(wǎng)站,該網(wǎng)站有數(shù)千個(gè)頁面,其中包含有關(guān)金融主題的豐富內(nèi)容,并且希望創(chuàng)建一個(gè)基于ChatGPT API的聊天機(jī)器人,以幫助用戶瀏覽這些內(nèi)容。用戶需要一種系統(tǒng)的方法來將其提示與正確的頁面相匹配,并使用大型語言模型來提供場景感知的響應(yīng)。這就是文檔嵌入的用武之地。

使用嵌入捕獲語義

在進(jìn)入嵌入之前,先為聊天機(jī)器人創(chuàng)建一個(gè)高級框架:

  1. 用戶輸入提示。
  2. 檢索與提示相關(guān)的最佳文檔。
  3. 創(chuàng)建一個(gè)新的提示,其中包括用戶的問題以及文檔中的場景。
  4. 給語言模型提供新制作的提示。
  5. 將答案返回給用戶。

為ChatGPT提供場景

從編程的角度來看,除了第2步之外,這個(gè)過程非常簡單。那么如何決定哪個(gè)文檔與用戶的查詢相關(guān)?一個(gè)基本的答案是使用經(jīng)典的索引和關(guān)鍵字搜索。更好的解決方案是使用嵌入。

嵌入是一個(gè)數(shù)字向量(一個(gè)數(shù)字列表),它捕獲了一條信息的不同特征。嵌入的維度越多,它可以學(xué)習(xí)的特征就越多。

用戶可以對不同類型的數(shù)據(jù)使用嵌入。例如,在與圖像相關(guān)的任務(wù)中,嵌入可以表示不同物體的存在與否,不同顏色的強(qiáng)度,不同物體之間的距離等。

在文本中,嵌入捕獲文本的不同語義方。例如,單詞嵌入可能包含有關(guān)單詞是否與城市或國家、動(dòng)物物種、體育活動(dòng)、政治概念等相關(guān)的信息。在同樣的意義上,短語嵌入創(chuàng)建了單詞序列內(nèi)容的數(shù)字表示。通過測量兩個(gè)嵌入向量之間的距離,可以得到它們對應(yīng)內(nèi)容的相似度。

通過訓(xùn)練機(jī)器學(xué)習(xí)模型(通常是深度神經(jīng)網(wǎng)絡(luò))在大量示例數(shù)據(jù)集上創(chuàng)建嵌入。在許多情況下,嵌入模型是用于最終應(yīng)用(例如,文本生成或圖像分類)的相同模型的修改版本。

為文檔創(chuàng)建嵌入數(shù)據(jù)庫

要將嵌入集成到聊天機(jī)器人工作流中,用戶需要一個(gè)包含所有文檔嵌入的數(shù)據(jù)庫。如果文檔已經(jīng)在數(shù)據(jù)庫中以純文本形式存在,那么就可以創(chuàng)建嵌入了。如果沒有,需要使用某種技術(shù),例如使用Python Beautiful Soup的網(wǎng)頁抓取來從網(wǎng)頁中提取文本。如果其文檔是PDF文件,例如研究論文,則需要從中提取文本(可以使用Python PyPDF庫執(zhí)行此操作)。

要為文檔創(chuàng)建嵌入,用戶可以使用在線服務(wù),例如OpenAI的嵌入API。用戶向API提供文檔的文本,它將返回其嵌入。OpenAI的嵌入有1536個(gè)維度,是最大的嵌入之一。或者可以使用其他嵌入服務(wù),例如Hugging Face或用戶自己的自定義Transformer模型。

一旦有了嵌入,就必須將它們存儲在“矢量數(shù)據(jù)庫”中。向量數(shù)據(jù)庫專門用于嵌入,并提供不同的功能,例如基于不同度量(歐幾里得距離,余弦相似度等)的查詢。

Facebook公司的Faiss是一個(gè)流行的開源矢量數(shù)據(jù)庫,它提供了一個(gè)豐富的Python庫來托管用戶自己的嵌入數(shù)據(jù)。另外,可以使用Pinecone,這是一個(gè)在線矢量數(shù)據(jù)庫系統(tǒng),它抽象了存儲和檢索嵌入的技術(shù)復(fù)雜性。

現(xiàn)在,用戶已經(jīng)擁有了創(chuàng)建針對自己的專有數(shù)據(jù)定制的大型語言模型應(yīng)用程序所需的一切。現(xiàn)在可以像下面這樣改變應(yīng)用程序的邏輯:

  1. 用戶輸入提示
  2. 為用戶提示創(chuàng)建嵌入
  3. 在嵌入數(shù)據(jù)庫中搜索最接近提示嵌入的文檔
  4. 檢索文檔的實(shí)際文本
  5. 創(chuàng)建一個(gè)新的提示,其中包括用戶的問題以及文檔中的場景
  6. 給語言模型提供新制作的提示
  7. 將答案返回給用戶
  8. 獎(jiǎng)勵(lì):提供一個(gè)鏈接到文件,用戶可以進(jìn)一步獲取信息

使用嵌入和矢量數(shù)據(jù)庫檢索相關(guān)文檔

為了避免人工創(chuàng)建整個(gè)工作流,用戶可以使用LangChain,這是一個(gè)用于創(chuàng)建大型語言模型應(yīng)用程序的Python庫。LangChain支持不同類型的大型語言模型和嵌入式,包括OpenAI、Cohere、AI21Labs以及開源模型。它還支持不同的矢量數(shù)據(jù)庫,包括Pinecone和FAISS。它為不同類型的應(yīng)用程序提供了現(xiàn)成的模板,包括聊天機(jī)器人、問答和活動(dòng)代理。

關(guān)于嵌入的重要考慮

為了正確使用大型語言模型的嵌入,需要記住以下事項(xiàng):

  • 在用戶使用的嵌入框架中保持一致:確保在整個(gè)應(yīng)用程序中使用相同的嵌入模型。例如,如果用戶選擇OpenAI嵌入,需要確保使用相同的API和模型來創(chuàng)建文檔嵌入、用戶提示嵌入和搜索矢量數(shù)據(jù)庫。否則,將得到不一致的結(jié)果。
  • 令牌限制:每個(gè)大型語言模型都有令牌限制。例如,ChatGPT可以保留多達(dá)4096個(gè)令牌的場景。GPT-4有8000個(gè)和32000個(gè)令牌限制。許多開源模型限制為2048個(gè)令牌。這包括文檔場景、用戶提示和模型響應(yīng)。因此,用戶必須確保場景數(shù)據(jù)不會填滿大型語言模型的內(nèi)存。一個(gè)良好的經(jīng)驗(yàn)法則是將文檔限制為1000個(gè)令牌。如果文檔比這個(gè)大,可以將其分成幾個(gè)塊,每個(gè)部分之間有一點(diǎn)重疊(大約100個(gè)令牌)。
  • 使用多個(gè)文檔:用戶的回復(fù)不必局限于單個(gè)文檔??梢詸z索嵌入與提示符相似的幾個(gè)文檔,并使用它們來獲取響應(yīng)。為了確保不會遇到令牌限制,可以為每個(gè)文檔分別提示模型。

為什么不微調(diào)大型語言模型呢?

為什么不用微調(diào)大型語言模型來代替場景嵌入?微調(diào)是一個(gè)很好的選擇,使用它取決于用戶的應(yīng)用程序和資源。通過適當(dāng)?shù)奈⒄{(diào),用戶可以從大型語言模型中獲得良好的結(jié)果,而無需提供場景數(shù)據(jù),從而降低了付費(fèi)API的令牌和推理成本。然而,微調(diào)可能是昂貴和復(fù)雜的。使用場景嵌入是一種簡單的選擇,能夠以最小的成本和努力實(shí)現(xiàn)。

最后,如果用戶有一個(gè)良好的數(shù)據(jù)收集管道,可以通過根據(jù)其目的的微調(diào)模型來改進(jìn)系統(tǒng)。

責(zé)任編輯:姜華 來源: 企業(yè)網(wǎng)D1Net
相關(guān)推薦

2021-07-16 11:00:40

Django用戶模型Python

2024-03-29 15:43:32

大型語言模型人工智能

2023-07-10 08:00:00

2024-03-29 09:00:00

大型語言模型ChatGPT

2023-05-24 14:33:08

GPT-4語言模型

2023-03-26 00:24:15

2023-07-21 19:16:59

OpenAIChatGPT

2024-04-16 16:14:01

人工智能LLMRAG

2024-11-21 16:30:21

2023-11-17 15:44:01

2023-11-23 19:36:58

2010-10-25 16:05:07

oracle自定義函數(shù)

2023-02-10 13:12:50

ChatGPTAI

2023-04-27 19:02:30

語言模型管理企業(yè)數(shù)據(jù)

2024-12-23 08:03:13

2024-05-08 17:05:44

2024-10-25 08:30:57

計(jì)算機(jī)視覺神經(jīng)網(wǎng)絡(luò)YOLOv8模型

2015-06-10 10:54:24

自定義路PHP

2021-12-24 15:46:23

鴻蒙HarmonyOS應(yīng)用

2025-03-04 08:42:19

點(diǎn)贊
收藏

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