Aller au contenu principal

Temperature

La temperature est un parametre qui controle le degre de creativite ou de determinisme des reponses de Claude. Bien la maitriser peut transformer la qualite de vos applications IA.

Comment Claude genere du texte

Quand vous envoyez un prompt a Claude, le processus se deroule en trois phases :

  1. Tokenisation : decoupe de votre texte en unites elementaires (tokens)
  2. Prediction : calcul des probabilites pour chaque token suivant possible
  3. Echantillonnage : selection d’un token selon ces probabilites

Par exemple, apres “Que pensez-vous”, le mot “de” pourrait avoir 30% de chances, “du” 20%, etc. Ce processus se repete pour chaque token jusqu’a la fin de la reponse.

Ce que fait la temperature

La temperature est une valeur decimale entre 0 et 1 qui influence directement les probabilites de selection des tokens :

  • Temperature basse (proche de 0) : le token le plus probable est presque toujours selectionne
  • Temperature haute (proche de 1) : la probabilite est repartie plus uniformement entre tous les tokens possibles

A temperature 0, Claude devient deterministe : il choisit toujours le token le plus probable. A temperature 1, les tokens moins probables ont beaucoup plus de chances d’etre selectionnes, ce qui produit des reponses plus creatives et variees.

Plages et cas d’usage

PlageCas d’usage
0.0 - 0.3 (basse)Reponses factuelles, assistance au code, extraction de donnees, moderation de contenu
0.4 - 0.7 (moyenne)Resume, contenu educatif, resolution de problemes, ecriture creative avec contraintes
0.8 - 1.0 (haute)Brainstorming, ecriture creative libre, contenu marketing, generation d’humour

Configurer la temperature dans le code

Par defaut, la temperature de Claude est a 1.0 (creativite maximale). Vous pouvez la modifier via la configuration d’inference :

def chat(messages, system=None, temperature=1.0):
    params = {
        "modelId": model_id,
        "messages": messages,
        "inferenceConfig": {"temperature": temperature}
    }

    if system:
        params["system"] = [{"text": system}]

    response = client.converse(**params)
    return response["output"]["message"]["content"][0]["text"]

Exemple concret

Avec un prompt de generation d’idees de films :

  • Temperature 1.0 : “Une maitre origamiste solitaire decouvre que ses creations en papier prennent vie la nuit, l’entrainant dans un voyage magique pour sauver leur monde miniature d’une creature d’ombre mysterieuse.”

  • Temperature 0.0 : “Un archeologue voyageur temporel doit empecher des artefacts antiques d’etre voles par un milliardaire de la tech qui les utilise pour construire une arme fatale.” (Cette reponse sera quasi-identique a chaque execution.)

Utilisez des temperatures basses pour la precision et la coherence, des temperatures hautes pour la creativite et la variete.