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世界中已发展地如火如荼,越来越多的企业利用云计算改造传统的数据中 ...
随机推荐
- 骨牌铺方格 SDUT
状态转移方程:dp[i] = dp[i - 1] + dp[i - 2]. 当前行,可能是由上一行转移过来的,那么当前行就只能横着铺,所以方案数是dp[i - 1]. 当前行,可能是由i-2行转移过来 ...
- RESTful API 介绍,设计
一:RESTful介绍 在互联网发展过程中,最开始是以html静态网页展示内容,url的表现形式一般为 http://www.example.com/getInfo.html:后来随着需求不断提高以及 ...
- Java JVM——4.程序计数器
简介 JVM中的程序计数寄存器(Program Counter Register),Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息,CPU只有把数据装载到寄存器才能够运行. 这 ...
- .NET周刊【2月第3期 2024-02-25】
国内文章 4.1k Star!全面的C#/.NET/.NET Core学习.工作.面试指南 https://www.cnblogs.com/Can-daydayup/p/18027117 DotNet ...
- HashMap源码窥探
目录 前言 HashMap的数据结构 HashMap的put方法 HashMap的get方法 HashMap的初始化 HashMap的containsKey方法 HashMap的putAll方法 Ha ...
- Avalonia 跨平台框架中如何以正确的姿势使用 OpenGL ES 渲染。
前言 这是一篇很水的文章,没有任何技术含量,在 Github 已经有很多人对 Avalonia 的 OpenGL ES 支持进行了讨论,但是我还是想写一篇文章来记录一下我是如何在 Avalonia 中 ...
- 【Azure 环境】ADAL(Azure Active Directory Authentication Library )迁移到MSAL(Microsoft Authentication Library)相关问题
问题一:根据微软官方网站对ADAL(包含ADAL.js, ADAL.NET, ADAL4J)的声明 https://docs.microsoft.com/zh-cn/azure/active-dire ...
- go grpc流式和非流式的例子
参考grpc官方: https://grpc.io/docs/quickstart/go.html 或官方中文翻译: http://doc.oschina.net/grpc?t=60133 安装pr ...
- vscode 翻译插件推荐 Easy Translator,只因为有音标,和位置好
vscode 翻译插件推荐 Easy Translator,只因为有音标,和位置好
- 基于python的固定间隔时间执行实例解析
一 概念 datetime的用法如下: import datetime. # 打印当前时间 time1 = datetime.datetime.now() print(time1) # 打印按指定格式 ...