0 / 0

Ein Fundament programmatisch abstimmen

Letzte Aktualisierung: 26. Juni 2025
Ein Fundament programmatisch abstimmen

Sie können eine Reihe von Grundmodellen in watsonx.ai programmgesteuert abstimmen, um sie dann für Ihren Anwendungsfall anzupassen.

Entwicklungsmöglichkeiten

Sie können Foundation-Modelle mithilfe dieser Programmiermethoden abstimmen:

Alternativ können Sie grafische Tools aus der Benutzeroberfläche von watsonx.ai verwenden, um Fundamentmodelle zu optimieren. Siehe Tuning Studio.

REST-API

Prompt-Tuning ist veraltet und wird in Zukunft entfernt werden.

Die schnelle Abstimmung eines Fundamentmodells mithilfe der API ist eine komplexe Aufgabe. Die Musterhefte von Python vereinfachen den Prozess. Sie können ein Musternotizbuch als Vorlage für Ihre eigenen Notizbücher verwenden, um sie schnell abstimmen zu können. Siehe "Ein Fundamentmodell programmatisch abstimmen ".

Unterstützte Stiftungsmodelle

Siehe "Auswahl eines Fundamentmodells zum Abstimmen ".

Um eine Liste der Grundlagenmodelle zu erhalten, die eine schnelle Abstimmung programmgesteuert unterstützen, können Sie die folgende Anfrage verwenden:

curl -X GET \
  'https://{hostname}/ml/v1/foundation_model_specs?version=2025-02-20&filters=function_prompt_tune_trainable'
Hinweis:Sie können ein benutzerdefiniertes Fundamentmodell nicht zur Abstimmung auffordern.

Vorgehensweise

Auf hoher Ebene umfasst die schnelle Abstimmung eines Fundamentmodells mithilfe der API die folgenden Schritte:

  1. Erstellen Sie eine Aufgabe mit Berechtigung.

    Ein Aufgaben-Berechtigungsnachweis ist ein API-Schlüssel, der zur Authentifizierung von lang andauernden Aufträgen verwendet wird, die durch die Schritte gestartet werden, die Sie in diesem Verfahren ausführen. Sie müssen die Berechtigung für die Aufgabe nicht in der API-Anfrage angeben. Ein von Ihnen erstellter Aufgaben-Berechtigungsnachweis muss im Berechtigungsnachweis-Dienst für Ihre user_id und account_id vorhanden sein. Siehe "Erstellen von Aufgaben-Berechtigungen ".

  2. Erstellen Sie eine Trainingsdatendatei, die Sie zur Feinabstimmung des Grundmodells verwenden können.

    Weitere Informationen zu den Anforderungen an die Trainingsdatendatei finden Sie unter "Datenformate für Tuning-Foundation-Modelle ".

  3. Laden Sie Ihre Trainingsdatendatei hoch.

    Sie können die Datei hinzufügen, indem Sie einen der folgenden Asset-Typen erstellen:

    • Verbindungsasset

      Hinweis : Für das Prompt-Tuning-Training wird derzeit nur der Verbindungstyp Cloud Object Storage unterstützt.

      Siehe "Dateien aus der API referenzieren ".

      Sie verwenden die Verbindungs-ID und die Details der Trainingsdatendatei, wenn Sie den Abschnitt training_data_references zur Datei request.json hinzufügen, die Sie im nächsten Schritt erstellen.

    • Datenasset

      Um ein Daten-Asset zu erstellen, verwenden Sie die Data and AI Common Core API, um ein Daten-Asset zu definieren.

      Sie werden die Asset-ID und die Details der Trainingsdatendatei verwenden, wenn Sie den Abschnitt training_data_references der REST-Anfrage hinzufügen, die Sie im nächsten Schritt erstellen.

    Weitere Informationen zu den unterstützten Möglichkeiten, auf eine Trainingsdatendatei zu verweisen, finden Sie unter Datenreferenzen.

  4. Verwenden Sie die API watsonx.ai, um ein Schulungsexperiment zu erstellen.

    Siehe "Schulung erstellen ".

    Sie können Parameter für das Experiment in der TrainingResource -Nutzlast angeben. Weitere Informationen zu verfügbaren Parametern finden Sie unter "Parameter für die Abstimmung von Fundamentmodellen ".

    Geben Sie für task_id eine der Aufgaben an, die in der Antwort auf die Methode "Liste der verfügbaren Stiftungsmodelle" als für das Stiftungsmodell unterstützt aufgeführt sind.

  5. Speichern Sie das optimierte Modell im Repository-Dienst, um eine asset_id zu generieren, die auf das optimierte Modell verweist.

    Um das abgestimmte Modell zu speichern, verwenden Sie die watsonx.ai Runtime (ehemals Watson Machine Learning ) API, um ein neues Modell zu erstellen.

  6. Verwenden Sie die API watsonx.ai, um eine Bereitstellung für das optimierte Modell zu erstellen.

    Siehe "Einsatz erstellen "

Um ein angepasstes Modell abzuleiten, müssen Sie den Inferenzendpunkt verwenden, der die eindeutige ID der Bereitstellung enthält, die das angepasste Modell hostet. Weitere Informationen finden Sie in den Inferenzmethoden im Abschnitt "Einsätze ".

Feinabstimmung eines Basismodells mit Hilfe der REST-API

Sie können die watsonx.ai REST API verwenden, um ein Basismodell mit den folgenden Techniken fein abzustimmen:

  • Feinabstimmung der Anpassung auf niedriger Ebene

Unterstützte Stiftungsmodelle

Siehe "Auswahl eines Fundamentmodells zum Abstimmen ".

Um eine Liste der Stiftungsmodelle zu erhalten, die eine programmatische Feinabstimmung der Low-Rank-Adaption ( LoRA ) unterstützen, können Sie die folgende Anfrage verwenden:

curl -X GET \
  'https://{region}.ml.cloud.ibm.com/ml/v1/foundation_model_specs?version=2025-02-20&filters=function_lora_fine_tune_trainable'

Sie können LoRA nur mit nicht-quantisierten Modellen verwenden.

Hinweis:Sie können keine benutzerdefinierten Modelle mit Hilfe von LoRA feineinstellen.

Vorgehensweise

Die grundlegenden Schritte, die Sie befolgen, sind für jede Technik weitgehend gleich. Die wichtigsten Unterschiede sind die Werte, die in den Anforderungskörper für den Feinabstimmungs-Trainingsauftrag aufgenommen werden müssen, und werden in diesem Verfahren hervorgehoben.

  1. Erstellen Sie eine Trainingsdatendatei, die Sie zur Feinabstimmung des Grundmodells verwenden können.

    Weitere Informationen zu den Anforderungen an die Trainingsdatendatei finden Sie unter "Datenformate für Tuning-Foundation-Modelle ".

  2. Stellen Sie Ihre Trainingsdatendatei für die API zur Verfügung.

    Sie können eine der folgenden Aktionen ausführen:

    • UI-Methode

    Um Ihre.json oder.jsonl-Datei hochzuladen, folgen Sie den Schritten unter Hinzufügen von Dateien, auf die von der API verwiesen wird.

    Sie werden die Asset-ID und die Details der Trainingsdatendatei verwenden, wenn Sie den Abschnitt training_data_references des Anfragekörpers hinzufügen, den Sie im nächsten Schritt erstellen.

  3. Verwenden Sie die API watsonx.ai, um ein Schulungsexperiment zu erstellen.

    Siehe "Schulung erstellen ".

    Senden Sie die POST-Anfrage an diesen Endpunkt:

    curl --request POST 'https://{region}.ml.cloud.ibm.com/ml/v1/fine_tunings?version=2025-02-14'
    

    Passen Sie das Experiment an, indem Sie die Werte für die Parameter in der Nutzlast TrainingResource ändern. Weitere Informationen finden Sie in den folgenden Ressourcen:

    Setzen Sie auto_update_model auf true , um die generierte Ausgabe als Asset zu speichern, das Sie verwenden können, wenn Sie das abgestimmte Basismodell später einsetzen. Andernfalls müssen Sie das abgestimmte Modell oder die Adapter, die durch das Experiment generiert werden, im Repository-Dienst speichern, um eine asset_id zu generieren, bevor Sie sie für die Bereitstellung verwenden können.

    Der folgende Beispielanforderungstext erstellt ein LoRA Feinabstimmungsexperiment.

    { 
      "project_id": "4e34d515-c61f-4f18-92b4-758be78d0a58",
      "name": "my LoRA experiment",
      "auto_update_model": true,
      "tuned_model_name": "my-lora-tuned-model",
      "parameters": {
        "base_model": {
          "model_id": "ibm/granite-3-1-8b-base" },
        "task_id": "classification",
        "num_epochs": 10,
        "learning_rate": 0.00001,
        "batch_size": 5,
        "max_seq_length": 4096,
        "accumulate_steps": 1,
        "gpu": {
          "num": 1
        },
        "peft_parameters": {
          "type": "lora",
          "rank": 8,
          "lora_alpha": 32,
          "lora_dropout": 0.05,
          "target_modules": ["all-linear"]
        }
      }, 
      "results_reference": {
        "location": {
          "path": "fine_tuning/results" },
        "type": "container"
      }, 
      "training_data_references": [
        {
        "location": {
          "href":"/v2/assets/1e6591a2-c69d-4716-92e3-73e8c2270956project_id=4e34d515-c61f-4f18-92b4-758be78d0a58",
          "id":"1e6591a2-c69d-4716-92e3-73e8c2270956" },
        "type": "data_asset"
        }
      ]
    }
    

    Die Ausgabe der Anfrage sieht etwa so aus:

    {
      "entity": {
        "auto_update_model": true,
        "parameters": {
          "accumulate_steps": 1,
          "base_model": {
            "model_id": "ibm/granite-3-1-8b-base"
          },
          "batch_size": 5,
          "gpu": {
            "num": 4
          },
          "learning_rate": 0.00001,
          "max_seq_length": 1024,
          "num_epochs": 10,
          "peft_parameters": {
            "lora_alpha": 32,
            "lora_dropout": 0.05,
            "rank": 8,
            "target_modules": [
              "all-linear"
            ],
            "type": "lora"
          },
          "response_template": "\n### Response:",
          "task_id": "classification",
          "verbalizer": "### Input:  \n\n### Response: "
        },
        "results_reference": {
          "location": {
            "path": "/projects/4e34d515-c61f-4f18-92b4-758be78d0a58/assets/fine_tuning/results",
            "notebooks_path": "/projects/4e34d515-c61f-4f18-92b4-758be78d0a58/assets/fine_tuning/results/2491b2d9-bf96-4d3f-9ea7-8604861471e1/notebooks",
            "training": "/projects/4e34d515-c61f-4f18-92b4-758be78d0a58/assets/fine_tuning/results/2491b2d9-bf96-4d3f-9ea7-8604861471e1",
            "training_status": "/projects/4e34d515-c61f-4f18-92b4-758be78d0a58/assets/fine_tuning/results/2491b2d9-bf96-4d3f-9ea7-8604861471e1/training-status.json",
            "assets_path": "/projects/4e34d515-c61f-4f18-92b4-758be78d0a58/assets/fine_tuning/results/2491b2d9-bf96-4d3f-9ea7-8604861471e1/assets"
          },
          "type": "container"
        },
        "status": {
          "state": "pending"
        },
        "training_data_references": [
          {
            "location": {
              "href": "/v2/assets/1e6591a2-c69d-4716-92e3-73e8c2270956?project_id=4e34d515-c61f-4f18-92b4-758be78d0a58",
              "id": "1e6591a2-c69d-4716-92e3-73e8c2270956"
            },
            "type": "data_asset"
          }
        ],
        "tuned_model": {
          "name": "my-lora-tuned-model-2491b2d9-bf96-4d3f-9ea7-8604861471e1"
        }
      },
      "metadata": {
        "created_at": "2025-02-14T19:47:36.629Z",
        "id": "2491b2d9-bf96-4d3f-9ea7-8604861471e1",
        "modified_at": "2025-02-14T19:47:36.629Z",
        "name": "My LoRA experiment",
        "project_id": "4e34d515-c61f-4f18-92b4-758be78d0a58"
      }
    }
    
  4. Um den Status eines Trainingsauftrags zu überprüfen, können Sie die folgende Anfrage verwenden.

    Verwenden Sie die metadata.id , die in der POST-Anforderung zurückgegeben wird, um sie als Wert des ID Pfadparameters in die Anforderung aufzunehmen.

    curl --request GET 'https://{region}.ml.cloud.ibm.com/ml/v1/fine_tunings/2491b2d9-bf96-4d3f-9ea7-8604861471e1?project_id=4e34d515-c61f-4f18-92b4-758be78d0a58&version=2025-02-14'
    

    Die API-Referenz finden Sie unter Feinabstimmungsauftrag abrufen.

    Der Abstimmungsversuch ist beendet, wenn der Zustand completed ist.

    Wenn Sie "auto_update_model": true in die Anfrage aufgenommen haben, wird die Modell-Asset-ID des abgestimmten Modells oder Adapters im Feld entity.tuned_model.id der Antwort der GET-Anfrage aufgeführt. Notieren Sie sich die Asset-ID des Modells.

  5. Verwenden Sie die watsonx.ai API, um Ihr abgestimmtes Modell bereitzustellen.

    Um Ihr abgestimmtes Modell einzusetzen, müssen Sie die entsprechenden Schritte für die verwendete Abstimmungsmethode ausführen.

    • Niederrangige Anpassung: Erledigen Sie die folgenden Aufgaben:

      1. Erstellen Sie ein Basisfundamentmodell-Asset.

        Das Modell-Asset definiert Metadaten für das Grundmodell, das als Basismodell verwendet werden soll. Siehe Erstellen des Modell-Assets.

      2. Stellen Sie das Basisfundamentmodell bereit.

        Sie benötigen eine eigene Instanz des Basismodells, die zum Zeitpunkt der Inferenz verwendet werden kann. Siehe Bereitstellen des Basismodells.

      3. Setzen Sie das Low-Rank-Adapter-Asset ein, das durch das Tuning-Experiment erzeugt wurde.

        Einsatz von Adaptern, die die Gewichte des Basismodells zum Zeitpunkt der Inferenz anpassen können, um die Ausgabe an die Aufgabe anzupassen. Siehe Bereitstellen des LoRA adapter model asset.

    • Vollständige Feinabstimmung: Siehe Einsatz von Feinabstimmungsmodellen.

  6. Ableitung des abgestimmten Gründungsmodells.

    Um ein abgestimmtes Modell zu inferenzieren, verwenden Sie einen Inferenzendpunkt, der die eindeutige ID der Bereitstellung enthält, die das abgestimmte Modell hostet.

Übergeordnetes Thema: Abstimmung von Gründungsmodellen