大模型应用_PrivateGPT

https://github.com/imartinez/privateGPT

大模型应用_PrivateGPT_第1张图片

1 功能

  • 整体功能,想解决什么问题
    搭建完整的 RAG 系统,与 FastGPT相比,界面比较简单。但是底层支持比较丰富,可用于知识库的完全本地部署,包含大模型和向量库。适用于保密级别比较高,或者完全不想使用收费模型和服务的情况。
  • 当前解决了什么问题,哪些问题解决不了
    PrivateGPT 提供了整体转换、入库、存储、匹配、合成答案,图形界面的解决方案,并提供图形界面用于检索操作。
    RAG 所面对的问题,比如不够准确,多文档组合生成答案这些问题,需要进一步细化工具,似乎不能通过架构来解决。另外,由于多数本地部署的模型效果与 ChatGPT 差距比较大,这里只是看到了本地部署的架构和实现的可能性,部署后用户是否能接受其效果,还待验证。
  • 提供哪些功能点,其中哪些是刚需
    核心功能是通过简单的操作,实现对本地文件的检索和问答,功能相对单一。
  • 用户使用难度,操作逻辑是否过于复杂
    整体工具链使用了poetry构建,安装相对方便。但由于包含了深度学习库,肯定比一般项目复杂很多,安装时间长,占空间大。
    Dockerfile如果写得有一点问题(频繁更新,难免有错),就会面临至少部分内容重新下载打包的问题。另外,由于可插拔的选项比较多,还需要用户进一步设置。

2 技术栈

  • 技术栈是什么:
    • PrivateGPT 不是一个用大量代码实现具体功能的项目,相反,它尽量使用现有工具,主要提供架构,组织现有方法,以实现功能。
  • 现有底层工具消化了哪些常用功能
    • llamaindex 文档的转换和管理
    • pytorch & cuda 本地支持深度学习模型,因此image也较大
    • sentence-transformers 文本匹配
    • FastAPI 后端框架
    • Chroma 向量数据库
    • Qdrant 向量数据库
    • Gradio 界面由Gradio实现,有效降低了程序的复杂度
    • fern 管理文档
    • 使用 poetry 管理项目
  • 代码分析(使用cloc工具统计)
    • 代码 3.2M,主要为 Python 代码,共 2733 行
    • local 版本 image 大小为 6.34G,external 版本为 5.68G
    • 核心代码在:private_gpt/private_gpt/ 目录下
  • 使用场景
    • 完全本地化的知识库

3 商业模式

相对简单的项目,代码主要在架构和调用其它工具,依赖 llama-index,并实现了扩展,如支持几个主流向量数库,后面可能接入更多模型和向量库。可作为一种集成的方案,或者支持各种组件插拔的 Hub 使用。

4 使用

4.1 安装
  • 下载项目
$ git clone https://github.com/imartinez/privateGPT
$ cd privateGPT
  • 修改配置文件
vi settings.yaml

建议第一次运行时将 llm 设置为 openai,整体调通后,再使用本地 llm 下载模型;否则太过复杂,不容易定位问题。

  • 修改 Dockerfile.local(我build时报错)
RUN addgroup worker
RUN adduser --ingroup worker --system worker
  • 构建 local 环境
$ docker build . -f Dockerfile.local --build-arg HTTP_PROXY=xxx --build-arg HTTPS_PROXY=xxx -t private-gpt
  • 细节请见文档:https://docs.privategpt.dev/installation
4.2 运行

如果直接执行失败,建议以root用户启动bash进行调试

$ docker run --rm -p 8080:8080 -e OPENAI_API_KEY=xxx -e HTTP_PROXY=xxx -e HTTPS_PROXY=xxx --entrypoint bash -u 0 -it private-gpt
$ .venv/bin/python -m private_gpt

在localhost 8080 端口可打开 gradio 应用

4.3 使用感受

gradio 主要用作 demo,实现功能比较简单,比如上传文档后无法删除,文本切块大小和模型的对应关系需要提前设置。

5 资源

文档
全面了解 PrivateGPT:中文技巧和功能实测

你可能感兴趣的:(工具,自然语言处理)