MENU
      学習の作成

        学習の作成


        記事の要約

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

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

        リクエスト

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

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

        リクエストヘッダ

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

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

        リクエストボディ

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

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

        リクエスト例

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

        curl --location --request POST 'https://clovastudio.apigw.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",
          "taskType": "GENERATION",
          "trainEpochs": 8,
          "learningRate": 1e-5f,
          "trainingDatasetFilePath": "root_path/sub_path/file_name",
          "trainingDatasetBucket": "bucket_name",
          "trainingDatasetAccessKey": "access_key",
          "trainingDatasetSecretKey": "secret_key"
        }'
        Shell

        レスポンス

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

        レスポンスヘッダ

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

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

        レスポンスボディ

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

        フィールドタイプ必須の有無説明
        resultObject-レスポンス結果
        result.idString-学習 ID
        result.nameString-学習名
        result.modelString-チューニングモデル名
        result.methodString-チューニング技法
        • LoRA
        result.taskTypeString-学習タイプ
        • GENERATION | CLASSIFICATION
          • GENERATION: 生成
          • CLASSIFICATION: 分類
        result.trainEpochsInteger-モデルを学習したエポック数
        result.learningRateDouble-学習率(チューニング時にモデルパラメータを再学習するレベルや程度)
        result.statusString-学習の進行状況
        • WAIT | RUNNING | FAILED | SUCCEEDED
          • WAIT: 学習待ち
          • RUNNING: 学習中
          • FAILED: 学習停止
          • SUCCEEDED: 学習完了
        result.statusInfoArray-学習の進行状況の詳細情報
        result.createdClientTypeString-学習をリクエストしたクライアントタイプ
        • API | WEB
          • API: APIAPI
          • WEB: ウェブクライアント
        result.createdDateString-学習の作成日(ISO 8601形式)
        result.updatedDateString-学習の変更日(ISO 8601形式)

        statusInfo

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

        フィールドタイプ必須の有無説明
        labelArray-
        • 学習タイプがCLASSIFICATIONの場合: ユーザーのデータラベルを表示
        • 学習タイプがGENERATIONの場合: null
        dataRowsInteger-データ数
        numOfTokensInteger-データトークン数
        currStepInteger-学習現在ステップ数
        totalTrainStepsInteger-学習総ステップ数
        currEpochInteger-現在のエポック
        totalTrainEpochsInteger-全学習エポック
        estimatedTimeInteger-予測所要時間
        • 1エポックの平均時間と全学習のエポック数を乗算して導き出す
        trainLossDouble-学習損失量
        sendWeightSuccessBoolean-学習結果を保存するかどうか
        • false | true
          • false: 保存しない
          • true: 保存
        failureReasonString-学習失敗(FAILED)の理由
        messageString-学習失敗(FAILED)の理由の詳細メッセージ
        endDatetimeString-学習終了日(ISO 8601形式)

        failureReason, message

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

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

        レスポンス例

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

        成功

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

        {
            "status": {
                "code": "20000",
                "message": "OK"
        },
        "result": {
            "id": "czf9fbky",
            "name": "230821-130704",
            "model": "HCX-003",
            "method": "LoRA",
            "taskType": "GENERATION",
            "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"
            }
        }
        Python

        失敗

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


        この記事は役に立ちましたか?

        Changing your password will log you out immediately. Use the new password to log back in.
        First name must have atleast 2 characters. Numbers and special characters are not allowed.
        Last name must have atleast 1 characters. Numbers and special characters are not allowed.
        Enter a valid email
        Enter a valid password
        Your profile has been successfully updated.