Cette rubrique décrit les instructions du langage de définition de données (DDL) permettant d'enregistrer, d'interroger, de modifier et de supprimer des modèles d'IA dans Flink SQL.
Remarques sur l'utilisation
Prise en charge uniquement à partir de VVR 11.7. L'activation du service Flink AI Service (modèles intégrés) est requise.
Enregistrement d'un modèle
Une fois que le compte principal a activé le service Flink AI Service dans la région cible, vous pouvez créer un modèle en mode de modèle intégré.
CREATE TEMPORARY MODEL my_llm
INPUT (prompt String COMMENT 'Input prompt')
OUTPUT (response String COMMENT 'Model output')
WITH (
'provider' = 'dashscope',
'task' = 'chat/completions',
'model' = 'qwen3.5-flash'
);
Le paramètre
endpointn'est pas requis. Le système sélectionne automatiquement le point de terminaison de service approprié.Le paramètre
api-keyn'est pas requis. Le système s'authentifie à l'aide de la clé API gérée par Flink.Le paramètre
taskest obligatoire pour déclarer le type de tâche du modèle.
Paramètres WITH
Général
|
Paramètre |
Description |
Type de données |
Obligatoire |
Valeur par défaut |
Remarques |
|
provider |
Type de service de modèle. |
String |
Oui |
Aucune |
Valeurs valides :
|
|
task |
Type de tâche du modèle. |
String |
Oui |
Aucune |
Valeurs valides : |
|
model |
Modèle spécifique à appeler côté service. |
String |
Oui |
Aucune |
Sélectionnez un modèle en fonction du type de tâche. Pour plus d'informations, consultez la section Liste des modèles intégrés . |
|
max-context-size |
Taille maximale du contexte pour une seule requête. |
Integer |
Non |
Aucune |
Si la capacité maximale est dépassée, l'action définie dans context-overflow-action est déclenchée. |
|
context-overflow-action |
Action à entreprendre lorsque le contexte d'une requête dépasse la capacité maximale. |
String |
Non |
|
Valeurs valides :
|
|
error-handling-strategy |
Stratégie de gestion des erreurs de requête de modèle. |
String |
Non |
retry |
Valeurs valides :
|
|
retry-num |
Nombre de tentatives de nouvelle tentative. |
int |
Non |
100 |
Prend effet uniquement lorsque |
|
retry-fallback-strategy |
Stratégie de secours à utiliser après avoir atteint le nombre maximal de nouvelles tentatives. |
String |
Non |
failover |
Valeurs valides : Prend effet uniquement lorsque |
|
retry-backoff-strategy |
Stratégie de temporisation des nouvelles tentatives. Définit le calcul de l'intervalle entre les tentatives. |
String |
Non |
fixed |
Valeurs valides :
|
|
retry-backoff-base-interval |
Intervalle de temps de base pour la temporisation des nouvelles tentatives. |
Duration |
Non |
1 s |
- |
|
content-type |
Type de données d'entrée. S'applique aux tâches Chat/Completions et Multimodal-Embedding. |
String |
Non |
text |
|
|
content-types |
Types de contenu des colonnes d'entrée pour les modèles multimodaux. S'applique aux tâches Chat/Completions et Multimodal-Embedding. |
String |
Non |
Aucune |
Remarque
Prise en charge uniquement à partir de VVR 11.8. Pour plus d'informations, consultez la section Appel général. |
chat/completions
Les tâches de génération de texte utilisent chat/completions. Les paramètres suivants sont pris en charge :
|
Paramètre |
Description |
Type de données |
Obligatoire |
Valeur par défaut |
Remarques |
|
system-prompt |
Invite système pour la requête. |
String |
Non |
« You are a helpful assistant. » |
Une chaîne vide est prise en charge. |
|
temperature |
Contrôle la régularité de la distribution de probabilité pour chaque jeton candidat. |
Float |
Non |
Aucune |
Plage valide : [0, 2). Une valeur de 0 n'est pas recommandée et n'a aucune signification pratique. Une température plus élevée aplatit la distribution de probabilité, ce qui permet de sélectionner davantage de jetons à faible probabilité et rend la sortie plus diversifiée. Une température plus basse affine la distribution, augmentant ainsi la probabilité des jetons à haute probabilité et rendant la sortie plus déterministe. |
|
top-p |
Seuil de probabilité pour l'échantillonnage par noyau. |
Float |
Non |
Aucune |
Une valeur plus élevée augmente l'aléatoire, tandis qu'une valeur plus basse augmente le déterminisme. |
|
stop |
Séquence d'arrêt. |
String |
Non |
Aucune |
Le modèle arrête la génération de contenu lorsque la chaîne spécifiée est sur le point d'être produite. |
|
max-tokens |
Nombre maximal de jetons que le modèle peut générer. |
Integer |
Non |
Aucune |
Limité par les capacités du modèle. |
|
presence-penalty |
Contrôle la répétition des jetons. |
Double |
Non |
Aucune |
Plage valide : -2,0 à 2,0. Les valeurs positives pénalisent les jetons déjà apparus dans le texte, incitant le modèle à aborder de nouveaux sujets. |
|
n |
Nombre de sorties à générer pour chaque entrée. |
int |
Non |
Aucune |
- |
|
seed |
Graine aléatoire pour la réponse du modèle. |
Long |
Non |
Aucune |
Si spécifié, la plateforme de modèle tente un échantillonnage déterministe, de sorte que les requêtes répétées avec la même graine et les mêmes paramètres renvoient le même résultat dans la mesure du possible. |
|
response-format |
Format de la valeur de retour. |
String |
Non |
text |
Valeurs valides :
|
|
extra-body |
Corps HTTP supplémentaire pour la requête. |
String |
Non |
Aucune |
Doit être une chaîne au format JSON. Pour plus d'informations, consultez la section description extra-body. |
|
user-prompt |
Invite utilisateur pour la requête. |
String |
Non |
Aucune |
Similaire à system-prompt, mais soumis depuis le rôle de l'utilisateur. |
embeddings
Les tâches d'incorporation de texte utilisent embeddings. Les paramètres suivants sont pris en charge :
|
Paramètre |
Description |
Type de données |
Obligatoire |
Valeur par défaut |
Remarques |
|
dimension |
Dimension des vecteurs de sortie. |
Integer |
Non |
Aucune |
Les dimensions prises en charge dépendent du modèle spécifique. Les valeurs courantes sont 1024, 768 et 512. |
multimodal-embedding
Les tâches d'incorporation multimodale utilisent multimodal-embedding pour convertir des entrées textuelles, imagées ou mixtes (texte et image) en vecteurs. Les paramètres suivants sont pris en charge :
|
Paramètre |
Description |
Type de données |
Obligatoire |
Valeur par défaut |
Remarques |
|
dimension |
Dimension des vecteurs de sortie. |
Integer |
Non |
Aucune |
Les dimensions prises en charge dépendent du modèle spécifique. Les valeurs courantes sont 1024, 768 et 512. |
Exemple 1 : Images uniquement
CREATE TEMPORARY MODEL multimodal_embedding_model
INPUT (`input` STRING)
OUTPUT (`content` ARRAY<FLOAT>)
WITH (
'provider' = 'dashscope',
'task' = 'multimodal-embedding',
'model' = 'qwen3-vl-embedding',
'dimension' = '512',
'content-type' = 'image_url'
);
Exemple 2 : Texte et image
La fusion texte-image s'applique uniquement aux modèles dont la capacité de fusion est activée par enable_fusion, comme décrit dans la section Vecteurs fusionnés multimodaux. Flink détermine s'il faut activer la fusion en fonction du nombre de colonnes d'entrée du modèle. Aucun paramètre supplémentaire n'est requis.
CREATE TEMPORARY MODEL fusion_embedding_model
INPUT (text_input STRING, image_input STRING)
OUTPUT (embedding ARRAY<FLOAT>)
WITH (
'provider' = 'dashscope',
'task' = 'multimodal-embedding',
'model' = 'qwen3-vl-embedding',
'dimension' = '512',
'content-types' = 'text;image_url'
);
description extra-body
La valeur de extra-body est une chaîne au format JSON utilisée pour ajouter des paramètres supplémentaires au corps de la requête du modèle. Les paramètres disponibles dépendent du fournisseur de service de modèle. Voici les paramètres courants pris en charge par Alibaba Cloud Model Studio (liste non exhaustive) :
|
Paramètre |
Type |
Description |
|
|
Integer |
Taille de l'ensemble de candidats pour l'échantillonnage. Une valeur plus élevée augmente l'aléatoire. Pour plus d'informations, consultez la section Corps de la requête. |
|
|
Boolean |
Indique s'il faut activer le mode de réflexion approfondie (s'applique aux modèles prenant en charge la réflexion, tels que Qwen3). Pour plus d'informations, consultez la section Réflexion approfondie. |
|
|
Integer |
Longueur maximale en jetons du processus de réflexion. Prend effet uniquement lorsque |
|
|
Object |
Paramètres de traduction pour les modèles de traduction. Pour plus d'informations, consultez la section Capacité de traduction. |
|
|
Boolean |
Indique s'il faut utiliser les résultats de recherche Internet pour aider à la génération de réponses. La valeur par défaut est |
|
|
Object |
Configuration de la stratégie de recherche Web. Prend effet uniquement lorsque |
Exemple
CREATE MODEL my_model
USING openai_compatible
WITH (
'provider' = 'openai-compat',
'model' = 'qwen3.5-flash',
'task' = 'chat/completions',
'extra-body' = '{"enable_thinking": true, "thinking_budget": 4096}'
);
Interrogation des modèles
Dans l'éditeur Data Query, exécutez l'une des commandes suivantes.
-
Répertoriez les noms des modèles enregistrés :
SHOW MODELS [ ( FROM | IN ) [catalog_name.]database_name ]; -
Affichez l'instruction utilisée pour créer un modèle :
SHOW CREATE MODEL [catalog_name.][db_name.]model_name; -
Affichez le schéma d'entrée et de sortie d'un modèle :
DESCRIBE MODEL [catalog_name.][db_name.]model_name;
Exemple
SHOW MODELS;
-- RESULT
--+------------+
--| model name |
--+------------+
--| m |
--+------------+
DESCRIBE MODEL m;
-- RESULT
-- +---------+--------+------+----------+
-- | name | type | null | is input |
-- +---------+--------+------+----------+
-- | content | String | TRUE | TRUE |
-- | label | BIGINT | TRUE | FALSE |
-- +---------+--------+------+----------+
Modification des modèles
Dans l'éditeur Data Query, exécutez la commande suivante.
ALTER MODEL [IF EXISTS] [catalog_name.][db_name.]model_name {
RENAME TO new_table_name
SET (key1=val1, ...)
RESET (key1, ...)
}
Exemples
-
Renommez un modèle enregistré :
ALTER MODEL m RENAME TO m1; -- Renames the model to m1. -
Modifiez un paramètre de modèle :
ALTER MODEL m SET ('system-prompt' = '<Your_System_Prompt>'); -- Adjusts the system prompt. -
Réinitialisez un paramètre de modèle à sa valeur par défaut :
ALTER MODEL m RESET ('system-prompt'); -- Resets the system prompt.
Suppression des modèles
Dans l'éditeur Data Query, exécutez la commande suivante.
DROP [TEMPORARY] MODEL [IF EXISTS] [catalog_name.][db_name.]model_name
Exemple
DROP MODEL m;