1. GPT4All简介
1.1 开源项目
GPT4All 是由 Nomic AI 开发的一个开源项目,旨在让用户能够在个人设备上本地运行大型语言模型(LLM),无需依赖云服务。 这一项目自发布以来,已成为 GitHub 上增长最快的开源项目之一,拥有超过 7 万个 GitHub 星标。
1.2 适用场景
使用GPT4All的话有以下优势:
- 隐私保护:处理敏感数据时,确保信息不外泄。
- 离线使用:在没有网络连接的环境中使用 AI。
- 教育与研究:用于教学、研究或学习目的。
- 定制化需求:根据特定需求定制 AI 模型。
2. 核心特点
2.1. 完全本地运行,无需互联网连接
GPT4All 允许用户在 Windows、macOS 和 Linux 等操作系统上本地运行 LLM。 用户可以下载模型文件(通常为 1GB 至 8GB),并在没有网络连接的情况下使用 AI 聊天。
2.2 支持多种硬件平台
该项目支持多种硬件平台,包括支持 AVX 指令集的 CPU,以及 Apple M 系列芯片、AMD 和 NVIDIA GPU 等。 这使得用户能够在不同的设备上体验本地 LLM。
2.3 隐私优先
GPT4All 强调数据隐私,默认情况下,用户的对话数据不会离开本地设备。 如果用户选择使用远程模型或参与数据共享,系统会明确提示并征得同意。
2.4 丰富的模型支持
GPT4All 支持多种开源模型,包括 LLaMa、Mistral、DeepSeek R1、Nous-Hermes 等。 用户可以根据需求选择不同的模型进行本地部署。详情可以参考链接:https://github.com/nomic-ai/gpt4all/blob/main/gpt4all-chat/metadata/models3.json。
2.5 集成本地文档支持
GPT4All 提供 LocalDocs 功能,允许用户将本地文档(如 PDF、TXT、Markdown 等)导入系统,与 AI 进行交互。 这对于处理敏感或私密信息非常有用。
3. 快速上手指南
3.1 下载并安装软件
访问下载适用于您操作系统(Windows、Mac、Linux)的安装包。
3.2 添加模型
启动应用程序后,点击“+ Add Model”按钮,选择并下载您需要的模型。
3.3 开始聊天
下载模型后,进入“Chats”界面,选择已加载的模型,开始与 AI 进行对话。并且还提供上传本地文件资料的功能,实现知识库的搜索。
3.4 使用Python的SDK
3.4.1 大语言模型
GPT4All 提供了 Python SDK,方便开发者将其集成到自己的项目中。 此外,项目采用 MIT 开源许可证,允许用户进行自定义和二次开发。
安装方法:
pip install gpt4all
使用方法:
可以按照官方提供的模板进行使用,如果模型没有提前下载的话,在第一次使用的时候,代码会自动下载模型。
from gpt4all import GPT4All
model = GPT4All("Meta-Llama-3-8B-Instruct.Q4_0.gguf") # downloads / loads a 4.66GB LLM
with model.chat_session():
print(model.generate("How can I run LLMs efficiently on my laptop?", max_tokens=1024))
如果想要进行流式输出或者一次性输出,可以使用streaming这个参数进行控制,参考代码:
from gpt4all import GPT4All
def output_with_stream_control(prompt: str, model_name: str = "Meta-Llama-3-8B-Instruct.Q4_0.gguf", max_tokens: int = 1024, streaming: bool = False):
model = GPT4All(model_name) # 加载指定模型
# 创建一个对话会话
with model.chat_session() as session:
response_buffer = ""
if streaming:
# 启用流式输出
for chunk in model.generate(prompt, max_tokens=max_tokens, streaming=streaming):
response_buffer += chunk
print(chunk, end='', flush=True) # 实时输出生成的文本
print("\n\n生成的完整答案:", response_buffer)
else:
# 批量输出(等待完整生成后返回)
response_buffer = model.generate(prompt, max_tokens=max_tokens, streaming=streaming)
print("\n生成的完整答案:", response_buffer)
return response_buffer
if __name__ == "__main__":
prompt = "用中文回答,什么是化学?"
result = output_with_stream_control(prompt, streaming=False)
print('result:', result)
模型的选择范围很多,当前支持的部分模型可以参考表格:
| GPT4All model name | Filesize | RAM Required | Parameters | Quantization | Developer | License | MD5 Sum (Unique Hash) |
| Meta-Llama-3-8B-Instruct.Q4_0.gguf | 4.66 GB | 8 GB | 8 Billion | q4_0 | Meta | Llama 3 License | c87ad09e1e4c8f9c35a5fcef52b6f1c9 |
| Nous-Hermes-2-Mistral-7B-DPO.Q4_0.gguf | 4.11 GB | 8 GB | 7 Billion | q4_0 | Mistral & Nous Research | Apache 2.0 | Coa5f6b4eabd3992da4d7fb7f020f921eb |
| Phi-3-mini-4k-instruct.Q4_0.gguf | 2.18 GB | 4 GB | 3.8 billion | q4_0 | Microsoft | MIT | f8347badde9bfc2efbe89124d78ddaf5 |
| orca-mini-3b-gguf2-q4_0.gguf | 1.98 GB | 4 GB | 3 billion | q4_0 | Microsoft | CC-BY-NC-SA-4.0 | 0e769317b90ac30d6e09486d61fefa26 |
| gpt4all-13b-snoozy-q4_0.gguf | 7.37 GB | 16 GB | 13 billion | q4_0 | Nomic AI | GPL | 40388eb2f8d16bb5d08c96fdfaac6b2c |
同时,SDK的所有参数可以参考链接:https://docs.gpt4all.io/gpt4all_python/ref.html#gpt4all.gpt4all.GPT4All.list_models
3.4.2 嵌入模型
除了大语言模型之外,它还提供三种嵌入模型,其本地调用的使用案例如下所示:
from nomic import embed
embeddings = embed.text(["String 1", "String 2"], inference_mode="local")['embeddings']
print("Number of embeddings created:", len(embeddings))
print("Number of dimensions per embedding:", len(embeddings[0]))
其嵌入模型有三个:
| Name | Using with nomic | Embed4All model name | Context Length | Embedding Dimensions | File Size |
| Nomic Embed v1 | embed.text(strings, model=”nomic-embed-text-v1″, inference_mode=”local”) | Embed4All(“nomic-embed-text-v1.f16.gguf”) | 2048 | 768 | 262 MiB |
| Nomic Embed v1.5 | embed.text(strings, model=”nomic-embed-text-v1.5″, inference_mode=”local”) | Embed4All(“nomic-embed-text-v1.5.f16.gguf”) | 2048 | 64-768 | 262 MiB |
| SBert | n/a | Embed4All(“all-MiniLM-L6-v2.gguf2.f16.gguf”) | 512 | 384 | 44 MiB |
4. 参考资料:
- GPT4All的GitHub地址:https://github.com/nomic-ai/gpt4all
- GPT4All的文档:https://docs.gpt4all.io/
- nomic的官网:https://www.nomic.ai/
- 模型的选择范围:https://github.com/nomic-ai/gpt4all/blob/main/gpt4all-chat/metadata/models3.json







