Mise au point des modèles arctic-extract¶
Vous pouvez maintenant mettre au point les modèles arctic-extract en utilisant la fonction Mise au point de Snowflake Cortex et Ensembles de données Snowflake. Le modèle mis au point peut ensuite être utilisé pour l’inférence avec la fonction AI_EXTRACT.
Syntaxe¶
Pour des informations spécifiques sur la syntaxe, les notes sur l’utilisation et des exemples, voir :
FINETUNE ('CREATE') (SNOWFLAKE.CORTEX)¶
Crée une tâche de mise au point.
Syntaxe¶
SNOWFLAKE.CORTEX.FINETUNE(
'CREATE',
'@<database>.<schema>.<model_name>',
'arctic-extract',
'<training_dataset>'
[
, '<validation_dataset>'
]
)
Paramètres requis¶
'CREATE'Spécifie que vous souhaitez créer une tâche de mise au point.
'training_dataset'Objet de l’ensemble de données à utiliser pour l’entraînement. Pour plus d’informations, voir Exigences relatives aux ensemble de données.
Paramètres facultatifs¶
'validation_dataset'Objet de l’ensemble de données à utiliser pour la validation. Pour plus d’informations, voir Exigences relatives aux ensemble de données.
Note
Le paramètre options n’est pas pris en charge pour la mise au point des modèles arctic-extract. Le nombre d’époques est automatiquement déterminé par le système.
Exigences en matière de contrôle d’accès¶
Privilège |
Objet |
Remarques |
|---|---|---|
USAGE ou OWNERSHIP |
DATABASE |
Base de données dans laquelle l’objet de l’ensemble de données est stocké. |
USAGE ou OWNERSHIP |
SCHEMA |
Schéma dans lequel l’objet de l’ensemble de données est stocké. |
READ ou OWNERSHIP |
STAGE |
Zone de préparation dans laquelle les fichiers de documents sont stockés. |
USAGE ou OWNERSHIP |
SCHEMA |
Schéma dans lequel le modèle mis au point est stocké. |
CREATE MODEL |
SCHEMA |
Schéma dans lequel le modèle mis au point est stocké. |
En outre, pour utiliser la fonction FINETUNE, le rôle ACCOUNTADMIN doit accorder le rôle de base de données SNOWFLAKE.CORTEX_USER à l’utilisateur qui appellera la fonction. Voir la rubrique Privilèges requis pour les fonctions LLM pour plus de détails.
Exemple¶
SELECT SNOWFLAKE.CORTEX.FINETUNE(
'CREATE',
'@database.schema.model_name',
'arctic-extract`,
'snow://dataset/training_ds/versions/2',
'snow://dataset/validation_ds/versions/4'
);
FINETUNE ('DESCRIBE') (SNOWFLAKE.CORTEX)¶
Décrit les propriétés d’une tâche de mise au point.
Pour la syntaxe et les paramètres, consultez FINETUNE ('DESCRIBE') (SNOWFLAKE.CORTEX).
Exemple de sortie pour une tâche réussie lors de la mise au point du modèle arctic-extract :
{
"base_model":"arctic-extract",
"created_on":1717004388348,
"finished_on":1717004691577,
"id":"ft_6556e15c-8f12-4d94-8cb0-87e6f2fd2299",
"model":"mydb.myschema.my_tuned_model",
"progress":1.0,
"status":"SUCCESS",
"training_data":"snow://dataset/training_ds/versions/2",
"trained_tokens":2670734,
"training_result":{"validation_loss":1.0138969421386719,"training_loss":0.6477728401547047},
"validation_data":"snow://dataset/validation_ds/versions/4",
}
Exigences relatives aux ensemble de données¶
L’ensemble de données utilisé pour l’entraînement et la validation doit contenir les colonnes suivantes :
- Fichier:
Chaîne contenant le chemin d’accès au document à extraire. Par exemple :
@db.schema.stage/file.pdf- Prompt:
Paires de clés et de questions pour l’extraction dans l’un des formats pris en charge par l’argument
responseFormatde la fonction AI_EXTRACT.Pour plus d’informations, voir AI_EXTRACT.
- Réponse:
Objet JSON contenant des paires de clés et de réponses.
Note
Les noms des colonnes sont insensibles à la casse et peuvent être dans n’importe quel ordre dans l’ensemble de données. Cependant, toutes les colonnes requises (File, Prompt et Response) doivent être présentes pour que l’ensemble de données soit valide. Les colonnes supplémentaires de l’ensemble de données sont ignorées.
Lors de la préparation de l’ensemble de données, notez ce qui suit :
Le schéma du modèle mis au point est l’ensemble unique de toutes les questions de l’ensemble de données.
Les réponses dans la colonne
Responsedoivent correspondre aux questions dans la colonnePrompten faisant correspondre les clés dans les colonnesPromptetResponse.Il n’est pas nécessaire de spécifier le même ensemble de questions pour chaque document.
Pour améliorer la précision du modèle, ajoutez une invite et une ligne de réponse pour chaque question, même si la réponse par défaut du modèle est correcte. Cette action confirme que la réponse par défaut est exacte.
Pour plus d’informations sur les ensembles de données, consultez Ensembles de données Snowflake.
Exemple d’ensemble de données¶
Fichier |
Prompt |
Réponse |
|---|---|---|
|
|
|
|
|
|
|
{
"schema":
{
"type": "object",
"properties": {
"deductions": {
"description": "Deductions",
"type": "object",
"properties": {
"deductions_name": {
"type": "array"
},
"current": {
"type": "array"
}
}
}
}
}
}
|
{
"deductions": {
"deductions_name": [
"Federal Tax",
"Wyoming State Tax",
"SDI",
"Soc Sec / OASDI",
"Health Insurance Tax",
"None"
],
"current": [
"82.50",
"64.08",
"None",
"13.32",
"91.74",
"21.46"
]
}
}
|
Note
Lorsque vous créez l’ensemble de données, définissez la réponse sur None si le document ne contient pas de réponse à la question.
Notes sur l’utilisation¶
Snowflake recommande d’utiliser au moins 20 documents pour la mise au point.
Les formats de fichiers pris en charge pour les documents sont les suivants :
PDF
PNG
JPG, JPEG
TIFF, TIF
Le nombre maximum de pages par document est :
64 pages pour AWS US Ouest 2 (Oregon) et AWS Europe Central 1 (Francfort)
125 pages pour AWS US Est 1 (Virginie du Nord) et Azure Est US 2 (Virginie)
Le nombre maximum de fichiers de documents uniques dans l’ensemble de données est de 1 000. Vous pouvez référencer plusieurs fois le même fichier de document.
Il existe une limite au nombre de questions et de documents pouvant correspondre à une tâche de mise au point. Le nombre de questions multiplié par le nombre total de pages dans tous les fichiers de documents de l’ensemble de données doit être égal ou inférieur à 50 000.
Par exemple, certaines combinaisons valides sont les suivantes :
Nombre de questions
Nombre de pages
Nombre de références de fichiers de documents [1]
10
1
5,000
100
1
500
10
10
500
25
10
200
Créer une tâche de mise au point¶
Pour créer une tâche de mise au point, vous devez créer un objet d’ensemble de données qui contient les données d’entraînement. L’exemple suivant montre comment créer un objet d’ensemble de données et utiliser l’ensemble de données pour créer une tâche de mise au point pour un modèle arctic-extract.
Créez la table qui contiendra les données d’entraînement :
CREATE OR REPLACE TABLE my_data_table (f FILE, p VARCHAR, r VARCHAR);
Remplissez la table avec les données d’entraînement :
INSERT INTO my_data_table (f, p, r) SELECT TO_FILE('@db.schema.stage', '1.pdf'), '{"net": "What is the net value?"}', '{"net": "3,762.56"}';
Créez l’objet de l’ensemble de données :
CREATE OR REPLACE DATASET my_dataset;
Créez une nouvelle version de l’ensemble de données qui ajoute les données d’entraînement, à l’aide des fonctions FL_GET_STAGE et FL_GET_RELATIVE_PATH pour obtenir les chemins d’accès aux fichiers :
ALTER DATASET my_dataset ADD VERSION 'v1' FROM ( SELECT FL_GET_STAGE(f) || '/' || FL_GET_RELATIVE_PATH(f) AS "file", p AS "prompt", r AS "response" FROM my_data_table );
Créez une tâche de mise au point :
SELECT SNOWFLAKE.CORTEX.FINETUNE( 'CREATE', 'my_tuned_model', 'arctic-extract', 'snow://dataset/db.schema.my_dataset/versions/v1' );
Utiliser votre modèle arctic-extract mis au point pour l’inférence¶
Pour utiliser le modèle arctic-extract mis au point pour l’inférence, assurez-vous de disposer des privilèges suivants sur l’objet du modèle :
OWNERSHIP
USAGE
READ
Pour utiliser le modèle arctic-extract mis au point pour l’inférence avec la fonction AI_EXTRACT, spécifiez le modèle à l’aide du paramètre model, comme indiqué dans l’exemple suivant :
SELECT AI_EXTRACT(
model => 'db.schema.my_tuned_model',
file => TO_FILE('@db.schema.files','document.pdf')
);
Vous pouvez écraser les questions utilisées pour la mise au point en utilisant le paramètre responseFormat comme indiqué dans l’exemple suivant :
SELECT AI_EXTRACT(
model => 'db.schema.my_tuned_model',
file => TO_FILE('@db.schema.files','document.pdf'),
responseFormat => [['name', 'What is the first name of the employee?'], ['city', 'Where does the employee live?']]
);
Pour plus d’informations, voir AI_EXTRACT.