0 / 0
Zurück zur englischen Version der Dokumentation
Programmgesteuerte Ableitung von foundation model ( Python )
Letzte Aktualisierung: 06. Feb. 2025
Programmgesteuerte Ableitung von foundation model ( Python )

Sie können Basismodelle in IBM watsonx.ai über das Programm mithilfe der Python -Bibliothek anfordern.

Nachdem Sie eine Eingabeaufforderung in Prompt Lab erstellt haben, können Sie die Eingabeaufforderung als Notizbuch speichern und das Notizbuch dann bearbeiten. Es ist nützlich, mit einem generierten Notizbuch zu beginnen, da es die ersten Einrichtungsschritte, wie das Abrufen von Anmeldedaten und der Projekt-ID, für Sie übernimmt.

Alternativ können Sie mit Fundamentmodellen direkt aus einem neuen Notizbuch arbeiten, das Sie in watsonx.ai erstellen.

Weitere Informationen finden Sie in der Klasse "Model Inference" der Bibliothek " watsonx.ai Python ".

Beispielnotebooks

Informationen zu Beispielnotebooks, die verschiedene in watsonx.aiverfügbare Basismodelle abfragen, finden Sie unter Python -Beispielnotebooks. Die meisten dieser Notebooks sind auch über den Ressourcenhub verfügbar.

Das Beispiel-Notizbuch Use watsonx to analyze car rentals reviews ist ein Beispiel-Notizbuch, das Sie ausführen können, um die Schritte zu erlernen, die zum Inferencing eines foundation model in watsonx.ai gehören.

Aufforderung zu einem foundation model

Bevor Sie ein foundation model anfordern, erhalten Sie eine Liste der Basismodelle, die in watsonx.ai zum Inferencing verfügbar sind. Weitere Informationen finden Sie unter Informationen zu verfügbaren Basismodellen abrufen.

Der folgende Beispielcode zeigt, wie Sie das flan-t5-xxl-11b -Modell mit verschiedenen Methoden abfragen, damit Sie den Typ der von den einzelnen Methoden generierten Ausgabe vergleichen können.

Obwohl nur das Beispiel, das zeigt, wie ein Textdatenstrom generiert wird, Modellparameter für Eingabeaufforderungen enthält, können Sie Parameter für alle Methoden angeben. Der Parameter validate=False beschleunigt die Anfrage, indem er den Schritt der Überprüfung überspringt, ob die Modell-ID gültig ist und auf eine verfügbare foundation model verweist.

Beispiel für Python zur Abfrage eines foundation model

import json
from ibm_watsonx_ai import APIClient
from ibm_watsonx_ai.foundation_models import ModelInference
from ibm_watsonx_ai.metanames import GenTextParamsMetaNames as GenParams
from ibm_watsonx_ai.foundation_models.utils.enums import DecodingMethods

my_credentials = {
  "url": "https://{region}.ml.cloud.ibm.com",
  "apikey": {my-IBM-Cloud-API-key},
}

client = APIClient(my_credentials)

gen_parms = {
    GenParams.DECODING_METHOD: DecodingMethods.SAMPLE,
    GenParams.MAX_NEW_TOKENS: 100
}
model_id = client.foundation_models.TextModels.FLAN_T5_XXL
project_id = {my-project-ID}
space_id = None
verify = False

model = ModelInference(
  model_id=model_id,
  credentials=my_credentials,
  params=gen_parms,
  project_id=project_id,
  space_id=space_id,
  verify=verify,
)

prompt_txt = "In today's sales meeting, we "
gen_parms_override = gen_parms = {
    GenParams.DECODING_METHOD: DecodingMethods.SAMPLE,
    GenParams.MAX_NEW_TOKENS: 50
}

# GENERATE

generated_response = model.generate(prompt=prompt_txt, params=gen_parms_override)

print("Output from generate() method:")
print(json.dumps(generated_response, indent=2))

# GENERATE TEXT

generated_text_response = model.generate_text(prompt=prompt_txt, params=gen_parms_override)

print("Output from generate_text() method:")
print(generated_text_response)

# GENERATE STREAM

gen_stream_params = {
  GenParams.DECODING_METHOD: DecodingMethods.GREEDY,
  GenParams.TEMPERATURE: 0.5,
  GenParams.MIN_NEW_TOKENS: 10,
  GenParams.MAX_NEW_TOKENS: 20
}

print("Output from generate_text_stream() method:")
stream_response = model.generate_text_stream(prompt=prompt_txt, params=gen_stream_params)

for chunk in stream_response:
  print(chunk, end='')
Hinweis:

Zur Verwendung des Beispielcodes müssen Sie {region}, {my-IBM-Cloud-API-key}und {my-project-ID} durch gültige Werte für Ihre Umgebung ersetzen.

Ausgabe der Methode generate ()

{
  "model_id": "google/flan-t5-xxl",
  "created_at": "2023-07-27T03:40:17.575Z",
  "results": [
    {
      "generated_text": "will discuss the new product line.",
      "generated_token_count": 8,
      "input_token_count": 10,
      "stop_reason": "EOS_TOKEN"
    }
  ],
  ...
}

Ausgabe der Methode generate_text ()

will discuss the new product line.

Ausgabe der Methode generate_text_stream ()

will discuss the new product line. Let's start with marketing plans

Schädliche Inhalte entfernen

Wenn Sie eine Eingabeaufforderung an ein foundation model senden, sind der Filter für Hass, Beleidigungen und Obszönitäten (HAP) und der Filter für personenbezogene Daten (PII) standardmäßig deaktiviert. Sie können sie aktivieren und die Sensitivität des HAP-Filters über das Feld modifications in der API angeben.

Weitere Informationen zur Funktionsweise des Filters finden Sie unter schädliche Sprache aus Modelleingabe und -ausgabe entfernen.

Um die Filter mit Standardeinstellungen zu aktivieren, die bei Verwendung der Python -Bibliothek angewendet werden, schließen Sie den folgenden Parameter in die Anforderung ein:

response = model.generate(prompt,guardrails=True)

Das folgende Codebeispiel zeigt, wie die Filter aktiviert und konfiguriert werden.

guardrails_hap_params = {
  GenTextModerationsMetaNames.INPUT: False,
  GenTextModerationsMetaNames.THRESHOLD: 0.45
}
guardrails_pii_params = {
  GenTextModerationsMetaNames.INPUT: False,
  GenTextModerationsMetaNames.OUTPUT: True,
  GenTextModerationsMetaNames.MASK: {"remove_entity_value": True}
}

response = model.generate(prompt,
  guardrails=True,
  guardrails_hap_params=guardrails_hap_params,
  guardrails_pii_params=guardrails_pii_params)

Übergeordnetes Thema: Python -Bibliothek