澜舟孟子轻量化预训练模型技术实践 | NLP 前沿实践

2024-03-22 19:20

本文主要是介绍澜舟孟子轻量化预训练模型技术实践 | NLP 前沿实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在上周发布的《一文看懂预训练最新进展》中,澜舟科技创始人兼 CEO 周明和澜舟科技大模型技术负责人王宇龙分享了大模型技术发展背景和近期百花齐放的大模型及新应用、新趋势。本文继续为大家深入介绍“大模型轻量化”趋势以及澜舟的 5 个实践路径。

以下内容根据澜舟科技算法研究员华菁云在「澜舟NLP分享会」演讲整理。全文约 4800 字,预计阅读时长 6 分钟。

为什么要训练轻量化模型?

人们普遍认为,在相同网络架构和训练方法下,模型层数增加、模型参数增加,能力就一定增强,实际上增强的幅度越来越小。大家都知道摩尔定律,硬件逐年价格下降 1.5 倍,运算能力提升 1.5 倍,但是实际上模型参数量每年增加至少 7 倍,硬件能力的提升显然赶不上模型规模的增长。

如图 1 右侧所示,训练一个大模型代价是巨大的,GPT-3 训练需要 460 万美金,此外,大模型落地部署的代价也极大,在工业界实际应用中不得不考虑部署的成本。所以在摩尔定律逐渐走向终结的今天,模型轻量化是必须要考虑的。

图 1

轻量化路径

1. 语言学知识增强

使用语言学知识作为显性的知识信号可以使得模型在预训练的过程中获取到更多的先验信息,在同等参数量下,融入更多的语言学知识。 我们使用 SpaCy 对语料进行词性标注(POS)和命名实体识别(NER),将识别的目标标签作为预测目标用于训练,让模型在语言建模的同时,去计算 POS 与 NER 的预测损失与原始语言建模损失相加得到的最终损失。这个方法可以在各数据集上带来一致的提升。

如图 2 下半部分表格,大家可以看到孟子 Mengzi 模型对应的分数的提升还是比较明显的。

图 2

此外,为了建模句子间的关系,我们结合了 ALBERT 提出的句子顺序预测 SOP 任务,发现也能带来明显的性能提升。而类似的下一句预测 NSP 任务在各项中文任务上的提升不太明显(如图 3 表格所示)。

图 3

2. 训练优化技术

传统基于掩码的预训练方法(Mask Language Model, MLM) 首先通过 ennoising 的方法,例如通过 mask 来构建训练样本,然后训练语言模型去还原被破坏的句子。由于通常采用随机的破坏方法,样本预测的难易度不同,模型在 denoising 训练时的梯度更新强度与样本难度之间缺乏一致性,可能会造成训练不稳定的问题。

此外,也会带来一些假负例,即模型会还原出来与原始句子不同,而实际上也合法的句子。模型通常采用交叉熵训练,这类样本则都会被判断为错误预测,导致训练事实上是不准确的。

图4

那么针对以上两个问题,我们探索了一些训练

这篇关于澜舟孟子轻量化预训练模型技术实践 | NLP 前沿实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

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

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

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

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

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4