Mon assistant IA personnel à ma sauce

J’ai installé un petit modèle de langage[1] Gemma4 sur mon petit PC et comme je le disais à la fin de mon précédent billet, il est possible de lui donner une “personnalité”.

Pour cela, une fois le serveur ollama lancé avec la commande adéquat :

ollama serve

Note

[1] SLM - Small Langage Model

Une fois le modèle de langage choisi installé :

ollama list
NAME                      ID              SIZE      MODIFIED 
gemma4:e2b                dc42e8dxx606    3.5 GB    3 hours ago 

Il reste à lui décrire sa personnalité. J’ai choisit de l’appeler Otto et d’en faire un journaliste en nouvelles technologies. Le tout en utilisant une méthode et une langue tout ce qu’il y a de plus naturelle (ou presque).

Pour cela, il suffit de modifier le fichier “Modelfile” contenu dans le dossier caché ollama. Je préconise d’en faire une copie afin de pouvoir jongler entre plusieurs personnalités si besoin

cd .ollama 
cp Modelfile Modelfile_Otto 
vim Modelfile_Otto 
# Choisir le modèle de base (il doit être installé sur votre machine) 
FROM gemma4:e2b 
 
# Paramètres optimisés pour la logique, la précision et la concision 
 
# Réponses ultra-factuelles, pas de place au hasard 
PARAMETER temperature 0.2 
# Élimine les mots superflus ou ambigus 
PARAMETER top_k 20 
# Restreint le choix aux structures de phrases les plus logiques 
PARAMETER top_p 0.7 
# Une légère pénalité suffit (le jargon technique doit pouvoir se répéter)
PARAMETER repeat_penalty 1.05 
# Contexte large pour analyser des fichiers de documentation 
PARAMETER num_ctx 16384 
 
# (Optionnel) Vous pouvez aussi lui donner un rôle / prompt système 
SYSTEM " <|think|> Tu t'appelle Otto, tu es journaliste francophone spécialisé dans 
les nouvelles technologies. Tu as environ 45 ans et tu vis à Lyon 
 en France. Tu roule en voiture électrique. Tu écris des articles clairs, 
concis et sans jargon inutiles. Si une information manque ou est ambiguë, 
demande des précisions et n'essaie pas de deviner." 

Il est possible de lui apporter quelques ajustements comme :

  • la température ou curseur de créativité ce qui ajuste le degré de prévisibilité ou de folie de l’IA. Elle varie généralement entre 0 et 2. (du plus stricte, proche de 0 au plus libre, autour de 1 jusqu’à un niveau complètement fou, proche de 2)
  • le top_k nombre maximal de mots autorisés, réglé sur 40, l’IA regardera uniquement les 40 mots les plus probables pour la suite de la phrase, et jettera tous les autres.
  • le top_p (ou Nucleus Sampling) filtre de pertinence ; il définit un seuil de probabilité (entre 0 et 1) pour éliminer les mots hors sujet (plus il est bas et plus le vocabulaire sera sélectionné, restreint et sûr.
  • la pénalité de répétition (repetition_penalty ou frequency_penalty) (entre 1.0 et 2.0) pour éviter les répétitions ; plus la valeur est élevée plus l’IA doit varier et enrichir son vocabulaire.
  • le num_ctx définit la taille de la fenêtre de contexte (le “context window”) allouée au modèle, fixée ici à 16384 tokens, ce qui correspond à la quantité totale d’informations que l’IA peut “garder en mémoire” en une seule fois.

Et il en existe quelques autres …

Comment les combiner ?

Objectif du modèle              Température	Top-P / Top-K
Générer du code sans bug	Basse (0.1)	Bas (0.3 / 20)
Discuter normalement (Chat)	Moyenne (0.7)	Standard (0.9 / 40)
Écrire un roman ou un poème	Haute (1.1)	Élevé (0.95 / 80)

Ce fichier servira de base pour créer le nouveau modèle personnalisé

Une fois sa personnalité définit, il faut l’intégrer au modèle de langage utilisé. Ce qui sera fait dans le prochain billet.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet