Temperaturmessung

Kürzlich bin ich im ODS- Chat auf eine Frage gestoßen : Warum p'=softmax(log(p)/t) Algorithmus Buchstabe für Buchstabe einen Buchstaben nicht aus p (dem vom Sprachmodell vorhergesagten Wahrscheinlichkeitsvektor des nächsten Buchstabens) ab, sondern aus p'=softmax(log(p)/t) ( Wo ist ein anderer seltsamer positiver Skalar?


Eine schnelle und unverständliche Antwort: t ist die "Temperatur" und ermöglicht es Ihnen, die Vielfalt der generierten Texte zu steuern. Und um einer langen und detaillierten Antwort willen wurde dieser Beitrag tatsächlich geschrieben.


Ein bisschen Mathe


softmax(x)=exp(x)/sum(exp(x)) daran erinnern, dass softmax(x)=exp(x)/sum(exp(x)) (exp, log und die Teilung der Vektoren ist komponentenweise). Es stellt sich heraus, dass wenn t=1 , der Logarithmus und der Exponent sich gegenseitig vernichten und wir p'=p . Das heißt, bei einer Einheitstemperatur ändert diese Transformation nichts.


Was passiert, wenn Sie die Temperatur sehr hoch machen? Softmax erhält (fast) Nullen, und am Ausgang erhalten wir (fast) die gleichen Zahlen, etwa 1/n , wobei n die Dimension p (die Anzahl der Buchstaben im Alphabet) ist. Das heißt, bei sehr hohen Temperaturen hämmern wir auf das, was das Sprachmodell vorhergesagt hat, und eine Stichprobe aller Buchstaben ist gleich wahrscheinlich.


Und wenn wir die Temperatur nahe Null setzen, ist jede Komponente p' ein sehr großer Exponent geteilt durch die Summe der sehr großen Exponenten. In der Grenze wird dieser Buchstabe, der dem größten Wert von p , alle anderen dominieren, und p' wird für ihn zur Einheit und für alle anderen Buchstaben zur Null tendieren. Das heißt, bei sehr niedrigen Temperaturen wählen wir immer den wahrscheinlichsten Buchstaben (auch wenn seine absolute Wahrscheinlichkeit nicht so hoch ist - sagen wir nur 5%).


Hauptschlussfolgerung


Das heißt, die Temperaturabtastung ist eine allgemeine Ansicht verschiedener Arten der Probenahme, wobei Modellvorhersagen in unterschiedlichem Maße berücksichtigt werden. Dies ist notwendig, um zwischen Modellvertrauen und Vielfalt zu manövrieren. Sie können die Temperatur erhöhen, um vielfältigere Texte zu generieren, oder sie senken, um Texte zu generieren, bei denen das Modell im Durchschnitt sicherer ist. Und das alles gilt natürlich nicht nur für die Generierung von Texten, sondern generell für alle Wahrscheinlichkeitsmodelle.


Das obige Bild zeigt Beispiele für Probenahmen bei verschiedenen Temperaturen aus dem GPT-2-Modell auf dieser wunderbaren Seite, die von der Hugging Face-Gruppe unterstützt wird. GPT-2 generiert Texte nicht aus Buchstaben oder Wörtern, sondern aus BPE-Token (speziell ausgewählte Buchstabenfolgen), aber das Wesentliche ändert sich nicht wirklich.


Ein bisschen Physik


Und was hat die Temperatur damit zu tun? Die Antwort bezieht sich auf die in der Thermodynamik verwendete Boltzmann-Verteilung . Diese Verteilung beschreibt die Wahrscheinlichkeit der Zustände, in denen sich das System befindet (z. B. mehrere in einer Flasche eingeschlossene Gasmoleküle), abhängig von der Temperatur des Systems und der Höhe der diesen Zuständen entsprechenden potentiellen Energie. Beim Übergang von einem Hochenergiezustand in einen Niedrigenergiezustand wird es freigesetzt (in Wärme umgewandelt), im Gegenteil, es wird verbraucht. Daher wird das System häufiger in energiearmen Zuständen enden (es ist einfacher, in diese zu gelangen, schwieriger zu verlassen). und unmöglich zu vergessen ), aber je höher die Temperatur, desto häufiger springt das System auch noch in hochenergetische Zustände. Tatsächlich beschrieb Boltzmann diese Regelmäßigkeiten durch die Formel und erhielt genau das gleiche p=softmax(-energy/t) .


Ich habe bereits in meinem Aufsatz über Entropie ( 1 , 2 , 3 ) geschrieben, aber nicht wirklich erklärt, wie statistische Entropie mit dem Konzept der Entropie in der Physik zusammenhängt. Tatsächlich scheinen sie durch die Boltzmann-Verteilung miteinander verbunden zu sein. Aber hier schicke ich Sie besser zum Lesen von Physikarbeiten, und ich selbst werde mit NLP weiter gehen. Geringe Verwirrung!


PS Dieser Text wurde bei einer Temperatur von ca. 38 ° geschrieben. Seien Sie also nicht überrascht, wenn er etwas zufälliger ist, als Sie erwarten würden ¯\_(ツ)_/¯

Source: https://habr.com/ru/post/de467189/


All Articles