Skip to main content
Utilisez une boucle d’entraînement personnalisée pour entraîner un LLM décodeur Nemotron ou Qwen lorsque votre application doit contrôler l’échantillonnage, les récompenses et les mises à jour du modèle. Pour fine-tuner un encodeur GLiNER avec l’entraînement géré, consultez le démarrage rapide de l’encodeur.

1. S’authentifier

  1. Créez un compte Fastino.
  2. Ouvrez la page des clés API.
  3. Créez une clé et copiez-la lorsqu’elle s’affiche.
Enregistrez la clé dans une variable d’environnement :
Envoyez cette clé sous la forme X-API-Key: $FASTINO_API_KEY. Consultez Authentification pour le contrat d’authentification complet. Choisissez une interface prise en charge :
  • Les clients JSON natifs appellent POST /v1/training/jobs/create-model, mettent en file les opérations de modèle sous /v1/training/jobs/{job_id} et interrogent chaque future_id renvoyé jusqu’à l’état completed, failed ou cancelled.
  • Les programmes Tinker existants conservent tinker==0.32.0 ; consultez Migrer depuis Tinker pour configurer le SDK.
Les clients natifs n’envoient ni seq_id ni signal de présence. Le serveur attribue l’ordre des opérations et maintient la session interne active. Une requête avec wait=true attend au maximum 25 secondes. Le client doit donc continuer à interroger une opération non finale. Après ce démarrage rapide, consultez Construire une boucle d’entraînement personnalisée pour ajouter des récompenses, des rollouts répétés et la récupération. L’exemple REST natif nécessite Python 3.11 ou une version ultérieure. Pour configurer le SDK Tinker, consultez Migrer depuis Tinker.

2. Installer les bibliothèques clientes

Python 3.11 ou une version ultérieure est requis. transformers fournit le tokenizer du modèle ; l’entraînement lui-même s’exécute sur Fastino.

3. Choisir un modèle

Les rangs LoRA de 1 à 32 sont pris en charge ; la valeur par défaut est 32.

4. Créer le job

La réponse contient un job_id et le future_id du future create du job :
Chaque appel qui effectue un travail renvoie un future. Lisez-le jusqu’à ce que status vaille completed. Avec wait=true, la requête attend jusqu’à 25 secondes :

5. Entraîner, enregistrer et échantillonner

Le script ci-dessous exécute toute la boucle : il crée un job, exécute trois passes forward-backward et étapes d’optimiseur, enregistre un checkpoint sampler, échantillonne depuis celui-ci et arrête le job. Créez quickstart.py :
Le script attend la réussite de la passe forward-backward avant d’envoyer l’étape d’optimiseur. Si une future échoue ou est annulée, wait lève une erreur et l’opération dépendante n’est pas envoyée. enable_thinking=False ferme le bloc de raisonnement du modèle avant le début de la réponse supervisée. Il s’agit d’un argument du modèle de tokenizer, et non d’un champ de requête de l’API d’entraînement. Exécutez le script :
Copiez la valeur affichée après TRAINING_JOB_ID=.
Un job interactif sans appel pendant 30 minutes est libéré. Ses checkpoints sont conservés. L’arrêt répond immédiatement et empêche de nouveaux appels, mais les opérations déjà en file peuvent se terminer avant la libération des ressources. L’utilisation peut continuer jusqu’à cette libération. Vous pouvez encore échantillonner et télécharger ses checkpoints sampler.

6. Vérifier le job canonique

La réponse décrit le même job créé par l’endpoint REST natif. Utilisez les pages publiques des opérations interactives pour les opérations sur le modèle et l’API canonique des jobs pour les lectures documentées.

Continuer

Démarrage rapide de l'encodeur

Fine-tunez un encodeur GLiNER avec l’entraînement géré.

Référence des jobs interactifs

Consultez chaque requête et réponse des jobs interactifs.

Boucle d'entraînement

Ajoutez des récompenses, des mises à jour et une reprise à une boucle personnalisée.