„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Entropix: Stichprobentechniken zur Maximierung der Inferenzleistung

Entropix: Stichprobentechniken zur Maximierung der Inferenzleistung

Veröffentlicht am 07.11.2024
Durchsuche:699

Entropix: Stichprobentechniken zur Maximierung der Inferenzleistung

Laut Entropix README verwendet Entropix eine entropiebasierte Sampling-Methode. In diesem Artikel werden die spezifischen Probenahmetechniken basierend auf Entropie und Varentropie erläutert.

Entropie und Varentropie

Beginnen wir mit der Erläuterung von Entropie und Varentropie, da diese Schlüsselfaktoren bei der Bestimmung der Probenahmestrategie sind.

Entropie

In der Informationstheorie ist Entropie ein Maß für die Unsicherheit einer Zufallsvariablen. Die Entropie einer Zufallsvariablen X wird durch die folgende Gleichung definiert:

Entropix: Sampling Techniques for Maximizing Inference Performance

  • X: Eine diskrete Zufallsvariable.
  • x_i: Der i-te mögliche Zustand von X.
  • p(x_i): Die Wahrscheinlichkeit des Zustands x_i.

Die Entropie ist maximiert, wenn die Wahrscheinlichkeitsverteilung gleichmäßig ist. Wenn umgekehrt ein bestimmter Zustand viel wahrscheinlicher ist als andere, nimmt die Entropie ab.

Varentropie

Varentropie, eng verwandt mit der Entropie, repräsentiert die Variabilität im Informationsgehalt. Unter Berücksichtigung des Informationsgehalts I(X), der Entropie H(X) und der Varianz für eine Zufallsvariable X ist Varentropie V E(X) wie folgt definiert:

Entropix: Sampling Techniques for Maximizing Inference Performance

Varentropie wird groß, wenn die Wahrscheinlichkeiten p(x_i) stark variieren. Sie wird klein, wenn die Wahrscheinlichkeiten einheitlich sind – entweder wenn die Verteilung maximale Entropie hat oder wenn ein Wert eine Wahrscheinlichkeit von 1 und alle anderen eine Wahrscheinlichkeit von 0 haben.

Probenahmemethoden

Als nächstes untersuchen wir, wie sich Sampling-Strategien basierend auf Entropie- und Varentropiewerten ändern.

Entropix: Sampling Techniques for Maximizing Inference Performance

1. Niedrige Entropie, niedrige Varentropie → Argmax

In diesem Szenario hat ein bestimmter Token eine viel höhere Vorhersagewahrscheinlichkeit als die anderen. Da das nächste Token fast sicher ist, wird Argmax verwendet.

if ent 



Code-Link

2. Niedrige Entropie, hohe Varentropie → Zweig

Dies geschieht, wenn ein gewisses Maß an Vertrauen besteht, aber mehrere praktikable Optionen vorhanden sind. In diesem Fall wird die Strategie Branch verwendet, um aus mehreren Auswahlmöglichkeiten Stichproben zu ziehen und das beste Ergebnis auszuwählen.

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)

Code-Link

Obwohl diese Strategie „Branch“ genannt wird, scheint der aktuelle Code den Sampling-Bereich anzupassen und einen einzelnen Pfad auszuwählen. (Wenn jemand mehr Einblick hat, wäre ich für weitere Erläuterungen dankbar.)

3. Hohe Entropie, niedrige Varentropie → CoT oder Pause-Token einfügen

Wenn die Vorhersagewahrscheinlichkeiten des nächsten Tokens ziemlich einheitlich sind, was darauf hinweist, dass der nächste Kontext nicht sicher ist, wird ein Klärungstoken eingefügt, um die Mehrdeutigkeit aufzulösen.

elif ent > 3.0 and vent 



Code-Link

4. Hohe Entropie, hohe Varentropie → Neuabtastung

In diesem Fall gibt es mehrere Kontexte und die Vorhersagewahrscheinlichkeiten des nächsten Tokens sind gering. Es wird eine Resampling-Strategie mit einer höheren Temperatureinstellung und einem niedrigeren Top-P verwendet.

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)

Code-Link

Zwischenfälle

Wenn keine der oben genannten Bedingungen erfüllt ist, wird adaptives Sampling durchgeführt. Es werden mehrere Proben entnommen und der beste Stichprobenwert wird basierend auf Entropie-, Varentropie- und Aufmerksamkeitsinformationen berechnet.

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
    )

Code-Link


Referenzen

  • Entropix-Repository
  • Was macht Entropix?
Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/m_sea_bass/entropix-sampling-techniques-for-maximizing-inference-performance-2hgc?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3