Announcing our new Paper: The Prompt Report, with Co-authors from OpenAI & Microsoft!

Check it out →
⚖️ НадійністьКалібрування ВММ

Калібрування ВММ

Востаннє оновлено Сандер Шульхофф August 7, 2024 року

Можна протидіяти деяким упередженням ВММ, якщо відкалібрувати вихідні розподіли1.

Що саме означає відкалібрувати вихідний розподіл?

Розглянемо короткий приклад: припустимо, у нас є s аналіз тональності тексту із двома можливими мітками: Positive і Negative. Уявіть, що відбувається, коли ВММ отримує запит Input: nothing Sentiment: (Введення: нічого Тональність). Це введення не містить жодного контексту, який ВММ може використовувати, щоб передбачити тональність, тому його називають контекстно-вільним введенням.

Оскільки nothing (нічого) є ні позитивним, ні негативним поняттям, ми очікуємо, що ВММ виведе ймовірність приблизно 0,5 для Positive і Negative. Однак часто (і для цього прикладу) це не так.

p("Positive" | "Input: nothing Sentiment:") = 0.9

p("Negative" | "Input: nothing Sentiment:") = 0.1

Враховуючи ці ймовірності міток для контекстно-вільних вхідних даних, ми знаємо, що розподіл вихідних даних ВММ, ймовірно, упереджений до мітки Positive. Це може призвести до того, що ВММ віддасть перевагу Positive для всіх вхідних даних, навіть якщо вхідні дані насправді не є позитивними.

Якщо ми можемо якимось чином відкалібрувати вихідний розподіл так, щоб безконтекстні введення отримали ймовірність 0,5 як для Positive, так і для Negative, тоді ми часто можемо усунути упередження до Positive і ВММ буде більш надійною як для безконтекстних введень, так і для введень із контекстом.

Нетехнічне рішення

Нетехнічне розв'язання цієї проблеми полягає в тому, щоб просто надати кілька типових прикладів, де безконтекстним зразкам фактично призначається ймовірність 0,5 як для Positive, так і для Negative.

Наприклад, ми могли б навести кілька типових прикладів, які показують, що кожен безконтекстний екземпляр класифікується як Positive і Negative:

Input: Я ненавиджу цей фільм. Sentiment: Negative
Input: Мені подобається цей фільм. Sentiment: Positive
Input: N/A Sentiment: Positive
Input: N/A Sentiment: Negative
Input: nothing Sentiment: Positive
Input: nothing Sentiment: Negative
Input: Мені подобаються яйця. Sentiment:

Наскільки мені відомо, в науковій літературі не має досліджень на тему цього рішення, і я не впевнений, наскільки добре воно працює на практиці. Однак це просте рішення, яке демонструє, чого ми намагаємось досягти калібруванням.

Технічне рішення

Іншим вирішенням цього є контекстне калібрування1, де ми налаштовуємо спеціальні параметри калібрування, які гарантують, що безконтекстним введенням, таким як Input: nothing Sentiment: (введення: нічого Тональність) призначається ймовірність приблизно 0,5 для обох міток. Зауважте, що на практиці цей метод виконує калібрування за кількома різними безконтекстними введеннями (наприклад, Input: N/A Sentiment:, Input: [MASK] Sentiment:). Він усереднює параметри калібрування, які найкраще працюють для кожного контекстно-вільного введення, щоб знайти найкращі параметри калібрування для ВММ.

Наприклад

Розгляньмо приклад обчислення параметрів калібрування для одного безконтекстного введення. Зауважте, що цей приклад не можна відтворити за допомогою GPT-3 через те, що його не можна обмежити мітками Positive і Negative.

Знову розглянемо наведений вище приклад, де ВММ призначає такі ймовірності міткам для безконтекстних введень:

p("Positive" | "Input: nothing Sentiment:") = 0.9

p("Negative" | "Input: nothing Sentiment:") = 0.1

Ми хочемо знайти такий розподіл ймовірностей q, щоб

q("Positive" | "Input: nothing Sentiment:") = 0.5

q("Negative" | "Input: nothing Sentiment:") = 0.5

Ми зробимо це, створивши лінійне перетворення, яке коригує (калібрує) ймовірності pp.

q^=Softmax(Wp^+b)\hat q = \text{Softmax}(W\hat p + b)

Це рівняння бере вихідні ймовірності p^\hat p й застосовує ваги WW й упередження bb до них. Ваги WW та упередження bb є параметрами калібрування, які, при застосуванні до ймовірності безконтекстного прикладу дадуть p^\hat p = [0,5, 0,5].

Обчислення W і b

Нам потрібно якось обчислити ваги WW та упередження bb. Один зі способів зробити це:

W=diag(p^)1W = \text{diag}(\hat p)^{-1}

b=0b = 0

Хоча спочатку визначення WW може здатися трохи дивним, але воно просто бере обернене кожне значення в p^\hat p, щоб знайти WW , який перетворить вихідні ймовірності p^\hat p у калібровані ймовірності [0,5, 0,5].

Перевірмо, що це працює для прикладу вище:

p^=[0,9,0,1]\hat p = [0,9, 0,1]

W=diag(p^)1=diag([0,9,0,1])1=[0,900]1=[1,110010]W = \text{diag}(\hat p)^{-1} = \text{diag}([0,9, 0,1])^{-1} = \begin{bmatrix} 0,9 & 0 \\ 0 & \end{bmatrix}^{-1} = \begin{bmatrix} 1,11 & 0 \\ 0 & 10 \end{bmatrix}

q^=Softmax(Wp^+b)=Softmax([1.110010][0,9,0,1]+0)=Softmax([1,1])=[0,5,0,5]\hat q = \text{Softmax}(W\hat p + b) = \text{Softmax}(\begin{bmatrix} 1.11 & 0 \\ 0 & 10 \end{bmatrix}*{[0,9, 0,1]} + 0) = \text{Softmax}([1, 1]) =[0,5, 0,5]

Як згадувалося вище, ми виконували цей процес для кількох різних безконтекстних введень і отримали середні значення параметрів калібрування, які найкраще працюють для кожного контекстно-вільного введення, щоб знайти найкращі параметри калібрування для ВММ. Це означає, що остаточні параметри калібрування, ймовірно, не будуть показувати будь-які безконтекстні введення точно [0,5, 0,5].

Інший метод

bb також можна встановити на p^-\hat p, та WW — на ідентифікаційну матрицю. Цей метод виконує кращі завдання генерації, ніж класифікації1.

Висновки

ВММ часто схильні (упереджені) до певних ярликів. Калібрування може бути використане для протидії цьому упередженню.

Footnotes

  1. Zhao, T. Z., Wallace, E., Feng, S., Klein, D., & Singh, S. (2021). Calibrate Before Use: Improving Few-Shot Performance of Language Models. 2 3

Word count: 0

Get AI Certified by Learn Prompting


Copyright © 2024 Learn Prompting.