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

相关文章

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当