{"id":200,"date":"2026-11-01T11:58:36","date_gmt":"2026-11-01T07:58:36","guid":{"rendered":"https:\/\/demensdeum.com\/blog\/2026\/11\/01\/ollama-jev-decision-models\/"},"modified":"2026-11-01T11:58:36","modified_gmt":"2026-11-01T07:58:36","slug":"ollama-jev-decision-models","status":"publish","type":"post","link":"https:\/\/demensdeum.com\/blog\/fr\/2026\/11\/01\/ollama-jev-decision-models\/","title":{"rendered":"Mod\u00e8les de solutions Jev dans Ollama\u00a0: utilisation pratique \/v1\/systemone"},"content":{"rendered":"<p>\u00c0 partir de la version 0.35, Ollama prend en charge les mod\u00e8les de d\u00e9cision bas\u00e9s sur l&#8217;API Jev de TypeSafe. Ce ne sont pas des mod\u00e8les de chat au sens habituel du terme : ils n&#8217;\u00e9crivent pas de texte, mais r\u00e9pondent \u00e0 un ensemble de questions tap\u00e9es sur l&#8217;\u00e9tat transf\u00e9r\u00e9. Pour la classification, le routage, la mod\u00e9ration et le tri, cela s&#8217;av\u00e8re plus rapide et plus fiable que de demander \u00e0 un LLM classique de renvoyer du JSON puis d&#8217;analyser sa r\u00e9ponse.<\/p>\n<p>Dans cet article, j&#8217;examinerai ce que sont les mod\u00e8les de d\u00e9cision, comment ils fonctionnent au niveau HTTP, quels mod\u00e8les sont d\u00e9j\u00e0 disponibles et comment les int\u00e9grer dans le code existant afin que les mod\u00e8les g\u00e9n\u00e9ratifs r\u00e9guliers continuent de fonctionner.<\/p>\n<h2>En quoi les mod\u00e8les de d\u00e9cision diff\u00e8rent-ils des mod\u00e8les classiques<\/h2>\n<p>Un LLM standard re\u00e7oit une invite et g\u00e9n\u00e8re du texte jeton par jeton. M\u00eame si vous lui demandez de r\u00e9pondre en un mot, la g\u00e9n\u00e9ration se produit toujours \u00e0 l&#8217;int\u00e9rieur et le format de la r\u00e9ponse doit \u00eatre contr\u00f4l\u00e9 par un diagramme, des instructions et une v\u00e9rification ult\u00e9rieure. Le mod\u00e8le de d\u00e9cision fonctionne diff\u00e9remment\u00a0: vous transmettez l&#8217;\u00e9tat et les questions avec des types, et le mod\u00e8le renvoie les probabilit\u00e9s et les options s\u00e9lectionn\u00e9es. Pas de texte libre, pas d&#8217;analyse JSON de la r\u00e9ponse.<\/p>\n<p>Le nouveau point de terminaison s&#8217;appelle \/v1\/systemone. Dans une seule demande, vous pouvez poser plusieurs questions \u00e0 la fois et le mod\u00e8le r\u00e9pondra \u00e0 toutes. Ceci est pratique pour les t\u00e2ches o\u00f9 vous devez prendre plusieurs d\u00e9cisions connexes : par exemple, d\u00e9terminer l&#8217;\u00e9quipe, la n\u00e9cessit\u00e9 d&#8217;un retour et l&#8217;urgence du ticket.<\/p>\n<h2>Quels mod\u00e8les sont disponibles<\/h2>\n<p>Vous pouvez d\u00e9sormais ex\u00e9cuter trois mod\u00e8les de d\u00e9cision via Ollama\u00a0:<\/p>\n<ul>\n<li><b>nimble<\/b> est un mod\u00e8le ouvert avec 9 milliards de param\u00e8tres de Bespoke Labs. Il s&#8217;agit du plus grand et du plus pr\u00e9cis disponible.<\/li>\n<li><b>tev1<\/b> est un mod\u00e8le exp\u00e9rimental avec 4\u00a0milliards de param\u00e8tres de Together\u00a0AI.<\/li>\n<li><b>tev1:0.8b<\/b> est un mod\u00e8le exp\u00e9rimental avec 0,8\u00a0milliard de param\u00e8tres de Together\u00a0AI. Le plus rapide et le plus simple.<\/li>\n<\/ul>\n<p>Ils travaillent tous localement, ne n\u00e9cessitent aucun paiement et n&#8217;envoient pas de donn\u00e9es \u00e0 un service externe. Ollama 0.35 et versions ult\u00e9rieures sont pris en charge.<\/p>\n<h2>Installation<\/h2>\n<p>V\u00e9rifiez d&#8217;abord la version Ollama\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>ollama --version\n<\/code><\/pre>\n<\/div>\n<p>T\u00e9l\u00e9chargez ensuite le mod\u00e8le souhait\u00e9. Pour le plus simple :<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>ollama pull tev1:0.8b\n<\/code><\/pre>\n<\/div>\n<p>Pour la version compl\u00e8te de tev1\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>ollama pull tev1\n<\/code><\/pre>\n<\/div>\n<p>Pour les agiles\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>ollama pull nimble\n<\/code><\/pre>\n<\/div>\n<p>Le mod\u00e8le agile occupe environ 9,5 Go d&#8217;espace disque, c&#8217;est donc une bonne id\u00e9e de lib\u00e9rer de l&#8217;espace avant le t\u00e9l\u00e9chargement. tev1:0.8b occupe moins d&#8217;un gigaoctet.<\/p>\n<h2>Premi\u00e8re requ\u00eate via curl<\/h2>\n<p>L\u2019exemple le plus simple consiste \u00e0 d\u00e9terminer si un texte est une offre d\u2019emploi :<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>curl http:\/\/localhost:11434\/v1\/systemone -d '{\n  \"model\": \"tev1:0.8b\",\n  \"state\": {\n    \"message\": \"Senior Swift developer, Berlin, remote friendly\"\n  },\n  \"questions\": {\n    \"isJob\": {\n      \"type\": \"noul\",\n      \"instructions\": \"Does the message advertise a job posting that someone can apply to?\"\n    }\n  }\n}'\n<\/code><\/pre>\n<\/div>\n<p>La r\u00e9ponse ressemble \u00e0 ceci\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>{\n  \"model\": \"tev1:0.8b\",\n  \"answers\": {\n    \"isJob\": {\n      \"type\": \"noul\",\n      \"noul\": 0.921\n    }\n  },\n  \"usage\": {\n    \"input_tokens\": 42,\n    \"output_tokens\": 0\n  }\n}\n<\/code><\/pre>\n<\/div>\n<p>Le champ nul est une probabilit\u00e9 de 0 \u00e0 1. La d\u00e9cision est prise par comparaison avec un seuil, g\u00e9n\u00e9ralement 0,5. Contrairement au mod\u00e8le g\u00e9n\u00e9ratif, il n\u2019est pas n\u00e9cessaire de demander une r\u00e9ponse au format JSON puis de v\u00e9rifier que le mod\u00e8le ne l\u2019a pas cass\u00e9e.<\/p>\n<h2>Types de questions<\/h2>\n<p>Les mod\u00e8les de d\u00e9cision prennent en charge trois types de questions.<\/p>\n<p><b>noul<\/b> est une question binaire. Renvoie la probabilit\u00e9 qu&#8217;une affirmation soit vraie\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>{\n  \"questions\": {\n    \"refund\": {\n      \"type\": \"noul\",\n      \"instructions\": \"Does the customer explicitly ask for a refund?\"\n    }\n  }\n}\n<\/code><\/pre>\n<\/div>\n<p><b>choix<\/b> &#8211; s\u00e9lection d&#8217;une option dans un ensemble donn\u00e9. Renvoie l&#8217;option s\u00e9lectionn\u00e9e, les probabilit\u00e9s de toutes les options et la confiance\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>{\n  \"questions\": {\n    \"team\": {\n      \"type\": \"choice\",\n      \"instructions\": \"Which team should handle this ticket?\",\n      \"criteria\": {\n        \"billing\": \"Payments and refunds\",\n        \"technical\": \"Bugs and integrations\",\n        \"other\": \"None of the above\"\n      }\n    }\n  }\n}\n<\/code><\/pre>\n<\/div>\n<p><b>score<\/b> &#8211; note sur une \u00e9chelle. Renvoie le nombre, la l\u00e9gende et les probabilit\u00e9s pour chaque point d&#8217;\u00e9chelle\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>{\n  \"questions\": {\n    \"urgency\": {\n      \"type\": \"score\",\n      \"instructions\": \"How urgent is this ticket?\",\n      \"criteria\": [\"Routine\", \"Soon\", \"Urgent\"]\n    }\n  }\n}\n<\/code><\/pre>\n<\/div>\n<p>Une demande peut contenir plusieurs questions de types diff\u00e9rents \u00e0 la fois. C\u2019est ce qui rend les mod\u00e8les de d\u00e9cision pratiques pour le tri : une op\u00e9ration, un \u00e9tat, plusieurs d\u00e9cisions ind\u00e9pendantes.<\/p>\n<h2>Python sans biblioth\u00e8ques suppl\u00e9mentaires<\/h2>\n<p>Pour les requ\u00eates, l&#8217;urllib standard est suffisante ; un SDK distinct n&#8217;est pas requis\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>import json\nfrom urllib.request import Request, urlopen\n\nOLLAMA_DECISION_URL = \"http:\/\/localhost:11434\/v1\/systemone\"\n\ndef ask_decision(state, questions, model=\"tev1:0.8b\"):\n    payload = {\n        \"model\": model,\n        \"state\": state,\n        \"questions\": questions,\n    }\n    request = Request(\n        OLLAMA_DECISION_URL,\n        data=json.dumps(payload).encode(),\n        headers={\"Content-Type\": \"application\/json\"},\n        method=\"POST\",\n    )\n    with urlopen(request, timeout=3600) as response:\n        return json.loads(response.read().decode())[\"answers\"]\n<\/code><\/pre>\n<\/div>\n<p>Usage:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>answers = ask_decision(\n    {\"message\": \"Senior Swift developer, Berlin, remote friendly\"},\n    {\n        \"isJob\": {\n            \"type\": \"noul\",\n            \"instructions\": \"Does the message advertise a job posting that someone can apply to?\"\n        }\n    },\n)\n\nprobability = answers[\"isJob\"][\"noul\"]\nis_job = probability >= 0.5\n<\/code><\/pre>\n<\/div>\n<p>Si vous avez besoin d&#8217;un SDK Python officiel, il s&#8217;appelle typesafe-sdk. Pour localhost, il peut \u00eatre dirig\u00e9 vers Ollama avec les variables d&#8217;environnement TYPESAFE_BASE_URL, TYPESAFE_API_KEY et TYPESAFE_DEFAULT_MODEL. Mais pour des t\u00e2ches simples, une requ\u00eate HTTP directe suffit.<\/p>\n<h2>Comment comprendre qu&#8217;un mod\u00e8le soutient la d\u00e9cision<\/h2>\n<p>Les mod\u00e8les de d\u00e9cision ne peuvent pas r\u00e9pondre via \/api\/generate ou \/api\/chat. Si vous envoyez une telle demande, Ollama renverra une erreur 400 avec un texte comme\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>\"tev1:0.8b\" does not support generate\n<\/code><\/pre>\n<\/div>\n<p>Ceci est important si vous disposez d\u00e9j\u00e0 d&#8217;un code qui fonctionne avec des mod\u00e8les standards via \/api\/generate : si vous changez le mod\u00e8le en mod\u00e8le de d\u00e9cision, il cessera de fonctionner. Il est pr\u00e9f\u00e9rable de conna\u00eetre \u00e0 l&#8217;avance les capacit\u00e9s du mod\u00e8le via \/api\/show et de choisir la m\u00e9thode d&#8217;appel appropri\u00e9e\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>import json\nfrom urllib.request import Request, urlopen\n\nOLLAMA_SHOW_URL = \"http:\/\/localhost:11434\/api\/show\"\n\ndef supports_decision(model):\n    request = Request(\n        OLLAMA_SHOW_URL,\n        data=json.dumps({\"model\": model}).encode(),\n        headers={\"Content-Type\": \"application\/json\"},\n        method=\"POST\",\n    )\n    try:\n        with urlopen(request, timeout=30) as response:\n            capabilities = json.loads(response.read().decode()).get(\"capabilities\", [])\n    except (OSError, TypeError, ValueError):\n        return False\n    return \"decision\" in capabilities\n<\/code><\/pre>\n<\/div>\n<p>Les mod\u00e8les de d\u00e9cision n&#8217;auront que la d\u00e9cision dans leurs capacit\u00e9s. Les mod\u00e8les r\u00e9guliers auront des compl\u00e9tions, des outils ou d&#8217;autres fonctionnalit\u00e9s. Si Ollama n\u2019est pas disponible, il est raisonnable de consid\u00e9rer le mod\u00e8le comme normal et d\u2019utiliser le chemin g\u00e9n\u00e9ratif.<\/p>\n<h2>Comment int\u00e9grer dans du code existant<\/h2>\n<p>Le plus simple n\u2019est pas de r\u00e9\u00e9crire le classificateur, mais de le diviser en deux strat\u00e9gies. La strat\u00e9gie g\u00e9n\u00e9rative fonctionne comme avant\u00a0: elle collecte l&#8217;invite, l&#8217;envoie \u00e0 \/api\/generate et analyse le JSON. La strat\u00e9gie de d\u00e9cision envoie l&#8217;\u00e9tat et la question saisie \u00e0 \/v1\/systemone et compare la probabilit\u00e9 avec un seuil.<\/p>\n<p>Le choix de la strat\u00e9gie s&#8217;effectue en un seul endroit, lors de la cr\u00e9ation d&#8217;un classificateur\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>def create_classifier(model):\n    if supports_decision(model):\n        return DecisionClassifier(model)\n    return GenerativeClassifier(model)\n<\/code><\/pre>\n<\/div>\n<p>Cette approche pr\u00e9sente plusieurs avantages. Les mod\u00e8les g\u00e9n\u00e9ratifs continuent de fonctionner sans changement. Le mod\u00e8le de d\u00e9cision peut \u00eatre activ\u00e9 en modifiant une variable d&#8217;environnement. Et toute la diff\u00e9rence entre les deux m\u00e9thodes est concentr\u00e9e dans deux petites classes et n\u2019est pas r\u00e9partie dans toute l\u2019application.<\/p>\n<p>Pour une classification binaire, la strat\u00e9gie de d\u00e9cision ressemble \u00e0 ceci\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>async def classify(text):\n    answers = await ask_decision(\n        {\"message\": text},\n        {\n            \"isJob\": {\n                \"type\": \"noul\",\n                \"instructions\": instructions,\n            }\n        },\n        model,\n    )\n    probability = answers[\"isJob\"][\"noul\"]\n    return probability >= 0.5, probability\n<\/code><\/pre>\n<\/div>\n<p>Veuillez noter que le mod\u00e8le de d\u00e9cision ne renvoie pas d&#8217;explication. Si votre format de r\u00e9sultat comporte un champ de raison, vous pouvez le construire \u00e0 partir de la probabilit\u00e9 : par exemple, stockez la probabilit\u00e9 elle-m\u00eame ou une cha\u00eene telle que \u00ab le mod\u00e8le a \u00e9valu\u00e9 le message \u00e0 0,935 comme poste vacant \u00bb. C\u2019est plus honn\u00eate que d\u2019inventer une raison que le mod\u00e8le n\u2019a pas donn\u00e9e.<\/p>\n<h2>Les instructions devraient \u00eatre une question<\/h2>\n<p>C\u2019est la conclusion pratique la plus importante. Les mod\u00e8les de d\u00e9cision ne comprennent pas les longues invites du style \u00ab vous classez les messages, r\u00e9pondez vrai si&#8230;, faux sinon \u00bb. Ils veulent une question courte et directe.<\/p>\n<p>Sur le m\u00eame message concernant un poste vacant, j&#8217;ai re\u00e7u les probabilit\u00e9s suivantes :<\/p>\n<ul>\n<li>Question directe\u00a0: &#8220;Ce message est-il une offre d&#8217;emploi\u00a0?&#8221; \u2014 0,921.<\/li>\n<li>De longues instructions expliquant ce qui est consid\u00e9r\u00e9 comme un poste vacant\u00a0\u2013 0,026.<\/li>\n<li>Des instructions longues avec une question \u00e0 la fin\u00a0\u2013\u00a00,391.<\/li>\n<\/ul>\n<p>La diff\u00e9rence est presque trente fois sup\u00e9rieure. Le mod\u00e8le ne se trompe pas dans la classification, il ne comprend tout simplement pas ce qu&#8217;il en attend lorsque la question est cach\u00e9e \u00e0 l&#8217;int\u00e9rieur d&#8217;un paragraphe. Par cons\u00e9quent, pour les mod\u00e8les de d\u00e9cision, il vaut la peine de conserver des instructions courtes s\u00e9par\u00e9es et de laisser de longues invites pour les mod\u00e8les g\u00e9n\u00e9ratifs.<\/p>\n<p>Il est pratique de cr\u00e9er une variable d&#8217;environnement distincte\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>OLLAMA_JOB_CLASSIFIER_DECISION_INSTRUCTIONS=Does the message advertise a job posting that someone can apply to?\n<\/code><\/pre>\n<\/div>\n<p>Et utilisez une invite r\u00e9guli\u00e8re uniquement pour le chemin g\u00e9n\u00e9ratif.<\/p>\n<h2>Seuil et probabilit\u00e9s<\/h2>\n<p>Le seuil de 0,5 convient comme valeur par d\u00e9faut, mais il est utile de l&#8217;inclure dans la configuration. Pour diff\u00e9rentes t\u00e2ches, le co\u00fbt d\u2019une r\u00e9ponse faussement positive et faussement n\u00e9gative est diff\u00e9rent. Pour la mod\u00e9ration, il est plus s\u00fbr de relever le seuil ; pour rechercher des postes vacants, il est plus s\u00fbr de le baisser, afin de ne pas manquer de messages utiles.<\/p>\n<p>Il est \u00e9galement utile d&#8217;enregistrer la probabilit\u00e9 elle-m\u00eame, et pas seulement le bool\u00e9en r\u00e9sultant. Lorsque le classificateur fait une erreur, le journal indique s&#8217;il s&#8217;agit d&#8217;une r\u00e9ponse s\u00fbre ou d&#8217;une d\u00e9cision \u00e0 la fronti\u00e8re. Pour les questions de choix, il vaut la peine de conserver les probabilit\u00e9s et la confiance : elles montrent \u00e0 quel point le mod\u00e8le fluctue entre les options.<\/p>\n<h2>Performances et m\u00e9moire<\/h2>\n<p>La vitesse d\u00e9pend grandement de la taille du mod\u00e8le et du mat\u00e9riel. Sur le CPU, lors de mes tests, j&#8217;ai obtenu les chiffres suivants\u00a0:<\/p>\n<ul>\n<li><b>tev1:0.8b<\/b> &#8211; fractions de secondes \u00e0 r\u00e9soudre, s&#8217;int\u00e8gre facilement dans la m\u00e9moire.<\/li>\n<li><b>tev1<\/b>\u00a0&#8211;\u00a04B, nettement plus lent, mais toujours adapt\u00e9 aux t\u00e2ches interactives.<\/li>\n<li><b>agile<\/b>\u00a0\u2013\u00a09\u00a0B en Q8_0, environ 10\u00a0Go de m\u00e9moire. La premi\u00e8re requ\u00eate, y compris le chargement du mod\u00e8le, a pris environ 137 secondes, les solutions suivantes ont pris entre 12 et 32 \u200b\u200bsecondes sur le processeur.<\/li>\n<\/ul>\n<p>Nimble n\u00e9cessite beaucoup de RAM. Sur une machine avec 16 Go et Docker\/WSL avec une limite d&#8217;environ 8 Go, le mod\u00e8le ne rentre pas : le syst\u00e8me commence \u00e0 permuter et les conteneurs ne r\u00e9pondent plus. L&#8217;augmentation de la limite WSL \u00e0 12\u00a0Go via le fichier .wslconfig a aid\u00e9\u00a0:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>[wsl2]\nmemory=12GB\nswap=8GB\n<\/code><\/pre>\n<\/div>\n<p>Apr\u00e8s le changement, vous avez besoin de wsl &#8211;shutdown et red\u00e9marrez Docker Desktop. Mais m\u00eame avec 12 Go, la r\u00e9serve reste faible : le mod\u00e8le occupe environ 10 Go, et il ne reste plus grand chose pour le syst\u00e8me.<\/p>\n<p>Par d\u00e9faut, Ollama d\u00e9charge le mod\u00e8le apr\u00e8s cinq minutes d&#8217;inactivit\u00e9, lib\u00e9rant ainsi de la m\u00e9moire. C&#8217;est pratique : Nimble ne garde pas 10 Go occup\u00e9s en permanence, mais chaque nouveau lancement apr\u00e8s une pause recommence \u00e0 charger le mod\u00e8le.<\/p>\n<h2>Quand utiliser des mod\u00e8les de d\u00e9cision<\/h2>\n<p>Les mod\u00e8les de d\u00e9cision sont bien adapt\u00e9s aux t\u00e2ches pour lesquelles vous avez besoin d\u2019une r\u00e9ponse rapide et peu co\u00fbteuse \u00e0 une question clairement formul\u00e9e\u00a0:<\/p>\n<ul>\n<li>Classification des messages, tickets et demandes.<\/li>\n<li>Routage par commandes ou ex\u00e9cuteurs.<\/li>\n<li>Mod\u00e9ration du contenu et contr\u00f4les de s\u00e9curit\u00e9.<\/li>\n<li>Solutions binaires et multivari\u00e9es rapides dans les applications de jeux ou interactives.<\/li>\n<\/ul>\n<p>Ils sont mal adapt\u00e9s aux t\u00e2ches o\u00f9 un texte d\u00e9taill\u00e9 est n\u00e9cessaire : explication, extraction de champs, r\u00e9sum\u00e9, g\u00e9n\u00e9ration de r\u00e9ponses. Pour cela, les mod\u00e8les g\u00e9n\u00e9ratifs habituels restent. Le meilleur r\u00e9sultat est obtenu lorsqu&#8217;il est combin\u00e9 : un mod\u00e8le de d\u00e9cision prend une d\u00e9cision et un mod\u00e8le g\u00e9n\u00e9ratif l&#8217;explique ou extrait des donn\u00e9es.<\/p>\n<h2>Total<\/h2>\n<p>Les mod\u00e8les de d\u00e9cision dans Ollama sont un outil distinct et plus restreint que les LLM classiques. Ils ne remplacent pas les mod\u00e8les g\u00e9n\u00e9ratifs, mais ils suppriment la partie routini\u00e8re du travail : r\u00e9ponses saisies, probabilit\u00e9s au lieu de l&#8217;analyse de texte et format pr\u00e9visible. Si vous disposez d\u00e9j\u00e0 d&#8217;un pipeline de classification, la transition se r\u00e9sume \u00e0 v\u00e9rifier les capacit\u00e9s du mod\u00e8le, une strat\u00e9gie d&#8217;appel distincte et de courtes questions p\u00e9dagogiques.<\/p>\n<p>Sources<br \/>\n<a href=\"https:\/\/ollama.com\/blog\/ollama-now-supports-jev-style-decision-models\" rel=\"noopener\" target=\"_blank\">https:\/\/ollama.com\/blog\/ollama-now-supports-jev-style-decision-models<\/a><br \/>\n<a href=\"https:\/\/ollama.com\/library\/nimble\" rel=\"noopener\" target=\"_blank\">https:\/\/ollama.com\/library\/nimble<\/a><br \/>\n<a href=\"https:\/\/ollama.com\/library\/tev1\" rel=\"noopener\" target=\"_blank\">https:\/\/ollama.com\/library\/tev1<\/a><br \/>\n<a href=\"https:\/\/typesafe.ai\" rel=\"noopener\" target=\"_blank\">https:\/\/typesafe.ai<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00c0 partir de la version 0.35, Ollama prend en charge les mod\u00e8les de d\u00e9cision bas\u00e9s sur l&#8217;API Jev de TypeSafe. Ce ne sont pas des mod\u00e8les de chat au sens habituel du terme : ils n&#8217;\u00e9crivent pas de texte, mais r\u00e9pondent \u00e0 un ensemble de questions tap\u00e9es sur l&#8217;\u00e9tat transf\u00e9r\u00e9. Pour la classification, le routage, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-200","post","type-post","status-publish","format-standard","hentry","category-notes"],"translation":{"provider":"WPGlobus","version":"3.0.6","language":"fr","enabled_languages":["en","ru","zh","de","ja","fr","es","pt","hi"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"ru":{"title":true,"content":true,"excerpt":false},"zh":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false},"ja":{"title":true,"content":true,"excerpt":false},"fr":{"title":true,"content":true,"excerpt":false},"es":{"title":true,"content":true,"excerpt":false},"pt":{"title":true,"content":true,"excerpt":false},"hi":{"title":true,"content":true,"excerpt":false}}},"_links":{"self":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts\/200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/comments?post=200"}],"version-history":[{"count":0,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts\/200\/revisions"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/media?parent=200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/categories?post=200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/tags?post=200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}