零门槛复现ChatGPT:预训练模型数据集直接用,包含完整RLHF流程,在线可体验

这边ChatGPT、GPT-4等AI大模型和应用打得火热;

另一边“平替”开源复现方案也加紧更新迭代。

这不,“首个开源ChatGPT低成本复现流程”就来了波大更新!

现在,仅需不到百亿参数,利用RLHF简单微调,模型即可掌握中、英双语能力,达到与ChatGPT和GPT-3.5相当的效果。

中文对话效果如下:

这就是ColossalChat

由Colossal-AI推出。一个月前,Colossal-AI乘着ChatGPT热潮火速开源了低成本复现流程。

而新升级的ColossalChat,以Meta最新开源的LLaMA为基础预训练模型,能力更强、门槛还更低了:

  • Demo:可直接在线体验模型效果,无需注册或waitinglist

  • 训练代码:开源完整 RLHF 训练代码,已开源至含7B、13B两种模型

  • 数据集:开源104K中、英双语数据集

  • 推理部署:4bit量化推理70亿参数模型仅需4GB显存

  • 模型权重:仅需单台服务器少量算力即可快速复现

  • 更大规模模型、数据集、其他优化等将保持高速迭代添加

要知道,模型开源、数据集、训练应用成本、核心数据安全性等,是AI大模型浪潮下最被关注的一些问题。ColossalChat针对于此,一次性给出了应对方法。

由此,想要快速跟进ChatGPT这轮技术浪潮,门槛又低了一些。

开源地址:https://github.com/hpcaitech/ColossalAI

包含完整 RLHF 流程

具体来看,ColossalChat的能力包括知识问答、中英文对话、内容创作、编程等。

和ChatGPT一样,ColossalChat知道NBA和乔丹是谁:

会写邮件,格式非常规范:

编程能力也不错,能搞定算法:

据了解,为了能更逼近ChatGPT、GPT-4的惊艳效果,ColossalChat使用LLaMA作为预训练模型,并包含完整RLHF流程。

之所以这样做,主要是因为现有开源方案都可被视为只得到了人类反馈强化学习(RLHF)中第一步的监督微调模型,没有进行后续的对齐和微调工作。

RLHF的三个阶段

比如Meta 开源了LLaMA模型,其参数量从70亿到650亿不等,号称130 亿参数即可胜过1750亿的GPT-3模型在大多数基准测试的表现。

但是由于没有被指令微调(instruct tuning),因此实际生成效果不够理想。

斯坦福的Alpaca通过调用OpenAI API,以self-instruct方式生成训练数据,使得仅有70亿参数的轻量级模型以极低成本微调后,即可获得媲美GPT-3.5这样千亿参数的超大规模语言模型的对话效果。

而ChatGPT、GPT-4效果好的一大关键就是将RLHF引入训练流程,才能让生成内容更符合人类价值观。

因此,基于LLaMA模型,包含完整RLHF流程的类Chat模型复现方案 ColossalChat,可以称得上是目前最接近ChatGPT原始技术路线的实用开源项目。

总结来看,和Alpaca相比较ColossalChat具备4个方面的优势

第一、ColossalChat开源了第一个完整的RLHF pipeline,斯坦福Alpaca没有做RLHF,也就是没有做Stage2和3。

第二、ColossalChat采用了更多的指令数据,质量更好、范围更大,并使用强化学习做了alignment使回答更接近人类。

第三、ColossalChat训练流程集成了Colossal-AI的诸多系统优化,同等数据集和模型大小的训练速度可以比AIpaca快3倍左右能让科研人员和中小企业独立训练部署自己的会话系统

第四、ColossalChat采集了更多数据集:训练的英文一共 24M tokens,中文大约 30M tokens,总共约 54M tokens。其中ColossalChat自己收集的数据集英文 6M,中文 18M tokens。

训练数据集开源

数据集方面,ColossalChat开源了包含约10 万条问答的中、英双语数据集

该数据集收集并清洗了社交平台上人们的真实提问场景作为种子数据集,利用self-instruct技术扩充数据,花费约900美元进行标注。

对比其他self-instruct方法生成的数据集,该数据集的种子数据更加真实、丰富,生成的数据集涵盖的话题更多。

该数据可以同时用于微调和RLHF训练。通过高质量的数据,ColossalChat能进行更好地对话交互,同时支持中文。

ColossalChat数据集收集流程

RLHF算法复现

RLHF第一步(Stage1)是supervised-fintuning,即使用上文提到的数据集进行模型微调。

RLHF第二步(Stage2)训练了奖励模型,它通过对于同一个prompt的不同输出进行人工排序,得到对应分数,监督训练奖励模型。

RLHF第三步(Stage3)使用了强化学习算法,是训练流程中最复杂的一部分:

RLHF-Stage3算法流程图

在PPO部分,ColossalChat分为两个阶段进行:

首先是Make Experience部分,利用SFT、Actor、RM、Critic模型计算生成Experience存入buffer中;之后是参数更新部分,利用Experience计算策略损失和价值损失。

在PTX部分,ColossalChat计算Actor输出response和输入语料的回答部分的交叉熵损失函数,用来在PPO梯度中加入预训练梯度,以保持语言模型原有性能防止遗忘。最后将策略损失、价值损失和 PTX 损失加和进行反向传播和参数更新。

快速上手

ColossalChat开源了基于 LLaMA 模型,复现训练 ChatGPT 三个阶段的完整代码。

第一阶段,训练SFT模型:

# Training with a 4-GPU servers
colossalai run --nproc_per_node=4 train_sft.py \--pretrain "/path/to/LLaMa-7B/" \--model 'llama' \--strategy colossalai_zero2 \--log_interval 10 \--save_path  /path/to/Coati-7B \--dataset /path/to/data.json \--batch_size 4 \--accimulation_steps 8 \--lr 2e-5

第二阶段,训练奖励模型:

# Training with a 4-GPU servers
colossalai run --nproc_per_node=4 train_reward_model.py \--pretrain "/path/to/LLaMa-7B/" \--model 'llama' \--strategy colossalai_zero2 \--dataset /path/to/datasets

第三阶段,使用RL训练:

# Training with a 8-GPU servers
colossalai run --nproc_per_node=8 train_prompts.py prompts.csv \--strategy colossalai_zero2 \--pretrain "/path/to/Coati-7B" \--model 'llama' \--pretrain_dataset /path/to/dataset

在获得最终模型权重后,还可通过量化降低推理硬件成本,并启动在线推理服务,仅需单张约4GB显存的GPU即可完成70亿参数模型推理服务部署

python server.py /path/to/pretrained --quant 4bit --gptq_checkpoint /path/to/coati-7b-4bit-128g.pt --gptq_group_size 128

系统性能优化与开发加速

ColossalChat能够快速跟进ChatGPT完整RLHF流程复现,离不开AI大模型基础设施Colossal-AI及相关优化技术的底座支持,相同条件下训练速度相比Alpaca采用的FSDP(Fully Sharded Data Parallel) 可提升3倍以上

系统基础设施Colossal-AI

AI大模型开发系统Colossal-AI为该方案提供了基础支持,它可基于PyTorch高效快速部署AI大模型训练和推理,从而降低AI大模型应用的成本。

Colossal-AI由加州伯克利大学杰出教授James Demmel和新加坡国立大学校长青年教授尤洋领导开发。

自从它开源以来,Colossal-AI已经多次在GitHub热榜位列世界第一,获得GitHub Star约两万颗,并成功入选SC、AAAI、PPoPP、CVPR、ISC等国际AI与HPC顶级会议的官方教程。

减少内存冗余的ZeRO+Gemini

Colossal-AI支持使用无冗余优化器 (ZeRO) 提高内存使用效率,低成本容纳更大模型,同时不影响计算粒度和通信效率。

自动Chunk机制可以进一步提升ZeRO的性能,提高内存使用效率,减少通信次数并避免内存碎片。

异构内存空间管理器Gemini支持将优化器状态从GPU显存卸载到CPU内存或硬盘空间,以突破GPU显存容量限制,扩展可训练模型的规模,降低AI大模型应用成本。

使用LoRA低成本微调

Colossal-AI支持使用低秩矩阵微调(LoRA)方法,对AI大模型进行低成本微调。

LoRA方法认为大语言模型是过参数化的,而在微调时,参数改变量是一个低秩矩阵。

因此,可以将这个矩阵分解为两个更小的矩阵的乘积。

在微调过程中,大模型的参数被固定,只有低秩矩阵参数被调整,从而显著减小了训练所需的参数量,并降低成本。

低成本量化推理

GPTQ量化

为降低推理部署成本,Colossal-AI使用GPTQ 4bit量化推理。

在GPT/OPT/BLOOM类模型上,它比传统的RTN(rount-to-nearest) 量化技术能够获得更好的Perplexity效果。相比常见的FP16推理,它可将显存消耗降低75%,只损失极少量的吞吐速度与Perplexity性能。

以ColossalChat-7B为例,在使用4bit量化推理时,70亿参数模型仅需大约4GB显存即可完成短序列(生成长度为128)推理,在普通消费级显卡上即可完成(例如RTX 3060 Laptop),仅需一行代码即可使用。

if args.quant == '4bit':model = load_quant(args.pretrained, args.gptq_checkpoint, 4, args.gptq_group_size)

如果采用高效的异步卸载技术(offload),还可以进一步降低显存要求,使用更低成本的硬件推理更大的模型。

开放协作

不过目前由于算力和数据集有限,在部分场景下的实际性能还有提升空间。

比如还是会被弱智吧问题难住:

而在这轮技术浪潮中,除了科技巨头们,PyTorch、Hugging Face和OpenAI等开源社区与初创企业也起到了关键作用。

借鉴这些成功经验,Colossal-AI也欢迎各方参与共建,并给出了多种参与方式:

  • 在GitHub发布issue或提交pull request (PR)

  • 加入Colossal-AI用户微信或Slack群交流

  • 发送正式合作提案到邮箱youy@comp.nus.edu.sg

如果你对这项工作感兴趣,可以赶快和他们取得联系~

开源地址:
https://github.com/hpcaitech/ColossalAI

参考链接:

https://medium.com/@yangyou_berkeley/colossalchat-an-open-source-solution-for-cloning-chatgpt-with-a-complete-rlhf-pipeline-5edf08fb538b

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

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

相关文章

常用AI网站精简版

一、聊天、绘图、生产力 1.ChatGPT:(需国外) ChatGPThttps://chat.openai.com/ 2.Discord社区:((需国外,收费)AI绘图midjourney) Discord | Midjourney AI生图https://discord.com/channels/@me

利用 tesseract 自动识别图片中的文字

一、tesseract 下载 tesseract 下载地址:Index of /tesseract 我用的是 4.0 版本,对应的如图中下载链接 下载后双击安装,一路 next,一定要记住自己的安装路径。 二、添加环境变量 接下来配置环境变量: 电脑 -->…

使用百度文字识别API进行图片中文字的识别

今天,为了满足我女朋友作业的需求,我使用Python制作了一个图片转文字的小应用。 (当然,下面导入模块的问题我就不多说了,是非常简单的) 一. 申请百度通用文字识别接口。 1.先在百度AI开放平台注册账号&…

图片怎么识别文字?这几个方法很实用

在工作中,我们有时会需要将一些纸质资料存储为电子文档,毕竟纸质文档很容易因为环境的原因而损毁,比如天气比较潮湿时就很容易受潮,导致资料内容被破坏,因此我们额外另存一份电子文档还是很有必要。那要怎么快速将纸质…

使用tesseract识别图片中的文字

1.下载tesseract,并将其加入环境变量 下载地址:https://digi.bib.uni-mannheim.de/tesseract/ 这里我下载的最新版本,保存到D:\Tesseract 然后我们来设置环境变量: 右击“此电脑”——选择“属性”——找到“高级系统设置”——在…

从图片提取文字的终极解决方法 ——【通用文字识别 API】

写在前面 相信你用过类似对进行图片中的文字提取的功能,但是你了解过背后的原理吗? 本文将从图片中文字提取的原理以及应用案例等多方面进行讲述,希望一文能为你讲透通用文字识别。 通用文字识别是什么技术 随着信息化和数字化的发展&…

Python + Tesseract-OCR识别图片文字

考试答题偶然一次需要提取图片中的文字,所以搜索了一下解决方法 测试代码如下: from PIL import Image import pytesseracttextpytesseract.image_to_string(Image.open(../Demo/Chinese.png),langchi_sim) print(text)1.第一步首先的话需安装pytesser…

【文字识别】OCR截图文字识别提取(无需安装)拖拽图片,打开图片,图片PDF转文字的好帮手

软件无需安装,双击打开就能用,适用于Windows 7以上平台; 具有截图文字识别,拖拽文字识别,打开文字识别,翻译文字等功能 可用于图片和PDF中文字的识别提取中,电脑一切看得见的文件都可以识别&a…

图片文字识别

目录 第一章 系统描述 3 1.1系统概述 3 1.2系统的物理组成 4 第二章 需求分析模型 4 2.1 E-R图 4 2.2 数据流图 5 2.3 状态转换图 6 第三章 软件模块结构图 6 第四章 面向对象的视图 7 4.1 用例图 7 4.2 活动图 8 五、关键技术及实现 9 5.1 图像预处理 9 5.1.1 开发工具 9 5.1.…

tesseract-ocr .NET 识别图片中文字

github:http://​https://github.com/charlesw/tesseract​ 例子: https://github.com/charlesw/tesseract-samples 语言数据文件github:https://github.com/tesseract-ocr/tessdata 语言数据文件下载:https://github.com/tess…

不懂怎么识别图片中的文字?在线教你识别文字方法

我们在学习和工作中经常会遇到许多电子版、纸质版的资料和文件,但当我们需要复制这些资料的文本内容时,如果不借助识别软件,是很难快速地将它们复制粘贴出来。今天,我就来告诉大家几个简单的方法,教大家怎么识别图片中…

实现一个文字识别(图片转文字)工具

00 前言 最近做ppt,看到有些图片中的文字内容很好,一张一张地码字很累还很费时间。就想着有空做一个文字识别的小工具,方便办公流程。在网上查了一下资料,百度智能云提供了文字识别的接口,可以直接调用,挺方…

Android上图片文字识别

前言 OCR 是 Optical Character Recognition 的缩写,翻译为光学字符识别,指的是针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,通过识别软件将图像中的文字转换成文本格式,供文字处理软…

图片转文字,实用的图片文字识别工具

我们在平时的工作和学习生活中,一旦碰到一些需要拷贝下来的图片上的文字,通常我们的做法就是手动抄录文字,或者对照图片在电脑上敲打这些文字。 其实,现在已经有很多图片文字识别软件,我们可以直接利用工具来帮助我们…

如何识别图片中的文字?三种方法轻松搞定

在我们日常办公中,常常需要将纸质文件的文字提取出来,转为电子档,如果字比较少的情况,还可以手打。但是如果字比较多的话,就有些累了,还可能耽误后面的工作,是不是有小伙伴和我一样有这种困扰呢…

tesseract-ocr识别英文和中文图片文字以及扫描图片实例讲解

tesseract-ocr识别英文和中文图片文字以及扫描图片实例讲解 本文参考http://blog.sina.com.cn/s/blog_4aa166780101cji7.html实现,在这里感谢该文章的作者。 OCR(Optical Character Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取…

识别图片中文字的三种方法/图片转文字

一、钉钉 钉钉内置了很多小功能。打开手机钉钉,点击左下角的消息按钮,然后点击右上角的号-扫一扫,点击拍图识字选中需要识别的文字即可。 二、QQ 打开手机QQ,点击右上角的+号-扫一扫之后,点击转文字把图片…

【老保姆教程】:Tesseract-OCR图片文字识别

文章目录 🌟介绍一波🌟小安装🌟配置环境变量⭐️tesseract-ocr配置⭐️tessdata语言配置⭐️检测环境变量是否安装成功 🌟语言包的配置使用🌟CMD命令框中进行图片识别操作⭐️举例一:识别数字⭐️举例二&am…

tesseract:从图片中识别文字信息

一、安装 tesseract 安装过程:https://blog.csdn.net/fengbohello/article/details/119272478 二、安装训练后的语言文件 下载英文数据:https://github.com/tesseract-ocr/tessdata/blob/master/eng.traineddata 下载简体中文数据:https:…

ChatGPT在智能外呼机器人领域的应用

随着人工智能技术的不断发展,自然语言处理(NLP)技术也逐渐成为各行各业的热门技术。其中,ChatGPT技术是近年来备受关注的技术之一。ChatGPT技术是一种基于自然语言处理和深度学习的人工智能技术,它可以处理自然语言文本,实现自动化…