菜单

GPT4All 概述

相关源文件

本文档提供了GPT4All系统架构、核心组件及其交互方式的技术概述,以实现大型语言模型(LLMs)在不同平台上的本地运行。GPT4All旨在让LLMs在日常的台式机和笔记本电脑上私密运行,无需API调用或GPU。

有关桌面应用程序使用的具体信息,请参阅GPT4All聊天应用程序。有关Python集成详情,请参阅Python绑定

系统架构

GPT4All的构建原则是模块化和可扩展性,拥有多个定义明确的组件,共同提供全面的LLM体验。

该架构由三个主要层组成

  1. 用户交互层:为用户提供与系统交互的各种界面。
  2. 核心后端:处理模型执行、文档集成和模型管理。
  3. 硬件加速:实现跨不同硬件平台的模型高效执行。

来源:README.mdgpt4all-chat/qml/HomeView.qml

核心组件

LLModel 接口

LLModel接口是GPT4All的骨干,为不同的模型实现提供了一致的API。这种抽象允许系统在保持统一交互模式的同时支持各种模型架构。

主要的实现LLamaModel利用llama.cpp库进行高效的模型执行。ChatLLM类充当聊天界面与底层模型之间的桥梁。

来源:README.md

聊天系统

聊天系统负责管理对话流程,处理提示-响应对,并在需要时与LocalDocs系统集成。它提供了重新生成响应和会话管理等功能。

来源:README.md

LocalDocs 系统

LocalDocs系统通过索引本地文档、生成嵌入并执行混合向量/关键字搜索来增强LLM上下文,从而实现检索增强生成。

LocalDocs分析和索引用户提供的文档,使LLM在对话中能够引用这些文档中的相关信息。此功能极大地提高了模型的上下文感知能力和响应准确性。

来源:README.md

硬件加速

GPT4All支持多种硬件加速选项,以优化不同设备的性能。

系统根据可用硬件动态选择最佳后端,支持

  • CPU:针对各种指令集(AVX、AVX2、AVX512)进行了优化。
  • CUDA:适用于 NVIDIA GPU
  • Metal:用于Apple GPU(M系列)。
  • Vulkan/Kompute:用于跨平台GPU加速。

来源:README.mdgpt4all-chat/system_requirements.md

支持的模型和格式

GPT4All支持广泛的模型架构和格式。

模型类型描述支持的格式
LLaMA/LLaMA-2Meta AI模型GGUF
MistralMistral AI模型GGUF
FalconTII模型GGUF
MPTMosaicML模型GGUF
Replit专注于代码的模型GGUF
Starcoder专注于代码的模型GGUF
BERT嵌入式模型GGUF
GPT-JEleutherAI模型GGUF
各种其他架构包括Phi、Gemma、QwenGGUF

该系统包括一个模型下载和管理功能,允许用户发现并从精选列表中安装模型。

来源:gpt4all-chat/metadata/models.jsonREADME.md

用户界面

桌面应用程序

GPT4All桌面应用程序提供了一个直观的界面来与语言模型进行交互。

  • 聊天视图:用于与所选模型进行对话。
  • LocalDocs视图:用于管理文档集合和上下文感知聊天。
  • 模型管理:用于发现、下载和配置模型。
  • 设置:用于自定义模型参数和应用程序行为。

UI使用Qt/QML构建,在各平台提供一致的体验。

来源:gpt4all-chat/qml/HomeView.qmlREADME.md

Python SDK

Python SDK允许以编程方式与GPT4All模型进行交互。

Python API提供了一个灵活的接口,用于与其他应用程序和工作流集成。

来源:README.md

构建与部署

GPT4All使用强大的构建和部署系统,以确保在多个平台上的可用性。

该系统使用CMake构建,并以Windows、macOS和Linux的本地安装程序形式分发,通过CI/CD管道实现自动化构建、签名和公证。

来源:gpt4all-chat/cmake/Modules/SignWindowsBinaries.cmakegpt4all-chat/cmake/Modules/SignMacOSBinaries.cmakeREADME.md

系统要求

GPT4All设计用于在各种硬件配置上运行,推荐规格如下:

组件Windows/LinuxmacOS
CPUCore i7/Ryzen 5或更高M1/M2或更新型号
内存16GB16GB
GPU(可选)NVIDIA/AMD 8GB+ VRAMM系列集成
存储10GB 可用空间10GB 可用空间
操作系统Windows 10+,Ubuntu 22.04+macOS Monterey 12.6+

该应用程序可以在低规格机器上运行,但性能可能会有所降低,特别是对于较小的模型。

来源:gpt4all-chat/system_requirements.mdREADME.md

项目治理

GPT4All由Nomic AI维护,并得到开源社区的贡献。该项目遵循维护者模式,特定组件有指定的维护者负责其开发和维护。

组件维护者
项目整体Adam Treat (Nomic AI)
聊天UIAdam Treat (Nomic AI)
后端Jared Van Bortel (Nomic AI)
Python 绑定Jared Van Bortel (Nomic AI)
TypeScript绑定Jacob Nguyen
文档Dominik, Max Cembalest (Nomic AI)

欢迎通过拉取请求和问题报告为社区贡献。

来源:MAINTAINERS.mdCONTRIBUTING.md

总结

GPT4All提供了一个全面的解决方案,用于在消费级硬件上本地运行LLMs,重点关注隐私、性能和可用性。通过其模块化架构、硬件加速支持和灵活的接口,它实现了从简单的聊天交互到复杂的基于文档的问答的广泛用例。

该系统将持续发展,不断支持新的模型架构、提高性能并增强用户体验。

来源:README.mdgpt4all-chat/metadata/release.json