eagle3-new-model

Par nvidia · model-optimizer

Ajouter un nouveau modèle au pipeline offline EAGLE3. Génère une configuration launcher `hf_offline_eagle3.yaml` pour un nouveau checkpoint de modèle, en choisissant le bon backend de dump des états cachés (TRT-LLM / HF / vLLM) et la configuration GPU appropriée. À utiliser lorsque l'utilisateur souhaite exécuter EAGLE3 sur un modèle qui ne possède pas encore de YAML dans `tools/launcher/examples/`, ou demande comment configurer le pipeline pour un nouveau checkpoint.

npx skills add https://github.com/nvidia/model-optimizer --skill eagle3-new-model

Configuration du nouveau modèle EAGLE3

Créez tools/launcher/examples/<Org>/<Model>/hf_offline_eagle3.yaml en copiant l'exemple existant le plus proche et en l'adaptant. Choisissez une référence ayant la même architecture que la cible (dense vs MoE, taille similaire) dans tools/launcher/examples/ — par exemple la config Qwen3-8B pour un modèle dense.

Le pipeline est une config à 4 tâches (task_0 synthèse de données → task_1 dump d'état caché → task_2 entraînement → task_3 benchmark). La structure des tâches, les arguments, les conteneurs et le dimensionnement GPU/nœud sont tous visibles dans les exemples existants — déduisez-les d'une référence plutôt que de les créer manuellement. Ce fichier documente seulement les deux choses qui ne sont pas évidentes à partir des exemples : quel backend de dump choisir, et les pièges spécifiques au modèle.

Choix du backend de dump d'état caché pour task_1

Backend Script Quand l'utiliser
vLLM common/eagle3/dump_offline_data_vllm.sh Par défaut. Couverture large via l'extracteur d'état caché natif de vLLM.
HF common/eagle3/dump_offline_data_hf.sh VLMs / multimodal, modèles avec code personnalisé, attention à fenêtre glissante (TRT-LLM ne peut pas les servir).
TRT-LLM common/eagle3/dump_offline_data.sh Modèles texte pur avec support TRT-LLM ; passez --tp <TP> et --moe-ep <EP>.

Règle empirique : HF si le modèle est un VLM ou utilise l'attention à fenêtre glissante ; vLLM sinon. TRT-LLM seulement quand vous voulez spécifiquement ses kernels pour un modèle texte pur supporté.

Ajustements spécifiques au modèle

Voici les paramètres non évidents qui varient selon le modèle :

Situation Ce qu'il faut modifier
Nécessite --trust-remote-code Ajoutez aux arguments vLLM de task_0 (avant le séparateur --) et aux arguments benchmark de task_3
MoE avec grande dimension cachée d'expert Augmentez intermediate_size dans eagle_config.json pour correspondre à moe_intermediate_size
Tokenizer personnalisé (ex. tiktoken) Définissez la variable d'env TIKTOKEN_RS_CACHE_DIR dans task_0 et task_1

Après adaptation de la config, prévisualisez-la avec --dryrun avant de la soumettre.

Skills similaires