0 / 0
Zurück zur englischen Version der Dokumentation
Programmatische Inferenz eines foundation model
Letzte Aktualisierung: 28. Nov. 2024
Programmatische Inferenz eines foundation model

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

Nach der Erstellung einer Eingabeaufforderung im Eingabeaufforderungslabor können Sie die Eingabeaufforderung als Notebook speichern und anschließend das Notebook bearbeiten. Die Verwendung des generierten Notebooks als Ausgangspunkt ist nützlich, da es die Erstkonfigurationsschritte verarbeitet, z. B. das Abrufen von Berechtigungsnachweisen und die Projekt-ID-Informationen für Sie.

Alternativ können Sie mit Basismodellen direkt aus einem Notebook in watsonx.ai arbeiten, indem Sie die Python -Bibliothek watsonx.ai verwenden. Weitere Informationen finden Sie in der Bibliothek watsonx.

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.

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

Generative KI-Suche und -Antwort
Diese Antworten werden von einem großen Sprachmodell in watsonx.ai basierend auf dem Inhalt der Produktdokumentation generiert. Weitere Informationen