MENU
      학습 생성

        학습 생성


        기사 요약

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

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

        요청

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

        메서드URI
        POST/tuning/v2/tasks

        요청 헤더

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

        필드필수 여부설명
        AuthorizationRequired인증을 위한 API 키 <예시> Bearer nv-************
        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 '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-학습 아이디
        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"
            }
        }
        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.