Modelli di formazione per InstructLab

Addestrare il modello sui dati generati, quindi testare il modello per verificare i risultati. Per saperne di più su cosa sia la formazione.

Le informazioni o i file di configurazione non possono essere passati al modello per la messa a punto.

Prerequisiti

  1. Preparate la vostra tassonomia
  2. Aggiungere la tassonomia tar.gz al secchio Object Storage. È possibile utilizzare la CLI o l'interfaccia utente.
  3. Genera dati dalla tua tassonomia.

Allineamento dei modelli tramite la console

  1. Nella pagina InstructLab Progetti, fare clic sul progetto > Modelli allineati > Allinea.

  2. Inserire un nome alfanumerico per il modello e selezionare i dati di addestramento da utilizzare.

  3. Opzionale: Prima di iniziare il processo di allineamento, esaminare il costo stimato fornito.

  4. Fare clic su Allinea. Lo stato è 'queued, poi 'running. Attendere che lo stato sia 'completed. Questo processo può richiedere minuti o ore. Al termine dell'allineamento, nel bucket Object Storage viene creata una directory trained_models con i log per la risoluzione dei problemi.

Addestramento dei modelli tramite la CLI

  1. Ottenere l'ID dei dati da utilizzare.

    ibmcloud ilab data list
    
  2. Eseguire il comando per avviare l'addestramento del modello con i dati generati. Si noti l'ID.

    ibmcloud ilab model train --name testmodel --data-id <data_id>
    
  3. Controllare i dettagli della generazione dei dati. Includere l'ID del modello. Lo stato è 'queued, poi 'running. Attendere che lo stato sia 'completed. Questo processo può richiedere minuti o ore. Quando lo stato è completed, nel bucket Object Storage viene creata una directory trained_models con i log per la risoluzione dei problemi.

    ibmcloud ilab model get --id <model_id>
    
  4. Opzionale: Quando lo stato è completed, è possibile esaminare le metriche, come le stime dei token per calcolare il costo stimato.

    Esempio di comando " model get con l'opzione " --output json.

    ibmcloud ilab model get --id daef9836-631f-4686-ad18-e0e6a0910f5d --output json
    

    Esempio di output JSON

    {
      "base_model": "granite-3.1-8b-starter-v2.1",
      "created_at": "2026-02-18T16:06:05.000Z",
      "data_id": "8b1433c0-e375-4b00-b36d-2ad00697014e",
      "id": "daef9836-631f-4686-ad18-e0e6a0910f5d",
      "last_signal_at": "2026-02-18T17:20:32.000Z",
      "model_metrics": {
        "mmlu": {
          "overall_average": 0.51,
          "scores": {
            "mmlu_abstract_algebra": 0.3,
            "mmlu_anatomy": 0.43,
            "mmlu_astronomy": 0.49
          }
        },
        "mt_bench": {
          "error_rate": 0.01,
          "overall_average": 6.86,
          "scores": {
            "turn_one": 7.25,
            "turn_two": 6.47
          }
        },
        "mt_bench_branch": {
          "error_rate": 0.01,
          "improvements": {
            "compositional_skills/STEM/math/time_series/qna.yaml": 8.67,
            "compositional_skills/extraction/invoice/csv/qna.yaml": 8.4
          },
          "no_change": {
            "compositional_skills/roleplay/explain_like_i_am/primary_schooler/qna.yaml": 0,
            "compositional_skills/writing/freeform/technical/proposal/qna.yaml": 0
          },
          "regressions": {
            "compositional_skills/extraction/inference/qualitative/sentiment/qna.yaml": -9,
            "compositional_skills/extraction/information/named_entities/places/qna.yaml": -9
          }
        },
        "tokens": {
          "training_phases": {}
        }
      },
      "name": "test",
      "state": "completed",
      "status": "completed",
      "taxonomy_id": "e62ccea5-97e6-4568-86bf-2f359987b115"
    }
    

Addestramento dei modelli tramite l'API

  1. Ottenere l'ID dei dati da utilizzare.

    Esempio di comando.

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

    Output di esempio.

    {
      "data": [
        {
          "id": "add785e6-a8c3-4f5f-ab89-c506a3f115da",
          "name": "example-data-1",
          "state": "",
          "status": "queued",
          "created_at": "2024-10-23T02:58:50.000Z",
          "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7",
          "last_signal_at": "2026-02-18T17:20:32.000Z"
        }
      ]
    }
    
  2. Eseguire il comando per avviare l'addestramento del modello con i dati generati. Si noti l'ID.

    Esempio di comando.

    curl -X 'POST' \
      'https://us-east.instructlab.ibm.com/v1/models' \
      -H 'accept: application/json' \
      -H 'Content-Type: application/json' \
      -d '{
      "name": "example-model-1",
      "data_id": "add785e6-a8c3-4f5f-ab89-c506a3f115da"
    }'
    

    Output di esempio.

    {
      "id": "baa8cfb5-e306-4e15-869d-735b74b1919d",
      "name": "example-model-1",
      "state": "",
      "status": "queued",
      "created_at": "2024-10-23T02:58:50.000Z",
      "last_signal_at": "2026-02-18T17:20:32.000Z",
      "data_id": "add785e6-a8c3-4f5f-ab89-c506a3f115da",
      "base_model": "granite-7b",
      "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7",
      "model_metrics": {
        "mmlu": {
          "overall_average": 0.3,
          "scores": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        },
        "mmlu_branch": {
          "error_rate": 0.4,
          "improvements": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "regressions": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "no_change": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        },
        "mt_bench": {
          "overall_average": 0.8,
          "error_rate": 0.6,
          "scores": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        },
        "mt_bench_branch": {
          "error_rate": 0.4,
          "improvements": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "regressions": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "no_change": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        }
      }
    }
    
  3. Controllare i dettagli della generazione dei dati. Includere l'ID del modello. Lo stato è 'queued, poi 'running. Attendere che lo stato sia 'completed. Questo processo può richiedere minuti o ore.

    Esempio di comando.

    curl -X 'GET' \
      'https://us-east.instructlab.ibm.com/v1/models/baa8cfb5-e306-4e15-869d-735b74b1919d' \
      -H 'accept: application/json'
    

    Output di esempio.

    {
      "id": "baa8cfb5-e306-4e15-869d-735b74b1919d",
      "name": "example-model-1",
      "state": "",
      "status": "queued",
      "created_at": "2024-10-23T02:58:50.000Z",
      "last_signal_at": "2026-02-18T17:20:32.000Z",
      "data_id": "add785e6-a8c3-4f5f-ab89-c506a3f115da",
      "base_model": "granite-7b",
      "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7",
      "model_metrics": {
        "mmlu": {
          "overall_average": 0.3,
          "scores": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        },
        "mmlu_branch": {
          "error_rate": 0.4,
          "improvements": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "regressions": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "no_change": {
            "additionalProp1": 1,
            "additionalProp3": 3,
            "additionalProp2": 2
          }
        },
        "mt_bench": {
          "overall_average": 0.8,
          "error_rate": 0.6,
          "scores": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        },
        "mt_bench_branch": {
          "error_rate": 0.4,
          "improvements": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "regressions": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "no_change": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        }
      }
    }
    

Quando lo stato è completed, nel bucket Object Storage viene creata una directory trained_models con i log per la risoluzione dei problemi.

Cosa c'è nel mio secchio Object Storage dopo l'allenamento?

Dopo l'addestramento del modello, il bucket Object Storage contiene una cartella trained models con i seguenti file.

Artifacts
Questi file contengono i dati dei checkpoint della Fase 1 e della Fase 2 e il modello per ogni epoca.
Eval
Questi file contengono le metriche di valutazione per i benchmark 'mmlu, 'mmlu_branch, 'mt_bench e 'mt_bench_branch.
Logs
Questi file contengono i log di esecuzione di Red Hat AI InstructLab e i dettagli del sistema.
Model
Questi file contengono il modello finale in formato " safetensors. Il contenuto di questa directory viene utilizzato dal modello.

Operazioni successive

Facoltativo: è possibile distribuire il modello.