从 GPT4All 体验 LLM
推荐:使用 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 ) 消息 。 append ( ret[“choices”][ 0 ] [ “message” ] ) 消息 。 append ( { “role”: “user” , “ content” : “ 用两句话总结上述内容。 } ) RET = GPTJ 。 chat_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)
相关文章:
从 GPT4All 体验 LLM
推荐:使用 NSDT场景编辑器 助你快速搭建可编辑的3D应用场景 什么是 GPT4All? 术语“GPT”源自 Radford 等人 2018 年论文的标题“通过生成预训练提高语言理解”。本文描述了如何证明变压器模型能够理解人类语言。 从那时起,许多人尝试使用转…...
QGraphicsView实现简易地图4『局部加载-地图漫游』
前文链接:QGraphicsView实现简易地图3『局部加载-地图缩放』 当鼠标拖动地图移动时,需要实时增补和删减瓦片地图,大致思路是计算地图从各方向移动时进出视口的瓦片坐标值,根据变化后的瓦片坐标值来增减地图瓦片,以下将…...
ubuntu 安装 nvidia 驱动
ubuntu 安装 nvidia 驱动 初环境与设备查询型号查询对应的驱动版本安装驱动验证驱动安装结果 本篇文章将介绍ubuntu 安装 nvidia 驱动 初 希望能写一些简单的教程和案例分享给需要的人 环境与设备 系统:ubuntu 设备:Nvidia GeForce RTX 4090 查询型…...
探索APP界面布局的艺术与技巧:从入门到精通
引言 在当今数字化时代,移动应用程序(APP)成为人们生活中不可或缺的一部分。而一个成功的APP界面布局是吸引用户、提升用户体验的关键因素之一。本文将带您深入探索APP界面布局的艺术与技巧,从入门到精通,让您能够轻松…...
回归预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元多输入单输出回归预测
回归预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门…...
15.3.2 【Linux】系统的配置文件:/etc/crontab,/etc/cron.d/*
这个“ crontab -e ”是针对使用者的 cron 来设计的,如果是“系统的例行性任务”时, 该怎么办呢?是否还是需要以 crontab -e 来管理你的例行性工作调度呢?当然不需要,你只要编辑/etc/crontab 这个文件就可以。有一点需…...
新版PMP考试中,敏捷是怎么考的?
01新版考试中的敏捷是怎么考的? 接下来说一下大家最为关注的敏捷内容。这次改版后,题目中添加了大量的敏捷题型,总体比重还是很高的,主观感觉达到了1/3。但和ACP认证相比,PMP中对敏捷管理技术的考察相对来说比较简单&…...
uniapp-----封装接口
系列文章目录 uniapp-----封装接口 uniapp-----分包 文章目录 系列文章目录 uniapp-----封装接口 uniapp-----分包 文章目录 前言 一、技术 二、封装步骤 1.准备 编辑 2.代码填充 request.js: api.js: min.js 页面使用 总结 前言 uniapp的主包要求大…...
[oeasy]python0081_[趣味拓展]ESC键进化历史_键盘演化过程_ANSI_控制序列_转义序列_CSI
光标位置 回忆上次内容 上次了解了 新的转义模式 \033 逃逸控制字符 escape 这个字符 让字符串 退出标准输出流进行控制信息的设置 可以设置 光标输出的位置 ASR33中的ALT MODE 是 今天的ESC键吗????🤔 查询文档…...
第十六次CCF计算机软件能力认证
第一题:小中大 在数据分析中,最小值最大值以及中位数是常用的统计信息。 老师给了你 n 个整数组成的测量数据,保证有序(可能为升序或降序),可能存在重复的数据。 请统计出这组测量数据中的最大值、中位数以及最小值&am…...
关于Postman如何配置随请求携带token
文章目录 一些吐槽实际应用 一些吐槽 首先吐槽一下 postman官网的文档说明,真是乱七八糟,一点都不清晰,能不能好好写用户手册啊(比如把用户都当作初始小白) 然后吐槽一下网上铺天盖地让我写js脚本应用全局access toke…...
逆向破解学习-登山赛车
试玩 课程中的内容 Hook代码 import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage;public class HookComYoDo1SkiSafari2TXYYB_01 extends HookImpl{Overridepublic String p…...
linux下实现生产者和消费者 pv操作
线程同步与线程安全 生产者和消费者特点图示理解编程实现测试结果 生产者和消费者 特点 1.解耦:因为多了一个缓冲区,所以生产者和消费者并不直接相互调用,这样生产者和消费者的代码发生变化,都不会对对方产生影响。这样其实就是把生产者和消…...
十六、遥感影像识别
1、获取遥感影像数据 或用卫星遥感数据,或用无人机低空采集,原始数据加工,最后提供CSV、Excel、GeoTIFF、ENVI等数据文件。 ENVI格式的原始数据文件可以存储多维数据,包括三维数组、二维数组、一维数组甚至标量等。这是因为ENVI格式支持不仅仅是多光谱或高光谱数据…...
源码角度分析@configuration和@component不同
1.configuration是component的内部类,configuration包含component注解。 2.configuration中所有带Bean都会被CGLIB动态代理,调用此配置类中的方法都会返回同一个实例。component不会被代理,调用配置类中的方法都会新建一个实例。 3.configura…...
实现分布式事务:Java与MySQL的XA事务协调
目录 一、什么是XA事务 二、Java中的XA事务支持 三、MySQL的XA事务协调 四、注意事项和最佳实践 五、基于 java 语言的开发工具 六、小结 分布式事务是在跨多个数据库或服务之间保持一致性的重要机制。Java与MySQL的XA(eXtended Architecture)事务…...
如何通过CRM系统进行成功的客户生命周期管理?
吸引新客户,提供无与伦比的服务或商品,以及建立成功的客户关系,是每个企业努力追求的目标。然而,实现这些目标需要的不仅仅是良好的愿景,还需要实施客户生命周期管理流程。 什么是客户生命周期管理? 客户…...
Leetcode 977. 有序数组的平方
题目: Leetcode 977. 有序数组的平方 描述: 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序 思路: 双指针法 数组其实是有序的, 只不过负数平方之…...
vue3中使用toValue
toValue() 是一个在 3.3 版本中新增的 API。它的设计目的是将 ref 或 getter 规范化为值。如果参数是 ref,它会返回 ref 的值;如果参数是函数,它会调用函数并返回其返回值 示例...
阿里云国际版CDN使用教程!
当网站流量达到一定值后,势必会造成网站访问卡堵,这时候阿里云CDN将会一个很好的选择,阿里云 CDN 是由全球分布式边缘节点组成的虚拟网络。阿里云 CDN 可减少源站负载,防止网络拥塞,使用阿里云 CDN 加速图像、小文件、…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...
大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...
Java多线程实现之Runnable接口深度解析
Java多线程实现之Runnable接口深度解析 一、Runnable接口概述1.1 接口定义1.2 与Thread类的关系1.3 使用Runnable接口的优势 二、Runnable接口的基本实现方式2.1 传统方式实现Runnable接口2.2 使用匿名内部类实现Runnable接口2.3 使用Lambda表达式实现Runnable接口 三、Runnabl…...
C#最佳实践:为何优先使用as或is而非强制转换
C#最佳实践:为何优先使用as或is而非强制转换 在 C# 的编程世界里,类型转换是我们经常会遇到的操作。就像在现实生活中,我们可能需要把不同形状的物品重新整理归类一样,在代码里,我们也常常需要将一个数据类型转换为另…...
基于Python的气象数据分析及可视化研究
目录 一.🦁前言二.🦁开源代码与组件使用情况说明三.🦁核心功能1. ✅算法设计2. ✅PyEcharts库3. ✅Flask框架4. ✅爬虫5. ✅部署项目 四.🦁演示效果1. 管理员模块1.1 用户管理 2. 用户模块2.1 登录系统2.2 查看实时数据2.3 查看天…...
LINUX编译vlc
下载 VideoLAN / VLC GitLab 选择最新的发布版本 准备 sudo apt install -y xcb bison sudo apt install -y autopoint sudo apt install -y autoconf automake libtool编译ffmpeg LINUX FFMPEG编译汇总(最简化)_底部的附件列表中】: ffmpeg - lzip…...
分布式计算框架学习笔记
一、🌐 为什么需要分布式计算框架? 资源受限:单台机器 CPU/GPU 内存有限。 任务复杂:模型训练、数据处理、仿真并发等任务耗时严重。 并行优化:通过任务拆分和并行执行提升效率。 可扩展部署:适配从本地…...
设计模式域——软件设计模式全集
摘要 软件设计模式是软件工程领域中经过验证的、可复用的解决方案,旨在解决常见的软件设计问题。它们是软件开发经验的总结,能够帮助开发人员在设计阶段快速找到合适的解决方案,提高代码的可维护性、可扩展性和可复用性。设计模式主要分为三…...
