M6-中文多模态预训练模型

2024-06-21 07:48
文章标签 训练 模型 中文 模态 m6

本文主要是介绍M6-中文多模态预训练模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

M6:一种中文的多模式预训练机

目录:

  1. 回顾

  2. 方法

  3. 下游应用程序

  4. 可扩展到具有万亿个参数的模型

1. 回顾
多模态预训练

模型架构:

l 基于transformer

l 单流或者双流

图像特征:

l 目标特征

l Patch特征

l 原始像素

下游任务:

l 理解:VQA,检索

l 生成:图像字幕

对M6的预期
l 在中文语料库上的预训练模型

l 兼容理解和生成任务

l 与图像文本和明文任务兼容

l 与文本和图像生成兼容

2.方法
M6概述
规模:

Dense模型:0.3B参数量(M6-Base)/10B参数量(M6-Large)

Sparse MoE模型:M6-100B&M6-1T

动机:多模态+多任务(理解与生成)

结构:transformer Block

预训练:多任务预训练

M6结构:
在这里插入图片描述
M6 10B
l 添加图层并增加隐藏图层的大小

l 在分布式设备上拟合该模型的策略:

l 混合精度(O2级)

l 激活检查点

l 零优化器和零卸载

l 使用梯度积累来减少gpu之间的通信时间

M6 100B的挑战

  1. 如何降低沟通成本

  2. GPU内存的限制(swap in/out, Zero, CPU offload)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    M6 100B
    l 在whale框架上实现的

l 梯度校验点、XLA、通信优化、混合精度等。

l 128A100s上的1440个samples。

l 与M6-10B相比的LM损失使用了大约一半的训练时间
在这里插入图片描述
在这里插入图片描述
3. 下游应用
图像字幕

在这里插入图片描述
可视化QA
在这里插入图片描述
自然语言的下游任务
在这里插入图片描述
图象生成
在这里插入图片描述
使用两阶段策略,根据输入文本生成图像:

阶段1训练一个VQGAN,将图像编码为破坏代码表示,并高保真地将代码序列解码回图像。

阶段2训练M6根据输入文本作为上下文生成代码序列。
用于文本到图像生成的M6
在这里插入图片描述
文本到图像的生成(反事实的)

在这里插入图片描述

4. 缩放到三百分之一模型

训练三百分之一模型:

资源:480 NVIDIA V100-32GB gpu

实现:由带宽为100gb的RDMA网络连接的单gpu工人集群。

优化:Adafactor (vs. Adam),为了避免训练的不稳定性,我们使用了较小的学习率和权值初始化

专家原型
在这里插入图片描述
辅助平衡损失是有帮助的吗?
在这里插入图片描述
辅助损失有助于平衡每个专家的分配,但对模型性能影响很大。为了节省向后内存成本,与Switch&Gshard相比,我们消除了辅助损失。

1t模型的有效性
在这里插入图片描述
与M6相关的Papers
M6-base, 10B & 100B: M6: A Chinese Multimodal Pretrainer (KDD 21’)

M6-1T: Exploring Sparse Expert Models and Beyond (arxiv)

Image generation: UFC-BERT: Unifying Multi-Modal Controls for Conditional Image Synthesis (arxiv)

这篇关于M6-中文多模态预训练模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

RedisTemplate默认序列化方式显示中文乱码的解决

《RedisTemplate默认序列化方式显示中文乱码的解决》本文主要介绍了SpringDataRedis默认使用JdkSerializationRedisSerializer导致数据乱码,文中通过示... 目录1. 问题原因2. 解决方案3. 配置类示例4. 配置说明5. 使用示例6. 验证存储结果7.

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot