gpt4 book ai didi

llama2+localGPT打造纯私有知识助手

转载 作者:撒哈拉 更新时间:2024-03-31 16:42:21 55 4
gpt4 key购买 nike

通过部署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打造纯私有知识助手的文章就讲到这里了,如果你想了解更多关于llama2+localGPT打造纯私有知识助手的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com