Laut Entropix README verwendet Entropix eine entropiebasierte Sampling-Methode. In diesem Artikel werden die spezifischen Probenahmetechniken basierend auf Entropie und Varentropie erläutert.
Beginnen wir mit der Erläuterung von Entropie und Varentropie, da diese Schlüsselfaktoren bei der Bestimmung der Probenahmestrategie sind.
In der Informationstheorie ist Entropie ein Maß für die Unsicherheit einer Zufallsvariablen. Die Entropie einer Zufallsvariablen X wird durch die folgende Gleichung definiert:
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, 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:
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.
Als nächstes untersuchen wir, wie sich Sampling-Strategien basierend auf Entropie- und Varentropiewerten ändern.
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 entCode-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 ventCode-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
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