diff --git a/MyIA.AI.Notebooks/GenAI/Texte/10_LocalLlama.ipynb b/MyIA.AI.Notebooks/GenAI/Texte/10_LocalLlama.ipynb index 6b2d0c8d97..3895fbad02 100644 --- a/MyIA.AI.Notebooks/GenAI/Texte/10_LocalLlama.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Texte/10_LocalLlama.ipynb @@ -2081,9 +2081,9 @@ "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", @@ -2091,12 +2091,14 @@ "\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" ] }, { @@ -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" ] }, {