학습 생성
    • PDF

    학습 생성

    • PDF

    기사 요약

    Classic/VPC 환경에서 이용 가능합니다.

    학습을 생성합니다. 생성한 학습이 완료된 후 대화형 문장을 생성하는 Chat Completions API, Completions 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-KEYRequired네이버 클라우드 플랫폼 포털이나 Sub Account 서비스에서 발급받은 Access Key
    X-NCP-APIGW-SIGNATURE-V2Required요청 경로 및 헤더를 Access Key와 매핑되는 Secret Key로 HMAC 암호화 알고리즘(HmacSHA256)을 통해 암호화한 후 Base64로 인코딩한 서명
    X-NCP-CLOVASTUDIO-REQUEST-IDOptional요청에 대한 아이디
    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",
      "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"
    }'
    

    응답

    응답 형식을 설명합니다.

    응답 헤더

    응답 헤더에 대한 설명은 다음과 같습니다.

    헤더필수 여부설명
    Content-Type-응답 데이터의 형식
    • application/json

    응답 바디

    응답 바디에 대한 설명은 다음과 같습니다.

    필드타입필수 여부설명
    resultObject-응답 결과
    result.idString-학습 아이디
    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: API 클라이언트
      • 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"
        }
    }
    

    실패

    호출이 실패한 경우의 응답 예시는 다음과 같습니다.


    이 문서가 도움이 되었습니까?

    What's Next
    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.