澜舟孟子轻量化预训练模型技术实践 | 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

相关文章

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

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

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

Spring Boot 3 整合 Spring Cloud Gateway实践过程

《SpringBoot3整合SpringCloudGateway实践过程》本文介绍了如何使用SpringCloudAlibaba2023.0.0.0版本构建一个微服务网关,包括统一路由、限... 目录引子为什么需要微服务网关实践1.统一路由2.限流防刷3.登录鉴权小结引子当前微服务架构已成为中大型系统的标

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参