学習の作成
    • PDF

    学習の作成

    • PDF

    記事の要約

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

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

    リクエスト

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

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

    リクエストヘッダ

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

    フィールド必須の有無説明
    X-NCP-APIGW-TIMESTAMPRequired1970年1月1日00:00:00協定世界時(UTC)からの経過時間(ミリ秒)
    • API Gatewayサーバとの時間差が5分以上の場合は無効なリクエストとみなす
    X-NCP-IAM-ACCESS-KEYRequiredNAVERクラウドプラットフォームポータルや Sub Accountサービスから発行された Access Key
    X-NCP-APIGW-SIGNATURE-V2Requiredリクエストパスやヘッダを、Access Keyとマッピングする Secret Keyで HMAC暗号化アルゴリズム(HmacSHA256)を通じて暗号化し、Base64でエンコードした署名
    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 'X-NCP-APIGW-TIMESTAMP: {Timestamp}' \
    --header 'X-NCP-IAM-ACCESS-KEY: {Access Key}' \
    --header 'X-NCP-APIGW-SIGNATURE-V2: {API Gateway Signature}' \
    --header 'Content-Type: multipart/form-data' \
    --header 'X-NCP-CLOVASTUDIO-REQUEST-ID: {Request ID}' 
    --data '{
      "name": "generation_task",
      "model": "HCX-003",
      "taskType": "GENERATION",
      "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

    レスポンスボディ

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

    フィールドタイプ必須の有無説明
    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"
        }
    }
    

    失敗

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


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

    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.