Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Метрики Оцінювання для Генеративного ШІ | Побудова та навчання генеративних моделей
Глибокі генеративні моделі з Python

Метрики Оцінювання для Генеративного ШІ

Свайпніть щоб показати меню

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

Оцінювання моделей для зображень (GAN, VAE, Diffusion)

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

Inception Score (IS)

Кількісна оцінка чіткості та різноманітності згенерованих зображень за допомогою впевненості класифікації попередньо натренованої моделі Inception.

IS=exp(Ex[DKL(p(yx)p(y))])\text{IS}=\exp(\mathbb{E}_x[D_{KL}(p(y|x)||p(y))])

де:

  • p(yx)p(y|x) — умовний розподіл міток для зображення xx
  • p(y)p(y) — маргінальний розподіл класів.
from torchmetrics.image.inception import InceptionScore

inception = InceptionScore()
inception.update(imgs)
inception.compute()

Fréchet Inception Distance (FID)

Вимірювання схожості між розподілами справжніх і згенерованих зображень за допомогою ознакних векторів.

FID=μrμg2+Tr(Σr+Σg2(ΣrΣg)1/2)\text{FID}=||\mu_r-\mu_g||^2+\text{Tr}(\Sigma_r + \Sigma_g - 2(\Sigma_r\Sigma_g)^{1/2})

де:

  • μ\mu та Σ\Sigma — середнє значення та коваріація ознакних представлень.
  • Tr()\text{Tr}() означає слід матриці — це сума діагональних елементів. Слід допомагає кількісно оцінити, наскільки відрізняються розподіли ознак за їх розкидом або формою.
from pytorch_fid import fid_score
    
fid = fid_score.calculate_fid_given_paths(["real_images", "generated_images"], batch_size=50, device="cuda", dims=2048)
print("FID:", fid)

LPIPS

Порівняння візуальної схожості між зображеннями за допомогою ознак глибоких нейронних мереж.

import lpips
    
loss_fn = lpips.LPIPS(net='alex')
distance = loss_fn(img1, img2)
print("LPIPS Distance:", distance.item())

Оцінювання текстових моделей (Transformers, GPT, BERT)

Оцінювання моделей генерації мови за якістю, зв'язністю та релевантністю із застосуванням статистичних, семантичних і суб'єктивних метрик.

BLEU / ROUGE / METEOR

Порівняння n-грамної схожості між згенерованим і еталонним текстом.

BLEU=BPexp(n=1Nwnlogpn)\text{BLEU}=\text{BP} \cdot \exp\left(\sum^N_{n=1}w_n\log p_n\right)

де:

  • pnp_n — точність для n-грам
  • BP\text{BP} — штраф за стислість.
from nltk.translate.bleu_score import sentence_bleu
    
reference = [['the', 'cat', 'is', 'on', 'the', 'mat']]
candidate = ['the', 'cat', 'sat', 'on', 'the', 'mat']
    
score = sentence_bleu(reference, candidate)
print("BLEU Score:", score)

BERTScore

Вимірювання семантичної схожості за допомогою контекстуальних ембеддінгів. Використання косинусної схожості між контекстуальними ембеддінгами з агрегуванням precision/recall/F1.

from bert_score import score
    
cands = ["A cat sits on the mat."]
refs = ["The cat is on the mat."]
    
P, R, F1 = score(cands, refs, lang='en')
print(f"BERTScore F1: {F1.mean().item():.4f}")

Відповідність підказці

Вимірювання відповідності вихідних даних вхідним підказкам, особливо в моделях, налаштованих на виконання інструкцій.

Note
Примітка

Ручне порівняння підказок із результатами або використання моделей оцінки схожості, таких як CLIP чи BERT.

Оцінювання мультимодальних моделей (наприклад, DALL·E, Stable Diffusion)

Мультимодальні моделі потребують оцінки відповідності між модальностями, такими як зображення та текст.

CLIPScore

Обчислення схожості між векторними представленнями зображення та текстової підказки.

CLIPScores=cos(fimage, ftext)\text{CLIPScores}=cos(f_{image},\ f_{text})

де ff — це векторні представлення для кожної модальності.

import torch
import clip
from PIL import Image

model, preprocess = clip.load("ViT-B/32")
image = preprocess(Image.open("generated.jpg")).unsqueeze(0)
text = clip.tokenize(["A dog playing in the snow"])

with torch.no_grad():
    image_features = model.encode_image(image)
    text_features = model.encode_text(text)
    similarity = torch.cosine_similarity(image_features, text_features)
print("CLIPScore:", similarity.item())

Відповідність зображення запиту

Оцінка того, наскільки згенеровані зображення відповідають своїм умовним запитам.

Note
Примітка

Використання CLIP або ручної анотації для оцінки візуально-текстової відповідності.

Оцінка людиною

Попри розвиток автоматизованих метрик, оцінка людиною залишається необхідною для суб'єктивних або творчих завдань. Багато результатів генерації, особливо в мистецтві, розповіданні історій чи дизайні, потребують людського судження для визначення їхньої змістовності, оригінальності та привабливості. Такі методи дають тонкі інсайти, які часто не враховують автоматизовані метрики.

A/B тестування та тьюрингоподібні підходи

Запит користувачів щодо вибору кращого або більш реалістичного результату з двох варіантів.

  • Приклад із практики: у пайплайні RLHF для GPT-3 від OpenAI краудворкерам показували декілька завершень моделі та просили ранжувати або обирати найбільш корисний чи реалістичний варіант. Цей зворотний зв'язок безпосередньо впливав на формування моделей винагороди для подальшого донавчання.

Відповідність результату запиту

Суб'єктивна оцінка того, наскільки результат відповідає заданому запиту.

  • Приклад із практики: під час RLHF-навчання для InstructGPT анотатори оцінювали завершення для запиту на кшталт «Напишіть ввічливий лист із відмовою від пропозиції роботи». Оцінки людей визначали, які результати відповідали намірам і стилю користувача.

Шкали оцінювання

Збір оцінок за шкалою (наприклад, 1–5) для реалістичності, зв'язності або креативності.

  • Приклад із практики: під час оцінювання Claude від Anthropic дослідники збирали оцінки у вигляді зірок (1–5) за корисність, чесність і нешкідливість згенерованих відповідей у діалозі, що сприяло досягненню цілей вирівнювання моделі.

Оцінювання за допомогою краудсорсингу

Використання платформ на кшталт MTurk для збору різноманітних думок. Забезпечення узгодженості оцінювачів.

  • Реальний приклад: Google застосовував масштабний краудсорсинг для оцінки якості чат-бота LaMDA за такими критеріями, як осмисленість і конкретність, агрегуючи тисячі оцінок користувачів.
Note
Вивчайте більше

Використання гібриду автоматичних та орієнтованих на людину оцінювань для отримання повнішого уявлення про ефективність генеративної моделі. Людський аналіз допомагає перевірити надійність метрик і виявити приховані випадки збоїв, які не відображаються у числових показниках. Для критичних застосувань поєднання кількох людських оцінювачів і обчислення міжоцінювальної надійності (наприклад, коефіцієнт каппа Коена) може підвищити стійкість результатів.

Підсумок

Ці стратегії оцінювання є незамінними для ітеративної розробки моделей та прийняття рішень щодо їх впровадження. Поєднання об'єктивних метрик із людським зворотним зв'язком допомагає розробникам збалансувати реалістичність, креативність, різноманітність і відповідність намірам користувача або вимогам завдання. Ефективне оцінювання гарантує, що генеративні моделі ШІ працюють не лише технічно добре, а й відповідають реальним сценаріям використання та очікуванням людей.

1. Яка з наступних метрик оцінювання в основному використовується для вимірювання різноманітності згенерованих зображень у генеративних змагальних мережах (GANs)?

2. Яке основне призначення Fréchet Inception Distance (FID) при оцінюванні генеративних моделей?

3. Яка метрика зазвичай використовується для оцінки семантичної схожості між згенерованим текстом і еталонним текстом?

question mark

Яка з наступних метрик оцінювання в основному використовується для вимірювання різноманітності згенерованих зображень у генеративних змагальних мережах (GANs)?

Виберіть правильну відповідь

question mark

Яке основне призначення Fréchet Inception Distance (FID) при оцінюванні генеративних моделей?

Виберіть правильну відповідь

question mark

Яка метрика зазвичай використовується для оцінки семантичної схожості між згенерованим текстом і еталонним текстом?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 3. Розділ 3
some-alt