Instruction 데이터셋 준비
    • PDF

    Instruction 데이터셋 준비

    • PDF

    기사 요약

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

    데이터셋 준비에서는 데이터셋의 규격과 데이터셋을 작성하는 방법, 작성 예시에 대해 설명합니다. 데이터셋은 언어 모델을 사용자가 원하는 작업에 최적화된 형태로 학습시키기 위해 사용하는 데이터의 묶음입니다.

    학습하려는 모델에 따라 준비해야 하는 데이터셋에 차이가 있습니다.

    • HyperCLOVA X 언어 모델로 학습시키려면 Instruction 데이터셋 가이드에 따라 데이터셋을 준비해야 합니다. Instruction 데이터셋을 참조해 주십시오.
    • 기존 모델(LK 모델)을 학습시키려면 데이터셋 가이드에 따라 데이터셋을 준비해야 합니다. Instruction 데이터셋을 참조해 주십시오.
    주의

    개인 정보가 포함된 데이터셋을 업로드하여 발생하는 문제 및 결과에 대한 모든 책임은 사용자에게 있습니다.

    Instruction 데이터셋

    Instruction 데이터셋은 HyperCLOVA X가 가진 능력을 일깨우는 데이터로, 데이터의 양보다 질이 중요합니다. 길고 자세하게 작성할수록, 원하는 답변 형식을 구체적으로 작성할수록 튜닝의 성능을 높일 수 있습니다. 사용자의 작업에 따라 필요한 데이터의 양이 달라질 수 있으나, 튜닝의 성능을 높이려면 1턴(Text, Completion 쌍) 기준 최소 1,000건 이상의 데이터가 필요하며 HyperCLOVA X가 아직 학습하지 못한 분야인 경우에는 더 많은 양의 데이터가 필요합니다.

    Instruction 데이터셋 파일 규격

    Instruction 데이터셋의 파일 규격은 다음과 같습니다.

    항목설명
    파일 확장자.csv 또는 .jsonl
    파일 인코딩 형식UTF-8
    최소 데이터
  • 최소: 100행
  • 권장: 1,000행 ~ 100,000행
  • 파일 용량1TB 이하 (NCP Object storage 가능 범위)

    Instruction 데이터셋 템플릿

    Instruction 데이터셋을 구성하는 필드는 다음과 같습니다.

    필드설명
    System_PromptCLOVA Studio가 수행할 구체적인 지시문 (선택 항목)
    C_IDConversation ID. 동일한 주제로 구성된 대화 시나리오에 부여하는 숫자. 0부터 시작하여 1씩 증가
    T_IDTurn ID. 하나의 대화 시나리오 내에서 수행되는 질문(Text), 답변(Completion) 쌍에 부여하는 숫자. 0부터 시작하여 1씩 증가
    Text사용자가 말할 것으로 기대되는 모든 발화 내용
    CompletionCLOVA Studio가 답해야 할 것으로 기대되는 모든 발화 내용
    참고
    • 한 행(Text, Completion 쌍)의 데이터는 공백을 포함하여 8,000자 이하로 입력해 주십시오. 8,000자를 초과할 경우 데이터셋의 일부만 업로드됩니다.
    • 문서 분류 작업용 데이터셋인 경우, 각 분류의 범주당 최소 200행 이상의 데이터를 입력해 주십시오.
      <예시> 긍정 30%(300건), 부정 30%(300건), 중립 40%(400건)
    • 다중 분류 작업용 데이터셋인 경우, 분류 라벨을 최대 15개까지 입력할 수 있습니다.
    • 분류 라벨은 하나의 단어만 사용하는 것을 권장합니다. 띄어쓰기와 특수 문자를 허용하지 않습니다.

    Instruction 데이터셋 파일 형식

    Instruction 데이터셋은 CSV 형식 또는 JSON 형식으로 작성합니다. 파일 형식이 CSV 파일인 경우에는 반드시 Instruction 데이터셋 템플릿을 활용해 주십시오. 템플릿에 어긋나는 파일은 업로드할 수 없습니다.

    CSV 파일

    CSV 파일로 데이터셋을 구성하려면 반드시 다음 내용을 확인해 주십시오.

    • 첫 번째 행에는 'C_ID', 'T_ID', 'Text', 'Completion'이 정확하게 입력되어야 하며, 4개의 열로만 구성되어야 합니다.
    • 빈 행과 열은 반드시 삭제해 주십시오.
    • 줄 바꿈이 필요할 경우, '\n'으로 구분해 주십시오.

    JSONL 파일

    JSONL 파일로 데이터셋을 구성하려면 반드시 다음 내용을 확인해 주십시오.

    • 각 행은 {"C_ID": 순서, "T_ID": 순서, "Text": "입력값", "Completion": "원하는 결괏값"}으로 구성되어야 하며, "입력값"과 "원하는 결괏값"에는 적어도 한 글자 이상이 포함되어야 합니다.
    • 큰따옴표는 '"'로 표기해 주십시오.
    • 줄 바꿈이 필요할 경우, '\n'으로 구분해 주십시오.

    대화 시나리오 방식

    사용자의 목적에 따라 싱글턴 대화 시나리오 또는 멀티턴 대화 시나리오로 데이터셋을 구성할 수 있습니다. 싱글턴은 질문 하나로 답변을 얻는 방식이고 멀티턴은 대화를 주고 받으며 원하는 결과를 구체화하는 방식입니다.

    참고

    상세한 예제는 싱글턴 예제 파일(.csv), 멀티턴 예제 파일(.csv)을 참고해 주십시오.

    싱글턴

    싱글턴 시나리오는 특정 C_ID에 대해 1개 턴(T_ID=0)으로만 구성합니다. 하나의 C_ID가 하나의 T_ID를 가지므로 모든 T_ID의 값은 '0'이 됩니다.

    clovastudio-dataset_singleturn_ko

    멀티턴

    멀티턴 시나리오는 특정 C_ID에 대해 2개 이상의 턴(T_ID=0)으로 구성합니다. 하나의 대화 주제에 3개 이상의 턴을 구성하는 것을 권고합니다.

    clovastudio-dataset_multiturn_ko

    데이터셋 필드 작성

    데이터셋의 각 필드를 작성하는 방법을 설명합니다.

    System_Prompt

    CLOVA Studio가 수행할 구체적인 지시문입니다. System_Prompt 필드는 선택 항목이지만 학습 시 데이터셋에 System_Prompt 필드를 추가하면 CLOVA Studio가 지시한 작업을 더욱 잘 수행할 수 있습니다.
    데이터셋에 System_Prompt 필드를 포함시킬 경우, 첫 번째 열에 추가해야 합니다. 필드의 대소문자는 구분하지 않습니다. 동일한 C_ID에는 동일한 내용의 지시문(System Prompt)을 입력해야 하며, 인퍼런스 시에도 동일한 지시문을 적용해야 합니다.

    AI 어시스턴트는 주어진 내용에 대해서 정확히 이해하고 질문에 대답합니다.
    

    C_ID

    C_ID는 동일한 주제로 구성된 대화 시나리오에 부여하는 숫자입니다. 0부터 시작하여 1씩 증가합니다.

    T_ID

    T_ID는 하나의 대화 시나리오 내에서 수행되는 질문(Text), 답변(Completion) 쌍에 부여하는 숫자입니다. 0부터 시작하여 1씩 증가합니다.

    Text

    Text는 사용자의 요구 사항입니다. 다양한 주제와 말투로 작성합니다. 어떤 내용이든 상관 없으며 오타, 비문 등이 섞여 있어도 괜찮습니다.

    • 지시문으로만 구성하는 경우

      오늘 정말 심심하네ㅠㅠ
      
      바세린은 무엇으로 만듭니까?
      
      내가 오늘 많이 아픈데, 직장 상사한테 출근이 늦을 것 같다는 문자를 써주세요오옹
      
    • 지시문과 부가 정보를 함께 구성하는 경우

      다음 단락을 좀 더 공감가는 글로 다시 써 줘. 
      {격식 있는 단락}
      
      다음 문서를 읽고 질문에 대해 정확히 답해줘.
      {문서}
      {질문}
      
      다음 코드가 수행하는 역할이 뭐야?
      {코드}
      

    Completion

    Completion은 사용자 요구 사항에 대한 응답입니다. 길고 상세하게 작성합니다. 순서, 점 목록, 줄 바꿈, 마크다운 형식의 표 서식 등 원하는 답변 형식을 작성할수록 좋습니다.

    상의의 넥 라인 종류는 다양합니다. 일반적으로 다음과 같은 종류가 있습니다. 
    1. 라운드 넥 (Round Neck)
    2. 브이넥 (V-neck)
    3. 크루넥 (Crew Neck)
    4. 스퀘어 넥 (Square Neck)
    5. 보트 넥 (Boat Neck)
    
    상의의 넥 라인 종류는 다양합니다. 다음과 같이 표로 정리할 수 있습니다. 
    | 넥라인 종류 | 설명 |
    | 라운드 넥 (Round Neck) | 목을 부드럽게 감싸는 형태 |
    | 브이넥 (V-neck) | 목을 깊게 파서 시원한 느낌을 주는 형태 |
    | 크루넥 (Crew Neck) | 라운드 넥보다 약간 더 넓은 형태 |
    | 스퀘어 넥 (Square Neck) | 사각형 모양으로 목을 감싸는 형태 |
    | 보트 넥 (Boat Neck) | 옆으로 넓은 형태로 부드러운 느낌을 줌 |
    
    여행을 떠날 떄는 다음과 같은 항목을 준비해야 합니다.
    - 여권 날짜 및 목적지 결정
    - 여권, 비자 및 예방 접종 등 필요 서류 준비 
    - 여행 보험 가입
    - 여행 가방 싸기 
    - 여행 중 필요한 물품 구매 
    - 항공사, 호텔, 교통 수단 예약 
    - 여행지 정보 수집
    - 예상치 못한 상황에 대한 준비 
    

    데이터셋 업로드

    Object Storage에 데이터셋을 업로드하여 학습 생성 API 호출 시 활용하는 방법을 설명합니다.

    데이터셋 업로드 시나리오

    학습 수행 시 필요한 데이터셋이 대용량인 경우, Object Storage를 활용합니다. Object Storage에 데이터셋 전용 버킷을 생성하여 데이터셋을 업로드하면 학습 생성 API 호출 시 Object Storage에 업로드된 데이터셋을 불러와서 학습을 수행할 수 있습니다. 이 과정에서 안전하게 데이터셋을 관리하기 위해 데이터셋을 업로드하는 권한과 버킷 내 파일 목록을 조회할 수 있는 권한을 정책으로 생성하여 서브 계정에게 부여합니다.
    데이터셋을 업로드하고 이를 활용하여 학습 생성 API를 호출하는 시나리오는 다음과 같습니다.

    1. 버킷생성 을 참조하여 Object Storage에 데이터를 업로드할 버킷을 생성해 주십시오.
    2. [서브 계정 생성](#서브 계정 생성)을 참조하여 데이터 업로드용으로 사용할 서브 계정을 생성해 주십시오.
    3. [서브 계정에 적용할 정책 생성](#서브 계정 생성), [서브 계정에 정책 적용](#서브 계정에 정책 적용)을 참조하여 서브 계정 정책을 생성한 후 적용해 주십시오.
    4. 데이터셋 업로드를 참조하여 버킷에 데이터셋을 업로드해 주십시오.
    5. 학습 생성 API 호출 시 필요한 정보 확인을 참조하여 다음 정보를 확인해 주십시오.
      • 학습에 활용할 데이터셋이 위치한 버킷명
      • 학습에 활용할 데이터셋의 파일 경로
      • 학습에 활용할 데이터셋에 접근 시 필요한 액세스 키
      • 학습에 활용할 데이터셋에 접근 시 필요한 시크릿 키
    6. 5번에서 확인한 정보를 활용하여 학습 생성 API 호출해 주십시오.
    참고
    • Sub Account는 여러 사용자가 같은 리소스를 이용하고 관리할 수 있는 서브 계정을 제공하는 서비스입니다. Sub Account에 대한 자세한 설명은 Sub Account 가이드를 참조해 주십시오.
    • Object Storage는 파일 저장 공간을 제공하는 서비스입니다. Object Storage에 대한 자세한 설명은 Object Storage 가이드를 참조해 주십시오.

    버킷 생성

    데이터셋을 업로드할 버킷을 생성하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Storage > Object Storage 메뉴를 차례대로 클릭해 주십시오.
    2. [이용 신청] 버튼을 클릭하여 이용 신청을 완료해 주십시오.
    3. Bucket Management 메뉴에서 [버킷 생성] 버튼을 클릭해 주십시오.
    4. 생성할 버킷의 이름을 입력한 후 [다음] 버튼을 클릭해 주십시오.
      • 학습 생성 API 호출 시 버킷의 이름이 필요합니다.
    5. 설정 관리 화면이 나타나면 설정을 변경하지 않은 상태로 [다음] 버튼을 클릭해 주십시오.
    6. 권한 관리 화면이 나타나면 전체 공개 항목을 공개 안함으로 선택한 후 [다음] 버튼을 클릭해 주십시오.
    7. 설정한 내용을 확인한 후 [버킷 생성] 버튼을 클릭해 주십시오.

    서브 계정 생성

    접근 권한이 제한된 서브 계정을 활용하면 데이터셋을 안전하게 업로드할 수 있습니다.
    서브 계정을 생성하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Management & Governance > Sub Account 메뉴를 차례대로 클릭해 주십시오.
    2. Sub Accounts 메뉴에서 [서브 계정 생성] 버튼을 클릭해 주십시오.
    3. 서브 계정 정보를 입력해 주십시오.
      • 로그인 아이디: 로그인 시 사용할 아이디 입력
      • 사용자명: 서브 계정 사용자의 이름 입력
      • 접근 권한
        • 콘솔 접근의 체크 박스 해제
        • API Gateway 접근의 체크 박스 선택 후 모든 Source에서 접근 가능 선택
      • 2차 인증 옵션: 2차 인증 수단 사용 여부 선택
      • 로그인 비밀번호: 직접 입력 선택 후 비밀번호 설정
      • 비밀번호 재설정 알림: 체크 박스 해제
    4. [생성] 버튼을 클릭해 주십시오.
    5. 생성 완료 창이 나타나면 서브 계정 정보를 복사한 후 [확인] 버튼을 클릭해 주십시오.
    6. 서브 계정 세부 정보 창이 나타나면 [Access Key] 탭에서 [추가] 버튼을 클릭해 주십시오.
      • Access Key Id와 Secret Key 정보가 생성됩니다.

    서브 계정에 적용할 정책 생성

    Object Storage의 특정 버킷에 데이터셋을 업로드하고 버킷의 파일 목록을 조회할 수 있는 권한을 정책으로 생성한 후 서브 계정에게 부여합니다.
    서브 계정에게 적용할 정책을 생성하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Management & Governance > Sub Account 메뉴를 차례대로 클릭해 주십시오.
    2. Policies 메뉴에서 [정책 생성] 버튼을 클릭해 주십시오.
    3. 정책 정보와 정책 적용 대상을 설정해 주십시오.
      • 정책명: 생성할 정책명 입력
      • 플랫폼: VPC 정책 선택
      • 서비스: Object Storage 선택
    4. 액션명 영역이 나타나면 쓰기 권한[펼치기] 버튼을 클릭한 후 writeObject를 선택해 주십시오.
    5. Resources 영역에서 Bucket의 리소스 지정 여부를 활성화한 후 [리소스 선택] 버튼을 클릭해 주십시오.
    6. Bucket 리소스 지정 창이 나타나면 데이터셋을 업로드할 버킷을 선택한 후 image.png 아이콘을 클릭해 주십시오.
    7. 데이터셋을 업로드할 버킷이 지정된 리소스 목록에 추가되면 [적용] 버튼을 클릭해 주십시오.
    8. [적용 대상 추가] 버튼을 클릭해 주십시오.
    9. 적용 대상에 Object Storage가 추가된 것을 확인한 후 [생성] 버튼을 클릭해 주십시오.

    서브 계정에 정책 적용

    서브 계정에게 정책을 적용하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Management & Governance > Sub Account 메뉴를 차례대로 클릭해 주십시오.
    2. 서브 계정 이름을 클릭해 주십시오.
    3. 서브 계정 세부 정보 화면의 [정책] 탭에서 [개별 권한 추가] 버튼을 클릭해 주십시오.
    4. 정책 추가 창이 나타나면 [사용자 정의 정책] 탭을 클릭한 후 생성한 정책의 체크 박스를 선택한 후 [추가] 버튼을 클릭해 주십시오.

    데이터셋 업로드

    Object Storage의 버킷에 데이터셋을 업로드하는 방법은 다음과 같습니다.

    1. 데이터셋을 업로드할 사용자에게 서브 계정 정보와 Access Key Id, Secret Key 정보를 전달해 주십시오.
    2. Object Storage API 가이드를 참조하여 데이터셋을 Object Storage에 업로드해 주십시오.

    학습 생성 API 호출 시 필요한 정보 확인

    Object Storage에 업로드한 데이터셋을 활용하여 학습 생성 API 호출 시 필요한 정보를 확인하는 방법은 다음과 같습니다.

    1. 대시보드 에서 데이터를 업로드한 Object Storage 리전을 확인한 후 Object Storage 리전에 맞는 공인 도메인을 trainingDatasetUri에 적용해주십시오. 공인 도메인은 Object Storage 가이드를 참조할 수 있습니다.
    2. 네이버 클라우드 플랫폼 콘솔에서 Services > Storage > Object Storage 메뉴를 차례대로 클릭해 주십시오.
    3. Bucket Management 메뉴에서 데이터셋이 업로드된 버킷의 이름을 복사하여 trainingDatasetBucket에 적용해 주십시오.
    4. 버킷에 업로드된 파일을 클릭한 후 상세 정보의 Link 중 버킷 내 경로를 trainingDatasetFilePath에 적용해 주십시오.
    5. 네이버 클라우드 플랫폼 콘솔에서 Services > Management & Governance > Sub Account > Sub Accounts 메뉴를 차례대로 클릭해 주십시오.
    6. 버킷에 접근 가능한 서브 계정을 클릭한 후 세부 정보에서 [Access Key] 탭을 클릭해 주십시오.
    7. Access Key Id 정보를 trainingDatasetAccessKey에 적용해 주십시오.
    8. Secret Key 정보를 trainingDatasetSecretKey에 적용해 주십시오.
    참고
    • 학습 생성 API에 대한 자세한 설명은 CLOVA Studio API 가이드를 참조해 주십시오.

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

    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.