baichuan-7B模型介绍及微调

文章目录

  • baichuan-7B介绍
  • baichuan-7B 推理
  • baichuan-7B 微调
    • 使用微调后的模型推理

baichuan-7B介绍

2023年6月15日,搜狗创始人王小川创立的百川智能公司,发布了70 亿参数量的中英文预训练大模型——baichuan-7B。

baichuan-7B 基于 Transformer 结构,在大约 1.2 万亿 tokens 上训练的 70 亿参数模型,支持中英双语,上下文窗口长度为 4096。

baichuan-7B 不仅在 C-Eval、AGIEval 和 Gaokao 中文权威评测榜单上,以显著优势全面超过了 ChatGLM-6B 等其他大模型,并且在 MMLU 英文权威评测榜单上,大幅领先 LLaMA-7B。

C-Eval榜单

在这里插入图片描述

在中文 C-EVAL 的评测中,baichuan-7B 的综合评分达到了 42.8 分,超过了 ChatGLM-6B 的 38.9 分,甚至比某些参数规模更大的模型还要出色。

开源地址:

Hugging Face:https://huggingface.co/baichuan-inc/baichuan-7B

Github:https://github.com/baichuan-inc/baichuan-7B

Model Scope:https://modelscope.cn/models/baichuan-inc/baichuan-7B/summary

baichuan-7B 推理

编辑predict.py文件如下:

from transformers import AutoModelForCausalLM, AutoTokenizertokenizer = AutoTokenizer.from_pretrained("/data/sim_chatgpt/baichuan-7B", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("/data/sim_chatgpt/baichuan-7B", device_map="auto", trust_remote_code=True)
inputs = tokenizer('登鹳雀楼->王之涣\n夜雨寄北->', return_tensors='pt')
inputs = inputs.to('cuda:0')
pred = model.generate(**inputs, max_new_tokens=64,repetition_penalty=1.1)
print(tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))

运行代码

python predict.py

显存报错
在这里插入图片描述
显存不够,本GPU显存为16G,但模型加载需要27-28G,故考虑使用其量化版本进行加载。
修改如下:

model = AutoModelForCausalLM.from_pretrained("/data/sim_chatgpt/baichuan-7B", device_map="auto", load_in_4bit = true, trust_remote_code=True)

还需要安装下面两个包

pip install bitsandbytes
pip install scipy

运行后结果如下:

登鹳雀楼->王之涣 夜雨寄北->

2.杜甫
3. 夜雨寄北 还家十余日,家住洛桥边. 白日依山尽,思归多苦颜,(崔颢《黄鹤楼》) 黄河入海口. (崔颢《黄鹤楼》) 王之涣的《登鹳雀楼》诗. 日出江花红胜火: 黄河远上,归期何时道,一别西风又一年.” 4,洛阳亲友如相问? 白日依山尽.
-----杜甫《春日忆李白》 王之涣《凉州词(黄河远上白云间)》 《凉州词(黄河远上白云间)》 (王之涣) 黄河远上

开放协议
baichuan-7B 代码采用 Apache-2.0 协议,模型权重采用了免费商用协议,只需进行简单登记即可免费商用。

尽管baichuan-7B在一些评估数据集上效果很好,但是并不能开箱即用,因为它没有 supervised finetune 这一步,没有和人类意图进行对齐,经常听不懂你下达的指令。

baichuan-7B 微调

本次微调参考项目:https://github.com/wp931120/baichuan_sft_lora

下载项目仓库

git clone https://github.com/wp931120/baichuan_sft_lora.git
cd baichuan_sft_lora

配置环境

conda create -n baichuan-7b python=3.9
conda activate baichuan-7b
pip install -r requirements.txt

数据集下载

下载地址:https://huggingface.co/datasets/BelleGroup/train_0.5M_CN/tree/main
该数据集一共有519255条样本。

微调过程

  • 先将百川LLM 采用qlora的 nf4 和双重量化方式进行量化
  • 再采用lora进行指令微调

修改并运行sft_lora.py文件

  • 将sft_lora.py中的模型路径设置为自己的模型路径
  • 执行python sft_lora.py运行代码
    在这里插入图片描述显存占用为9G左右。

测试过程如下图所示:
在这里插入图片描述
相关参数的设置在sft_lora.py中可以找到。
验证集数量:VAL_SET_SIZE = 2000
文本最大长度:CUTOFF_LEN=1024
训练eochs数: num_train_epochs=1
训练batch_size:per_device_train_batch_size=1
验证batch_size:per_device_eval_batch_size=1
学习率:learning_rate=3e-4
梯度累积:gradient_accumulation_steps=4
LoRA中低秩近似的秩:r=8
低秩矩阵缩放超参数:lora_alpha=16
LoRA层的dropout:lora_dropout=0.05

使用微调后的模型推理

训练速度还是比较慢的,花了大概48个小时的时间,训练了72000(18000 * 4)条数据,loss基本在1.4左右。(因为梯度累积参数为4,所以训练集517255/4正好是129313)
在这里插入图片描述

train loss
在这里插入图片描述
在这里插入图片描述
挑选数据集中的数据:
输入:"写一个制作披萨的步骤指南。 "
输出:“1. 准备面团:将面粉、盐、酵母和水混合搅拌,揉成面团,放在温暖通风处发酵。 2. 切配佐料:准备用于披萨的酱料、奶酪和各种佐料,如蔬菜、香肠、火腿等。 3. 擀面皮:将发酵好的面团擀成薄饼状,越薄越好。 4. 加入酱料:把酱料均匀地涂在面皮上。 5. 撒上奶酪和佐料:撒上足够的奶酪和各种佐料。 6. 烘烤:将披萨放进预热好的烤箱,烘烤10-15分钟,或者直到表面变为金黄色。 7. 切片享用:取出披萨,切成适当的大小,稍微冷却一下,即可食用。”

我们先看下未经过微调的模型,推理看下。
在这里插入图片描述
未经微调的模型仅仅是一个生成模型。

我们使用微调18000条数据后的模型进行推理,看效果还是可以的,但推理速度还是挺慢的,大概需要1~2分钟。
在这里插入图片描述
可以看出,已经能够明白意图了。

我们再下载已经微调好的权重来看下。
下载地址:https://huggingface.co/wp931120x/baichuan_4bit_lora
在这里插入图片描述

参考:

https://zhuanlan.zhihu.com/p/637343740

https://zhuanlan.zhihu.com/p/637785176

https://github.com/wp931120/baichuan_sft_lora

https://huggingface.co/wp931120x/baichuan_4bit_lora

https://github.com/baichuan-inc/baichuan-7B/issues/23

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/21545.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

与老范对谈:ChatGPT等AIGC技术对内容产业的影响和趋势判断

昨日,我和老范线下面基,用一下午的时间深入探讨了AIGC对内容产业影响的话题,这次聊天收获满满,我迫不及待将这次讨论的内容整理成了文章。但在这之前,请让我先介绍一下老范。 老范曾就职于盛大创新院、猎豹移动&#x…

安卓星座查询app

一款简单的星座查询app 运行截图&#xff1a; 代码部分&#xff1a; 采用listview&#xff0c;和intent跳转和intent传值实现该功能。 界面代码1&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"h…

我开发的“小灵”,自认为比微软“小冰”好多了

不管是微软的刻意炒作&#xff0c;还是腾讯的出于安全的考虑&#xff0c;总之&#xff0c;东嫂捧出来的“小冰”就这么没了。这件事无论最后结果如何&#xff0c;微软肯定是达到目的了。这一搞&#xff0c;被微信封杀&#xff0c;卖卖萌&#xff0c;恶心一下微信&#xff0c;博…

pyqt实现聊天机器人

环境要求 通过调用openai接口实现聊天机器人功能&#xff0c;支持各种参数得调整&#xff0c;文章末尾有各个参数得说明 python3.9pyqt5环境安装 pip install pyqt5 pip install openai pip install pyinstaller源码如下&#xff1a; chat.py import sys from PyQt5.QtWid…

【微信聊天机器人】基于python实现的PC端个人微信聊天机器人

文章目录 前言一、运行环境二、使用步骤1.引入库2.根据文本内容自动生成回复3.接收消息的回调函数4.启动客户端5.程序入口 三、代码全文总结 前言 微信自动回复、聊天机器人应该是一个很多人迫切需要的功能&#xff08;如时间管理大师&#xff09;&#xff0c;网上能搜到的大多…

Python基于PC版微信实现机器人

在github中有基于web版的微信实现的实时收发消息api&#xff0c;python调用起来非常简单。但是目前来说&#xff0c;大部分的用户没法登录web版的微信&#xff0c;因此也就没法使用。 今天我们介绍基于windows版的微信&#xff0c;实现实时收发信息。本文站在巨人的肩膀上&…

Python实现微信机器人——itchat库

itchat是一个开源的微信个人号接口&#xff0c;可以使用该库进行微信网页版中的所有操作&#xff0c;比如&#xff1a;所有好友、添加好友、拉好友群聊、微信机器人等等。详细用户请看文档介绍&#xff0c;在这里。 本文主要使用该库完成一个能够处理微信消息的的图灵器人&…

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客

完整源代码&#xff08;以及.py下载链接&#xff09;见最后&#xff01; 聊天机器人&#xff08;Chatterbot&#xff09;是经由对话或文字进行交谈的计算机程序。能够模拟人类对话&#xff0c;通过图灵测试&#xff0c;如Siri、小爱同学、微软小冰等。 本教程将教你用Python实现…

微信公众号接入微软小冰

前言 文章首发于微信公众号&#xff1a;前端指南。本文是一篇有点偏向于运营层面的技术类文章&#xff0c;文章略长&#xff0c;请耐心阅读。 也就是最近这几年&#xff0c;人工智能行业已经变得十分的火热了。不可否认&#xff0c;人工智能是整个互联网行业的一种趋势&#xf…

chrome 调试之 - 给微软小冰看病(无论给小冰发送什么内容都只回复“我已经开始升级啦,期待一下吧!”)

微软 Bing 搜索推出了小冰AI智能聊天模块&#xff0c;具体启用方式是用edge或chrome浏览器打开链接 cn.bing.com 后在输入框搜索任意内容&#xff0c;待搜索结果页面加载完并稍等片刻&#xff0c;页面右侧就会出现一个躲在滚动条后面的小萝莉&#xff0c;抚摸...不&#xff0c;…

微软小冰智能聊天是如何实现的

微软小冰智能聊天是如何实现的&#xff1f; 官网介绍&#xff1a;微软小冰 虽然知道小冰的智能回复背后&#xff0c;应该是微软庞大的数据库。 但作为大二的学生&#xff0c;对这方面不是很了解&#xff0c;期待能得到答复。谢谢。 关注者 1,033 被浏览 112,398 关注问题 写回答…

微软小冰推出“虚拟版”微信!比原版更好玩

来源&#xff1a;雷科技 提起AI&#xff0c;大伙的脑海里会想到什么场景&#xff1f; 小雷知道&#xff0c;有些自带“污妖王”属性的小伙伴&#xff0c;已经浮现出AI换脸那些事儿了。 只要有足够的人脸数据&#xff0c;再加上足够长的时间训练&#xff0c;就可以把明星的脸…

【小沐学NLP】Python实现聊天机器人(微软小冰)

&#x1f37a;NLP开发系列相关文章编写如下&#x1f37a;&#xff1a;1&#x1f388;【小沐学NLP】Python实现词云图&#x1f388;2&#x1f388;【小沐学NLP】Python实现图片文字识别&#x1f388;3&#x1f388;【小沐学NLP】Python实现中文、英文分词&#x1f388;4&#x1…

微软小冰智能聊天是如何实现的?

我在知乎关于《微软小冰智能聊天是如何实现的&#xff1f;》做的回答 刚好做过一个类似的产品&#xff0c;虽然没有那么高大上&#xff0c;但一些核心技术原理应该也参考意义&#xff0c;说一下做的思路。 类似小冰这样的产品说简单也简单&#xff0c;说复杂也复杂。单纯从外面…

微信小冰陪聊机器人Python

一、原因 女友因为我老不回消息分手了&#xff0c;很郁闷。 所以想能不能实现一个陪聊机器人&#xff0c;如果以后还有女朋友免去痛苦&#xff0c;可以专心打游戏敲代码&#xff0c;嘿嘿嘿。&#xff08;果然有这种思想的人不会有女朋友了&#xff09; 二、实现 本人学习没…

微软小冰:全双工语音对话详解

讲师 | 周力 来源 | AI科技大本营在线公开课 微软小冰第六代发布会上正式宣布上线全新的共感模型&#xff0c;同时也开始公测一种融合了文本、全双工语音与实时视觉的新感官。这项新技术可以实时预测人类即将说出的内容&#xff0c;实时生成回应&#xff0c;并控制对话节奏&…

itchat与微软小冰的碰撞!--微软小冰接入itchat实现微信自动回复

微软小冰接入itchat实现微信自动回复 本文简介先上效果图&#xff01;一、集成微软小冰制作聊天机器人原理代码监听好友信息监听小冰信息 二、定时发送消息推送与自动回复同时实现原理代码完整代码加点花的代码结语 本文简介 最近研究了一下基于python实现的itchat模块&#x…

ChatGPT 最新知识大全:工作原理,ChatGPT 是如何训练的,局限性是什么,开源 ChatGPT 替代品有哪些?

我们今天谈论的应用程序在发布后的 5 天内就突破了 100 万用户,并在 2023 年 2 月之前获得了 1 亿用户,创下了增长最快的平台记录。它在 2 月达到了 10 亿次访问,在 2023 年 3 月达到了 16 亿次访问。相比之下,Facebook需要 10 个月,Spotify需要 5 个月,Instagram需要 2 …

昇思MindSpore AI框架在知名度与使用率市场份额上处于第一梯队

2023年2月6日&#xff0c;行业研究机构Omdia&#xff08;Informa tech集团旗下国际信息与通信技术研究机构&#xff09;发布了《中国人工智能框架市场调研报告》&#xff0c;深入分析了中国人工智能框架市场的竞争格局&#xff0c;产业现状与创新趋势。Omdia通过调研发现&#…

当ChatGPT杀入学术出版领域,有人开始围堵,有人悄悄地打开大门

导读 最近&#xff0c;智能聊天机器人ChatGPT火到了天际。 它能够通过学习和理解人类的语言来进行对话&#xff0c;还能根据聊天内容的上下文进行互动&#xff0c;像人一样来沟通交流&#xff0c;甚至能完成撰写邮件、视频脚本、文案、翻译、代码等任务。 除此之外&#xff…