Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Evalueringsmetrikker for generativ KI | Bygging og Trening av Generative Modeller
Dype Generative Modeller med Python

Evalueringsmetrikker for generativ KI

Sveip for å vise menyen

Evaluering av generative modeller skiller seg fra evaluering av diskriminative modeller, som baserer seg på nøyaktighetsmetrikker. Siden generative modeller kan produsere mange gyldige utdata, må de vurderes ut fra kvalitet, variasjon og relevans. Denne delen introduserer sentrale metrikker som brukes både i forskning og industri for å evaluere generative modeller på perseptuelle, statistiske og menneskesentrerte dimensjoner.

Evaluering for bildebasserte modeller (GANs, VAEs, Diffusion)

Perseptuelle og statistiske evalueringsmetoder brukes ofte på bildegenerative modeller. Disse hjelper med å måle hvor realistiske, varierte og godt fordelt de genererte bildene er sammenlignet med ekte bilder.

Inception Score (IS)

Kvantifiserer både klarhet og variasjon i genererte bilder ved å bruke klassifiseringskonfidensen til en forhåndstrent Inception-modell.

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

hvor:

  • p(yx)p(y|x) er den betingede label-fordelingen for bilde xx
  • p(y)p(y) er den marginale klassefordelingen.
from torchmetrics.image.inception import InceptionScore

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

Fréchet Inception Distance (FID)

Måler likheten mellom distribusjonene til ekte og genererte bilder ved bruk av funksjonsembeddinger.

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})

hvor:

  • μ\mu og Σ\Sigma er gjennomsnitt og kovarians av funksjonsrepresentasjoner.
  • Tr()\text{Tr}() står for sporet til en matrise — det er summen av diagonal-elementene. Sporet hjelper med å kvantifisere hvor forskjellige funksjonsdistribusjonene er når det gjelder spredning eller form.
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

Sammenligner visuell likhet mellom bilder ved bruk av dype nettverksfunksjoner.

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

Evaluering for tekstbaserte modeller (Transformers, GPT, BERT)

Språkgenereringsmodeller evalueres for kvalitet, sammenheng og relevans gjennom statistiske, semantiske og subjektive målemetoder.

BLEU / ROUGE / METEOR

Sammenligner n-gram-overlapp mellom generert og referansetekst.

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

hvor:

  • pnp_n er presisjon for n-gram
  • BP\text{BP} er korthetsstraff.
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

Måler semantisk likhet ved bruk av kontekstuelle innebygginger. Benytter cosinuslikhet mellom kontekstuelle innebygginger, med presisjon/tilbakekalling/F1-aggregater.

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}")

Prompt-trofasthet

Måler hvor godt utdata følger inngangs-promptene, spesielt i instruksjonstilpassede modeller.

Note
Merk

Manuell sammenligning av prompt og utdata eller bruk av likhetsscoringsmodeller som CLIP eller BERT.

Evaluering for multimodale modeller (f.eks. DALL·E, Stable Diffusion)

Multimodale modeller må evalueres for samsvar mellom modaliteter, som bilde og tekst.

CLIPScore

Beregner likhet mellom bilde-embeddinger og tekst-prompt-embeddinger.

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

hvor ff er modalitetsspesifikke embeddinger.

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())

Trofasthet fra prompt til bilde

Måler hvor godt genererte bilder samsvarer med sine tilhørende prompt.

Note
Merk

Bruk CLIP eller manuell annotering for å vurdere visuell-tekstuell samsvar.

Menneskelig evaluering

Til tross for fremskritt innen automatiserte målemetoder, er menneskelig evaluering fortsatt essensiell for subjektive eller kreative oppgaver. Mange generative resultater, spesielt innen kunst, historiefortelling eller design, krever menneskelig vurdering for å bedømme meningsfullhet, originalitet og appell. Disse metodene gir nyanserte innsikter som automatiserte målemetoder ofte overser.

A/B-testing og Turing-lignende oppsett

Be brukere velge foretrukket eller mest realistisk utseende utdata fra to alternativer.

  • Eksempel fra virkeligheten: I OpenAIs GPT-3 RLHF-prosess ble crowdworkere vist flere modellfullføringer og bedt om å rangere eller velge den mest hjelpsomme eller realistiske. Denne tilbakemeldingen formet direkte belønningsmodellene for videre finjustering.

Samsvar mellom prompt og utdata

Subjektiv vurdering av hvor godt utdataene reflekterer den gitte prompten.

  • Eksempel fra virkeligheten: Under RLHF-trening for InstructGPT vurderte annotatorer fullføringer for en prompt som "Skriv en høflig e-post for å avslå et jobbtilbud." Menneskelige vurderinger avgjorde hvilke utdata som samsvarte med brukerens hensikt og stil.

Vurderingsskalaer

Innhent vurderinger på skalaer (f.eks. 1–5) for realisme, sammenheng eller kreativitet.

  • Eksempel fra virkeligheten: I Anthropic sine Claude-evalueringer samlet forskere inn vurderinger fra 1 til 5 stjerner på hjelpsomhet, ærlighet og ufarlighet for genererte dialoger, noe som støttet mål om modelljustering.

Evaluering med folkekilder

Bruk plattformer som MTurk for å samle inn ulike meninger. Sikre enighet blant vurderere.

  • Virkelig eksempel: Google brukte storskala folkekilder for å vurdere kvaliteten på LaMDA-chatboten på dimensjoner som fornuftighet og spesifisitet ved å samle tusenvis av brukerbedømmelser.
Note
Studer mer

Bruk en hybrid av automatiske og menneskesentrerte evalueringer for å få en mer helhetlig forståelse av ytelsen til generative modeller. Menneskelig innsikt bidrar til å validere påliteligheten til målemetoder og identifisere subtile feiltilfeller som ikke fanges opp av tall. For kritiske applikasjoner kan det å kombinere flere menneskelige vurderere og beregne interrater-reliabilitet (f.eks. Cohens kappa) forbedre robustheten.

Sammendrag

Disse evalueringsstrategiene er uunnværlige for iterasjon i modellutvikling og for å veilede beslutninger om utrulling. Å kombinere objektive målemetoder med tilbakemeldinger fra mennesker hjelper utviklere å balansere realisme, kreativitet, mangfold og samsvar med brukerens hensikt eller krav til oppgaven. Effektiv evaluering sikrer at generative AI-modeller ikke bare presterer teknisk godt, men også er tilpasset virkelige bruksområder og menneskelige forventninger.

1. Hvilket av følgende evalueringsmål brukes primært for å måle mangfoldet i genererte bilder i Generative Adversarial Networks (GANs)?

2. Hva er hovedformålet med Fréchet Inception Distance (FID) ved evaluering av generative modeller?

3. Hvilken metrikk brukes ofte til å evaluere den semantiske likheten mellom generert tekst og referansetekst?

question mark

Hvilket av følgende evalueringsmål brukes primært for å måle mangfoldet i genererte bilder i Generative Adversarial Networks (GANs)?

Velg det helt riktige svaret

question mark

Hva er hovedformålet med Fréchet Inception Distance (FID) ved evaluering av generative modeller?

Velg det helt riktige svaret

question mark

Hvilken metrikk brukes ofte til å evaluere den semantiske likheten mellom generert tekst og referansetekst?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 3. Kapittel 3
some-alt