llama2+localGPT打造纯私有知识助手
通过部署llama2系列,可以构建本地私有的知识小助手
用来输出一写周报、月报,甚至辅助数据分析都可以(想想都很轻松)
想要大模型支持特定的数据集,就需要进行专业的fine-turing
但是fine-turing工作,是需要一系列的数据工程,向量化等工作,不太便捷
PromtEngineer/localGPT 把这些工作就包装好了,我们可以直接部署使用,甚至也可以跟本地的UI工具做一个集成
localGPT
https://github.com/PromtEngineer/localGPT
localGPT支持很多种本地环境部署方式cuda、cpu等(没有NVIDIA也能跑)
大致工作原理,localGPT会先通过对本地的文件进行“向量”等处理(ingetst.py),会放到本地的一个向量数据库中(sqlite DB)
然后通过运行run_localGPT.py启动fine-turing过程
部署需要python3.0环境
conda create -n localGPT python=3.10.0
如果你本地有GPU,还需要安装一个依赖(不太好装,看你会不会遇到问题)
clone下来代码,看下目录里的constants.py文件
MODEL_ID = "TheBloke/Llama-2-7b-Chat-GGUF"
MODEL_BASENAME = "llama-2-7b-chat.Q4_K_M.gguf"
注意如果本地运行的是GPU,就要找对应GPU版本的模型
拉取llama2 模型
(如果第一次使用 )先在huggingface 注册自己的token,用来拉取模型使用(https://huggingface.co/settings/tokens)
然后安装 huggingface-hub(重点:注意在windows shell工具登录的时候,不要用键盘复制粘贴,一定要用鼠标右键paste)
pip3 install huggingface-hub>=0.17.1
模型提供了很多变体,可以用来在不同的环境下使用
https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF
https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/tree/main
如果是第一次下载模型会需要点时间,大概5G左右
第一次使用还需要在模型首页完成申请授权
demo工作报告
由于localGPT是基于本地文档进行模型微调的,所以我们需要将数据放入文档中SOURCE_DOCUMENTS目录(这个工作也可以自动化)
假设模拟一家餐厅的每天的数据,然后形成日报信息,每天灌给他
然后输出一周的周报(我们用GPT模拟生成)

将文档放到SOURCE_DOCUMENTS目录下
然后运行 ingest.py 脚本,记得--device_type参数要根据自己的机器情况选择(我本地是NVIDIA卡)
python ingest.py --device_type cuda
会输出如下信息
python ingest.py --device_type cuda
2024-03-31 14:07:29,899 - INFO - ingest.py:147 - Loading documents from D:\localGPT-main\localGPT-main/SOURCE_DOCUMENTS
Importing: ABC餐厅本周数据.pdf
D:\localGPT-main\localGPT-main/SOURCE_DOCUMENTS\ABC餐厅本周数据.pdf loaded.
2024-03-31 14:07:38,279 - INFO - ingest.py:156 - Loaded 1 documents from D:\localGPT-main\localGPT-main/SOURCE_DOCUMENTS
2024-03-31 14:07:38,284 - INFO - ingest.py:157 - Split into 2 chunks of text
2024-03-31 14:07:39,104 - INFO - SentenceTransformer.py:66 - Load pretrained SentenceTransformer: hkunlp/instructor-large
load INSTRUCTOR_Transformer
max_seq_length 512
2024-03-31 14:07:40,384 - INFO - ingest.py:168 - Loaded embeddings from hkunlp/instructor-large
可以大致看到一些有用的信息,SentenceTransformer是一个强大的微调框架(https://www.sbert.net/,https://huggingface.co/hkunlp/instructor-large)等
ingest顺利完成之后,当前的文本就已经形成向量进入到向量DB中了
我们开始进行正式微调程序
python run_localGPT.py --device_type cuda
(如果你本地报错ValueError: check_hostname requires server_hostname,记得关闭kx上网)
看到 “Enter a query:” 应该是顺利成功了
我们问下 ”3月27日 3月28日 3月29日 3月30 3月31日 销售额分别多少“

看上去没啥问题(llama是英文的,如果需要跟本地工具集合,接一些翻译库就行了)
这个只是一个demo,如果要系统严谨的输出,还是需要在数据格式、数据组织、prompt工程上好好打磨的
关注微信公众号|收获更多干货

llama2+localGPT打造纯私有知识助手的更多相关文章
- Django+小程序技术打造微信小程序助手 ✌✌
Django+小程序技术打造微信小程序助手 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 从零到一的完整项目开发实战过程,项目开发聚焦重要知识点,先原理后实战 ...
- 挑战以Dropbox为代表的传统“同步网盘”,Seafile推出“分布式文件同步技术”打造的私有云服务
挑战以Dropbox为代表的传统“同步网盘”,Seafile推出“分布式文件同步技术”打造的私有云服务#36氪开放日# 其他 JasonZheng • 2012-04-07 15:14 来自36氪开放 ...
- Seafile 推出 “分布式文件同步技术” 打造的私有云服务
近两年来 Dropbox 等云储存服务迅速窜红,各大巨头纷纷推出自家的云储存服务(苹果的 iCloud, 微软的 SkyDrive, Google 即将推出的 GDrive),国内也有类似的服务(金山 ...
- 天池平台再升级,打造产业AI知识共享、技术共享平台
在5月23日的云栖大会·武汉峰会上,天池发布“全球AI开发者计划”,打造一站式人工智能知识共享平台,计划2年内在平台上集聚30万AI工程师.同时,阿里云天池正式升级,成为从产业机会到实施交付一站式解决 ...
- Django2.0+小程序技术打造微信小程序助手✍✍✍
Django2.0+小程序技术打造微信小程序助手 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题 ...
- Django+小程序技术打造微信小程序助手
Django+小程序技术打造微信小程序助手 整个课程都看完了,当前这个课程的分享可以往下看,下面有某盘的链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,同时也分享下自己的总结 ...
- Django2.0+小程序技术打造微信小程序助手百度云
加Q[965546358]获取资源 第1章 课程导学 第2章 小程序开发入门 从几个方面介绍小程序开发相关的内容,包括小程序开发者账号注册.小程序开发流程.小程序开发规范.小程序常用的API,例如网络 ...
- 如何打造个人km知识管理系统
经常有朋友会遇到这样一种情况,在网络中看到一篇很好的文章,但后来因为关键字想不起来,结果怎么都搜索不到.还有些朋友虽然平时也会做一些记录,把有用的资料进行保存,但他们往往将保存的资料分散在不同的地方, ...
- FreeNAS插件打造ownCloud私有云网盘
ownCloud 是一个自由开源的个人云存储解决方案,可以自由获取无需付费,但用户需要自行架设服务器,好在FreeNAS可以通过插件轻松的构建ownCloud服务器. ownCloud 分为服务器端和 ...
- 恒天云 3.0:打造基于OpenStack的私有云新模式
摘自恒天云官网:http://www.hengtianyun.com/download-show-id-17.html 云计算在当今IT世界中已发展地如火如荼,越来越多的企业利用云计算改造传统的数据中 ...
随机推荐
- 使用DeskPins工具钉住窗口
需求 我们经常一边看着PDF或视频教程,一边又打开一个文本编辑器/word/markdown编辑器在做一些笔记.问题是有时候呀需要来回切换(alt+tab)窗口,时间长了其实费时费力,这是一名工程师无 ...
- MySQL数据库备份与恢复方法
MySQL数据库备份与恢复方法 mysql -uroot -p show databases; 1.导出数据库 1).MySQL命令行导出整个数据库(包含数据) 导出文件默认是存在mysql\bin目 ...
- django项目中使用nginx+fastdfs上传图片和使用图片的流程
自定义文件存储类 1.先弄清楚django中默认的上传文件存储FileSystemStorage类 https://docs.djangoproject.com/zh-hans/2.2/ref/fil ...
- 记录一个错误:Unable to find a match: python-dev
今天尝试在Linux下运行一个Python项目,在安装requirements.txt时报错 执行命令如下: [root@VM-16-8-centos cve-search]# pip3 instal ...
- macOS安装RZ,SZ
使用brew 安装lrzsz sudo brew install lrzsz 安装完成后检查是否存在. ls -alh /usr/local/bin/sz 如果安装报错可以手动下载压缩包安装,安装地址 ...
- 【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect locale information provided
问题描述 在App Service For Linux 中,部署NodeJS应用,应用启动失败. 报错信息为: 2023-08-29T11:21:36.329731566Z RangeError: I ...
- 【Azure 应用服务】Azure SignalR 是否可以同时支持近十万人在线互动
什么是 Azure SignalR 服务? Azure SignalR Service 简化了通过 HTTP 向应用程序添加实时 Web 功能的过程. 这种实时功能允许服务将内容更新推送到连接的客户端 ...
- 【Azure Redis 缓存】C#程序是否有对应的方式来优化并缩短由于 Redis 维护造成的不可访问的时间
问题描述 C#程序是否有对应的方式来优化并缩短由于 Redis 维护造成的不可访问的时间? Redis维护说明: Redis 服务维护时,会把副本节点提升为主节点,且旧主节点关闭现有连接时,这个时候, ...
- 连接 AI,NebulaGraph Python ORM 项目 Carina 简化 Web 开发
作者:Steam & Hao 本文整理自社区第 7 期会议中 13'21″ 到 44'11″ 的 Python ORM 的分享,视频见 https://www.bilibili.com/vid ...
- 用Pandoc生成TXT格式的目录
我一直使用Markdown格式写作,使用Pandoc生成PDF和Word格式的文档.Pandoc能生成很好的章节和目录,但有时候,也需要生成TXT格式的目录,今天就尝试了一下. 由于我写的内容章节比较 ...