首页 > 其他分享 >本地部署AI知识库

本地部署AI知识库

时间:2023-06-22 16:45:31浏览次数:104  
标签:AI 知识库 部署 本地 ChatGLM chatGPT docker

前言

之前使用了多个基于向量库+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

标签:AI,知识库,部署,本地,ChatGLM,chatGPT,docker
From: https://www.cnblogs.com/opama/p/17497970.html

相关文章

  • 在本地计算机上安装前端项目的开发环境,具体操作步骤
    安装前端项目的环境需要以下步骤:安装Node.js在本地计算机上安装Node.js是安装前端项目环境的第一步。Node.js是基于ChromeV8引擎构建的JavaScript运行环境。你可以从官方网站https://nodejs.org/en/下载适合你操作系统版本的Node.js安装包并安装。安装......
  • ERROR: nginx-1.22.1 installation failed.
    libraries.Youcaneitherdonotenablethemoduleorinstallthelibraries.make:***Noruletomaketarget'build',neededby'default'.Stop.make:***Noruletomaketarget'install'.Stop.================================......
  • AI与健康管理:趋势与未来
    目录引言随着人工智能技术的不断发展,健康管理也逐渐成为了一个新的研究领域。AI技术可以为健康管理提供智能化、个性化、高效的支持,使得健康管理更加人性化和科学。本文将介绍AI与健康管理的技术原理、实现步骤、应用示例与代码实现,以及优化与改进等内容,旨在为读者提供一些关于A......
  • AI 全新版本在线免费体验2.0.0支持最新对话模型,和16K上下文
    之前在线体验接入体验案例不完善,一直没有完善,现在换了全新的聊天UI,移动端适配完善的对话体验可以自定义对话聊天会话支持最新模型,多模型切换完美支持代码,markdown,等格式上下文保存,聊天记录下载,超长会话免费在线体验。使用联动后台OPENAI开放平台。后续会持续完善。......
  • OPEN AI 全新版本在线免费体验2.0.0支持最新对话模型,和16K上下文
    之前在线体验接入体验案例不完善,一直没有完善,现在换了全新的聊天UI,移动端适配完善的对话体验可以自定义对话聊天会话支持最新模型,多模型切换完美支持代码,markdown,等格式上下文保存,聊天记录下载,超长会话免费在线体验。使用联动后台OPENAI开放平台。后续会持续完善......
  • 利用AI大模型快速实现动漫设计
    随着CHAT-GPT问世AI的强大功能越来越受到大众关注,其中在辅助设计、创意、绘画、游戏、教育等方面似乎让人们看到了未来另一种可能,也似乎在引导人类解决更具想象力的问题并提供了途径。我们以“图龙解”线上视觉工具为例抛砖引玉展示一下AI如何吸引眼球搞出不一样的东西。话不多说进......
  • Android AIDL 跨进程通信超详版
    来了新公司,公司项目里用了很多的独立进程的服务与他们之间存在了很多跨进程的通信。之前有很长一段时间没有实际去做跨进程通信AIDL了,查阅了一些资料和文章看了些Demo把温习的心路历程介绍一下。来模拟一个ktv播控系统(client)控制大屏上的歌曲的播放、暂停动作KtvAIDLClientK......
  • PostgreSQL 从开发要换PG表字段的 collaion 说起 到 程序员别异想天开了
    2021年绝对是一个有意思的念头,估计过10年都会想到今年的一些变革,很多人都会被影响,改变,重新开始,或寻找新的路径。归正题,新公司的开发小朋友,对DB提出了一个问题,就是要修改某个表的字段的collation,究其原因为了某些业务中这个字段的排序。然后我就告诉DB,NONONO,究其原因曾经SQLSE......
  • SPSS Modeler用K-means(K-均值)聚类、CHAID、CART决策树分析31省市土地利用情况和GDP数
    全文链接:http://tecdat.cn/?p=32840原文出处:拓端数据部落公众号随着经济的快速发展和城市化进程的不断推进,土地资源的利用和管理成为了一项极为重要的任务。而对于全国各省市而言,如何合理利用土地资源,通过科学的方法进行规划和管理,是提高土地利用效率的关键。本文旨在应用SPSS......
  • 对比Availability可用性、Reliability可靠性、Stability稳定性
    简单区分从事故、稳定方面简单理解如下:名词简单理解可靠性不出事故可用性不出事故出事故后,快速止损稳定性解决故障问题基础上服务持续稳定、性能稳定总体对比可用性可靠性稳定性英文AvailabilityReliabilityStability关注点关注的是服务总体的持续时间。系统在给定时间内总体的运......