لقد صادفت مؤخرًا سؤالًا في دردشة ODS : لماذا تقوم خوارزمية إنشاء النص بالحرف p'=softmax(log(p)/t)
خطاب ليس من p
(متجه احتمالية الحرف التالي الذي تنبأ به نموذج اللغة ) ، ولكن من p'=softmax(log(p)/t)
( أين t
هو عدد غريب إيجابي آخر)؟
إجابة سريعة وغير مفهومة: t
هي "درجة الحرارة" ، وتتيح لك التحكم في مجموعة متنوعة من النصوص التي تم إنشاؤها. من أجل إجابة طويلة ومفصلة ، في الواقع ، تم كتابة هذا المنشور.

قليلا من الرياضيات
أولاً ، softmax(x)=exp(x)/sum(exp(x))
أن softmax(x)=exp(x)/sum(exp(x))
بأن softmax(x)=exp(x)/sum(exp(x))
(exp ، log ، وتقسيم المتجهات يكون مكونًا). اتضح أنه إذا كانت t=1
، فسيتم إبطال اللوغاريثم والأس ، ونحصل على p'=p
. وهذا هو ، مع درجة حرارة وحدة ، هذا التحول لا يغير شيئا.
ماذا يحدث إذا قمت بارتفاع درجة الحرارة؟ يحصل Softmax على أصفار (تقريبًا) ، وفي الإخراج نحصل (تقريبًا) على نفس الأرقام ، حوالي 1/n
، حيث n
هي البعد p
(عدد الحروف في الأبجدية). وهذا هو ، في درجات حرارة مرتفعة للغاية ، نطرق إلى ما تنبأ به نموذج اللغة ، وعينة من جميع الحروف محتملة بنفس القدر.
وإذا قمنا بضبط درجة الحرارة بالقرب من الصفر ، فسيكون كل مكون p'
عبارة عن أصل كبير للغاية مقسومًا على مجموع الأسس الكبيرة جدًا. في الحد الأقصى ، ستهيمن تلك الرسالة ، التي تتوافق مع أكبر قيمة لـ p
، على جميع الحروف الأخرى ، وسوف تميل p'
إلى الوحدة من أجلها وإلى الصفر بالنسبة لجميع الأحرف الأخرى. وهذا هو ، في درجات حرارة منخفضة للغاية ، نختار دائمًا الحرف الأكثر احتمالًا (حتى لو كان احتماله المطلق ليس مرتفعًا جدًا - قل ، 5٪ فقط).
الاستنتاج الرئيسي
وهذا هو ، أخذ العينات درجة الحرارة هو عرض عام لأنواع مختلفة من أخذ العينات ، مع الأخذ في الاعتبار تنبؤات النموذج بدرجات متفاوتة. هذا ضروري للمناورة بين نموذج الثقة والتنوع. يمكنك رفع درجة الحرارة لإنشاء نصوص أكثر تنوعًا ، أو خفضها لإنشاء نصوص يكون فيها النموذج أكثر ثقة في المتوسط. وبالطبع ، هذا كله لا ينطبق فقط على توليد النصوص ، ولكن بشكل عام على أي نماذج احتمالية.
توضح الصورة أعلاه أمثلة لأخذ العينات في درجات حرارة مختلفة من نموذج GPT-2 ، من خلال هذه الصفحة الرائعة المدعومة من مجموعة Hugging Face. ينشئ GPT-2 نصوصًا ليس بأحرف أو كلمات ، ولكن بواسطة رموز BPE (تسلسلات مختارة خصيصًا من الحروف) ، لكن جوهر هذا لا يتغير حقًا.
قليلا من الفيزياء
وما علاقة درجة الحرارة به ، قد تسأل. الجواب هو إشارة إلى توزيع بولتزمان المستخدمة في الديناميكا الحرارية. يصف هذا التوزيع احتمال الحالات التي يقع فيها النظام (على سبيل المثال ، العديد من جزيئات الغاز محبوس في زجاجة) ، وهذا يتوقف على درجة حرارة النظام ومستوى الطاقة المحتملة المقابلة لهذه الحالات. عند الانتقال من حالة الطاقة العالية إلى حالة الطاقة المنخفضة ، يتم إطلاقها (يتم تحويلها إلى حرارة) ، ولكن على العكس ، يتم إنفاقها. لذلك ، سينتهي النظام في كثير من الأحيان في حالات منخفضة الطاقة (من السهل الدخول إليها ، ومن الصعب الخروج منها ، ومن المستحيل نسيانه ) ، ولكن كلما ارتفعت درجة الحرارة ، زاد تواجد النظام في حالات الطاقة العالية أيضًا. بولتزمان ، في الواقع ، وصف هذه الانتظامات بالصيغة ، وحصلت على نفس درجة p=softmax(-energy/t)
.
لقد كتبت بالفعل في مقالي عن الانتروبيا ( 1 ، 2 ، 3 ) ، لكن لم أشرح حقيقة كيف يرتبط الانتروبيا الإحصائية بمفهوم الانتروبيا في الفيزياء. ولكن في الواقع ، من خلال توزيع بولتزمان ، يبدو أنها مرتبطة. لكنني أفضل حالاً أن أرسل إليك لقراءة أعمال الفيزياء ، وأنا سأذهب إلى أبعد من ذلك مع البرمجة اللغوية العصبية. منخفض لك الحيرة!
ملاحظة: تمت كتابة هذا النص عند درجة حرارة حوالي 38 درجة ، لذا لا تفاجأ إذا كان عشوائيًا أكثر قليلاً مما كنت تتوقع ¯\_(ツ)_/¯