학습 생성
    • PDF

    학습 생성

    • PDF

    기사 요약

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

    생성한 학습이 완료된 후 대화형 문장을 생성하는 API를 호출하여 CLOVA Studio가 생성한 답변을 확인할 수 있습니다.

    요청

    요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

    메서드URI
    POST/tuning/v2/tasks

    요청 헤더

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

    필드필수 여부설명
    X-NCP-APIGW-TIMESTAMPY1970 년 1 월 1 일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타낸 것
    API Gateway 서버와 시간차가 5 분 이상 나는 경우 유효하지 않은 요청으로 간주
    x-ncp-apigw-timestamp:{Timestamp}
    X-NCP-APIGW-SIGNATURE-V2YAccess Key ID 값과 Secret Key로 암호화한 서명
    x-ncp-apigw-signature-v2:{API Gateway Signature}
    X-NCP-CLOVASTUDIO-REQUEST-IDN각 요청에 대한 요청 아이디
    Content-TypeYapplication/json

    요청 바디

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

    필드타입필수 여부설명
    namestringN학습 이름 (기본값: 학습 생성 날짜)
    modelstringY튜닝 모델 이름
    tuningTypestringN튜닝 기법
  • PEFT (기본값)
  • taskTypestringN학습 유형
  • GENERATION: 생성 (기본값)
  • CLASSIFICATION: 분류
  • trainEpochsstringN모델을 학습한 에폭 수
  • 1~20 (기본값: 8)
  • learningRatestringN학습률: 튜닝 시 모델 파라미터를 재학습하는 수준이나 정도
  • 1~1.0E-6 (기본값: 1.0E-4)
  • trainingDatasetUristringY학습할 대용량 데이터셋 파일이 업로드 되어 있는 OBS 접근 URI, OBS 리전에 맞는 공인 도메인 입력 (Object Storage에 업로드한 경우)
  • 수도권: kr.object.gov-ncloudstorage.com
  • 남부: krs.object.gov-ncloudstorage.com
  • trainingDatasetBucketstringY학습할 데이터셋 파일이 업로드되어 있는 버킷 이름 (trainingDatasetUri 입력 시 필수 입력)
    trainingDatasetFilePathstringY학습할 데이터셋 파일 경로, 버킷명 하위 경로 (trainingDatasetUri 입력 시 필수 입력)
    trainingDatasetAccessKeystringY학습할 데이터셋 파일 접근을 위한 액세스 키 (trainingDatasetUri 입력 시 필수 입력)
    trainingDatasetSecretKeystringY학습할 데이터셋 파일 접근을 위한 시크릿 키 (trainingDatasetUri 입력 시 필수 입력)

    요청 구문

    구문 예시는 다음과 같습니다.

    curl --location --request POST 'clovastudio.stream.gov-ntruss.com/tuning/v2/tasks' \
    --header 'Content-Type: multipart/form-data' \
    --header 'X-NCP-APIGW-TIMESTAMP: <api_gw_time>' \
    --header 'X-NCP-APIGW-SIGNATURE-V2: <api_gw_sig>' \
    --header 'X-NCP-CLOVASTUDIO-REQUEST-ID: <request_id>' \
    --data '{
      "name": "generation_task", 
      "model": "HCX-003", 
      "taskType": "GENERATION", 
      "trainEpochs": 8, 
      "learningRate": 1e-5f, 
      "trainingDatasetUri" : "kr.object.gov-ncloudstorage.com"
      "trainingDatasetBucket": "bucket_name",
      "trainingDatasetFilePath": "root_path/sub_path/file_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: 분류
  • result.trainEpochsinteger-모델을 학습한 에폭 수
    result.learningRatedouble-학습률: 튜닝 시 모델 파라미터를 재학습하는 수준이나 정도
    result.statusstring-학습 진행 상태
  • WAIT
  • RUNNING
  • FAILED
  • SUCCEEDED
  • result.statusInfoarray-학습 진행 상태 상세 정보
    result.statusInfo.labelarray-학습 유형이 classification인 경우, 사용자 데이터 라벨 (학습 유형이 GENERATION인 경우, null)
    result.statusInfo.dataRowsint-데이터 수
    result.statusInfo.numOfTokensint-데이터 토큰 수
    result.statusInfo.currStepint-학습 현재 스텝 수
    result.statusInfo.totalTrainStepsint-학습 총 스텝 수
    result.statusInfo.currEpochint-현재 에폭
    result.statusInfo.totalTrainEpochsint-전체 학습 에폭
    result.statusInfo.estimatedTimeint-예상 소요 시간 (평균 1 에폭 시간 * 전체 학습 에폭)
    result.statusInfo.trainLossdouble-학습 손실 양
    result.statusInfo.sendWeightSuccessboolean-학습 결과물 저장 여부
    result.statusInfo.endDatetimestring-학습 종료 날짜
    result.statusInfo.failureReasonstring-학습 진행 상태가 FAILED인 이유
    result.statusInfo.messagestring-failureReason 상세 메시지
    result.createdClientTypestring-학습을 요청한 클라이언트 유형
  • API: API 클라이언트
  • WEB: 웹 클라이언트
  • result.createdDatestring-학습 생성 날짜 (ISO 8601 형식)
    result.updatedDatestring-학습 수정 날짜 (ISO 8601 형식)

    failureReason 상세 메시지

    학습 실패 이유(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 (or 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.