源1.0预训练语言模型使用示例

源1.0预训练模型应用详解
本文详细介绍了源1.0预训练语言模型的使用,包括环境约束、应用场景和示例。用户可通过APIExp调用模型,适用于创作生成(如诗词、对联、文案)、问答对话、分类识别、匹配生成、文字翻译和结构化预测等多种任务。模型提供了zero-shot和few-shot使用方式,并可通过超参数配置优化输出效果。

1 前言

源1.0预训练语言模型(简称源1.0)是浪潮人工智能研究院发布的人工智能巨量模型,单体模型参数量达到2457亿,成为全球最大规模的中文语料AI巨量模型。作为通用NLP预训练模型,源1.0能够适应多种类的AI任务需求,降低针对不同应用场景的语言模型适配难度,并提升小样本学习与零样本学习场景的模型泛化应用能力。调用源1.0API接口,使用源1.0的推理能力,可以支持下游几十个不同应用场景的任务。调用源1.0API接口有两种方式,可以直接使用代码调用,也可以使用源提供的图形化工具APIExp进行调用。两种调用方式的原理一致,以下示例内容基于APIExp进行展示。

2 环境约束

2.1 应用平台

服务端: 源开放平台

客户端:两者任选其一

  • 用户电脑端,常规浏览器
  • 用户电脑端,python集成开发环境

2.2 测试工具

测试工具 版本 适用测试内容
常规浏览器 无要求 APIExp图形化工具
Python集成开发环境 3.0以上 代码测试

2.3 测试环境构建

2.3.1 试用权限准备

用户注册。在源平台(https://air.inspur.com ) 首页,点击右上角注册,填写基本信息,注册为用户。

用户提交API申请。点击首页上部左侧的API申请按钮,填写申请的基本信息进行提交,就完成了API免费使用的申请。

获得授权。等待后台审核人员审核完成之后,就可以开始后续API试用了。

2.3.2 软件环境准备

“源1.0”项目尽可能采用了目前python API调用所需的主流依赖库,如果您之前有过相关开发经验,将不需要进行额外安装,如果您的电脑和python环境处于初始化状态,可以采用如下命令安装或确认相关依赖:

pip install requests hashlib json

完成安装后在您的硬盘上任意位置,用如下命令将GitHub上的代码fork下来即可。

git clone https://github.com/Shawn-Inspur/Yuan-1.0.git

需要注意的是,GitHub上下载的代码包含了三个部分,src中是模型训练的代码,sandbox中是web示例开发使用的沙箱代码,需要额外安装yarn,yuan_api中是采用API进行推理的示例代码和工具。

2.3.3 使用APIExp

2.3.4 模型选择

目前源模型API推理服务上线了3款预训练语言模型,参数规模都是百亿级别,分别是基础模型和两款领域模型(对话模型和翻译模型)。基础模型是通用的语言模型,具有较强的综合能力, 对话模型和翻译模型有着更为专业的领域知识。您可以根据自行设定的场景,选择不同引擎多次调试,筛选最佳适用引擎。

图1 模型选择

2.3.5 超参数配置

目前API提供的默认超参数是源算法工程师多次测试后优选的一组超参数,您可以选择源1.0预训练模型团队提供的默认参数,无需任何改动。当然,您也可以调整这些超参数,来探究更好的模型使用效果。

2.3.5.1 超参数说明

目前超参数一共有7个,详细说明如下表。

参数名 参数作用 取值范围
最大返回长度 模型推理返回结果的最大token序列长度。该参数设置越大,模型生成答案耗时越长。设置过短可能影响生成结果的完整性。token可能是一个字、词或者标点。 [1-200]
temperature temperature值越大,模型的创造性越强,但生成效果不稳定。temperature值越小,模型的稳定性越强,生成效果稳定。 (0-1]
topP 生成token的概率累加,从最大概率的token往下开始取,当取到累加值大于等于topP时停止。当topP为0时,该参数不起作用。 [0-1]
topK 挑选概率最高的 k 个token作为候选集。若k值为1,则答案唯一。当topK为0时,该参数不起作用。 [0-200]
输入前缀 输入文字的开头符号,如“问题是:” [0-8]个字符
输出前缀 输出文字的开头符号,如“答案是:” [0-8]个字符
输出停止符 模型输出的停止符。生成文本遇到该字符停止,截断输出。如设定为“。”,则模型生成的文本结果从第一个“。”进行截断。 [0,32]个字符组成的字符串

2.3.5.2 超参数推荐值

以下为不同引擎的推荐值,不同场景下,用户对输出的创造性和稳定性需求不同,还需自行进行调整。

参数名 “基础模型”推荐值 “对话模型”推荐值 “翻译模型”推荐值
最大返回长度 50 50 50
temperature 1.0 1.0 1.0
topP 0.8 0.7 0.8
topK 5 5 5
输入前缀
输出前缀
输出停止符

2.3.6 输入示例

源1.0模型是语言模型,输入一段文本,模型就会输出一段文本。在输入区进行文本输入,输入完成点击【提交】按钮,就将输入区的文本提交给了源模型,耐心等待输出即可。

源1.0预训练语言模型是支持zero-shot和few-shot使用的,zero-shot和few-shot的意思是给模型一些“例子”作为先验知识,zero-shot是指不给任何例子,few-shot是指给出一些例子。

2.3.6.1 zero-shot使用

在输入区进行文本输入,输入完成点击【提交】按钮,就将输入区的文本提交给了源模型,耐心等待输出即可。例如,输入:用“首屈一指”这个词造句吧。

图2 Zero-shot使用输入

点击提交后,返回结果为:“我是首屈一指的!”

图3 Zero-shot使用输出

2.3.6.2 few-shot使用

在zero-shot无法达到预期效果的情况下,可以先给出几个例子。

例如:以“故园”为题作一首诗:

模型给出的结果看起来是在续写文章,而不是一首诗。

<think>嗯,用户想知道如何在训练YOLO模型时不用预训练权重。首先,我需要回忆一下YOLO模型的一般训练流程。通常,很多模型会使用预训练权重,比如在ImageNet上预训练的,这样可以加速收敛和提高性能。但用户可能因为数据特殊性或者资限制,想要从头训练。 根据引用[2],YOLO-MS就是从头开始在COCO数据集上训练,没有依赖ImageNet或其他预训练权重。所以他们的做法可能是一个参考。首先,用户需要确保数据准备充分,因为从头训练需要更多的数据量和增强来防止过拟合。 然后是模型初始化。通常,预训练权重提供了较好的初始参数,但如果不使用的话,可能需要自己初始化。比如使用Kaiming或Xavier初始化方法。这部分可能需要查看YOLO的代码,确认模型初始化部分是否有设置,或者是否需要手动修改代码关闭预训练加载。 接下来是训练策略。引用[2]提到他们使用了适当的学习率调度和优化器选择。从头训练时,学习率可能需要调整,比如开始时用较小的学习率,然后逐步增加,或者使用warmup策略。另外,训练周期也要更长,因为模型需要更多时间来学习特征。 数据增强也很重要,引用[2]中的模型可能用了多种增强方法,比如Mosaic、MixUp等,这可以增加数据的多样性,帮助模型泛化。另外,正则化技术如Dropout或权重衰减(L2正则化)也应该考虑,防止模型过拟合。 验证和调参是关键。根据引用[3],训练后需要用val.py测试mAP等指标,调整超参数。可能需要多次实验,调整学习率、批次大小、增强参数等。 还有模型结构优化,比如引用[4]提到的注意力机制,可能能提升模型性能。即使用户不用预训练权重,通过改进模型结构也能提高效果。 需要提醒用户的是,从头训练可能需要更多的计算资和时间,效果可能初期不如预训练模型,但通过正确的策略可以逐步提升。同时,确保代码中关闭了预训练权重的加载,比如在YOLO的配置文件中设置pretrained=False之类的参数。 总结步骤应该是:数据准备充分,正确初始化模型,调整训练策略,加强数据增强和正则化,多次验证调参,可能结合结构优化。这样就能有效从头训练YOLO模型了。</think>在训练YOLO模型时避免使用预训练权重,可通过以下步骤实现: ### 1. 数据准备与模型初始化 - **数据集要求**:需保证训练数据量足够且多样性高,避免因无预训练权重导致的特征学习不足。建议使用数据增强技术如Mosaic、MixUp等提升泛化性[^2]。 - **模型初始化**:将模型参数初始化为随机值而非加载预训练权重。在YOLO代码中,需关闭预训练参数加载选项。例如在配置文件中设置`pretrained=False`或删除权重加载代码段。 ### 2. 训练策略调整 - **学习率调度**:初始学习率需更低(如$3e^{-4}$),配合warmup阶段逐步提升,避免初期梯度不稳定。学习率衰减策略可采用余弦退火或分段下降[^2]。 - **优化器选择**:推荐使用AdamW或SGD with Momentum,结合权重衰减(如$5e^{-4}$)防止过拟合: ```python optimizer = torch.optim.SGD(model.parameters(), lr=0.01, momentum=0.9, weight_decay=5e-4) ``` ### 3. 正则化与增强 - **正则化技术**:除权重衰减外,可添加Dropout层(概率设为$0.2-0.5$)或Label Smoothing(平滑系数$0.1$)。 - **数据增强**:需采用更激进的增强组合,例如: ```yaml # 数据增强配置示例 augmentation: mosaic: 1.0 mixup: 0.5 hsv_h: 0.015 hsv_s: 0.7 hsv_v: 0.4 degrees: 10.0 translate: 0.1 ``` ### 4. 训练验证循环 - **训练周期**:需延长训练时间(如300-500 epochs),通过`model.train()`明确训练模式[^1] - **验证监控**:使用`val.py`定期验证mAP指标,根据验证结果调整超参数[^3] ### 5. 模型结构优化(可选) 可引入注意力机制(如引用[4]提到的BRA模块)增强特征表达能力: ```yaml # 在YOLO配置文件中添加注意力模块 backbone: [...] - type: BRA channels: 256 ``` ### 效果预期 根据引用[2]的实践,YOLO-MS通过上述方法在COCO数据集上实现了43%+ AP,证明无需预训练权重也可达到高性能。但需注意: - 训练时间可能增加30%-50% - 初期epochs的收敛速度较慢 - 需更精细的超参数调优
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值