Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 20 additions & 5 deletions MyIA.AI.Notebooks/GenAI/Texte/10_LocalLlama.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -2081,22 +2081,24 @@
"tags": []
},
"source": [
"### Analyse des résultats logit_bias\n",
"### Ce que le test `logit_bias` mesure — et ce que ce run n'a pas mesuré\n",
"\n",
"Le test `logit_bias_consistency` evalue **3 aspects critiques** :\n",
"Le test `logit_bias_consistency` evalue **3 aspects critiques** (les limites evoquees ci-dessous valent pour le parcours **OpenRouter** ; le run committé plus bas, lui, tape l'API **OpenAI**) :\n",
"\n",
"**1. Impact du logit_bias**\n",
"- Un `logit_bias` negatif (-100.0) sur les tokens de \"je\" devrait **fortement penaliser** leur apparition\n",
"- **Limitation** : Sur OpenRouter, on utilise tiktoken (encodage GPT) alors que le modèle reel (Gemma) a un autre tokenizer. Les IDs de tokens ne correspondent pas, donc le biais peut etre inefficace\n",
"\n",
"**2. Coherence avec seed fixee**\n",
"- Deux appels identiques (`temperature=1.0`, `seed=42`) SANS bias devraient donner des reponses identiques\n",
"- **En pratique** : la reproductibilite depend du backend (vLLM avec random seed vs OpenRouter qui ne garantit pas le routing)\n",
"- **En pratique (attendu, non mesuré dans ce run)** : la reproductibilite depend du backend (vLLM avec random seed vs OpenRouter qui ne garantit pas le routing)\n",
"\n",
"**3. Tokenizer mismatch (point pedagogique)**\n",
"- OpenRouter utilise des modèles varies -- on ne peut pas utiliser tiktoken pour encoder les tokens\n",
"- Les serveurs vLLM locaux exposent `/tokenize` qui utilise le **vrai tokenizer** du modèle\n",
"- Ce decalage est une limitation reelle des APIs intermediaires (OpenRouter, LiteLLM)\n"
"- Ce decalage est une limitation reelle des APIs intermediaires (OpenRouter, LiteLLM)\n",
"\n",
"> **Ce que ce run donne.** Les trois points ci-dessus decrivent **ce que le test mesure et ce qu'on en attend** — ce n'est pas un resultat observe dans ce carnet. L'execution commitee plus bas n'a produit **aucun verdict** : le cloud OpenAI a refuse la requete portant `logit_bias` (**HTTP 400**, reponse vide) et l'endpoint local `local-mini-v2` (127.0.0.1:8185) a refuse la connexion. Le code l'a lui-meme journalise : « ECHEC de la mesure sur 'OpenAI' : endpoint sans reponse pour avec logit_bias -- le test est inexploitable, aucun verdict de coherence ni d'effet n'est emis. » La lecture placee apres la cellule d'execution detaille ce que le run donne, et ce qu'il ne donne pas.\n"
]
},
{
Expand Down Expand Up @@ -2359,7 +2361,20 @@
"- Modèles standard (GPT-5, Llama 3.3) : Pas de mode reasoning\n",
"- DeepSeek R1 sans `--enable-reasoning` : Champ vide\n",
"\n",
"> **Note** : La fonction gère gracieusement le cas où `reasoning_content` est absent.\n"
"> **Note** : La fonction gère gracieusement le cas où `reasoning_content` est absent.\n",
"\n",
"La cellule d'execution a pousse le test sur deux endpoints et **aucun n'a rendu de couple comparable** :\n",
"\n",
"| Endpoint | Appel **avec** `logit_bias` | Appel **sans** | Verdict |\n",
"|---|---|---|---|\n",
"| `OpenAI` (`api.openai.com/v1`) | **HTTP 400**, reponse vide | HTTP 200 (deux reponses, textes differents) | **aucun** -- le code journalise « ECHEC de la mesure sur 'OpenAI' ... le test est inexploitable, aucun verdict de coherence ni d'effet n'est emis » |\n",
"| `local-mini-v2` (127.0.0.1:8185) | serveur absent : connexion refusee sur `/tokenize` (aucune requete de chat emise) | inatteignable | **aucun** -- « Exception lors de l'appel a /tokenize ... Aucune connexion n'a pu etre etablie car l'ordinateur cible l'a expressement refusee » |\n",
"\n",
"Trois lectures, dans l'ordre :\n",
"\n",
"1. **Les trois points de la section « Ce que le test `logit_bias` mesure » (plus haut dans ce carnet) sont des attentes, pas des observations.** Sans reponse biasee, il n'y a pas de comparaison possible : ni l'effet du `logit_bias` sur l'occurrence de « je », ni la coherence a seed fixe ne sont etablis par ce run. Le titre de la section le dit desormais — elle decrit le protocole, pas un resultat.\n",
"2. **L'echec est lui-meme instructif.** `logit_bias` n'est pas accepte par tous les backends : ici, c'est le cloud qui a refuse la requete biasee, et c'est le serveur local qui etait absent. C'est une raison de plus de **verifier qu'un endpoint repond** avant d'en tirer une conclusion — un `400` ou une connexion refusee ne dit rien du comportement du modele.\n",
"3. **Relancer** : il faut un endpoint dont `/tokenize` repond (le serveur local du port 8185, ou un backend qui accepte `logit_bias`), puis re-executer la cellule. Les sorties se mettront a jour et la lecture ci-dessus sera celle du nouveau run.\n"
]
},
{
Expand Down
Loading