"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Entropix : techniques d'échantillonnage pour maximiser les performances d'inférence

Entropix : techniques d'échantillonnage pour maximiser les performances d'inférence

Publié le 2024-11-07
Parcourir:403

Entropix : techniques d'échantillonnage pour maximiser les performances d'inférence

Selon le fichier README d'Entropix, Entropix utilise une méthode d'échantillonnage basée sur l'entropie. Cet article explique les techniques d'échantillonnage spécifiques basées sur l'entropie et la varentropie.

Entropie et Varentropie

Commençons par expliquer l'entropie et la varentropie, car ce sont des facteurs clés pour déterminer la stratégie d'échantillonnage.

Entropie

En théorie de l'information, l'entropie est une mesure de l'incertitude d'une variable aléatoire. L'entropie d'une variable aléatoire X est définie par l'équation suivante :

Entropix: Sampling Techniques for Maximizing Inference Performance

  • X : une variable aléatoire discrète.
  • x_i : Le i-ème état possible de X.
  • p(x_i) : la probabilité de l'état x_i.

L'entropie est maximisée lorsque la distribution de probabilité est uniforme. À l’inverse, lorsqu’un état spécifique est beaucoup plus probable que d’autres, l’entropie diminue.

Varentropie

La varentropie, étroitement liée à l'entropie, représente la variabilité du contenu de l'information. Compte tenu du contenu informationnel I(X), de l'entropie H(X) et de la variance pour une variable aléatoire X, la varentropie V E(X) est définie comme suit :

Entropix: Sampling Techniques for Maximizing Inference Performance

La varentropie devient grande lorsque les probabilités p(x_i) varient considérablement. Il devient petit lorsque les probabilités sont uniformes, soit lorsque la distribution a une entropie maximale, soit lorsqu'une valeur a une probabilité de 1 et que toutes les autres ont une probabilité de 0.

Méthodes d'échantillonnage

Ensuite, explorons comment les stratégies d'échantillonnage changent en fonction des valeurs d'entropie et de varentropie.

Entropix: Sampling Techniques for Maximizing Inference Performance

1. Faible entropie, faible varentropie → Argmax

Dans ce scénario, un jeton particulier a une probabilité de prédiction beaucoup plus élevée que les autres. Puisque le prochain jeton est presque certain, Argmax est utilisé.

if ent 



Lien de code

2. Faible entropie, varentropie élevée → Branche

Cela se produit lorsqu'il existe une certaine confiance, mais que plusieurs options viables existent. Dans ce cas, la stratégie Branche est utilisée pour échantillonner parmi plusieurs choix et sélectionner le meilleur résultat.

elif ent  5.0:
    temp_adj = 1.2   0.3 * interaction_strength
    top_k_adj = max(5, int(top_k * (1   0.5 * (1 - agreement))))
    return _sample(logits, temperature=min(1.5, temperature * temp_adj), top_p=top_p, top_k=top_k_adj, min_p=min_p, generator=generator)

Lien de code

Bien que cette stratégie soit appelée « Branche », le code actuel semble ajuster la plage d'échantillonnage et sélectionner un seul chemin. (Si quelqu'un a plus d'informations, des éclaircissements supplémentaires seraient appréciés.)

3. Entropie élevée, varentropie faible → CoT ou insérer un jeton de pause

Lorsque les probabilités de prédiction du jeton suivant sont assez uniformes, indiquant que le contexte suivant n'est pas certain, un jeton de clarification est inséré pour résoudre l'ambiguïté.

elif ent > 3.0 and vent 



Lien de code

4. Haute entropie, haute varentropie → Rééchantillonner

Dans ce cas, il existe plusieurs contextes et les probabilités de prédiction du prochain jeton sont faibles. Une stratégie de rééchantillonnage est utilisée avec un réglage de température plus élevé et un top-p plus bas.

elif ent > 5.0 and vent > 5.0:
    temp_adj = 2.0   0.5 * attn_vent
    top_p_adj = max(0.5, top_p - 0.2 * attn_ent)
    return _sample(logits, temperature=max(2.0, temperature * temp_adj), top_p=top_p_adj, top_k=top_k, min_p=min_p, generator=generator)

Lien de code

Cas intermédiaires

Si aucune des conditions ci-dessus n'est remplie, un échantillonnage adaptatif est effectué. Plusieurs échantillons sont prélevés et le meilleur score d'échantillonnage est calculé en fonction des informations d'entropie, de varentropie et d'attention.

else:
    return adaptive_sample(
        logits,
        metrics,
        gen_tokens,
        n_samples=5,
        base_temp=temperature,
        base_top_p=top_p,
        base_top_k=top_k,
        generator=generator
    )

Lien de code


Références

  • Référentiel Entropix
  • Que fait Entropix ?
Déclaration de sortie Cet article est reproduit sur : https://dev.to/m_sea_bass/entropix-sampling-techniques-for-maximizing-inference-performance-2hgc?1 En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3