다음에 대한 분류체계에서 데이터 생성 InstructLab

데이터 생성은 QNA 파일에 포함된 질문과 답변을 기반으로 합성 질문과 답변을 자동으로 생성하는 프로세스입니다. Red Hat AI InstructLab 에서 데이터를 생성하기 위해 사용하는 프로세스는 콘텐츠 품질과 관련성에 중점을 두고 있습니다.

데이터 생성 프로세스에 대한 자세한 내용은 Red Hat 에서 확인하세요.

전제조건

  1. CLI ilab 플러그인을 설치하십시오.
  2. 분류 체계를 준비하십시오.
  3. Object Storage 버킷에 tar.gz 분류를 추가합니다.

콘솔을 사용하여 데이터 생성하기

  1. 콘솔에서 Red Hat AI InstructLab 서비스를 엽니다.

  2. InstructLab 프로젝트 > 프로젝트 > 학습 데이터 > 생성을 클릭합니다.

  3. 학습 데이터의 영숫자 이름을 입력하고 사용할 분류법을 선택합니다.

  4. 선택 사항입니다: 데이터 생성 프로세스를 시작하기 전에 제공된 예상 비용을 검토합니다.

  5. 생성을 클릭하십시오. 상태는 ' queued, ' running 입니다.

  6. 상태가 completed 이 될 때까지 기다립니다. 데이터 생성이 완료되면 로그 파일이 포함된 synthetic_data 디렉터리가 Object Storage 버킷에 생성됩니다. 이러한 로그를 검토하여 문제 해결 또는 확인을 수행할 수 있습니다.

콘솔에서 나만의 트레이닝 데이터 가져오기

InstructLab 에서 이전에 생성한 데이터를 가져와서 데이터 생성을 보완할 수 있습니다. 다음 중 하나 이상의 작업을 수행해야 하는 경우 직접 데이터를 가져올 수 있습니다.

  • 데이터를 생성할 때 하나 또는 여러 개의 지식 및 기술 문서를 가져옵니다.
  • 여러 훈련 데이터 실행을 하나로 결합합니다.
  • 데이터를 생성하고 다운로드한 다음 데이터의 하위 섹션을 조작하고 다시 생성합니다.
  • 이전에 생성한 데이터를 새로 가져온 데이터와 결합합니다.
  • 데이터를 가져와서 학습 데이터를 생성한 다음, 해당 데이터를 다른 데이터 생성 실행과 결합합니다.
  • 분류 체계에서 리플레이 버퍼와 가져온 데이터를 결합합니다. 이 기능은 API 또는 CLI를 통해서만 사용할 수 있습니다.
  • 데이터를 가져와 분류 체계에서 학습 데이터를 생성합니다. 이 기능은 API 또는 CLI를 통해서만 사용할 수 있습니다.

직접 데이터를 가져오려면 이전 데이터 생성 실행을 참조하거나 Object Storage 버킷에서 파일을 가져오거나 로컬 컴퓨터에서 파일을 업로드하면 됩니다.

자신의 교육 데이터를 가져오려면 다음 단계를 완료하세요.

  1. 콘솔에서 Red Hat AI InstructLab 서비스를 엽니다.

  2. InstructLab 프로젝트 > 프로젝트 > 학습 데이터 > 가져오기를 클릭합니다.

  3. 데이터의 영숫자 이름을 입력합니다.

  4. 다음 옵션 중 하나를 선택하십시오.

    • Object Storage: Object Storage 버킷에서 기존 파일을 선택합니다.

      1. 기존 데이터가 저장되어 있는 인스턴스와 버킷을 선택합니다.
      2. 다음 을 클릭하십시오.
      3. 가져오려는 파일을 선택합니다.
    • 파일 업로드: 로컬 컴퓨터에서 파일을 선택합니다. 파일 업로드에는 40MB 제한이 있습니다.

      1. Object Storage 인스턴스와 버킷을 선택하거나 새 인스턴스와 버킷을 생성하여 데이터를 저장하세요.
      2. 버킷에 대한 InstructLab 작성자 권한을 부여합니다.
      3. 선택 사항입니다: 저장소 설정. 데이터 저장 방법에 대한 추가 세부 정보를 다음과 같이 지정하세요.
        • 버킷 파일 경로.
        • 버킷 내 디렉터리로 이동합니다.
        • Object Storage 인스턴스 이름입니다.
        • 리소스 그룹.
        • Object Storage 버킷 이름.
        • 버킷 복원력.
      4. 다음 을 클릭하십시오.
      5. 로컬 컴퓨터에서 업로드할 지식 및 스킬 파일을 선택합니다.
  5. 가져오기를 클릭하십시오.

콘솔에서 트레이닝 데이터 병합하기

시간 초과나 시스템 제한을 피하기 위해 데이터를 관리하기 쉬운 작은 덩어리로 생성할 수 있습니다. 그런 다음 이러한 작은 데이터 집합을 하나의 데이터 집합으로 병합하여 학습할 수 있습니다.

콘솔에서 데이터를 병합하려면 다음 단계를 완료하세요.

  1. 콘솔에서 Red Hat AI InstructLab 서비스를 엽니다.

  2. InstructLab 프로젝트 > 프로젝트 > 학습 데이터를 클릭합니다.

  3. 목록에서 최대 20개의 교육 데이터 항목을 선택하고 병합을 클릭합니다.

  4. 데이터의 영숫자 이름을 입력합니다.

  5. 병합된 데이터를 저장할 Object Storage 인스턴스와 버킷을 선택합니다.

  6. 작성을 클릭하십시오.

CLI를 사용하여 데이터 생성하기

  1. 분류법을 나열하고 사용하려는 분류법을 메모해 두세요.

    ibmcloud ilab taxonomy list
    

    출력 예.

    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. 분류체계에서 데이터를 생성합니다. 다음 단계에서 사용할 데이터의 ID를 기록해 두세요. 이름에 영숫자를 사용합니다.

    ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID]
    

    명령 예시.

    ibmcloud ilab data generate --name testdata --taxonomy-id 669a88c9488ee7b95ce8fe05
    

    출력 예.

    id            66a268c170dcb21150050e8e
    name          test-data
    state         queued
    status
    created_at    2024-07-19T15:40:29.000Z
    taxonomy_id   669a88c9488ee7b95ce8fe05
    
  3. 데이터 생성에 대한 세부 정보를 확인하세요. 데이터의 ID를 입력합니다. 상태는 ' queued, ' running 입니다. 상태가 ' completed'이 될 때까지 기다립니다. 상태가 completed 인 경우 Object Storage 버킷에 문제 해결을 위한 로그가 포함된 synthetic_data 디렉터리가 만들어집니다.

    ibmcloud ilab data get --id DATA_ID
    

    ' data get 명령 예시.

    ibmcloud ilab data get --id 66a268c170dcb21150050e8e
    

    출력 예.

    id            66a268c170dcb21150050e8e
    name          test-data
    state         running
    status        Generating data for taxonomy path compositional_skills->STEM->math->area: 12% 12/100 (total qna processed 1/147)
    created_at    2024-07-19T15:40:29.000Z
    taxonomy_id   669a88c9488ee7b95ce8fe05
    
  4. 선택 사항: 상태가 다음과 같은 경우 completed 토큰 추정치 등의 측정 항목을 검토하여 예상 비용을 계산할 수 있습니다.

    --output json 옵션이 포함된 data get 명령 예시

    ibmcloud ilab data get --id 66a268c170dcb21150050e8e --output json
    

    JSON 출력 예시

    {
      "created_at": "2026-02-18T15:40:29.000Z",
      "data_metrics": {
        "samples": {
          "knowledge": 30,
          "skills": 70,
          "total": 100
        },
        "tokens": {
          "data_leaf_nodes": {
            "compositional_<taxonomy_path>": 26196,
            "knowledge_<taxonomy_path>": 1228930,
            },
          "data_tokens_total": 5993486,
          "training_estimated": 411435913,
          "training_phases": {
            "phase_1_knowledge": 1389992,
            "phase_2_skills": 410045921
            }
        }
      },
      "id": "66a268c170dcb21150050e8e",
      "last_signal_at": "2026-02-18T17:20:32.000Z",
      "name": "test-data",
      "state": "completed",
      "status": "completed",
      "taxonomy_id": "669a88c9488ee7b95ce8fe05"
    }
    

CLI를 사용하여 자체 트레이닝 데이터 가져오기

다음 중 한 가지 이상의 이유로 자신의 데이터를 가져오고 싶을 수 있습니다.

  • 데이터를 생성할 때 하나 또는 여러 개의 지식 및 기술 문서를 가져옵니다.
  • 여러 훈련 데이터 실행을 하나로 결합합니다.
  • 데이터를 생성하고 다운로드한 다음 데이터의 하위 섹션을 조작하고 다시 생성합니다.
  • 이전에 생성한 데이터를 새로 가져온 데이터와 결합합니다.
  • 데이터를 가져와서 학습 데이터를 생성한 다음, 해당 데이터를 다른 데이터 생성 실행과 결합합니다.
  • 분류 체계에서 리플레이 버퍼와 가져온 데이터를 결합합니다. 이 기능은 API 또는 CLI를 통해서만 사용할 수 있습니다.
  • 데이터를 가져와 분류 체계에서 학습 데이터를 생성합니다. 이 기능은 API 또는 CLI를 통해서만 사용할 수 있습니다.

InstructLab 에서 자체 교육 데이터를 가져와 데이터 생성을 보완할 수 있습니다. 이전에 생성한 데이터를 가져오려면 다음 중 하나 이상을 지정합니다:

  • 이전 실행의 데이터 생성 ID입니다.
  • .jsonl 지식 및 기술 파일이 들어 있는 Object Storage 버킷입니다.

데이터를 가져오려면 다음 단계를 완료하세요.

  1. 분류법을 나열하고 사용하려는 분류법을 메모해 두세요.
    ibmcloud ilab taxonomy list
    
    출력 예.
    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. 이전에 사용하려는 데이터를 생성한 적이 있는 경우 데이터를 나열하고 사용하려는 UUID를 메모해 두세요. 최대 20개의 데이터 소스를 포함할 수 있습니다.
    ibmcloud ilab data list
    
  3. 분류체계에서 데이터를 생성합니다. 다음 단계에서 사용할 데이터의 ID를 기록해 두세요. 이름에 영숫자를 사용합니다.
    ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID] [--internal-ids INTERNAL-IDs]
    
    데이터 생성을 위해 여러 내부 ID(데이터 소스)를 포함하는 명령의 예입니다.
    ibmcloud ilab data generate --name testdata --taxonomy-id 65005b67-7de4-4216-b23c-ed4342f99c88 --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59,299ee20c-0b04-4d8e-ad12-a3d98feece40
    

더 많은 예제는 다음 섹션을 참조하세요: 자체 트레이닝 데이터를 가져오기 위한 명령어 예시를 참조하세요.

자체 트레이닝 데이터를 가져오기 위한 명령어 예시

자체 교육 데이터를 가져오거나 데이터 생성 작업에 지식 및 스킬 파일을 추가하려면 다음 예제 명령을 검토하세요.

여러 개의 내부 ID를 포함하는 명령 예제입니다.

ibmcloud ilab data generate --name testdata --taxonomy-id 65005b67-7de4-4216-b23c-ed4342f99c88 --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59,299ee20c-0b04-4d8e-ad12-a3d98feece40

이전에 생성된 여러 데이터 소스(내부 ID)와 Object Storage 버킷의 .jsonl 파일을 결합하는 명령의 예입니다.

ibmcloud ilab data generate \
  --name testdata \
  --taxonomy-id 669a88c9488ee7b95ce8fe05 \
  --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59,299ee20c-0b04-4d8e-ad12-a3d98feece40 \
  --knowledge-paths PATH \
  --skills-paths PATH \
  --skills-knowledge-cos-bucket STRING \
  --skills-knowledge-cos-bucket-endpoint ENDPOINT

이전에 생성된 데이터를 Object Storage 버킷에 저장된 .jsonl 지식 및 스킬 파일과 결합하는 명령의 예입니다. 선택적으로 출력 Object Storage 버킷을 지정하여 생성된 데이터(SDG) 출력을 저장할 수도 있습니다.

ibmcloud ilab data generate \
  --name testdata \
  --taxonomy-id 669a88c9488ee7b95ce8fe05 \
  --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59 \
  --knowledge-paths PATH \
  --skills-paths PATH \
  --skills-knowledge-cos-bucket STRING \
  --skills-knowledge-cos-bucket-endpoint ENDPOINT
  --output-cos-bucket-string STRING \
  --output-cos-bucket-endpoint ENDPOINT

내부 ID를 지정하여 데이터를 병합하는 명령 예제입니다.

ibmcloud ilab data generate \
  --name testdata \
  --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59,299ee20c-0b04-4d8e-ad12-a3d98feece40 \
  --output-cos-bucket-string STRING \
  --output-cos-bucket-endpoint ENDPOINT

내부 ID를 지정하여 이전에 생성된 데이터를 병합하고 Object Storage 버킷의 스킬과 지식을 포함하는 명령 예제입니다.

ibmcloud ilab data generate \
  --name testdata \
  --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59 \
  --knowledge-paths PATH \
  --skills-paths PATH \
  --skills-knowledge-cos-bucket STRING \
  --skills-knowledge-cos-bucket-endpoint ENDPOINT
  --output-cos-bucket-string STRING \
  --output-cos-bucket-endpoint ENDPOINT

Object Storage 버킷에서 스킬과 지식을 병합하는 명령의 예입니다.

ibmcloud ilab data generate \
  --name testdata \
  --knowledge-paths PATH \
  --skills-paths PATH \
  --skills-knowledge-cos-bucket STRING \
  --skills-knowledge-cos-bucket-endpoint ENDPOINT
  --output-cos-bucket-string STRING \
  --output-cos-bucket-endpoint ENDPOINT

API를 이용한 데이터 생성

  1. 분류법을 나열하고 사용하려는 분류법을 메모해 두세요.

    명령 예시.

    curl -X 'GET' \
    'https://us-east.instructlab.ibm.com/v1/taxonomies' \
    -H 'accept: application/json
    

    출력 예.

    {
      "taxonomies": [
        {
          "id": "202a03c4-dcf1-432a-82b7-abecb2e019f7",
          "name": "example-taxonomy-name-1",
          "taxonomy_path_cos": "taxonomies/taxonomy.tar.gz",
          "created_at": "2024-10-23T02:58:50.000Z"
        }
      ]
    }
    
  2. 분류체계에서 데이터를 생성합니다. 다음 단계에서 사용할 데이터의 ID를 기록해 두세요. 이름에 영숫자를 사용합니다.

    명령 예시.

    curl -X 'POST' \
      'https://us-east.instructlab.ibm.com/v1/data' \
      -H 'accept: application/json' \
      -H 'Content-Type: application/json' \
      -d '{
      "name": "example-data-1",
      "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7"
    }'
    

    출력 예.

    {
      "id": "add785e6-a8c3-4f5f-ab89-c506a3f115da",
      "name": "example-data-1",
      "state": "",
      "status": "queued",
      "created_at": "2024-10-23T02:58:50.000Z",
      "last_signal_at": "2026-02-18T17:20:32.000Z",
      "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7",
      "data_metrics": {
        "samples": {
          "additionalProp1": 1,
          "additionalProp2": 2,
          "additionalProp3": 3
        }
      }
    }
    
  3. 데이터 생성에 대한 세부 정보를 확인하세요. 데이터의 ID를 입력합니다. 상태는 ' queued, ' running 입니다. 상태가 ' completed'이 될 때까지 기다립니다.

    명령 예시.

    curl -X 'GET' \
      'https://us-east.instructlab.ibm.com/v1/data/add785e6-a8c3-4f5f-ab89-c506a3f115da' \
      -H 'accept: application/json'
    

    출력 예.

    {
      "id": "add785e6-a8c3-4f5f-ab89-c506a3f115da",
      "name": "example-data-1",
      "state": "",
      "status": "queued",
      "created_at": "2024-10-23T02:58:50.000Z",
      "last_signal_at": "2026-02-18T17:20:32.000Z",
      "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7",
      "data_metrics": {
        "samples": {
          "additionalProp1": 1,
          "additionalProp2": 2,
          "additionalProp3": 3
        }
      }
    }
    

상태가 completed 인 경우 Object Storage 버킷에 문제 해결을 위한 로그가 포함된 synthetic_data 디렉터리가 만들어집니다.

데이터 생성 후 Object Storage 버킷에는 무엇이 있나요?

데이터를 생성한 후에는 Object Storage 버킷에 다음 파일이 포함된 synthetic_data 디렉터리가 포함됩니다.

Artifacts
이 파일에는 각 리프 노드의 샘플이 포함되어 있습니다. 이는 모델 학습에는 사용되지 않지만 가독성을 위해 제공되며 QNA가 예상 샘플 수를 생성하고 있는지 확인하는 데 사용할 수 있습니다.
Logs
이 파일에는 Red Hat AI InstructLab 실행 로그와 시스템 세부 정보가 포함되어 있습니다.
knowledge_train_msgs.jsonl 및 skills_train_msgs.jsonl
이 파일은 1단계 및 2단계 훈련 파일이며 모델 훈련에 사용되는 샘플이 포함되어 있습니다.

데이터가 생성되는 이유와 방법을 이해하려면 SDG FAQs 커뮤니티 문서를 참조하십시오.

예 .jsonl 형식

기술 및 지식에 대한 다음 예제 .jsonl 구조를 검토하세요.

{
  "messages": [
    {
      "content": "string",   // The text of the message
      "role": "string"       // The role of the sender (e.g., "system", "user", "assistant")
    }
  ],
  "metadata": "string",      // A JSON-encoded string containing additional info (e.g., num_turns, group, dataset)
  "id": "string"             // A unique identifier for the conversation
}

다음 단계

분류체계에서 데이터를 생성한 후에는 모델 학습을 시작할 수 있습니다.