Inférencer un foundation model de manière programmatique ( Python )
Dernière mise à jour : 21 févr. 2025
Inférencer un foundation model de manière programmatique ( Python )
Vous pouvez inviter des modèles de base dans IBM watsonx.ai à l'aide d'un programme à l'aide de la bibliothèque Python .
Après avoir créé une invite dans le site Prompt Lab, vous pouvez enregistrer l'invite en tant que bloc-notes, puis modifier le bloc-notes. Il est utile de démarrer à partir d'un carnet de notes généré, car il gère les étapes initiales de configuration, telles que l'obtention des informations d'identification et de l'identifiant du projet, pour vous.
Vous pouvez également travailler avec des modèles de fondation directement à partir d'un nouveau carnet de notes que vous créez sur watsonx.ai.
Pour plus d'informations, voir la classe Model Inference de la bibliothèque watsonx.ai Python.
Exemples de blocs-notes
Copy link to section
Pour trouver des exemples de blocs-notes qui invitent différents modèles de base disponibles dans watsonx.ai, voir Exemples de blocs-notesPython. La plupart de ces blocs-notes sont également disponibles dans le concentrateur de ressources.
L'exemple de code suivant montre comment inviter le modèle flan-t5-xxl-11b à utiliser différentes méthodes afin de pouvoir comparer le type de sortie générée par chaque méthode.
Bien que seul l'exemple qui montre comment générer un flux de texte inclut des paramètres de modèle pour l'invite, vous pouvez spécifier des paramètres pour n'importe quelle méthode. Le paramètre validate=False accélère la demande en sautant l'étape consistant à vérifier que l'identifiant du modèle est valide et qu'il renvoie à un site foundation model disponible.
Exemple de code Python pour l'interrogation d'un foundation model
Copy link to section
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='')
Copy to clipboardCopié dans le presse-papiersShow more
Remarque :
Pour utiliser l'exemple de code, vous devez remplacer {region}, {my-IBM-Cloud-API-key}et {my-project-ID} par des valeurs valides pour votre environnement.
will discuss the new product line. Let's start with marketing plans
Copy to clipboardCopié dans le presse-papiers
Suppression du contenu préjudiciable
Copy link to section
Lorsque vous soumettez une invite à un foundation model, le filtre "haine, abus et blasphème" (HAP) et le filtre "informations personnelles identifiables" (PII) sont désactivés par défaut. Vous pouvez les activer et spécifier la sensibilité du filtre HAP à l'aide de la zone modifications de l'API.
Pour activer les filtres avec les paramètres par défaut appliqués lors de l'utilisation de la bibliothèque Python , incluez le paramètre suivant dans la demande:
response = model.generate(prompt,guardrails=True)
Copy to clipboardCopié dans le presse-papiers
L'exemple de code suivant montre comment activer et configurer les filtres.