学習の作成

Prev Next

Classic/VPC環境で利用できます。

学習を作成します。作成した学習が完了すると、会話型の文章を生成する Chat Completions APICompletions APIを呼び出して CLOVA Studioが生成した回答を確認できます。

リクエスト

リクエスト形式を説明します。リクエスト形式は次の通りです。

メソッド URI
POST /tuning/v2/tasks

リクエストヘッダ

リクエストヘッダの説明は次の通りです。

フィールド 必須の有無 説明
Authorization Required 認証用 APIキー<例> Bearer nv-************
X-NCP-CLOVASTUDIO-REQUEST-ID Optional リクエスト ID
Content-Type Required リクエストデータの形式
  • multipart/form-data
参考

現在 HCX-005、HCX-DASH-002モデルは学習をサポートしていません。

リクエストボディ

リクエストボディの説明は次の通りです。

フィールド タイプ 必須の有無 説明
name String Optional 学習名
  • 入力しない場合、学習の作成日で自動的に作成
model String Required チューニングに使用するモデルの名前
tuningType String Optional チューニング技法
  • PEFT(デフォルト)
trainEpochs String Optional モデルを学習したエポック数
  • 1 ≤ trainEpochs ≤ 20 (デフォルト: 8)
learningRate String Optional 学習率(チューニング時にモデルパラメータを再学習するレベルや程度)
  • 1 ≤ learningRate ≤ 1.0E-6 (デフォルト: 1.0E-4)
trainingDatasetFilePath String Conditional 学習対象データセットファイルのパス
  • Object Storageサービスにアップロードした場合、必ず入力
trainingDatasetBucket String Conditional 学習対象データセットファイルのアップロード先のバケット名
  • trainingDatasetFilePathを入力した場合、必ず入力
trainingDatasetAccessKey String Conditional 学習対象データセットファイルへのアクセス用 Access key
  • trainingDatasetFilePathを入力した場合、必ず入力
trainingDatasetSecretKey String Conditional 学習対象データセットファイルへのアクセス用 Secret key
  • trainingDatasetFilePathを入力した場合、必ず入力

リクエスト例

リクエストのサンプルコードは次の通りです。

curl --location --request POST 'https://clovastudio.stream.ntruss.com/tuning/v2/tasks' \
--header 'Authorization: Bearer {API Key}' \
--header 'Content-Type: multipart/form-data' \
--header 'X-NCP-CLOVASTUDIO-REQUEST-ID: {Request ID}' 
--data '{
  "name": "generation_task",
  "model": "HCX-003",
  "tuningType": "PEFT",
  "trainEpochs": 8,
  "learningRate": 1e-5f,
  "trainingDatasetFilePath": "root_path/sub_path/file_name",
  "trainingDatasetBucket": "bucket_name",
  "trainingDatasetAccessKey": "access_key",
  "trainingDatasetSecretKey": "secret_key"
}'

レスポンス

レスポンス形式を説明します。

レスポンスヘッダ

レスポンスヘッダの説明は次の通りです。

ヘッダ 必須の有無 説明
Content-Type - レスポンスデータの形式
  • application/json

レスポンスボディ

レスポンスボディの説明は次の通りです。

フィールド タイプ 必須の有無 説明
result Object - レスポンス結果
result.id String - 学習 ID
result.name String - 学習名
result.model String - チューニングモデル名
result.taskType String - タスクタイプ
  • GENERATION: 生成 (デフォルト)
  • CLASSIFICATION: 分類
result.trainEpochs Integer - モデルを学習したエポック数
result.learningRate Double - 学習率(チューニング時にモデルパラメータを再学習するレベルや程度)
result.status String - 学習の進行状況
  • WAIT | RUNNING | FAILED | SUCCEEDED
    • WAIT: 学習待機
    • RUNNING: 学習中
    • FAILED: 学習停止
    • SUCCEEDED: 学習完了
result.statusInfo Array - 学習の進行状況の詳細情報
result.createdClientType String - 学習をリクエストしたクライアントタイプ
  • API | WEB
    • API: APIクライアント
    • WEB: ウェブクライアント
result.createdDate String - 学習の作成日(ISO 8601形式)
result.updatedDate String - 学習の変更日(ISO 8601形式)

statusInfo

statusInfoの説明は次の通りです。

フィールド タイプ 必須の有無 説明
label Array -
  • 学習タイプがCLASSIFICATIONの場合: ユーザーのデータラベルを表示
  • 学習タイプがGENERATIONの場合: null
dataRows Integer - データ数
numOfTokens Integer - データトークン数
currStep Integer - 学習現在ステップ数
totalTrainSteps Integer - 学習総ステップ数
currEpoch Integer - 現在のエポック
totalTrainEpochs Integer - 全学習エポック
estimatedTime Integer - 予測所要時間
  • 1エポックの平均時間と全学習のエポック数を乗算して導き出す
trainLoss Double - 学習損失量
sendWeightSuccess Boolean - 学習結果を保存するかどうか
  • false | true
    • false: 保存しない
    • true: 保存
failureReason String - 学習失敗(FAILED)の理由
message String - 学習失敗(FAILED)の理由の詳細メッセージ
endDatetime String - 学習終了日(ISO 8601形式)

failureReason, message

学習失敗の理由(failureReason)と、学習失敗の理由の詳細メッセージ(message)の説明は次の通りです。

学習失敗の理由 詳細メッセージ 説明
file.extension Unavailable file extension. Please check the file extension again. リクエストしたtuningTypeに合致しないデータファイル拡張子
file.size Exceeded the disk usage limit. Please check if the file size is {limit} or less. 学習リクエストで期待されるファイルサイズを超過
file.encoding Unsupported charset UTF8-sigエンコードではない場合
file.format Invalid json format. {reason} データセットファイル(.json/.jsonl)のデコードが不可能な場合
file.format Invalid dataset: required field empty. {column} データセットファイルで必須 column漏れ
file.format Invalid dataset: unexpected column. {column} データセットファイルに予想外の columnが存在
file.format Invalid dataset: duplicate columns. {column} データセットファイルで大文字・小文字の区別がつかないため、重複した columnが発生
file.format Invalid dataset: column order データセットファイルの column順序が System_Prompt、C_ID、T_ID、Text、Completionではない場合
file.format Invalid dataset: {column} データセットファイルの C_IDまたは T_IDが0からスタートして1ずつ増えるパターンを満たさないか、空の値の場合
file.error - 学習時、ファイル読み取りエラー
file.noexist - データセットファイルが存在しない場合
File not found - Object Storageでファイルが見つからない場合
resource.timeout - GPU確保失敗によるレスポンス時間超過。再試行が必要
clops.error - 学習中 CLOpsエラー
train.unknown - 学習中ファイル関連以外のエラー

レスポンス例

レスポンスのサンプルコードは次の通りです。

成功

呼び出しに成功した場合のレスポンスのサンプルコードは次の通りです。

{
    "status": {
        "code": "20000",
        "message": "OK"
},
"result": {
    "id": "czf9fbky",
    "name": "230821-130704",
    "model": "HCX-003",
    "trainEpochs": 8,
    "learningRate": 1.0E-4,
    "status": "WAIT",
    "statusInfo": {
        "label": null,
        "dataRows": null,
        "numOfTokens": null,
        "currStep": null,
        "totalTrainSteps": null,
        "currEpoch": null,
        "totalTrainEpochs": null,
        "estimatedTime": null,
        "trainLoss": null,
        "sendWeightSuccess": null,
        "failureReason": null,
        "message":null,
        "endDatetime": null
        },
        "createdClientType": "API",
        "createdDate": "2023-08-21T13:07:06+0900",
        "updatedDate": "2023-08-21T13:07:06+0900"
    }
}

失敗

呼び出しに失敗した場合のレスポンスのサンプルコードは次の通りです。