广告行业中那些趣事系列64:低成本训练一个媲美ChatGPT效果的Vicuna模型

导读:本文是“数据拾光者”专栏的第六十四篇文章,这个系列将介绍在广告行业中自然语言处理和推荐系统实践。本篇主要从理论到实践介绍低成本训练一个媲美ChatGPT效果的Vicuna模型,对于希望搭建自己的大语言模型并应用到实际业务场景感兴趣的小伙伴可能有帮助。

欢迎转载,转载请注明出处以及链接,更多关于自然语言处理、推荐系统优质内容请关注如下频道。
知乎专栏:数据拾光者
公众号:数据拾光者

摘要:本篇主要从理论到实践介绍低成本训练一个媲美ChatGPT效果的Vicuna模型。首先介绍了背景,实际工作中需要利用大语言模型进行语料标注和文本分类任务;然后介绍了Vicuna的理论知识,包括模型简介、工作流程和当前存在的问题;接着重点介绍了从0到1搭建自己的Vicuna模型,包括fastChat加载Vicuna模型、模型权重获取、模型加载和推理、模型微调、模型评估以及更适配中文场景的Chinese-Vicuna。对于希望搭建自己的大语言模型并应用到实际业务场景感兴趣的小伙伴可能有帮助。

下面主要按照如下思维导图进行学习分享:

44affa76b11fbf1de8c75ea170559371.png

01 背景

随着ChatGPT火爆全网,将大语言模型应用到实际的工作也越来越重要。我们希望使用ChatGPT来进行数据标注和文本分类任务中,虽然公司已经提供了ChatGPT、GPT4等大模型的接口,但是随着产研界越来越多的大语言模型权重被开源,构造自己的大语言模型也不可或缺,一方面可以有效的降低成本,毕竟调用openai的接口是要花钱的,而且是按token收费的;另一方面,也能很好的避免“卡脖子”问题,一旦外界的大语言模型无法使用,可以快速的有自己的替代品使用,不会影响业务的进展。

02 Vicuna理论知识

2.1 Vicuna简介

调研了当前比较热门的开源大语言模型,主要有斯坦福开源的羊驼(Stanford Alpaca),伯克利、斯坦福等机构联名发布的小羊驼(Vicuna)等。使用GPT-4评估各模型效果,Vicuna-13B模型仅花费300美元的训练成本,就可以达到媲美ChatGPT的效果,非常惊艳。下面是各模型效果对比:

b6655bfb730a3fffa81d1485f9d1b9fe.png

图1 使用GPT4评估各模型效果

通过上图中可以看出,Vicuna-13B已经达到ChatGPT模型92%的效果。如果有小伙伴想体验下Vicuna-13B模型效果,可以通过下面的链接:

https://chat.lmsys.org/

下面是我用Vicuna-13B模型通过CARP提示词方法识别输入文本是否和汽车相关的示例,关于CARP相关介绍可以看下我之前写过的一篇文章《广告行业中那些趣事系列63:使用chatgpt类大模型进行文本分类任务》。整体来看识别效果还不错,下面是示例图:

7c4c6c2fdc39d02226852d94210309b8.png

图2 Vicuna-13B模型通过CARP进行文本分类

2.2 Vicuna工作流程

Vicuna工作流程如下图所示:

e4129cb3b4f51e42c86ab528176c4b2a.png

图3 Vicuna工作流程图

首先,通过ShareGPT.com官网收集了7W组用户对话。用户可以在ShareGPT.com分享他们的ChatGPT对话;

然后,使用这些有监督的指令在LLaMa模型上微调。Vicuna作者增强了Alpaca提供的训练脚本,从而更好地处理多轮对话和长序列。模型训练通过PyTorch FSDP使用8个A100 GPU在一天内完成;

接着,基于FastChat实现了一个轻量级分布式服务系统;

最后,利用GPT-4在80个不同的问题上评估模型效果。将各模型的输出作为提示词和问题一起提供给GPT-4,然后由GPT-4评估哪个模型效果更好。分别对比LLaMA、Alpaca、Vicuna和Bard/ChatGPT模型的数据集和训练成本,下面是详细对比数据:

1c2aa0c4be0f49e18a46feec794acf48.png

图4 各模型训练成本和数据集对比

2.3 Vicuna存在的问题

和其他大型语言模型一样,Vicuna有一定的局限性:

  • 在涉及推理和数学等任务方面表现不佳;

  • 输出内容的事实准确性存在不足;

  • 输出内容的安全性(这里包括政治、歧视等)存在不足。

03 从0到1搭建自己的Vicuna模型

3.1 通过fastChat加载Vicuna模型

本文主要通过fastChat加载Vicuna模型,fastChat是一个基于聊天机器人的可以训练、服务和评估大语言模型的开放平台,其核心功能包括:

(1)支持当前最先进模型(例如Vicuna、FastChat-T5)的权重,包括模型训练和评估;

(2)支持Web UI和OpenAI兼容的RESTful API的分布式多模型服务系统。

fastChat在github上已经有2.5W的star,感兴趣的小伙伴可以通过下面了解:

https://github.com/lm-sys/FastChat

3.2 Vicuna模型权重获取

Vicuna是在LLaMA 模型的基础上微调得到的,为了符合 LLaMA 模型license授权,Vicuna只发布了delta 权重。通俗的说就是本来Vicuna可以发布一个完整的模型,现在为了符合LLaMA 模型license授权只能把模型权重分成两个部分,一部分是原始的LLaMA 模型权重,另一部分就是delta 权重。我们只需要将这两部分权重合并起来(也就是将每一层参数相加)就可以得到完整的 Vicuna 的权重。Vicuna模型权重合并脚本如下:

python3 -m fastchat.model.apply_delta \
--base-model-path /path/to/llama-13b \
--target-model-path /path/to/output/vicuna-13b \
--delta-path lmsys/vicuna-13b-delta-v1.1

原始的LLaMA 模型权重可以通过git clone下载,但是下载比较慢,建议直接去huggingface.里下载:

https://huggingface.co/huggyllama/llama-13b/tree/main

Vicuna的delta 权重也可以去huggingface.里下载:

https://huggingface.co/huggyllama/llama-13b/tree/main

3.3 模型加载和推理

使用如下命令加载Vicuna模型:

python3 -m fastchat.serve.cli \
--model-path model/vicuna/vicuna-13b \
--style rich \
--num-gpus 2

如果加载Vicuna-13B需要至少28GB的 GPU 内存,Vicuna-7B需要14GB GPU 内存。继续用上面的例子进行汽车标签的文本分类任务,我们使用CARP的prompt方法,下面是Vicuna-13B模型文本分类的结果:

1fc45b12cee5e4f53f3f47bdcb0993dc.png

图5 Vicuna-13B模型进行文本分类

从上面的例子可以看出,模型效果还是不错的。后面会针对我们实际的业务场景构造一个测试集,然后分别尝试用chatgpt和Vicuna-13B进行效果对比。

3.4 模型微调

上面说过,Vicuna是基于LLaMA模型进行微调的,从ShareGPT.com公共API中收集了7W组用户共享的对话。为了提升数据的质量,Vicuna将HTML转换回markdown,并过滤掉一些不适当或低质量的样本。不仅如此,还将长对话切分成适合Vicuna模型最大上下文长度的小片段。

训练方面,Vicuna代码是基于之前的Stanford Alpaca进行开发的,同时支持多轮对话。超参方面和羊驼Alpaca模型类似:

  • Global Batch Size:128

  • 学习率:2e-5      

  • Epochs:3    

  • Max length:2048

  • 权重衰减:0

Vicuna在Stanford Alpaca的基础上进行了如下三个方面优化:

  1. 多轮对话:为了考虑多轮对话调整了训练损失,仅计算chatbot输出的微调损失;

  2. 内存优化:为了让Vicuna能够理解长文本,将Alpaca最大上下文长度从512扩展到2048,这大大增加了GPU内存需求。通过使用梯度检查点和快闪注意力来应对内存压力;

  3. 通过Spot点实例降低成本:数据集规模扩充了40倍,文本序列长度也扩充了4倍,使得训练难度激增。Vicuna采用SkyPilot托管点实例方法来降低成本,通过利用带有自动恢复和自动区域切换的更便宜的Spot点实例来降低成本。通过这种方法将Vicuna-7B模型的训练成本从500刀降低到140刀,Vicuna-13B模型的训练成本从1000到降低到140刀。降低成本是非常重要的,这让一些中小公司也有机会训练属于自己的“大”模型。

3.5 模型评估

评估AI 聊天机器人是很有挑战性的工作,因为需要涉及到语言理解、推理和上下文理解。随着AI 机器人越来越先进,当前很多开源的benchmarks已经不再合适了。比如当前先进的聊天机器人可以很容易的回答Stanford Alpaca构建的评估集,这使得模型评估变得更难。除此之外,一方面训练集和测试集存在相互污染的问题,另一方面构建评估集本身成本也很高。为了解决上面的问题,Vicuna提出了使用GPT-4来评估聊天机器人效果,其实就是让当前最强的大语言模型来评估其他大语言模型的效果,具体评估方法如下:

首先,设计了八类问题,比如Fermi问题、角色扮演、撰写代码和数学等。通过这些问题测试聊天机器人各方面的能力。通过精心构建提示词可以让GPT-4生成多样性高并且富有挑战的问题,这些问题对于基线模型来说也很难;然后从每类任务中选择十个问题,分别收集LLaMA、Alpaca、ChatGPT、Bard和Vicuna五个聊天机器人的答案;最后通过GPT-4对这些答案进行打分,主要会从是否有帮助、相关性、准确性等方面进行评估,下面是评估结果:

bd13837cb6c696ed176f2c442de56695.png

图6 通过GPT-4评估各种大模型

可以看出Vicuna明显优于LLaMA和Alpaca,略优于Bard,和ChatGPT相比则较差。关于评估的细节可以参考下面的网址:

https://github.com/lm-sys/vicuna-blog-eval

3.6 更适配中文场景的Chinese-Vicuna

最近又调研到一个基于LLaMA模型使用中文指令的Chinese-Vicuna,github有3900多star,应该会更适配我们实际的中文应用场景。感兴趣的小伙伴可以了解下:

https://github.com/Facico/Chinese-Vicuna

总结和反思

本篇主要从理论到实践介绍低成本训练一个媲美ChatGPT效果的Vicuna模型。首先介绍了背景,实际工作中需要利用大语言模型进行语料标注和文本分类任务;然后介绍了Vicuna的理论知识,包括模型简介、工作流程和当前存在的问题;接着重点介绍了从0到1搭建自己的Vicuna模型,包括fastChat加载Vicuna模型、模型权重获取、模型加载和推理、模型微调、模型评估以及更适配中文场景的Chinese-Vicuna。对于希望搭建自己的大语言模型并应用到实际业务场景感兴趣的小伙伴可能有帮助。

参考资料

  1. https://github.com/lm-sys/FastChat

  2. https://lmsys.org/blog/2023-03-30-vicuna/

  3. https://github.com/Facico/Chinese-Vicuna

最新最全的文章请关注我的微信公众号或者知乎专栏:数据拾光者。

1cf01a3ee27ebd158dee919430eb85a8.png

码字不易,欢迎小伙伴们点赞和分享。

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

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

相关文章

618,你会入手哪些书?【文末送书】

好书分享 前沿技术人工智能半导体新一代通信与信息技术网络空间安全参与规则 一年一度的618又到啦!今年的618就不要乱买啦,衣服买多了会被淘汰,电子产品买多了会过时,零食买多了会增肥,最后怎么看都不划算。可是如果你…

Bito AI:免费使用 AI 编写代码/修复错误/创建测试用例 Use AI智能聊天 to 10x dev work

目录 Bito AI 简介 关键是:免费的!注册就能使用!!还不赶紧用起来??!https://bito.co/

你真的懂树吗?二叉树、AVL平衡二叉树、伸展树、B-树和B+树原理和实现代码详解...

树(Tree)是一种相当灵活的数据结构(上一节已经详细讲解了基本的数据结构:线性表、栈和队列),你可能接触过二叉树,但是树的使用并不限于此,从简单的使用二叉树进行数据排序,到使用B-树或B+树设计数据库引擎,以及目前热门的人工智能机器学习都使用到树,例如决策树(De…

人工智能预测股票涨停?靠谱吗?好像行哦,那不发财了?

背景 人工智能很火,各种秀。股票让人欢喜让人忧。它们结合能擦出什么样的火花? 我从去年5月学编程,树立目标:数据分析股市,做快乐盈利股民。达成阶段目标:预测股票涨停。特写文章记录和分享,也…

ChatGPT: 软件开发通用性与易用性的联系

测试地址: https://chatgptmirror.com?share3T7MZ8

GAT1400协议 注册流程

本人最近工作需要对接1400协议,发现网上资料不多,于是自己摸索了一阵,在这给大家提供一些我的见解,我是用C语言写的代码,有需要的可以联系我 公安部制定了统一的标准即GAT1400“公安视频图像信息应用系统”&#xff0c…

免费使用chantgpt,你敢相信吗!(不要梯子)

对于chantgpt大家一点不陌生,对于他的功能我就不细说了(人工ai),下面直接进入正题 需要什么 1: Eg 浏览器 2.WeTab新标签页 使用方法 第一步 打开eg浏览器 第二步 打开扩展 第三步搜索 下面这个 第五步 和其他的扩…

【腾讯云 Cloud Studio 实战训练营】全新的开发习惯养成方式,至——后代开发者们

一、前言介绍 什么是 IDE ? IDE 全称“Integrated Development Environment”,中文意思为“集成开发环境”,是用于提供程序开发环境的应用程序,是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。目…

AutoGPT:有手就会的安装教程

AutoGPT 是什么 Auto-GPT 是一个实验性开源应用程序,展示了 GPT-4 语言模型的功能。该程序由 GPT-4 驱动,将 LLM 的“思想”链接在一起,以自主实现您设定的任何目标。作为 GPT-4 完全自主运行的首批示例之一,Auto-GPT 突破了 AI …

真刑!几行代码端了整个教务系统。。

点击关注公众号,Java干货及时送达 国内最强微服务框架,没有之一! 几乎覆盖 Spring Boot 所有操作! 2023 全新 Java 面试题(2500+) 作者:lyc 来源:https://www.freebuf.co…

腾讯健康防沉迷——已经成年显示未成年——如何关闭未成年模式——解决方法

今天早上我闲的没事打开wegame,想看看LOL,更新完之后,我启动游戏,发现显示我未成年,我当时就懵了,我01年12月的,咱早就成年了,这是什么鬼 我开始以为是游戏加载问题,我重…

chatgpt赋能python:Python计算器函数

Python计算器函数 Python计算器函数是一种非常有用的工具,可以帮助您进行各种计算操作。从简单的加减乘除到复杂的科学运算,Python计算器函数可以让您轻松地完成您需要的数学计算。 Python计算器函数的基本介绍 在Python中,通过定义函数来…

chatgpt赋能Python-pythongui计算器

Python GUI 计算器 – 强大、易用的实用工具 Python GUI 计算器是一款功能强大、易于使用的实用工具。开发者们使用 Python 编程语言和一些流行的 GUI 框架(例如 Tkinter 和 PyQt)创造了这一款工具,为促进计算任务的高效完成提供了最佳体验。…

好的爆款文案可以让用户喜欢上我们的产品

​大家好,我是我赢助手,专注于新媒体短视频去水印、去重和文案提取运营的自媒体!今天继续给大家聊一下爆款文案如何形成的问题。 “爆款文案”是指一篇稿件中,含有超过3个关键词的文字。它不是一种固定的格式,而是一种…

宣传产品的软文怎么写?软文写作有哪些技巧?

不管所处的是什么行业,做的是什么产品,都是可以通过软文推广进行宣传的,软文的作用非常强大,不止是可以提升品牌知名度,还可以宣传企业文化,企业名人ip,还能通过宣传产品进而达到成交的目的&…

程序员必备的工具网站,大幅度提升你的工作效率

前言: 相信很多人不光是在编程的过程中,在平时的生活中,也经常会收藏一些有用的网站,方便使用的时候,靠这些网站来解决一些麻烦的事情。 我就把我收藏的一些经常用的工具网站分享给你们,你们也可以收藏起来…

AutoGPT被干死了!OpenAI官方发布同样功能,更强大更好用!

来源:量子位 OpenAI官方AutoGPT,要来了! 就在AutoGPT项目破10万Star之际,OpenAI也放出重磅炸弹,由联合创始人格雷格布洛克曼(Greg Brockman)亲自现场演示了ChatGPT即将上线的新功能。 比如要一张…

如何能基于prompt tuning v2训练好一个垂直领域的chatglm-6b

如何能基于prompt tuning v2训练好一个垂直领域的chatglm-6b 首先先抛出一个问题,是不是所有的文本生成数据集都适合用chatglm 6B的模型进行微调。那我们今天找到了三个数据集,分别为百科数据集、法律问答数据集、论文题目与摘要数据集、专利名称与专利…

【报告分享】2021中国私域营销白皮书-BCG(附下载)

摘要:这一年,私域触点在中国的渗透率达到96%,消费者对于私域的依赖逐步建立。这一年,线上线下的融合呈现加速趋势,新的业态蓬勃兴起。 作为企业O2O布局的关键一环,私域流量已成为所有品牌不容有失的阵地。 来源:BCG 如…

分享113个HTML电子商务模板,总有一款适合您

分享113个HTML电子商务模板,总有一款适合您 113个HTML电子商务模板下载链接:https://pan.baidu.com/s/1JIlnB8qpg4wIuh-fi0e-Bg?pwdiwvr 提取码:iwvr Python采集代码下载链接:采集代码.zip - 蓝奏云 import os import shuti…