随着 OpenAI 推出的**ChatGPT的出现,这一技术的采用率和受欢迎程度急剧上升,并继续以指数级增长到今天。由此产生的范式转变已经在我们生活的多个方面得到反映;从我们工作的方式到将我们的默认信息来源切换到回答日常问题的来源。当大众对 ChatGPT 带来的便利赞不绝口时,主流媒体似乎报道不足的另一面——(1)“在用户/提供商端发生电力/网络中断或服务器故障时会发生什么?”,(2)“如果工作场所没有互联网连接怎么办?”或(3)**“数据隐私会被侵犯吗?](https://www.makeuseof.com/things-you-must-not-share-with-ai-chatbots/)”等等。
将(2)应用于现实世界情境,这一点极为相关,因为众所周知,在医疗保健和军事防御等高安全设置中的工作人员必须在没有或几乎没有网络访问的情况下完成大部分工作。
这仅仅是因为任何不希望的数据泄露(例如患者健康数据)的风险是这些高风险环境中无法承受的风险。反过来,这自然引出了一个问题:“ChatGPT 或其他类似技术是否对这一群体的成员来说是不允许的?”
简而言之,答案是不,因为幸运的是,开源社区已经创建了具有可比性能的替代方案。更具体地说,在商业和开源竞争对手之间的竞争不断进行的过程中,出现了一个名为**“离线 ChatGPT”**的类别。
作者插画
项目动机
在本地 PC 上离线运行 ChatGPT
增加的可靠性导致更大的潜在责任风险。
除了上述目标受众之外,还值得注意的是,与谷歌地图类似,ChatGPT 的核心是一个由第三方服务提供商(即 OpenAI)提供的 API 端点。因此,它共享常见的单点故障,例如由于缺乏/有限的互联网连接或数据保密性泄露(在交换高度敏感数据时发生)而无法运行,从技术上讲,使所有最终用户都容易受到任何依赖在线 GPT 服务提供商使用的责任的影响。
幸运的是,通过转向“离线 ChatGPT”,其中一些缺点可以得到缓解,这些“离线 ChatGPT”是本地运行的,并且将输入/输出信息保持私密和封装。
本地化 ChatGPT 的选择:GPT4All
有两个关键考虑因素促使我做出这个选择。
- 简单设置
官方GPT4All 网站为开发人员和最终用户提供了简洁精确的设置其交互式聊天界面的说明。在“安装说明”部分,有三种可供下载的选择 –
作者截图 | 三个不同的下载分别针对每个操作系统 – Windows、Mac 和 Linux。| 注意:Windows 用户应选择如上所示的最左侧按钮(用黄色突出显示)。
安装完成后,可以从开始菜单启动聊天应用程序界面 –
作者截图 | 在 Windows 操作系统上搜索“GPT4All”并选择通过 GPT4All 界面开始与 AI 机器人助手进行对话。
2. 易于定制(针对开发者)
虽然聊天应用程序本身相当用户友好,但其便利性是以牺牲严格的用户体验为代价的。它不是平台无关的,因为它需要为每个操作系统提供不同的安装程序构建。为了提高用户体验,应用程序在源代码级别使用 GPT4All Java 绑定进行配置,从而消除了定制构建的需求。
因此,为了提高用户体验,我开始了这个宠物项目,使用GPT4All Java 绑定(版本 2.4.11)在源代码级别配置应用程序,以消除定制构建的需求并重新打包为便携式和独立工具。
关于 GPT4All 版本的注意事项
只有GPT4All v2.5.0及更高版本支持 GGUF 格式的模型(.gguf)。在撰写本文时,Java 绑定的最新版本是v2.4.11 – 它仅与 GGML 格式的模型兼容。(来源:官方 GPT4All GitHub 仓库)
设置 GPT4All Java 项目的步骤
预先条件
-
在 PC 上安装了JDK 11和JDK 8。安装程序可以从Oracle获取(默认情况下项目运行在 JDK 11 平台上)
-
(可选但推荐)使用 Java IDE,如NetBeans或Eclipse (注意:在这个演示中应使用 NetBeans)
-
Download a sample model such as ggml-gpt4all-j-v1.3-groovy.bin (~ 3.5GB) to test generated responses
Based on the above GitHub documentation*,* download the Java bindings which are packaged into a single jar file – gpt4all-java-binding-1.1.5.jar and include it in the project classpath:
<dependency>
<groupId>com.hexadevlabs</groupId>
<artifactId>gpt4all-java-binding</artifactId>
<version>1.1.5</version>
</dependency>
Imagine by Author | Note that within gpt4all-java-binding-1.1.5.jar, the native bindings for each of the respective OS – Linux (Ubuntu), MacOS and Windows are embedded.
需要包含的其他 强制 JAR 依赖项包括:
-
asm-9.2.jar
-
asm-analysis-9.2.jar
-
asm-commons-9.2.jar
-
asm-tree-9.2.jar
-
asm-util-9.2.jar
-
jffi-1.3.0.100-native.jar
-
jffi-1.3.0.jar
-
jnr-a64asm-1.0.0.jar
-
jnr-ffi-2.2.13.jar
-
jnr-x86asm-1.0.2.jar
-
slf4j-api-1.7.36.jar
-
slf4j-simple-1.7.35.jar*
***** JAR 文件的理由 –
Image by Author | slf4j-simple-1.7.35.jar is included to prevent the above warning message from showing up on runtime.
重要。请注意,运行此源代码所使用的 JDK 平台是 JDK 11。
示例应用程序代码
The application code to test run its functionalities can be found at the same GPT4All GitHub repo link.
1549

被折叠的 条评论
为什么被折叠?



