چیت‌شیت

ارزیابی مدل‌های زایشی

Evaluating Generative Models

‏FID، امتیاز CLIP، ‏CMMD، ‏Elo، ‏WER، ‏MOS، ‏SECS، ‏EER و FAD. کد، اندازه‌ی نمونه‌ها و نحوه‌ی خطای هر معیار.

  • ۱۳ بخش
  • ۳ درس مرتبط
  • کد و دستورها عیناً از دوره‌ی اصلی
فهرست مطالب
  1. ‏FID و امتیاز CLIP
  2. گزارش ارزیابی محیط عملیاتی
  3. فرمول‌ها
  4. معیارهای تصویر در قالب کد
  5. معیارهای صوتی در قالب کد
  6. توابع معیار
  7. مقایسه‌ی معیارهای تصویر در کنار هم
  8. هزینه‌ی نمونه‌برداری مدل‌های یکپارچه
  9. ارقام صوتی برای دستیابی و رکوردزنی
  10. پیش‌فرض‌ها
  11. عیب‌یابی
  12. قوانین
  13. پرسش‌ها

‏FID و امتیاز CLIP

معماری
دو جامعه‌ی آماریفاصله‌ی Fréchetمیانگین روی 30 هزار نمونهتصاویر واقعیمجموعه‌ی نگه‌داشته‌شدهتصاویر تولیدشده10 هزار یا بیشترInception-v3ویژگی‌های 2048 بُعدیبرازش گوسیمیانگین و کوواریانسFIDکمتر بهتر استپرامپتانکودرهای CLIPتصویر و متنکسینوسیبه ازای هر تصویرامتیاز CLIPبیشتر بهتر است

گزارش ارزیابی محیط عملیاتی

گام‌به‌گام
  1. کیفیت نمونهFID روی 10 تا 30 هزار نمونه در برابر مجموعه‌ی واقعی نگه‌داشته‌شده.
  2. انطباقامتیاز CLIP یا CMMD روی همان نمونه‌ها در برابر پرامپت‌هایشان.
  3. ترجیحنرخ برد در یک آرنای کور در برابر مدل قبلی.
  4. ممیزی خطاهانشانه‌گذاری 50 خروجی تصادفی از نظر دست‌ها، متن و تعداد اشیاء.
  5. سیدهااجرای حداقل 3 سید تصادفی. گزارش انحراف معیار.
  6. به ازای هر PRمحاسبه‌ی FID و امتیاز CLIP روی زیرمجموعه‌ی 500 نمونه‌ای، حدود 30 دقیقه.
  7. شبانهاجرای کامل FID ده‌هزار نمونه، HPSv2 و Elo.

فرمول‌ها

مفهوم‌ها
FID
$\lVert \mu_r - \mu_g \rVert^2 + \mathrm{Tr}(\Sigma_r + \Sigma_g - 2 (\Sigma_r \Sigma_g)^{0.5})$
امتیاز CLIP
شباهت کسینوسی میان CLIP_image(x_gen) و CLIP_text(prompt).
امید ریاضی Elo
$E_a = 1 / (1 + 10^{(r_b - r_a)/400})$
به‌روزرسانی Elo
$r_a \leftarrow r_a + k (s_a - E_a)$. رتبه‌ی B به همان میزان در جهت مخالف تغییر می‌کند.
WER
$(S + D + I) / N$ پس از نرمال‌سازی. CER از نویسه‌ها استفاده می‌کند.
DER
(FA + Miss + Confusion) تقسیم بر کل زمان گوینده.
EER
آستانه‌ای که در آن FAR برابر با FRR است.
نرخ ماسک Show-o
$\cos\left(\frac{\pi t}{2T}\right)$، از 1.0 در گام 0 تا 0 در گام T.

معیارهای تصویر در قالب کد

کد
python
mu_r = mean_vec(real_features)
mu_g = mean_vec(gen_features)
cov_r = covariance(real_features, mu_r)
mean_sq = sum((a - b) ** 2 for a, b in zip(mu_r, mu_g))
sqrt_prod = jacobi_sqrt(prod)     # جذر ماتریسی
return mean_sq + trace(cov_r) + trace(cov_g) - 2 * trace(sqrt_prod)
score = clip_like(image, prompt)  # کسینوسی، بیشتر بهتر است
expected_a = 1 / (1 + 10 ** ((r_b - r_a) / 400))
actual_a = 1.0 if winner == "a" else 0.0
delta = k * (actual_a - expected_a)              # k=32
return r_a + delta, r_b - delta

معیارهای صوتی در قالب کد

کد
python
transform = Compose([ToLowerCase(), RemovePunctuation(), Strip()])
score = wer(truth="<ref>", hypothesis="<hyp>",
            truth_transform=transform, hypothesis_transform=transform)
sv = EncoderClassifier.from_hparams("speechbrain/spkrec-ecapa-voxceleb")
emb_ref = sv.encode_batch(load_wav("reference.wav"))
emb_clone = sv.encode_batch(load_wav("cloned.wav"))
secs = torch.nn.functional.cosine_similarity(emb_ref, emb_clone, dim=-1).item()
fad = FrechetAudioDistance()
score = fad.get_fad_score("generated_folder/", "reference_folder/")

توابع معیار

کار و کد
وظیفهکد
FID تصویرfid(real_features, gen_features)
Elo از یک جفتelo_update(r_a, r_b, winner, k=32)
نرخ خطای کلمهwer(ref, hyp)
نرخ خطای نویسهcer(ref, hyp)
نرخ خطای برابرeer_from_scores(same, diff)
فاصله‌ی مشابه FADembedding_fad_like(real_embeds, fake_embeds)
دقت چندگزینه‌ایmmau_accuracy(predictions, golds)
‏WER بازگشت‌پذیری TTSttr_wer(tts_model, asr_model, texts)

مقایسه‌ی معیارهای تصویر در کنار هم

مقایسه
عاملFIDامتیاز CLIPCMMDترجیح انسانی
سنجشکیفیت نمونهانطباق با پرامپتکیفیت، تفاوت‌های ظریفترجیح کلی
ویژگی‌ها‏Inception-v3، 2048 بُعدیتصویر و متن CLIPCLIPانسان‌ها یا داور LLM
حداقل نمونه10 هزار در برابر داده‌ی واقعی نگه‌داشته‌شده30 هزار5 هزار200 جفت کور
نقطه‌ضعف‏N کوچک، دامنه‌های دور از ImageNetترکیب‌بندی ضعیف، پرامپت‌های کوتاهپوشش داده نشدهواریانس داور، انتخاب پرامپت

هزینه‌ی نمونه‌برداری مدل‌های یکپارچه

مقایسه
عاملChameleon, Emu3TransfusionShow-o
رمزگشاییتوکن‌های خودبازگشتیدیفیوژن پیوستهدیفیوژن گسسته‌ی ماسک‌شده
گام‌ها1024 تا 4096 گذرحدود 20حدود 16
هر گامیک توکنیک گذر کامل ترنسفورمرنهایی‌شدن (commit) برترین K توکن

ارقام صوتی برای دستیابی و رکوردزنی

مفهوم‌ها
WER
زیر 5% معادل عملکرد انسانی در گفتار روخوانی‌شده است.
UTMOS
همبستگی حدود 0.9 با MOS انسانی. مدل F5-TTS امتیاز 3.95، حقیقت پایه 4.08.
SECS
بالای 0.75 یک شبیه‌سازی قابل تشخیص است.
CLAP
بالای 0.3 هم‌ترازی معقول متن و صدا است.
EER
مدل ECAPA روی VoxCeleb1-O مقدار 0.87% می‌دهد.
FAD
مدل MusicGen-small روی MusicCaps برابر با 4.5. کمتر بهتر است.
MMAU-Pro
شانس تصادفی روی گزینه‌ی 4-حالته 25% است.
ورود ناگهانی به کلام
هدف زیر 150 میلی‌ثانیه.

پیش‌فرض‌ها

پیش‌فرض‌ها
تنظیمپیش‌فرضنکته
Elo `k`32elo_update
Elo start rating1000هر دو مدل
FID samples10k‏FID با N کم غیرقابل‌اعتماد است
CLIP score samples30kمیانگین‌گیری به یک اسکالر
Inception input299×299تطبیق وضوح‌ها
MOS listeners20+100+ نمونه به ازای هر مدل
Show-o steps `T`8برنامه‌ی زمان‌بندی کسینوسی
Keep ratio floor0.15keep_ratio به ازای هر گام

عیب‌یابی

عیب‌یابی
  • ‏FID پایین بر اثر نمونه‌های کم

    علت
    ‏N کوچک کوواریانس را کمتر برآورد می‌کند
    راه‌حل
    استفاده از N برابر با 10 هزار یا بیشتر
  • بی‌معنی بودن FID روی چهره‌ها یا هنر

    علت
    آموزش Inception روی ImageNet
    راه‌حل
    استخراج‌کننده‌ی دامنه، مثلاً FD-DINO
  • تغییر FID در وضوح‌های مختلف

    علت
    تغییر اندازه به 299×299
    راه‌حل
    مقایسه در وضوح یکسان
  • افزایش امتیاز CLIP بدون بهبود تصاویر

    علت
    «کیفیت بالا، 4k، شاهکار»
    راه‌حل
    بررسی تطابق و اشباع
  • بی‌معنی بودن Elo

    علت
    مدل‌ها پرامپت‌های بنچمارک را دیده‌اند
    راه‌حل
    استفاده از مجموعه‌پرامپت‌های نگه‌داشته‌شده
  • ‏WER پنج درصدی که خطای 30 درصدی لهجه‌ها را پنهان می‌کند

    علت
    ‏WER تجمیعی
    راه‌حل
    گزارش بر اساس بخش‌های جمعیت‌شناختی
  • ‏UTMOS نامناسب روی صدای شبیه‌سازی‌شده

    علت
    آموزش روی گفتار شفاف و بدون نویز
    راه‌حل
    استفاده از پنل MOS تخصصی همان دامنه
  • غیرقابل‌مقایسه بودن FAD

    علت
    مجموعه‌های مرجع متفاوت
    راه‌حل
    مجموعه‌ی مرجع یکسان برای تمام مدل‌ها

قوانین

نکته‌ها
  • نرمال‌سازی متن پیش از محاسبه‌ی WER. قانون نرمال‌سازی را گزارش کنید.
  • گزارش توزیع‌ها. P50/P95/P99 برای تاخیر، به ازای هر کلاس و هر دسته.
  • اجرای یک بنچمارک عمومی و یک مجموعه‌ی نگه‌داشته‌شده‌ی درون‌سازمانی.
  • کش‌کردن ویژگی‌های واقعی یک‌بار در قالب فایل .npz.
  • تولید ارزیابی دسته‌ای با num_images_per_prompt=8.
  • استفاده از سه معیار هم‌راستا به همراه بازبینی کیفی.

پرسش‌ها

پرسش و پاسخ
چرا CMMD؟
از ویژگی‌های CLIP و MMD استفاده می‌کند. سوگیری کمتری دارد و فرضیه‌ی گوسی ندارد.
‏SECS بالا، MOS پایین؟
طنین صدا درست است اما صدا غیرطبیعی است.
‏EER یا minDCF؟
معیار minDCF برای محیط عملیاتی مناسب‌تر است؛ هزینه را در نقطه‌ی عملیاتی وزن‌دهی می‌کند.
هزینه‌ی 10 هزار نمونه‌ی SDXL چقدر است؟
حدود 11 ساعت روی یک L4 به‌صورت یک درخواست در هر لحظه.
چرا Show-o عملیات inpaint را رایگان انجام می‌دهد؟
آموزش آن بر پایه‌ی پیش‌بینی توکن‌های ماسک‌شده است.