博客專欄

EEPW首頁 > 博客 > 從 GPT4All 體驗 LLM

從 GPT4All 體驗 LLM

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

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

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

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

如何獲取 GPT4All

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

在撰寫本文時,GPT4All 可從 https://gpt4all.io/index.html 獲得,您可以將其作為桌面應(yīng)用程序或使用 Python 庫運行。您可以下載操作系統(tǒng)的安裝程序以運行桌面客戶端??蛻舳酥挥袔装費B。您應(yīng)該會看到一個安裝屏幕,如下所示:

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

客戶端和模型準備就緒后,您可以在輸入框中鍵入消息。該模型可能期望特定形式的輸入,例如,特定的語言或樣式。該模型需要對話風格(如 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ī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'
        }
    }
]
}

上面的示例使用輸入作為一個字典的列表。更復(fù)雜的輸入是許多字典的列表,每個字典都包含鍵和 .可以是 、 或 ,而 是文本字符串。如果您使用的是 GPT4All-J 模型(如示例所示),則您的角色是在計算機 .輸入應(yīng)該是這兩方之間的一系列對話。以下是逐步構(gòu)建對話的方法: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)儲消息,縮進 = 4))
打印JSON.轉(zhuǎn)儲ret, 縮進=4))

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

下面是上述代碼輸出的示例,其中打印了模型的最后一個輸入消息及其響應(yīng)。您可能會從另一個模型中獲得更好的結(jié)果。由于模型中的隨機性,您還可能會得到不同的結(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ù)的訓練,可以執(zhí)行語言翻譯、情感分析甚至回答問題等任務(wù)。大型語言模型在包括金融和醫(yī)療保健在內(nèi)的各個行業(yè)中越來越受歡迎。
},
    {
“角色”: “用戶”,
“內(nèi)容”: “你能舉一些例子嗎?
},
    {
“角色”: “助理”,
“內(nèi)容”: “ 大型語言模型被用于各種應(yīng)用,例如:- 語言翻譯和機器翻譯,其中大型語言模型在大量數(shù)據(jù)上進行訓練以提高準確性和速度.- 情感分析,其中大型語言模型被訓練以分析社交媒體數(shù)據(jù)并識別用戶意見中的模式.- 問答, 其中大型語言模型被訓練以基于大量數(shù)據(jù)來回答問題.- 醫(yī)療保健,其中大型語言模型用于分析患者數(shù)據(jù)并識別健康趨勢中的模式.- 金融,其中大型語言模型用于分析財務(wù)數(shù)據(jù)并識別模式”
},
    {
“角色”: “用戶”,
“內(nèi)容”:“有什么限制嗎?
},
    {
“角色”: “助理”,
“內(nèi)容”:“是的,大型語言模型有一些限制。主要挑戰(zhàn)之一是它們需要大量數(shù)據(jù)來訓練,這可能既昂貴又耗時。此外,大型語言模型的計算成本可能很高,并且可能需要專門的硬件才能運行。另一個限制是大型語言模型可能無法理解人類語言的細微差別,這可能會使它們在某些情況下效率降低。最后,大型語言模型可能無法理解對話或文本的上下文,這可能會使它們在某些應(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ù)的培訓,可以執(zhí)行語言翻譯、情感分析甚至回答問題等任務(wù)。它們在金融和醫(yī)療保健等各個行業(yè)越來越受歡迎。然而,存在一些限制,例如昂貴的數(shù)據(jù)和專用硬件,計算費用,缺乏對人類語言和上下文細微差別的理解。
            }
        }
    ]
}
總結(jié)

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

  • GPT4All 有一個桌面客戶端,您可以將其安裝在計算機上

  • GPT4All有一個Python接口,允許您在代碼中與語言模型進行交互

  • 有多種語言模型可用

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


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



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

相關(guān)推薦

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

關(guān)閉