博客專欄

EEPW首頁 > 博客 > 從 GPT4All 體驗(yàn) LLM

從 GPT4All 體驗(yàn) LLM

發(fā)布人:ygtu 時(shí)間:2023-08-08 來源:工程師 發(fā)布文章
推薦:使用NSDT場(chǎng)景編輯器助你快速搭建可編輯的3D應(yīng)用場(chǎng)景
什么是 GPT4All?

術(shù)語“GPT”源自 Radford 等人 2018 年論文的標(biāo)題“通過生成預(yù)訓(xùn)練提高語言理解”。本文描述了如何證明變壓器模型能夠理解人類語言。

從那時(shí)起,許多人嘗試使用轉(zhuǎn)換器架構(gòu)開發(fā)語言模型,并且已經(jīng)發(fā)現(xiàn)足夠大的模型可以給出出色的結(jié)果。但是,開發(fā)的許多模型都是專有的。有付費(fèi)訂閱的服務(wù)或具有某些限制條款的許可證。由于尺寸的原因,有些甚至無法在商用硬件上運(yùn)行。

GPT4All項(xiàng)目試圖在通用硬件上向公眾提供LLM。它允許你訓(xùn)練和部署模型。還提供預(yù)訓(xùn)練模型,其尺寸較小,可以在 CPU 上合理運(yùn)行。

如何獲取 GPT4All

讓我們只關(guān)注使用預(yù)先訓(xùn)練的模型。

在撰寫本文時(shí),GPT4All 可從 https://gpt4all.io/index.html 獲得,您可以將其作為桌面應(yīng)用程序或使用 Python 庫運(yùn)行。您可以下載操作系統(tǒng)的安裝程序以運(yùn)行桌面客戶端。客戶端只有幾百M(fèi)B。您應(yīng)該會(huì)看到一個(gè)安裝屏幕,如下所示:

安裝客戶端后,首次啟動(dòng)它將提示您安裝模型,該模型可以大至數(shù) GB。首先,您可以選擇“”(GPT4All-J 型號(hào))。這是一個(gè)相對(duì)較小但流行的模型。gpt4all-j-v1.3-groovy

客戶端和模型準(zhǔn)備就緒后,您可以在輸入框中鍵入消息。該模型可能期望特定形式的輸入,例如,特定的語言或樣式。該模型需要對(duì)話風(fēng)格(如 ChatGPT),并且通??梢院芎玫靥幚碛⒄Z。例如,下面是它如何響應(yīng)輸入“給我 10 種顏色及其 RGB 代碼的列表”:

如何在 Python 中使用 GPT4All

GPT4All 的關(guān)鍵組件是模型。桌面客戶端只是它的接口。除了客戶端,您還可以通過 Python 庫調(diào)用模型。

不出所料,該庫被命名為“”,“,您可以使用以下命令安裝它:gpt4allpip

1
pip install gpt4all

之后,您只需幾行代碼即可在 Python 中使用它:

1
2
3
4
5
6
import gpt4all
gptj = gpt4all.GPT4All("ggml-gpt4all-j-v1.3-groovy")
messages = [{"role": "user", "content": "Give me a list of 10 colors and their RGB code"}]
ret = gptj.chat_completion(messages)
print(ret)

運(yùn)行上述代碼將下載模型文件(如果尚未下載)。之后,加載模型,提供輸入,并將響應(yīng)作為 Python 字典返回,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
{'model': 'ggml-gpt4all-j-v1.3-groovy',
'usage': {'prompt_tokens': 272,
           'completion_tokens': 301,
           'total_tokens': 573},
'choices': [
    {'message':
        {'role': 'assistant',
         'content': ' Here is a list of 10 colors and their RGB code:Red (255, 0, 0)  Green (0, 255, 0) Blue (0, 0, 255)  Yellow (255, 255, 0) Orange (255, 127, 0)  Purple (0, 128, 255) Pink (255, 192, 203)  Blue-Green (0, 0, 255)  Green-Blue (0, 0, 255)  Blue-Purple (0, 0, 255)  Blue-Green (0, 0, 255)  Blue-Purple (0, 0'
        }
    }
]
}

上面的示例使用輸入作為一個(gè)字典的列表。更復(fù)雜的輸入是許多字典的列表,每個(gè)字典都包含鍵和 .可以是 、 或 ,而 是文本字符串。如果您使用的是 GPT4All-J 模型(如示例所示),則您的角色是在計(jì)算機(jī) .輸入應(yīng)該是這兩方之間的一系列對(duì)話。以下是逐步構(gòu)建對(duì)話的方法:rolecontentrole"system""assistant""user"content"user""assistant"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import json
import gpt4all
gptj = gpt4all.GPT4All("ggml-gpt4all-j-v1.3-groovy")
messages = [{"role": "user", "content": "Can you explain what is a large language model?"}]
ret = gptj.chat_completion(messages)
messages.append(ret["choices"][0]["message"])
messages.append({"role": "user", "content": "Can you give some examples applications?"})
ret = gptj.chat_completion(messages)
messages.append(ret["choices"][0]["message"])
messages.append({"role": "user", "content": "Are there any limitations?"})
ret = gptj.chat_completion(messages)
消息。appendret[“choices”][0][“message”])
消息。append{“role”: “user”, content” 用兩句話總結(jié)上述內(nèi)容。})
RET = GPTJ。chat_completion消息)
打印JSON.轉(zhuǎn)儲(chǔ)消息,縮進(jìn) = 4))
打印JSON.轉(zhuǎn)儲(chǔ)ret 縮進(jìn)=4))

請(qǐng)注意,您多次調(diào)用了該模型。每次它響應(yīng)時(shí),您都會(huì)獲取輸出并將其附加到消息列表中,以便累積上下文。然后,添加新對(duì)話框并再次調(diào)用該模型。您需要收集消息,因?yàn)槊看握{(diào)用模型時(shí),它都會(huì)在不知道上一個(gè)對(duì)話的情況下重新開始。因此,您的工作是保留歷史記錄以提醒模型其先前的反應(yīng)。

下面是上述代碼輸出的示例,其中打印了模型的最后一個(gè)輸入消息及其響應(yīng)。您可能會(huì)從另一個(gè)模型中獲得更好的結(jié)果。由于模型中的隨機(jī)性,您還可能會(huì)得到不同的結(jié)果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
[
    {
“角色”: “用戶”,
“內(nèi)容”:“你能解釋一下什么是大型語言模型嗎?
},
    {
“角色”: “助理”,
“內(nèi)容”:“大型語言模型是一種可以處理和理解自然語言(如語音或文本)的人工智能。它經(jīng)過大量數(shù)據(jù)的訓(xùn)練,可以執(zhí)行語言翻譯、情感分析甚至回答問題等任務(wù)。大型語言模型在包括金融和醫(yī)療保健在內(nèi)的各個(gè)行業(yè)中越來越受歡迎。
},
    {
“角色”: “用戶”,
“內(nèi)容”: “你能舉一些例子嗎?
},
    {
“角色”: “助理”,
“內(nèi)容”: “ 大型語言模型被用于各種應(yīng)用,例如:- 語言翻譯和機(jī)器翻譯,其中大型語言模型在大量數(shù)據(jù)上進(jìn)行訓(xùn)練以提高準(zhǔn)確性和速度.- 情感分析,其中大型語言模型被訓(xùn)練以分析社交媒體數(shù)據(jù)并識(shí)別用戶意見中的模式.- 問答, 其中大型語言模型被訓(xùn)練以基于大量數(shù)據(jù)來回答問題.- 醫(yī)療保健,其中大型語言模型用于分析患者數(shù)據(jù)并識(shí)別健康趨勢(shì)中的模式.- 金融,其中大型語言模型用于分析財(cái)務(wù)數(shù)據(jù)并識(shí)別模式”
},
    {
“角色”: “用戶”,
“內(nèi)容”:“有什么限制嗎?
},
    {
“角色”: “助理”,
“內(nèi)容”:“是的,大型語言模型有一些限制。主要挑戰(zhàn)之一是它們需要大量數(shù)據(jù)來訓(xùn)練,這可能既昂貴又耗時(shí)。此外,大型語言模型的計(jì)算成本可能很高,并且可能需要專門的硬件才能運(yùn)行。另一個(gè)限制是大型語言模型可能無法理解人類語言的細(xì)微差別,這可能會(huì)使它們?cè)谀承┣闆r下效率降低。最后,大型語言模型可能無法理解對(duì)話或文本的上下文,這可能會(huì)使它們?cè)谀承?yīng)用程序中的效果降低。
},
    {
“角色”: “用戶”,
“內(nèi)容”:“用兩句話概括以上內(nèi)容。
    }
]
{
“model”: “ggml-gpt4all-j-v1.3-groovy”,
“用法”:{
“prompt_tokens”:2113,
“completion_tokens”:542,
“total_tokens”:2655
},
“選擇”:[
        {
“消息”:{
“角色”: “助理”,
“內(nèi)容”:“大型語言模型是一種可以處理和理解自然語言(如語音或文本)的人工智能。他們接受過大量數(shù)據(jù)的培訓(xùn),可以執(zhí)行語言翻譯、情感分析甚至回答問題等任務(wù)。它們?cè)诮鹑诤歪t(yī)療保健等各個(gè)行業(yè)越來越受歡迎。然而,存在一些限制,例如昂貴的數(shù)據(jù)和專用硬件,計(jì)算費(fèi)用,缺乏對(duì)人類語言和上下文細(xì)微差別的理解。
            }
        }
    ]
}
總結(jié)

GPT4All 是一個(gè)不錯(cuò)的工具,您可以在計(jì)算機(jī)上使用。它允許您探索與大型語言模型的交互,并幫助您更好地了解模型的功能和限制。在這篇文章中,您了解到:

  • GPT4All 有一個(gè)桌面客戶端,您可以將其安裝在計(jì)算機(jī)上

  • GPT4All有一個(gè)Python接口,允許您在代碼中與語言模型進(jìn)行交互

  • 有多種語言模型可用

原文鏈接:從 GPT4All 體驗(yàn) LLM (mvrlink.com)


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: AI 人工智能 chatgpt

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉