惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
Y
Y Combinator Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
L
LangChain Blog
美团技术团队
N
Netflix TechBlog - Medium
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog
博客园 - 司徒正美
爱范儿
爱范儿
D
DataBreaches.Net
月光博客
月光博客
U
Unit 42
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
MongoDB | Blog
MongoDB | Blog
腾讯CDC

博客园 - opama

AI智能用例整理 AI 执行测试用例 AI 编写接口自动化用例 基于知识库的需求评审到用例生成的智能辅助 AI 在工作中的一些使用 不要忘记好的测试也是个业务专家 打造个人面试助手 看数类需求测试方法 AI辅助测试用例生成 利用GPT快速生成自动化代码 基于自己知识库的机器人试用 A卡在ubuntu下部署stable-diffusion-webui 线上问题SLA治理 AI绘图新手入坑 airtest使用案例一则 airtest初步使用 测试设计左移实践 接口越权扫描平台初探 通过阅读代码来优化测试执行 左移白盒测试实践 通过机器人通知提效的那些事情 《敏捷革命》读书感想 《SAAS创业指南》拆书笔记——产品打磨和商业模式初步验证
本地部署AI知识库
opama · 2023-06-22 · via 博客园 - opama

前言

之前使用了多个基于向量库+chatGPT本地知识库产品,大概分析和比较了一下:

使用目前云服务产品的主要的缺陷主要是数据存储在云端,存在一些安全上的问题,思考如何部署本地的AI知识库,目前的选择有两个:

  1. 使用本地向量库+本地大模型,数据完全私有,如基于langchain+ChatGLM的本地知识库
  2. 使用本地向量库+chatGPT,请求时会把部分信息片断发送给chatGPT,如现在github上开源的一些工程

基于langchain+ChatGLM的本地知识库

项目地址:https://github.com/imClumsyPanda/langchain-ChatGLM/tree/master

基本原理:加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的top k个 -> 匹配出的文本作为上下文和问题一起添加到prompt中 -> 提交给LLM生成回答。

mac电脑内存>16G可考虑使用mac部署,不然会爆内存或者加载缓慢;请考虑云主机或者自己的电脑主机;本人尝试了16G M1 结果爆内存了

云主机安装

云主机主要是选择云服务厂商的机器,租用显卡进行部署,autoDL是其中口碑不错

安装参考:based ChatGLM with langchain | 基于本地知识的 ChatGLM 问答

注册autoDL选择个>16G GPU的进行部署,部署完基本可以直接用

使用体验

chatGLM模式

先使用chatGLM本身的知识进行回答,检查下基本的逻辑推理,从结果上看基本能回答个二三

知识库模式

选择知识库问答,尝试用一些业务文档或以及之前写的知识库喂一下,上传文档到知识库

能够回答上传文件中的一些知识并给予出处

有一定推理总结能力

对于不知道的会回答不知道不会瞎编

有一些信息无法从文档中提取,比如代客下单里面提到支持搜索的商品

如果问代客下单支持哪些商品却回答没有理解,不知道原因是啥,可能是给的文本不明确,可能需要再研究一下

开源项目本地部署

使用本地部署大模型+知识库的方式对机器要求过高,而且目前开源大模型效果并未达到chatGPT水平,综合价格和功能性考虑,考虑使用dify的本地部署版本。
部署方式见:docs.dify.ai

需要注意的点:

  1. 所有需要使用chatGPT做推理的工程都需要考虑如何访问openai的问题,可以选择自己搭代理或者使用成熟的产品如 https://api2d.com/wiki/doc ,这里我选择了api2d
    如果需要使用api2d,则需要将代理地址配置到docker-compose.yaml,api和worker下都要配置,后续的openai的key都需要使用api2d的key
    设置完所有必须的环境变量后,运行
cd dify/docker
docker compose up -d
  1. 然后访问配置的nginx地址,查看页面是否有报错,如果有,通过docker attach到容器观察错误原因

  2. 大部分是配置错误,修改后将对应组件重新build
    docker compose up -d --force-recreate --build xxx

  3. 然后再观察服务是否正常,上传文档后提问回答是否正确

未来可能的优化

对一知识库提问,返回的数据不准确的问题,可能的建议见https://github.com/GanymedeNil/document.ai

  • 基于数据的优化
  • 基于自训练的Embedding模型
  • 基于 Fine-tune