首页 > 其他分享 >拥有自己的本地聊天机器人(不需要ChatGPT、笔记本就行)

拥有自己的本地聊天机器人(不需要ChatGPT、笔记本就行)

时间:2024-01-25 15:47:01浏览次数:34  
标签:bin 机器人 zip win 笔记本 x64 b1961 llama ChatGPT

概述

Windows下,架构是使用开源项目来搭建起来的。因为苦于ChatGPT需要Key,觉得很麻烦,且还有一些数据隐私的考虑,所以一直在寻找有没有可行的完全本地化的方法,最终还是找到了一个可行的方案。

最低的资源要求也不是很高,笔记本就行,如果拥有更好的硬件资源的话(Nvidia显卡),那输出会快很多哦。

感觉可以做更多有趣的事情。

架构基本上如下:

graph BT 模型(chinese-alpaca-2-7b) --> llama.cpp --> chatgpt-next-web

PS:关于网络难访问问题,可以通过gitclone.com辅助或者其它镜像站等等帮忙。

模型(chinese-alpaca-2-7b)

需要选择一个模型来作为核心,这里就选择了chinese-alpaca-2-7b,选择它的原因是模型支持中文,且还是基于llama2模型调整的,效果应该会比较好,它还有13b、13b-64k等版本。当然了,模型挺大的,需要通过llama.cpp压缩才能跑起来。

项目地址:https://github.com/ymcui/Chinese-LLaMA-Alpaca-2

仓库的README中的完整模型下载说明了模型的下载方式,选择适合自己的即可,网络不给力也可以使用其中提供的百度网盘,感恩作者。

llama.cpp

核心就是server程序提供了类似ChatGPT的API,这使得其能够对接上比较热门的ChatGPT的web ui,在实际的测试过程中,有些UI不是很兼容,使用起来比较正常的就是chatgpt-next-web了。

项目地址:https://github.com/ggerganov/llama.cpp

就直接release中提供的预编译好的包就行,自己在windows环境下实操了一段时间,没有搞成功。。

解释一下release中的版本有什么区别:

这里会涉及到CPU的指令集(加快计算的部分),可以通过CPUZ这个软件查看,或者在网上查对应的型号支持的指令集。

比如:https://github.com/ggerganov/llama.cpp/releases/tag/b1961

文件名 说明
cudart-llama-bin-win-cu11.7.1-x64.zip cuda有区分版本,这里是11
cudart-llama-bin-win-cu12.2.0-x64.zip cuda版本12
llama-b1961-bin-win-avx-x64.zip CPU支持AVX指令集的
llama-b1961-bin-win-avx2-x64.zip CPU支持AVX2指令集的,是AVX的改进版,我的笔记本支持这个就用它了
llama-b1961-bin-win-avx512-x64.zip CPU支持AVX512指令集的,是AVX2的改进版
llama-b1961-bin-win-clblast-x64.zip 没用过
llama-b1961-bin-win-cublas-cu11.7.1-x64.zip 没用过
llama-b1961-bin-win-cublas-cu12.2.0-x64.zip 没用过
llama-b1961-bin-win-noavx-x64.zip 单纯CPU计算,没有AVX的版本
llama-b1961-bin-win-openblas-x64.zip 没用过

接下来把模型进行转换,使其能通过llama.cpp来运行,脚本是python的,这里使用anaconda来方便切换python版本,python版本使用3.11

# 在当前目录创建虚拟环境
conda create --prefix .\py311 python=3.11
# 激活
conda activate .\py311
# 仓库切换到b1961版本
cd llama.cpp
git checkout b1961
# 用清华源网速快点,安装依赖包
python -m pip install -r llama.cpp\requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
# 将模型转化成过度阶段的float16版本,转化的过程比较慢,最终是要变成4bit的版本
python llama.cpp\convert.py .\chinese-alpaca-2-7b\
# 将生成的ggml-model-f16.gguf转成4bit,也就不到4G的大小,普通机器的内存都能运行。当然,还有更小的版本,像q2_k、q3_k,不过没必要。
.\llama-b1961-bin-win-avx2-x64\quantize.exe .\chinese-alpaca-2-7b\ggml-model-f16.gguf .\chinese-alpaca-2-7b\ggml-model-q4_0.gguf q4_0
# 现在试一下使用server程序加载模型
.\llama-b1961-bin-win-avx2-x64\server.exe -m .\chinese-alpaca-2-7b\ggml-model-q4_0.gguf
# 运行起来后,这一部分就完成了,server提供了一个简洁的web ui在8080端口,同时兼容ChatGPT的API也在里面
...
llama server listening at http://127.0.0.1:8080
...

chatgpt-next-web

项目地址:https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web

这个前端UI需要nodejs及其包管理工具yarn,需要预先安装。

# 切换仓库版本
git chekout v2.10.1
# 复制环境变量文件,然后编辑
cp .env.template .env
# 修改.env文件
#配置参数BASE_URL=http://127.0.0.1:8080
#配置参数OPENAI_API_KEY=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(随便找的一个,占位用,没有其它作用)
# 通过npm来使用yarn安装依赖
npm exec yarn install
# 运行
npm exec yarn dev
...
- ready started server on 0.0.0.0:3000, url: http://localhost:3000
...

体验

通过访问http://localhost:3000可以进入到界面,如果提示需要设置key,按提示,随便找个key填进去即可,比如上面的那个

关于头像如果无法展示,是因为项目是通过在线头像获取的,网络不通的话,可以试着将文件app\components\emoji.tsx中的cdn.jsdelivr.net换成fastly.jsdelivr.net

关于角色问题,也就是UI中的面具,这个挺好使的,嗯

总体的感觉是不及ChatGPT3.5的,但也是一个不错的开始,至少拥有了一个个人的低级AI,还有许多可以优化的地方,慢慢学习吧。

标签:bin,机器人,zip,win,笔记本,x64,b1961,llama,ChatGPT
From: https://www.cnblogs.com/Traveiling-Light/p/17983418

相关文章

  • 文心一言 VS 讯飞星火 VS chatgpt (186)-- 算法导论14.1 3题
    三、用go语言,写出OS-SELECT的非递归版本。文心一言:下面是使用Go语言编写的OS-SELECT的非递归版本:funcOS_SELECT(T*Node,kint)*Node{//找到最小秩的节点minRankNode:=findMinRankNode(T)//如果最小秩的节点就是目标节点,则返回该节点if......
  • 【专题】2023年中国工业机器人行业研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34144原文出处:拓端数据部落公众号仿生机器人作为一类结合了仿生学原理的机器人,具备自主决策和规划行动的能力,正逐渐进入大众视野。它们的核心技术要素包括感知与认知技术、运动与控制技术、人机交互技术和自主决策技术。阅读原文,获取专题报告合集......
  • ChatGPT无法登录报错something went wrong. please make sure your device's date and
    这两天Android在登陆ChatGPT的时候,出现错误:somethingwentwrong.pleasemakesureyourdevice'sdateandtimearesetproperly如下图:这个问题就出现的非常蹊跷,于是我在网上搜索了一圈,很多的教程都指向节点网络问题,但是我的Hostease网络确定没有问题,因此这个问题就快无解了,正......
  • 为什么现在抖音、淘宝、拼多多的店家都需要用上第三方客服机器人?
    在当今高速发展的电商时代,抖音、淘宝、拼多多等各大平台为了提升消费者体验并维持竞争力,这些平台对商家设定了严格的及时响应率要求。如果商家不能快速回复顾客的咨询,他们可能会面临平台一系列的限制,比如说降低店铺的排名、失去参与促销活动的报名资格、把竞争对手推荐给客户等,这......
  • 手型机器人、灵巧手机器人:交互感知-行为提取-意图理解-技能生成-运动映射-灵巧操作”
    灵巧手机器人,灵巧精准操作的手型机器人,最有名的应该就是Google的Deepmind推出的可以玩魔方的手型机器人了,如下图:相关资料:https://baijiahao.baidu.com/s?id=1647601517185392390&wfr=spider&for=pchttps://m.thepaper.cn/baijiahao_4728005地址:http://www.ia.cas.cn/kygz......
  • 发育学习:机器人智能发育算法
    看到了一个机器人领域的新概念,叫做“发育学习”,比较陌生,于是查了下资料,这里也是简单谈下个人的理解。在机器学习领域有个稍微相近的概念,叫做“终身学习”,也就是使用同一个模型对于相同类型的不同学习任务进行分别学习,不同任务时序出现,比如,先出现A任务,然后出现B任务,然后出现C任务,......
  • 机器人的运动控制是否可以引入生物学信息,生物学信息是否可以辅助机器人的智能控制算法
    相关内容:Roboticprostheticanklesimprove'natural'movement,stability看了上面的论文的介绍(内容没看到,不是openaccess论文),论文的主要思想就是利用人体腿部的神经信号来控制假肢脚踝的控制,从而使单侧下肢截肢后使用假肢的人获得更好的行动稳定性。这个研究的实验......
  • 高效又稳定的ChatGPT大模型训练技巧总结,让训练事半功倍!
    高效又稳定的ChatGPT大模型训练技巧总结,让训练事半功倍!前言近期,ChatGPT成为了全网热议的话题。ChatGPT是一种基于大规模语言模型技术(LLM,largelanguagemodel)实现的人机对话工具。现在主流的大规模语言模型都采用Transformer网络,通过极大规模的数据进行自监督训练。但是,......
  • 【ChatGPT】各大互联网企业开发的类ChatGPT大模型
     各大互联网企业开发的类ChatGPT大模型国际互联网公司国内互联网公司 ChatGPT是由开放人工智能公司OpenAI开发的一款基于人工智能技术的聊天机器人,采用了大规模Transformer网络,可以实现对话的生成和理解。其可以进行多轮对话,并具备一定的语言理解和推理能力,可以回答......
  • 为什么用第三方机器人客服能帮淘宝、抖音的店家节省成本?
    在当前激烈的电商市场中,淘宝和抖音这些电商平台的商家面对的客服压力巨大。尤其是像女装这样高流量的店铺,平时就需要至少10名人工客服来应对咨询,一旦遇到双十一这种大促活动,客户咨询量会呈爆炸性增长,许多店家为了维持服务水平,会选择雇佣更多的临时客服人员,甚至不惜支付额外的加班......