首页 > 其他分享 >llama2+localGPT打造纯私有知识助手

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

时间:2024-03-31 16:13:02浏览次数:15  
标签:localGPT 私有 py llama2 ingest huggingface 本地 main

通过部署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工程上好好打磨的

关注微信公众号|收获更多干货

标签:localGPT,私有,py,llama2,ingest,huggingface,本地,main
From: https://www.cnblogs.com/wangiqngpei557/p/18106840

相关文章

  • python面向对象封装,私有变量
    一、私有变量“_”单下划线开头的变量:_var ,表示这些函数和变量是元素私有的或内部使用的,为非强制性(实际可修改也可引用)。"__"双下划线开头的变量:__var,表示这些函数和变量是元素私有的或内部使用的,为强制性,对象外不可修改或引用。单下划线例子classPeople():def__ini......
  • Xilinx ZYNQ 7000+Vivado2015.2系列(十三)私有定时器中断
    私有定时器属于PS部分,定时器可以帮我们计数、计时,有效的控制模块的时序。这一次实验我们认识定时器并使用定时器产生中断。CPU的私有中断(PPI)CPU的私有中断(PPI),5个:全局定时器,私有看门狗定时器,私有定时器以及来自PL的FIQ/IRQ。它们的触发类型都是固定不变的,并且来自P......
  • gitlab私有化搭建
    记录一下,防止忘记前置依赖安装:sudoyuminstallcurlpolicycoreutilsopenssh-serveropenssh-clientssudosystemctlenablesshdsudosystemctlstartsshdsudoyuminstallpostfixsudosystemctlenablepostfixsudosystemctlstartpostfix1、安装命令(在线下载)......
  • Sentry私有化部署+钉钉机器人通知
    第一时间解决代码异常报错方案,sentry是一个工单系统,收集代码中的错误信息,保留完整的案发现场,帮助开发人员快速知晓、解决、追溯问题.sentry提供Saas版本付费开通,不仅如此还开源了代码,提供有运维能力的公司或个人私有化部署.支持丰富的语言环境,前后端91个选择.先简单了......
  • iOS组件化开发之私有库
    0、了解iOS组件化1、制作开源组件库预备工作:1、安装cocoapods2、准备github账号,gitee账号,和cocoapod账号其中github,gitee账号直接在线创建即可。而注册cocoapods账号需要的终端命令:[email protected]"xxx"然后在邮箱里找到验证链接,登录一下即可。podtrunk......
  • openstackq区分共有镜像还是私有镜像:visibility
     在OpenStack的Glance组件中,glanceimage-show命令用于显示指定镜像的详细信息。其中,visibility字段用于表示镜像的可见性。visibility字段决定了哪些用户或租户(project)可以访问和使用该镜像。OpenStack中的镜像可以有不同的可见性级别,以便管理员能够控制镜像的访问权限。以下......
  • 纯前端调用原生Office实现Web在线编辑Word/Excel/PPT,支持私有化部署
    在日常协同办公过程中,一份文件可能需要多次重复修改才能确定,如果你发送给多个人修改后再汇总,这样既效率低又容易出错,这就用到网页版协同办公软件了,不仅方便文件流转还保证不会出错。但是目前一些在线协同Office属于模拟Office,在线模拟OFFICE编辑过的文档,再用本机Office编辑都存在......
  • 系统学习Python——装饰器:“私有“和“公有“属性案例-[为Python3.X重定义运算符重载
    分类目录:《系统学习Python》总目录自然地,之前的文章中的两个混合器父类变体都可以通过代码的一些额外变化来改进。除了两个值得简要关注的变体外,这里我们将略过大部分。首先,下面比较第一个混合方案的变种一一其使用了更加简单的编程结构,但是这也导致每次内置操作都增加一......
  • 系统学习Python——装饰器:“私有“和“公有“属性案例-[为Python3.X重定义运算符重载
    分类目录:《系统学习Python》总目录通常接口代理被要求添加对运算符重载方法的支持,以便正确地委托调用。然而,在我们特定的私有应用中,它也引起了一些额外的设计选择。特别地,运算符重载方法的私有性依每个实现而有不同:它们调用__getattr__,重定位混合类要求仝部访问的__X__名......
  • 牛逼!本地直接部署开源、离线、免费商用的大模型知识库!快速搭建个人和企业私有智能知识
    快速上手1.环境配置首先,确保你的机器安装了Python3.8-3.11(我们强烈推荐使用Python3.11)。$python--versionPython3.11.7接着,创建一个虚拟环境,并在虚拟环境内安装项目的依赖#拉取仓库$gitclonehttps://github.com/chatchat-space/Langchain-Chatchat.g......