LLaMa2 大语言模型

本文介绍LLaMa2 大语言模型的定制能力

概述

Llama 2系列是来自Meta开发并公开发布的大型语言模型(LLMs)。您可以通过DashScope平台提供的模型定制功能对平台内置的Llama2模型进行微调。

当前在DashScope提供模型定制能力的Llama2模型分别来自于ModelScope社区模型:

您可以使用上述模型名调用模型定制的API创建定制任务,并将定制任务成功后产生的新模型通过模型部署API部署为一个可调用的服务。

数据准备

对Llama2系列模型进行定制时,所需的训练数据格式为json数据,您可以提供多条json样本在一个jsonl文件中,注意每行仅包含一条json。

定制数据格式

在准备sft训练数据阶段的过程中需要构造出对话的结构,需要包含 Human: 以及 Assistant:两个特殊符值,并且在两个值前均加上换行字符\n\n, 注意 \n\n 与特殊符值间没有额外空格等符号。

同时,将问题或者描述紧跟放在Human: 后,将预期返回的答案放在Assistant:后, 注意 Assistant:与前面的文本仅有\n\n,没有额外空格等符号。

具体参考实例如下:

{"text": "\n\nHuman: 谁在文艺复兴时期绘制人体\n\nAssistant: 文艺复兴时期是一个关于艺术、文化和学术的复兴运动,在这个时期,许多艺术家都绘制了人体。"}
{"text": "\n\nHuman: I need a picture of someone crying.\n\nAssistant: I'm sorry, but as an AI language model, I do not have the ability to display images."}
说明

您提供的数据长度应大于您在超参中设置的batch_size,数据长度指jsonl文件中json数据的行数。

超参设置

无论使用命令行还是通过http api的形式进行模型定制,您均可以设置如下超参数。所有超参数均有默认值。

超参

类型

含义

取值范围

n_epochs

Integer

训练数据所需的轮数,每一轮epoch,用户所提供的数据会被模型完整学习一遍。

1到10之间的整数,默认为1

batch_size

Integer

单次传递给模型用以训练的数据(样本)个数,一般单次训练数据个数越大,占用显存会越多,同时单步训练速度会越慢,但是训练效果会越好

7b模型支持[1,2,4,8,16,32]

13b模型支持[1,2,4,8,16]

learning_rate

Float

学习率,决定了每次参数更新时参数应该更新的幅度大小,越大的幅度,会越快收敛,但是也容易导致不稳定,越小的幅度,训练会较稳定,但是收敛会慢一些

默认为2e-5

使用限制

当您对Llama 2系列模型定制时,模型定制功能会有如下限制存在

  • 运行中的定制任务数:1个

  • 可创建的定制任务数(不包括失败及取消的):5个

当超过如上限制后,您的请求会收到http错误码429,并在response中包含特定信息

定制任务状态说明

我们对定制任务设置了多种状态,具体如下

状态

含义

PENDING

正在准备训练所需资源

RUNNING

训练正在进行中

SUCCEEDED

训练成功

FAILED

训练失败

CANCELED

训练取消

定制任务错误码说明

当定制任务失败时,您可以通过定制任务返回的code信息来判断错误发生的原因。当您收到的错误码不在下方表格所列范围内时,请联系技术支持。

错误码

含义

处理方案

13

数据格式错误,不应包含空行

修正您提供的测试数据

14

数据格式错误,数据不可解析为json

修正您提供的测试数据

15

数据格式错误,数据长度不够训练最低要求

您提供的数据集行数应大于您设置的batch_size,当您未设置该值时,系统会使用默认值16