从 GPT4All 体验 LLM

发布时间 2023-08-08 14:49:15作者: tuyg
推荐:使用NSDT场景编辑器助你快速搭建可编辑的3D应用场景

什么是 GPT4All?

术语“GPT”源自 Radford 等人 2018 年论文的标题“通过生成预训练提高语言理解”。本文描述了如何证明变压器模型能够理解人类语言。

从那时起,许多人尝试使用转换器架构开发语言模型,并且已经发现足够大的模型可以给出出色的结果。但是,开发的许多模型都是专有的。有付费订阅的服务或具有某些限制条款的许可证。由于尺寸的原因,有些甚至无法在商用硬件上运行。

GPT4All项目试图在通用硬件上向公众提供LLM。它允许你训练和部署模型。还提供预训练模型,其尺寸较小,可以在 CPU 上合理运行。

如何获取 GPT4All

让我们只关注使用预先训练的模型。

在撰写本文时,GPT4All 可从 https://gpt4all.io/index.html 获得,您可以将其作为桌面应用程序或使用 Python 库运行。您可以下载操作系统的安装程序以运行桌面客户端。客户端只有几百MB。您应该会看到一个安装屏幕,如下所示:

安装客户端后,首次启动它将提示您安装模型,该模型可以大至数 GB。首先,您可以选择“”(GPT4All-J 型号)。这是一个相对较小但流行的模型。gpt4all-j-v1.3-groovy

客户端和模型准备就绪后,您可以在输入框中键入消息。该模型可能期望特定形式的输入,例如,特定的语言或样式。该模型需要对话风格(如 ChatGPT),并且通常可以很好地处理英语。例如,下面是它如何响应输入“给我 10 种颜色及其 RGB 代码的列表”:

如何在 Python 中使用 GPT4All

GPT4All 的关键组件是模型。桌面客户端只是它的接口。除了客户端,您还可以通过 Python 库调用模型。

不出所料,该库被命名为“”,“,您可以使用以下命令安装它: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)

运行上述代码将下载模型文件(如果尚未下载)。之后,加载模型,提供输入,并将响应作为 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'
        }
    }
]
}

上面的示例使用输入作为一个字典的列表。更复杂的输入是许多字典的列表,每个字典都包含键和 .可以是 、 或 ,而 是文本字符串。如果您使用的是 GPT4All-J 模型(如示例所示),则您的角色是在计算机 .输入应该是这两方之间的一系列对话。以下是逐步构建对话的方法: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” 用两句话总结上述内容。})
RET = GPTJchat_completion消息)
打印JSON.转储消息缩进 = 4))
打印JSON.转储ret 缩进=4))

请注意,您多次调用了该模型。每次它响应时,您都会获取输出并将其附加到消息列表中,以便累积上下文。然后,添加新对话框并再次调用该模型。您需要收集消息,因为每次调用模型时,它都会在不知道上一个对话的情况下重新开始。因此,您的工作是保留历史记录以提醒模型其先前的反应。

下面是上述代码输出的示例,其中打印了模型的最后一个输入消息及其响应。您可能会从另一个模型中获得更好的结果。由于模型中的随机性,您还可能会得到不同的结果:

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
[
    {
“角色”: “用户”,
“内容”:“你能解释一下什么是大型语言模型吗?
},
    {
“角色”: “助理”,
“内容”:“大型语言模型是一种可以处理和理解自然语言(如语音或文本)的人工智能。它经过大量数据的训练,可以执行语言翻译、情感分析甚至回答问题等任务。大型语言模型在包括金融和医疗保健在内的各个行业中越来越受欢迎。
},
    {
“角色”: “用户”,
“内容”: “你能举一些例子吗?
},
    {
“角色”: “助理”,
“内容”: “ 大型语言模型被用于各种应用,例如:- 语言翻译和机器翻译,其中大型语言模型在大量数据上进行训练以提高准确性和速度.- 情感分析,其中大型语言模型被训练以分析社交媒体数据并识别用户意见中的模式.- 问答, 其中大型语言模型被训练以基于大量数据来回答问题.- 医疗保健,其中大型语言模型用于分析患者数据并识别健康趋势中的模式.- 金融,其中大型语言模型用于分析财务数据并识别模式”
},
    {
“角色”: “用户”,
“内容”:“有什么限制吗?
},
    {
“角色”: “助理”,
“内容”:“是的,大型语言模型有一些限制。主要挑战之一是它们需要大量数据来训练,这可能既昂贵又耗时。此外,大型语言模型的计算成本可能很高,并且可能需要专门的硬件才能运行。另一个限制是大型语言模型可能无法理解人类语言的细微差别,这可能会使它们在某些情况下效率降低。最后,大型语言模型可能无法理解对话或文本的上下文,这可能会使它们在某些应用程序中的效果降低。
},
    {
“角色”: “用户”,
“内容”:“用两句话概括以上内容。
    }
]
{
“model”: “ggml-gpt4all-j-v1.3-groovy”,
“用法”:{
“prompt_tokens”:2113,
“completion_tokens”:542,
“total_tokens”:2655
},
“选择”:[
        {
“消息”:{
“角色”: “助理”,
“内容”:“大型语言模型是一种可以处理和理解自然语言(如语音或文本)的人工智能。他们接受过大量数据的培训,可以执行语言翻译、情感分析甚至回答问题等任务。它们在金融和医疗保健等各个行业越来越受欢迎。然而,存在一些限制,例如昂贵的数据和专用硬件,计算费用,缺乏对人类语言和上下文细微差别的理解。
            }
        }
    ]
}

总结

GPT4All 是一个不错的工具,您可以在计算机上使用。它允许您探索与大型语言模型的交互,并帮助您更好地了解模型的功能和限制。在这篇文章中,您了解到:

  • GPT4All 有一个桌面客户端,您可以将其安装在计算机上
  • GPT4All有一个Python接口,允许您在代码中与语言模型进行交互
  • 有多种语言模型可用

原文链接:从 GPT4All 体验 LLM (mvrlink.com)