当前位置: 首页 > news >正文

OpenBA:开源模型家族再添一员!从头训练的15B中英非对称Encoder-Decoder结构双语模型...

e8ddda1de46684d9fffd05473602db6d.png

苏州大学从头训练的双语非对称Encoder-Decoder模型OpenBA已正式开源!

主要亮点包括:

  • 亮点一:此模型为中文开源社区贡献了一个有代表性的编码器解码器大语言模型,其训练过程(包括数据收集与清洗、模型构建与训练)已完全开源。

  • 亮点二:数据方面,OpenBA所使用的数据均公开可获取,模型的能力产生更加透明。

  • 亮点三:针对中文instruction能力,我们基于开源的标注数据构建了大规模中文Flan数据集,并完全开放了其构建方法。

  • 亮点四:仅凭380B token的训练量,在多种中英下游任务上超越了许多同参数量、更大数据训练的模型。

技术报告与项目地址

技术报告:
OpenBA: An Open-sourced 15B Bilingual Asymmetric seq2seq Model Pre-trained from Scratch
https://arxiv.org/abs/2309.10706

模型:
https://huggingface.co/OpenBA

项目:
https://github.com/OpenNLG/OpenBA.git

论文概述

语言大模型的发展离不开开源社区的贡献。在中文开源领域,虽有GLM,Baichuan,Moss,BatGPT之类的优秀工作,但仍存在以下空白:

  1. 主流开源大语言模型主要基于decoder-only架构或其变种,encoder-decoder架构仍待研究。

  2. 许多中文开源指令数据集是由ChatGPT生成或从英文翻译而来,存在版权和质量问题。

为填补这些空白,该工作:

  1. 采用了非对称的编码器-解码器架构(浅编码器,深解码器),融入UL2多任务训练、长度适应训练和双语Flan训练三个阶段。

  2. 构建了包括五千万条指令的中文Flan数据集,涵盖了44个任务,同时完全开放收集和构建方法。

预训练数据构成

OpenBA的数据构成为190B tokens 英文数据,190B tokens 中文数据和20B tokens 代码数据。其中,英文数据和代码数据从The Pile数据集中采样而来,而中文数据集主要来源于Common Crawl的子集和FudanNLPLAB的CBook-150K数据集。其具体的预训数据构成如下图所示:

b326572070b5fc2ec564ab9571b4244a.png

双语Flan数据收集

我们选用了The Flan Collection作为英文Flan数据集,而中文Flan数据集则选用了涵盖了44个任务五千万条指令数据,同时完全开放了其构建方法。下面给出了整个双语Flan数据集的分布和具体的中文Flan数据集构成。

afd63416dcade063c85ccf12f7781100.png1b17ab1bfb7834ea875f56d84c50e799.png

非对称Encoder-Decoder模型结构

在模型结构的选择上,OpenBA尝试了三种设置:(1) 更深的decoder,(2) 更深的encoder,(3) 相同层数的encoder和decoder。

论文认为现有的大语言模型主要为decoder-only结构,以生成能力见长,而decoder的层数更深有助于模型生成能力的提升。

针这一点,本文做了一个验证试验,用UL2的训练目标训练上述三种设置的模型,并观察模型在三种denoising验证集上的效果,其中S-Denoising task上的能力可以看作是对模型生成能力的衡量。

2ebc0bfaf59118eb6ce6ca2613083be0.png

实验结论表明:更深的decoder设置在S-Denoising任务上的能力要更优,这也证实了更深decoder模型在生成任务上的有效性。

融合UL2的三阶段预训练

eea4e09cb86f837f0e56a836a4c54cad.png

如上图所示,OpenBA经历了三个阶段的预训练,分别是:

  • UL2 预训练 此阶段主要涉及三个任务:少量随机掩码的R-Denosing,大量随机掩码的X-Denosing,以及序列连续掩码的S-Denosing。

  • 长度适应训练: 在这个阶段,OpenBA将570/380的输入输出最大长度延伸至1024/1024,并仅专注于续写任务。这一步的目的是为了让模型能适应对上下文长度要求更高的下游任务,且进一步增强其生成能力。

  • 双语Flan训练阶段: 在这个阶段,OpenBA在双语Flan数据集上进行了微调,赋予模型更强的遵循指令能力。

实验结果

OpenBA在多个常用中英文Benchmark(MMLU,CMMLU,C-Eval,BBH,SuperGLUE等)以及不同设置下(包括Zero-shot, Few-shot, Held-in, Hold-out)进行了评测,覆盖了常识推理、自然语言生成和自然语言理解等任务。

OpenBA在不同任务与设置下均取得了有竞争力的效果。以下为OpenBA在BELEBELE(自然语言理解任务),ROC Story(自然语言生成任务),CMMLU(逻辑推理任务)的部分评测结果。

6631541b5f29eee867a87d775f34f348.png
OpenBA在BELEBELE(阅读理解)上的自动指标结果

OpenBA在ROC Story(故事生成)上的人工评测结果:

f1f8a7379aa818319eada7bfed4072f4.png
连贯性评测
47bd26012c3b9d99ad29a914188e1d68.png
一致性评测

OpenBA在CMMLU(中文逻辑推理)上的自动指标结果:522286ec5fc7ecfc7fedc62066890c72.png

小结

尽管OpenBA仅使用了380B tokens,但它在众多benchmarks上均获得了出色的性能,甚至超过了消耗更多数据的模型。苏州大学已开源OpenBA的各阶段checkpoint以及中文Flan数据集的构建方法,以便于广大研究者使用。

OpenBA下一阶段的工作将在通用聊天模型、调用工具模型以及去除偏见与对齐方面进一步深化研究(具体请参考技术报告)。

如果您对OpenBA感兴趣,欢迎合作,一起为开源社区做出贡献。


进NLP群—>加入NLP交流群

相关文章:

OpenBA:开源模型家族再添一员!从头训练的15B中英非对称Encoder-Decoder结构双语模型...

苏州大学从头训练的双语非对称Encoder-Decoder模型OpenBA已正式开源! 主要亮点包括: 亮点一:此模型为中文开源社区贡献了一个有代表性的编码器解码器大语言模型,其训练过程(包括数据收集与清洗、模型构建与训练&#x…...

安防视频监控平台EasyNVR无法控制云台,该如何解决?

TSINGSEE青犀视频安防监控平台EasyNVR可支持设备通过RTSP/Onvif协议接入,并能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等多种格式。在智慧安防等视频监控场景中,EasyNVR可提供视频实时监控直播、云端…...

基座向量施密特正交化

最近再次细细的阅读了向量施密特正交化,重新系统梳理一下 一、正交基地与向量的正交分解 二、基化成标准正交基,是什么意思 将一个向量空间中的基向量通过某种方式转化为一组标准正交基,是指将原有的基向量进行调整,使得它们满足…...

OpenCV图像金字塔

什么是图像金字塔? 向上采样 :cv.pyrUp(img) 向下采样 : cv.pyrDown(img) 代码实现 import numpy as np import cv2 as cv import matplotlib.pyplot as plt#图像的读取 img cv.imread("lena.png")#进行图像采样 up_img cv.pyrUp(img) #上…...

Arduino驱动MMA7361/MMA7360三轴加速度传感器(惯性测量传感器篇)

目录 1、传感器特性 2、控制器和传感器连线图 3、驱动程序 MMA7361三轴加速度传感器是替代停产的MMA7260三轴加速度传感器,三轴加速度传感器是一种可以对物体运动过程中的加速度进行测量的电子设备,典型互动应用中的加速度传感器可以用来对物体的姿态或者运动方向进行检测…...

ceph分布式存储

目录 一、概述 1、特点 2、组件 3、架构图 二、分布式部署 1、环境拓扑 2、实验准备 3、ceph安装 安装 初始化monitor 同步管理信息 安装mgr(管理守护进程) 安装rgw 创建mds服务 OSD安装 4、dashboard安装 开启dashboard模块 生成签名 …...

DA1--用pandas查看网站用户数据

目录 1.题目描述 2.输入描述 3.输出描述 4.题目分析 5.通过代码 1.题目描述 现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔): Nowcoder_ID:用户ID …...

JWT令牌

一、JWT(Json Web Token)能干什么 1、安全认证(权限认证) 比如登录系统的时候,服务器会检查前端请求数据中携带的token信息,符合标准则允许访问,不符合则拒绝你的访问请求。 2、信息传递 比…...

uni-app使用CSS实现无限旋转动画

本来想用uni.createAnimation创建一个旋转动画,发现转完一圈后就不动了,没法循环旋转, 后来又用setInterval每隔一个周期就把旋转角度加180度,发现运行一段时间后动画逐渐崩坏,应该是动画的周期和定时器的周期时间没有…...

java面向对象(八)

文章目录 一、abstract关键字的使用1.概念2. abstract修饰类:抽象类3.abstract修饰方法,抽象方法4.abstract使用上的注意点:5.抽象类的匿名子类 二、计算一段代码执行所花费的时间三、接口的使用1.接口的使用2.定义接口中的成员3.代码demo4.Java类可以实…...

【proverif】proverif的下载安装和初使用

文章目录 一、proverif下载1. 下载proverif安装包2. 解压proverif安装包3. 点开其中的README,安装graphciz和gtk4. 查看安装是否成功5. 测试 一、proverif下载 1. 下载proverif安装包 官网:proverif 首先下载全过程无需开外网,而且安装包下…...

浙江大学《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许

浙江大学《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许...

Centos7.9 一键脚本部署 LibreNMS 网络监控系统

前言: LibreNMS 是个以 PHP/MySQL 为基底的自动探索网络监控系统 LibreNMS 官网 版本23.8.2-52-g7bbe0a2 - Thu Sep 14 2023 22:33:23 GMT0700数据库纲要2023_09_01_084057_application_new_defaults (259)Web 服务器nginx/1.20.1PHP8.1.23Python3.6.8DatabaseMa…...

【大数据之Kafka】十六、Kafka集成外部系统之集成Flume

Flume 是一个在大数据开发中非常常用的组件。可以用于 Kafka 的生产者,也可以用于 Kafka 的消费者。 Flume安装和部署:https://blog.csdn.net/qq_18625571/article/details/131678589?spm1001.2014.3001.5501 1 Flume生产者 (1&#xff09…...

java学习--day3 (运算符、if循环、switch-case结构)

文章目录 今天的内容1.运算符1.1关系运算符1.2逻辑运算符1.3逻辑运算符的短路原则 2.分支结构【重点】2.1if分支2.2if-else分支2.3if-else的嵌套写法2.4if-else if 分支结构2.5swicth-case结构 扩展知识点 1.八大基本数据类型整型: byte short int long浮点: float double字…...

ActiveMQ、RabbitMQ、RocketMQ、Kafka区别

一、消息中间件的使用场景 消息中间件的使用场景总结就是六个字:解耦、异步、削峰 1.解耦 如果我方系统A要与三方B系统进行数据对接,推送系统人员信息,通常我们会使用接口开发来进行。但是如果运维期间B系统进行了调整,或者推送…...

csp初赛总结 那些年编程走过的坑 初高中信竞常考语法算法点

😘个人主页:曲终酣兴晚的小书屋💖 😕作者介绍:一个莽莽撞撞的🐻 💖专栏介绍:日常生活&往事回忆 😶‍🌫️每日金句:祝大家心有山水不造作&…...

DollarTree(美元树)验厂需要注意哪些方面?

【DollarTree(美元树)验厂需要注意哪些方面?】 美元树(Dollar tree),是美国的一元店。每件商品都只卖一美元,吃的、用的和玩的应有尽有。美元树在美国共拥有4900家门店,其中一半的连…...

vector使用和模拟实现

💓博主个人主页:不是笨小孩👀 ⏩专栏分类:数据结构与算法👀 C👀 刷题专栏👀 C语言👀 🚚代码仓库:笨小孩的代码库👀 ⏩社区:不是笨小孩👀 🌹欢迎大…...

token登录的实现

token登录的实现 我这种token只是简单的实现token,就是后端利用UUID 生成简单随机码,利用随机码作为在Redis中的键,然后存储的用户信息作为值,在每次合理请求的时候对token的有效时间进行刷新(利用拦截器)&…...

Mac能够连接校园网,但是无法上网

Mac电脑能够正常连接校园网,但是无法上网解决步骤:打开系统设置,网络,WI-FI,DNS把现有的删掉重置它。原因分析:应该是在使用代理时、访问什么网站被自动篡改了 DNS 设置,导致连接的 DNS 无法解析…...

【Java】UTF-8变长编码及其3字节存储奥秘

UTF-8 是一种变长编码,一个字符可能由 1 到 4 个字节组成。 解码时(将字节数组转回 String),计算机并不需要“猜”或者去查表,因为长度信息本身就包含在字节的“头部”里。这就是 UTF-8 设计的精妙之处:它是…...

3分钟快速修复机械键盘连击问题:终极解决方案指南

3分钟快速修复机械键盘连击问题:终极解决方案指南 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker KeyboardChatterBlocker是…...

泛微OA单点登录配置全攻略:从零开始实现第三方系统免密登录

泛微OA单点登录深度实战:Token机制与系统集成最佳实践 对于企业IT架构师和运维团队而言,系统间的无缝衔接一直是提升工作效率的关键。想象一下这样的场景:销售人员在CRM系统中完成客户跟进后,无需反复登录就能直接跳转到OA系统提…...

光伏储能管理系统:绿虫赋能,破解行业流程痛点

光伏储能产业迎来高速发展期,但其全业务流程的复杂性却成为企业发展的桎梏。从项目开发的多环节审批,到建设阶段的进度质量管控,再到运维结算的数据协同,各环节割裂、部门协作不畅、数据杂乱无章等问题频发,不少企业负…...

OpenClaw自动化测试:Qwen3-32B批量执行LeetCode题目

OpenClaw自动化测试:Qwen3-32B批量执行LeetCode题目 1. 为什么需要自动化编程能力测试 作为一名长期关注AI编程辅助工具的技术博主,我一直在寻找能够客观评估大模型编程能力的方法。传统的单次对话测试往往带有偶然性,无法系统性地反映模型…...

ROS Noetic + RealSense D435i:从驱动安装到RVIZ点云显示的完整工作流解析

ROS Noetic RealSense D435i:从驱动安装到RVIZ点云显示的完整工作流解析 在机器人视觉项目的初期搭建阶段,开发者往往面临一个关键挑战:如何将深度相机从"硬件连接"快速推进到"可用数据流"状态。以Intel RealSense D435…...

ECharts Geo Regions 进阶:自定义地图省份边界与区域样式的实战技巧

1. 理解ECharts中的geo.regions属性 ECharts作为一款强大的数据可视化工具,其地图组件在展示地理信息数据时尤为出色。在实际项目中,我们经常需要对特定省份或区域进行个性化样式设置,这时候geo.regions属性就派上用场了。这个属性允许我们对…...

如何用ChatALL实现AI智能协同:一次提问,多模型对比的解决方案

如何用ChatALL实现AI智能协同:一次提问,多模型对比的解决方案 【免费下载链接】ChatALL Concurrently chat with ChatGPT, Bing Chat, Bard, Alpaca, Vicuna, Claude, ChatGLM, MOSS, 讯飞星火, 文心一言 and more, discover the best answers 项目地…...

缺失的第一个正数(力扣100)

最朴素的想法就是从1开始查找,看看谁不在,时间复杂度为On但是需要把原数组变成集合,空间复杂度为On不符合题目的常数级空间开销我们要找的是“第一个缺失的正数”。如果数组长度是 $N$,那么这个答案一定落在 [1, N1] 这个区间里。…...