文心大模型文档

模型训练

用户设置

  • 在代码最开始处设置您在官网获取到的ak和sk
import wenxin_api
wenxin_api.ak = "your ak"
wenxin_api.sk = "your sk"

创建精调任务

  • 数据上传后,启动训练任务
from wenxin_api import Train, Dataset
from wenxin_api.const import (ERNIE_100B_MODEL, 
                              ERNIE_10B_MODEL,
                              ERNIE_1P5B_MODEL)
data_id = "your data id" #请查看数据准备页面,上传数据集合并获得id
dataset = Dataset.retrieve(data_id=data_id)
Train.create(train_datasets=[dataset], base_model=ERNIE_100B_MODEL)

您可以在base_model处指定您要训练的基础模型的量级 基础模型为:

  • ERNIE_100B_MODEL(即千亿模型ERNIE 3.0 Zeus)
  • ERNIE_10B_MODEL(即百亿模型ERNIE 3.0-10B)
  • ERNIE_1P5B_MODEL(即十五亿模型ERNIE 3.0-1.5B)

开始精调任务后,可能需要一些时间才能完成。您的任务在我们系统中按提交时间排队运行,精调模型可能需要几分钟或几小时,具体取决于您选择的模型量级和数据集的大小。

查询训练好的模型

  • 任务完成后,您可以查询训练好的模型名称。
from wenxin_api import Model

# 查看所有模型
models = Model.list()
print(models)

# 根据model_id查看模型
model_id = "your model id"
model = Model.retrieve(model_id=model_id)
print(model)

# 根据训练任务的task_id查看模型
task_id = "your task id"
model = Model.retrieve(task_id=model_id)
print(model)
  • 查询结果返回示例(单个模型)
{
    "id":42, # 模型id
    "status":1, # 模型状态,1代表模型准备就绪,可以参考状态码表
    "base_model":3, # 基础模型,3代表基础模型是15亿模型,可以参考状态码表
    "is_public":0, # 是否是公开模型,0表示是私有模型
    "name":"job-0bb62f509620bc90_prompt_embeddings.npy", # 模型名称
    "type":"model"
}

其中常见的状态码可以参考:状态码汇总

获取模型和删除模型

  • 针对训练好的模型,您还可以获取和删除模型:
from wenxin_api import Model

# 查看所有模型
models = Model.list()

# 使用训练任务的task_id获取模型
task_id = "your task id"
model = Model.retrieve(task_id=task_id)

# 使用model_id获取模型
model_id = "your model id"
model = Model.retrieve(model_id=model_id)

# 删除模型
model_id="your model id"
Model.delete(model_id=model_id)

查看、删除、停止任务

  • 除了创建微调作业外,您还可以查看所有训练任务、查看指定训练任务、停止训练任务。
from wenxin_api import Train

# 查看所有训练任务
tasks = Train.list()
print(tasks)

train_id="your train task id"
# 查看指定训练任务
task = Train.retrieve(task_id=train_id)
print(task)

# 停止训练任务
task.stop()
  • 查询结果返回示例
{
    "job_id":"job-0bb62f210535f7c6", # 训练平台上任务的id
    "response":"{}", # 训练成功后该字段下有模型的id
    "task_state":203, # 训练状态码,以参考状态码表
    "task_id":16, # 训练任务id
    "task_type":1, # 任务种类,1代表训练任务
    "type":"task",
    "base_model":3
}

其中常见的状态码可以参考:状态码汇总

指定验证集启动训练任务

  • 如果您只上传训练数据,系统会自动把您的数据分为训练集和验证集,如果您希望上传自己的验证数据,您可以通过以下代码自己指定验证集来启动您的训练任务。验证集与训练集格式相同,并且您的训练和验证数据应该是互斥的。
from wenxin_api import Train
# 指定本地数据集位置
train_file_path = "your train file"
dev_file_path = "your dev file"
# 上传训练集和验证集
train_dataset = Dataset.create(local_file_path=train_file_path)
dev_dataset = Dataset.create(local_file_path=dev_file_path)
# 训练时指定训练集和验证集
Train.create(train_datasets=[train_dataset], dev_datasets=[dev_dataset])
上一篇
数据准备
下一篇
模型调用