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

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

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

PrivateGPT 是什么

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

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

整体架构

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

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

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

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

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

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

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

安装PrivateGPT

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

ini 复制代码
Python =>3.11 
make 
poetry 

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

bash 复制代码
# 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服务。

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

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

总结

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

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

项目信息

相关推荐
haibo214416 分钟前
GPT-Omni 与 Mini-Omni2:创新与性能的结合
gpt
油泼辣子多加2 小时前
2024年12月18日Github流行趋势
github
hunteritself2 小时前
AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
人工智能·gpt·chatgpt·github·openai·copilot
pubuzhixing5 小时前
开源白板新方案:Plait 同时支持 Angular 和 React 啦!
前端·开源·github
bastgia5 小时前
Tokenformer: 下一代Transformer架构
人工智能·机器学习·llm
新智元10 小时前
李飞飞谢赛宁:多模态 LLM「空间大脑」觉醒,惊现世界模型雏形!
人工智能·llm
玖疯子10 小时前
如何详细地遵循RustDesk的步骤来搭建远程访问和自定义服务器?
github
小华同学ai12 小时前
ShowDoc:Star12.3k,福利项目,个人小团队的在线文档“简单、易用、轻量化”还专门针对API文档、技术文档做了优化
前端·程序员·github
RWKV元始智能14 小时前
RWKV-7:极先进的大模型架构,长文本能力极强
人工智能·llm
loop lee1 天前
Nginx - 负载均衡及其配置(Balance)
java·开发语言·github