AIGC:ColossalChat(基于LLM和RLHF技术的类似ChatGPT的聊天机器人)/ColossalAI的简介、安装、使用方法之详细攻略

本文主要是介绍AIGC:ColossalChat(基于LLM和RLHF技术的类似ChatGPT的聊天机器人)/ColossalAI的简介、安装、使用方法之详细攻略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

AIGC:ColossalChat(基于LLM和RLHF技术的类似ChatGPT的聊天机器人)/ColossalAI的简介、安装、使用方法之详细攻略

导读:ColossalChat 是第一个基于LLaMA预训练模型开源完整RLHF pipline实现,包括有监督数据收集、有监督微调、奖励模型训练和强化学习微调。只需要不到100亿个参数,就可以在大型语言模型的基础上通过RLHF微调达到中英文双语水平,达到与ChatGPT和GPT-3.5相当的效果,并可以进行Demo测试。可以开始用1.6GB的GPU内存复制ChatGPT训练过程,并在训练过程中体验7.73倍的加速。
开源的LLaMA模型没有指令调优:Meta已经开源了LLaMA模型,该模型提供了70亿至650亿的参数大小。在大多数基准测试中,130亿参数的模型可以优于1750亿GPT-3模型。然而,由于它没有指令调优阶段,因此实际生成的结果并不令人满意。
Alpaca可以低成本微调:斯坦福大学的Alpaca通过调用OpenAI的API,以自学的方式生成训练数据。这个轻量级模型只有70亿个参数,可以以很小的成本进行微调,以实现类似于GPT-3.5这样的具有1750亿个参数的大型语言模型的会话性能。
RLHF阶段非常重要:然而,现有的开源解决方案只能被视为RLHF(从人类反馈中进行强化学习)第一阶段的监督微调模型,而后续的调整和微调阶段则不执行。此外,Alpaca的训练数据集仅限于英语,这在一定程度上限制了模型的性能。ChatGPT和GPT-4令人印象深刻的效果是由于在训练过程中引入了RLHF,这增加了生成的内容与人类价值观的一致性。
Colossal AI利用ZeRO(零冗余优化器)提高内存使用效率:使更大的模型能够以更低的成本被容纳,而不会影响计算粒度和通信效率。自动组块机制可以通过提高内存使用效率、降低通信频率和避免内存碎片来进一步提高ZeRO的性能。异构内存空间管理器Gemini支持将优化器状态从GPU内存卸载到CPU内存或硬盘空间,以克服GPU内存容量的限制,扩大可训练模型的规模,降低大型AI模型应用的成本。
Colossal AI利用LoRA(低秩自适应)实现对大型模型进行低成本微调:LoRA方法假设大型语言模型过度参数化,并且微调期间的参数变化是低秩矩阵。因此,这个矩阵可以分解为两个较小矩阵的乘积。在微调过程中,大模型的参数是固定的,只调整低秩矩阵的参数,显著减少了训练所需的参数数量,降低了成本。

目录

相关文章

AIGC:ColossalChat(基于LLM和RLHF技术的类似ChatGPT的聊天机器人)/ColossalAI的简介、安装、使用方法之详细攻略

LLMs:ColossalChat相关的开源训练数据集简介(SFT指令微调数据集+奖励模型排序数据集+RLHF数据集)、RLHF算法实现的三个阶段(监督指令微调→训练奖励模型→RLHF训练模型→推理量化和服务)

LLM之Colossal-LLaMA-2:Colossal-LLaMA-2的简介、安装、使用方法之详细攻略

LLM之Colossal-LLaMA-2:源码解读(init_tokenizer.py文件)实现基于源词表的扩展(中文标记的新词汇)进而实现持续预训练、(init_model.py文件)实现过计算均值来扩展模型的嵌入层以适应新的词汇表,然后保存扩展后的模型、(prepare_pretrain_dataset.py文件)将原始数据集进行处理和切片并保存为JSONL格式和 Arrow格式

ColossalChat的论文

《Colossal-AI: A Unified Deep Learning System For Large-Scale Parallel Training》翻译与解读

摘要与结论

ColossalChat的简介

1、局限性

LLaMA-finetuned 模型的限制

数据集的限制

2、在线演示

3、Coati7B examples

Generation

Open QA

ColossalChat的安装

第一步,安装环境

第二步,安装Transformers

ColossalChat的使用方法

LLMs:ColossalChat相关的开源训练数据集简介(SFT指令微调数据集+奖励模型排序数据集+RLHF数据集)、RLHF算法实现的三个阶段(监督指令微调→训练奖励模型→RLHF训练模型→推理量化和服务)


相关文章

AIGC:ColossalChat(基于LLM和RLHF技术的类似ChatGPT的聊天机器人)/ColossalAI的简介、安装、使用方法之详细攻略

AIGC:ColossalChat(基于LLM和RLHF技术的类似ChatGPT的聊天机器人)/ColossalAI的简介、安装、使用方法之详细攻略-CSDN博客

LLMs:ColossalChat相关的开源训练数据集简介(SFT指令微调数据集+奖励模型排序数据集+RLHF数据集)、RLHF算法实现的三个阶段(监督指令微调→训练奖励模型→RLHF训练模型→推理量化和服务)

LLMs:ColossalChat相关的开源训练数据集简介(SFT指令微调数据集+奖励模型排序数据集+RLHF数据集)、RLHF算法实现的三个阶段(监督指令微调→训练奖励模型→RLHF训练模型→​​​-CSDN博客

LLM之Colossal-LLaMA-2:Colossal-LLaMA-2的简介、安装、使用方法之详细攻略

LLM之Colossal-LLaMA-2:Colossal-LLaMA-2的简介、安装、使用方法之详细攻略-CSDN博客

LLM之Colossal-LLaMA-2:源码解读(init_tokenizer.py文件)实现基于源词表的扩展(中文标记的新词汇)进而实现持续预训练、(init_model.py文件)实现过计算均值来扩展模型的嵌入层以适应新的词汇表,然后保存扩展后的模型、(prepare_pretrain_dataset.py文件)将原始数据集进行处理和切片并保存为JSONL格式和 Arrow格式

LLM之Colossal-LLaMA-2:源码解读(init_tokenizer.py文件)实现基于源词表的扩展、(init_model.py文件)实现过计算均值扩展模型、(prepare_pretr-CSDN博客

ColossalChat的论文

《Colossal-AI: A Unified Deep Learning System For Large-Scale Parallel Training》翻译与解读

地址

GitHub:GitHub - hpcaitech/ColossalAI: Making large AI models cheaper, faster and more accessible

论文:https://arxiv.org/abs/2110.14883

时间

2019-09-20

作者

摘要与结论

The success of Transformer models has pushed the deep learning model scale to billions of parameters. Due to the limited memory resource of a single GPU, However, the best practice for choosing the optimal parallel strategy is still lacking, since it requires domain expertise in both deep learning and parallel computing.

The Colossal-AI system addressed the above challenge by introducing a unified interface to scale your sequential code of model training to distributed environments. It supports parallel training methods such as data, pipeline, tensor, and sequence parallelism, as well as heterogeneous training methods integrated with zero redundancy optimizer. Compared to the baseline system, Colossal-AI can achieve up to 2.76 times training speedup on large-scale models.

Transformer模型的成功将深度学习模型规模推向了数十亿个参数。然而,由于单个GPU的有限内存资源,选择最佳并行策略的最佳实践仍然缺乏,因为这需要对深度学习和并行计算领域的专业知识。

Colossal-AI系统通过引入一个统一的接口来解决上述挑战,将您的顺序模型训练代码扩展到分布式环境中。它支持数据、流水线、张量和序列并行等并行训练方法,以及与ZerO零冗余优化器集成的异构训练方法。与基线系统相比,Colossal-AI在大规模模型上可以实现高达2.76倍的训练加速。

CONCLUSION

In this work, we designed and implemented Colossal-AI which integrated a vast number of advanced acceleration techniques into one unified system for large-scale distributed training. Colossal-AI comes with flexible system design which supports easy combination of different parallelism methods and allows for easy extension by the developers and users. In addition, its acceleration techniques provide robust per-formance under different hardware conditions and deliver superior performance compared to the baseline systems. In our experiments, we have demonstrated the advantages of Colossal-AI over Megatron-LM and DeepSpeed. 2.5D and 3D tensor parallelism can save up to 62% and 74.2% memory usage compared to Megatron-LM 1D tensor parallelism when scaling the hidden size of 2-layer MLP to 16384. When scaling to 64 GPUs, 2D tensor parallelism can outperform Megatron-LM 1D tensor parallelism by 276%. For middle-size models with a large amount of activations such as BERT-Base, sequence parallelism can deliver 1.43 times higher train-ing throughput than 1D tensor parallelism. Our re-designed sharding and offloading module can by 2.33 times faster than DeepSpeed on GPT-2.

结论

在这项工作中,我们设计并实现了Colossal-AI,将大量先进的加速技术集成到一个统一的大规模分布式训练系统中。Colossal-AI具有灵活的系统设计,支持不同并行方法的简单组合,并允许开发人员和用户进行轻松扩展。此外,其加速技术在不同硬件条件下提供了稳健的性能,并相对于基线系统提供了更优越的性能。在我们的实验中,我们已经证明了Colossal-AI相对于Megatron-LM和DeepSpeed的优势。在将2层MLP的隐藏大小扩展到16384时,2.5D和3D张量并行ism相对于Megatron-LM的1D张量并行ism可以节省高达62%和74.2%的内存使用量。当扩展到64个GPU时,2D张量并行ism可以比Megatron-LM的1D张量并行ism提高276%。对于具有大量激活的中等大小模型(如BERT-Base),序列并行ism可以提供1.43倍于1D张量并行ism的训练吞吐量。我们重新设计的分片和卸载模块在GPT-2上比DeepSpeed快2.33倍。

ColossalChat的简介

       ColossalChat于2023年3月28日发布(目前GitHub已获得29.2k个star,仍在持续更新),它是一个使用LLM和RLHF技术实现的聊天机器人项目,由Colossal-AI项目提供支持。Coati代表ColossalAI Talking Intelligence,是实现该项目的模块的名称,也是由ColossalChat项目开发的大型语言模型的名称。
       ColossalChat是一个开源的解决方案,用于克隆ChatGPT并具有完整的RLHF流程,也是最接近ChatGPT原始技术路线的项目。
       它是一款基于人工智能技术的聊天机器人,它可以与用户进行自然语言交互。Coati软件包提供了一个统一的大型语言模型框架,实现了以下功能:
>>支持ColossalAI的全面大型模型训练加速能力,无需了解复杂的分布式训练算法;
>> 监督式数据集收集;
>> 监督指令微调; 
>> 训练奖励模型; 
>> 带人类反馈的强化学习; 
>> 量化推理;
>> 快速模型部署; 
>> 与Hugging Face生态系统完美集成,具有高度的模型定制性;

 由于Colossal-AI正在进行一些重大更新,因此该项目将得到积极维护,以与Colossal-AI项目保持一致。

[2023/03] ColossalChat: An Open-Source Solution for Cloning ChatGPT With a Complete RLHF Pipeline

[2023/02] Open Source Solution Replicates ChatGPT Training Process! Ready to go with only 1.6GB GPU Memory

GitHub官网:ColossalAI/applications/Chat at main · hpcaitech/ColossalAI · GitHub

1、局限性

LLaMA-finetuned 模型的限制

Alpaca 和 ColossalChat 都基于 LLaMA,因此很难弥补预训练阶段中缺失的知识。
缺乏计数能力:不能计算列表中的项目数量。
缺乏逻辑推理和计算能力。
倾向于重复最后一句话(无法生成结束标记)。
多语言结果较差:LLaMA 主要是在英语数据集上训练的(生成优于问答)。

数据集的限制

缺乏摘要能力:在 fine-tune 数据集中没有这样的指令。
缺乏多轮对话:在 fine-tune 数据集中没有这样的指令。
缺乏自我认知能力:在 fine-tune 数据集中没有这样的指令。
缺乏安全性:
当输入包含虚假事实时,模型会捏造错误的事实和解释。

2、在线演示

ColossalChat

在此页面上体验Coati7B的性能。由于资源限制,我们将只在2023年3月29日至2023年4月5日期间提供此服务。但是,我们已经在推理文件夹中提供了推理代码。web也将很快开放源代码。
警告:由于模型和数据集大小的限制,Coati只是一个婴儿模型,Coati7B可能会输出不正确的信息,缺乏多回合对话的能力。还有很大的改进空间。

3、Coati7B examples

Generation

E-mail
coding
regex
Tex
writing
Table

Open QA

Game
Travel
Physical
Chemical
Economy

ColossalChat的安装

DeepSpeedChat的性能来自于其2023年4月12日的博客,ColossalChat的性能可以通过在具有8个A100-40G GPU的AWS p4d.24xlarge节点上运行以下命令进行复现:

torchrun --standalone --nproc_per_node 8 benchmark_opt_lora_dummy.py --max_timesteps 1 --update_timesteps 1 --use_kernels --strategy colossalai_zero2 --experience_batch_size 64 --train_batch_size 32

第一步,安装环境

conda create -n coati
conda activate coati
git clone https://github.com/hpcaitech/ColossalAI.git
cd ColossalAI/applications/Chat
pip install .

第二步,安装Transformers

由于Hugging Face尚未正式支持LLaMA模型,因此我们分叉了一个Transformers分支,使其与我们的代码兼容。

git clone https://github.com/hpcaitech/transformers
cd transformers
pip install .

ColossalChat的使用方法

LLMs:ColossalChat相关的开源训练数据集简介(SFT指令微调数据集+奖励模型排序数据集+RLHF数据集)、RLHF算法实现的三个阶段(监督指令微调→训练奖励模型→RLHF训练模型→推理量化和服务)

https://yunyaniu.blog.csdn.net/article/details/131137567

这篇关于AIGC:ColossalChat(基于LLM和RLHF技术的类似ChatGPT的聊天机器人)/ColossalAI的简介、安装、使用方法之详细攻略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/198059

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符