likes
comments
collection
share

50K star!构建离线的私有GPT,隐私不再泄露

作者站长头像
站长
· 阅读数 2

随着越来越多的人使用ChatGPT等AI产品,用户的数据隐私泄露也越来越被重视。

今天我们介绍一个开源项目,它让用户可以在离线的情况下,使用大模型的能力来查询本地文档,不再担心隐私数据泄露,它就是:PrivateGPT

50K star!构建离线的私有GPT,隐私不再泄露

PrivateGPT 是什么

PrivateGPT 是一个可立即投入生产的 AI 项目,即使在没有 Internet 连接的情况下,您也可以使用大型语言模型 (LLM) 的功能来询问有关文档的问题。 100% 私有,任何数据都不会离开您的执行环境。

50K star!构建离线的私有GPT,隐私不再泄露

PrivateGPT 是一项服务,它将一组 AI RAG 原语包装在一组全面的 API 中,提供私有、安全、可定制且易于使用的 GenAI 开发框架。它支持各种本地和远程的 LLM 提供商、嵌入提供商和向量存储。这些可以轻松更改,而无需更改代码库。

整体架构

它使用FastAPI和LLamaIndex作为其核心框架。这些可以通过更改代码库本身来定制。

该项目提供了一个 API,提供构建私有的、上下文感知的 AI 应用程序所需的所有原语。它遵循并扩展了OpenAI API 标准,支持普通响应和流式响应。API 分为两个逻辑块:

高级 API,抽象了 RAG(检索增强生成)管道实现的所有复杂性:

  • 文档提取:内部管理文档解析、分割、元数据提取、嵌入生成和存储。
  • 使用所提取文档中的上下文进行聊天和完成:抽象上下文检索、提示工程和响应生成。

低级 API,允许高级用户实现自己的复杂管道:

  • 嵌入生成:基于一段文本。
  • 上下文块检索:给定查询,从提取的文档中返回最相关的文本块。

50K star!构建离线的私有GPT,隐私不再泄露

除此之外,还提供了一个可用的Gradio UI 客户端来测试 API,以及一组有用的工具,例如批量模型下载脚本、提取脚本、文档文件夹监视等。

安装PrivateGPT

开始安装前需要确认一些基础的环境情况:

Python =>3.11 
make 
poetry 

对于快速安装可以参考以下的步骤:

# Clone the repo
git clone <https://github.com/imartinez/privateGPT>
cd privateGPT

# Install Python 3.11
pyenv install 3.11
pyenv local 3.11

# Install dependencies
poetry install --with ui,local

# Download Embedding and LLM models
poetry run python scripts/setup

# (Optional) For Mac with Metal GPU, enable it. Check Installation and Settings section 
to know how to enable GPU on other platforms
CMAKE_ARGS="-DLLAMA_METAL=on" pip install --force-reinstall --no-cache-dir llama-cpp-python

# Run the local server  
PGPT_PROFILES=local make run

# Note: on Mac with Metal you should see a ggml_metal_add_buffer log, stating GPU is 
being used

# Navigate to the UI and try it out! 
<http://localhost:8001/>

为了获得最佳性能,建议使用 GPU 加速。 PrivateGPT 支持与llama.cpp兼容的模型的本地执行。提供了两种运行良好的已知模型来实现无缝设置:

1.TheBloke/Llama-2–7B-chat-GGUF

2.TheBloke/Mistral-7B-Instruct-v0.1-GGUF

使用PrivateGPT

安全完成后可以到 http://localhost:8001/ 访问web服务。

50K star!构建离线的私有GPT,隐私不再泄露

它有3种执行模式(可以在左上角选择):

  • 查询文档:使用提取文档中的上下文来回答聊天中发布的问题。它还将之前的聊天消息作为上下文考虑。
  • 在文档中搜索:快速搜索,返回 4 个最相关的文本块及其源文档和页面。
  • LLM 聊天:与 LLM 进行简单、非上下文的聊天。不会考虑提取的文档,只会考虑之前的消息。

总结

PrivateGPT 的思路和方向和目前很多国内的研究一致,大家都是在探索一种及使用大模型能力,同时又保障足够的数据隐私安全,并且这种引入向量存储的方法一定程度上可以提升相应的准确度的速度(在特定的问题场景下)。

个人觉得这个项目更多的可以给我们延伸的思考,当然直接拿来用也不错。

50K star!构建离线的私有GPT,隐私不再泄露

项目信息