मूल्यांकन FID, CLIP स्कोर, मानव प्राथमिकता
Type: Build
Languages: Python
Prerequisites: Phase 8 · 01 (Taxonomy), Phase 2 · 04 (Evaluation Metrics)
Time: ~45 minutes
समस्या
एक जनरेटिव मॉडल का मूल्यांकन नमूना गुणवत्ता और कंडीशनिंग अनुपालन पर किया जाता है। किसी भी में एक बंद-रूप माप नहीं है। आपके मॉडल को 10,000 छवियों को प्रस्तुत करना होगा; कुछ को उन्हें संख्याएं सौंपनी होगी; आपको मॉडल परिवारों के माध्यम से संख्याओं पर भरोसा करना होगा, संकल्पों के माध्यम से, वास्तुकला के माध्यम से। तीन मीट्रिक 2014-2026 गांडल से बच गएः
- FID (Fréchet Inception Distance).एक आरंभिक नेटवर्क की सुविधाओं के स्थान में दो वितरण वास्तविक और उत्पन्न के बीच की दूरी। निचला बेहतर है।
- CLIP score.उत्पन्न छवि के CLIP-छवि एम्बेडिंग और प्रॉम्प्ट के CLIP-पाठ एम्बेडिंग के बीच कॉसिन समानता। उच्च बेहतर है। माप त्वरित अनुपालन।
- Human preference.एक ही संकेत पर दो मॉडल सिर-से-क सिर करें, मनुष्यों (या जीपीटी-4-वर्ग के मॉडल) को बेहतर एक चुनें, एलो स्कोर के लिए एकत्रित करें।
आप यह भी देखेंगेः आईएस (प्रारंभ स्कोर, ज्यादातर सेवानिवृत्त), KID, CMMD, इमेज रेवार्ड, पिकस्कोर, HPSv2, MJHQ-30k। प्रत्येक पिछले एक विफलता के लिए सुधार करता है।
अवधारणा
!FID, CLIP, and preference: three axes, different failure modes
FID नमूना गुणवत्ता
Heusel et al. (2017). कदमः
- N वास्तविक छवियों और N उत्पन्न के लिए Inception-v3 सुविधाओं (2048-D) निकालें।
- प्रत्येक पूल में एक गौशियन फिटः गणना औसत
μ_r, μ_gऔर सह-विवर्तनΣ_r, Σ_g. . - FID =
||μ_r - μ_g||² + Tr(Σ_r + Σ_g - 2 · (Σ_r · Σ_g)^0.5). .
व्याख्याः फीचर स्पेस में दो बहु-विविध गौसीन के बीच फ्रेचेट दूरी। निचला = अधिक समान वितरण।
विफलता मोडः
- Biased on small N.FID विशेषता वितरण पर औसत वर्ग है छोटे N कोवरिएंट्स को कम आंकता है, गलत रूप से कम FID देता है। हमेशा N ≥ 10,000 का उपयोग करें।
- Inception-dependent.इनसेप्शन-v3 को ImageNet पर प्रशिक्षित किया गया था। ImageNet से दूर डोमेन (चेहरे, कला, पाठ छवियां) अर्थहीन FID उत्पन्न करते हैं। डोमेन-विशिष्ट फीचर एक्सट्रैक्टर का उपयोग करें।
- Gaming.आरंभिक पूर्व के लिए ओवरफिटिंग दृश्य गुणवत्ता में सुधार के बिना कम एफआईडी देता है। इसे सीएमएमडी (नीचे) के साथ हराएं।
CLIP स्कोर शीघ्र अनुपालन
Radford et al. (2021). उत्पन्न छवि + प्रॉम्प्ट के लिएः
clip_score = cos_sim( CLIP_image(x_gen), CLIP_text(prompt) )30k उत्पन्न छवियों के माध्यम से औसत → मॉडल के बीच तुलनात्मक एक स्केलर।
विफलता मोडः
- CLIP's own blind spots.CLIP में कमजोरी है रचना तर्क ("नीले गोले पर एक लाल घन" अक्सर विफल रहता है) मॉडल जटिल संकेतों का पालन किए बिना CLIP स्कोर पर अच्छी तरह से रैंक कर सकते हैं।
- Short prompt bias.लघु संकेतों में अधिक CLIP-चित्र मेल खाते हैं। लंबे संकेतों में यांत्रिक रूप से कम CLIP स्कोर होते हैं।
- Prompt gaming.इस प्रॉम्प्ट में "उच्च गुणवत्ता, 4k, उत्कृष्ट कृति" को शामिल करना छवि-पाठ बंधन में सुधार किए बिना CLIP स्कोर को बढ़ाता है।
सीएमएमडी (जयासुमाना एट अल, 2024) इनमें से कुछ को ठीक करता हैः शुरुआत के बजाय CLIP सुविधाओं का उपयोग करता है, फ्रेचेट के बजाय अधिकतम-औसत असंगति। सूक्ष्म गुणवत्ता मतभेदों का पता लगाने में बेहतर।
मानव प्राथमिकता मूल सत्य
एक पूल का चयन करें. मॉडल ए और मॉडल बी के साथ उत्पन्न करें। मनुष्यों को जोड़े दिखाएं (या एक मजबूत एलएलएम न्यायाधीश) । एलो या ब्रैडली-टेरी स्कोर में जीत को एकत्र करें। बेंचमार्कः
- PartiPrompts (Google): 1600 विविध संकेत, 12 श्रेणियां।
- HPSv2: 107k मानव टिप्पणी, व्यापक रूप से स्वचालित प्रॉक्सी के रूप में इस्तेमाल किया।
- ImageReward: 137k शीघ्र-छवि प्राथमिकता जोड़े, MIT-अनुमति प्राप्त.
- PickScore: पिक-ए-पिक 2.6M वरीयताओं पर प्रशिक्षित।
- Chatbot-Arena-style image arenashttps://imagearena.ai/और अन्य।
विफलता मोडः
- Judge variance.गैर-विशेषज्ञों की विशेषज्ञों की तुलना में अलग-अलग प्राथमिकताएं होती हैं. दोनों का उपयोग करें।
- Prompt distribution.एक परिवार के लिए एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही एक समय में एक ही समय में एक ही समय में एक ही एक समय में एक समय में एक ही एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक
- LLM-judge reward hacking.जीपीटी-4-जिज को अच्छे लेकिन गलत आउटपुट से धोखा दिया जाता है।
एक साथ प्रयोग करें
उत्पादन मूल्यांकन रिपोर्ट में निम्नलिखित शामिल होना चाहिएः
- 10-30k नमूनों पर वास्तविक वितरण (नमूना गुणवत्ता) के मुकाबले FID।
- समान नमूनों पर CLIP स्कोर / CMMD बनाम उनके संकेत (अनुपालन) ।
- पिछले मॉडल के मुकाबले अंधे हुए क्षेत्र में जीत दर (सामान्य प्राथमिकता)
- विफलता मोड विश्लेषणः 50 यादृच्छिक रूप से नमूने किए गए आउटपुट, ज्ञात मुद्दों के लिए चिह्नित (हात का शरीर रचना, पाठ रेंडरिंग, लगातार वस्तु गणना) ।
कोई भी एक मात्रक झूठ है। तीन प्रमाणात्मक माप + गुणात्मक समीक्षा एक दावा है।
इसे बनाओ
code/main.pyकृत्रिम "विशेषता वेक्टर" पर FID, CLIP-स्कोर-जैसे, और Elo संश्लेषण लागू करता है (हम प्रारंभ सुविधाओं के लिए स्टैंड-इन के रूप में 4-डी वेक्टर का उपयोग करते हैं) आप देखते हैंः
- छोटे N पर FID गणना और बड़े N पर पूर्वाग्रह।
- "CLIP स्कोर" फीचर पूल के बीच कॉसिन समानता के रूप में।
- सिंथेटिक प्राथमिकता प्रवाह से Elo अद्यतन नियम।
चरण 1: चार पंक्तियों में FID
pythondef fid(real_features, gen_features):
mu_r, cov_r = mean_and_cov(real_features)
mu_g, cov_g = mean_and_cov(gen_features)
mean_diff = sum((a - b) ** 2 for a, b in zip(mu_r, mu_g))
trace_term = trace(cov_r) + trace(cov_g) - 2 * sqrt_cov_product(cov_r, cov_g)
return mean_diff + trace_termचरण 2: CLIP शैली की कॉसिन-समानता
pythondef clip_like(image_feat, text_feat):
dot = sum(a * b for a, b in zip(image_feat, text_feat))
norm = math.sqrt(dot_self(image_feat) * dot_self(text_feat))
return dot / max(norm, 1e-8)चरण 3: एलो संश्लेषण
pythondef elo_update(r_a, r_b, winner, k=32):
expected_a = 1 / (1 + 10 ** ((r_b - r_a) / 400))
actual_a = 1.0 if winner == "a" else 0.0
r_a_new = r_a + k * (actual_a - expected_a)
r_b_new = r_b - k * (actual_a - expected_a)
return r_a_new, r_b_newफंदे
- FID at N=1000.N=10k के तहत हेरिस्टिक अविश्वसनीय है. कम N FID रिपोर्टिंग के पेपर खेल रहे हैं।
- Comparing FID across resolutions.प्रारंभ के 299 × 299 आकार सुविधा वितरण बदलता है. केवल मिलान संकल्प पर तुलना करें.
- Reporting one seed.कम से कम तीन बीज चलाएं।
- CLIP score inflation via negative prompts.कुछ पाइपलाइनें क्लैप को अति-फिट करके बढ़ा देती हैं। दृश्य संतृप्ति की जांच करें।
- Elo bias from prompt overlap.यदि दोनों मॉडल प्रशिक्षण के दौरान एक बेंचमार्क प्रॉम्प्ट देखते हैं, तो Elo का कोई मतलब नहीं है।
- Human eval paid-crowd skew.उत्पादक, एमटर्क एनोटेटर युवा / प्रौद्योगिकी के अनुकूल हैं। भर्ती कला / डिजाइन विशेषज्ञों के साथ मिश्रण करें।
इसका प्रयोग करें
2026 में उत्पादन मूल्यांकन प्रोटोकॉलः
| Pillar | Minimum | Recommended |
|---|---|---|
| Sample quality | FID on 10k vs held-out real | + CMMD on 5k + FID on subset per category |
| Prompt adherence | CLIP score on 30k | + HPSv2 + ImageReward + VQA-style question answering |
| Preference | 200 blinded pairs vs baseline | + 2000 paired human + LLM-judge + Chatbot Arena |
| Failure analysis | 50 hand-flagged | 500 hand-flagged + automated safety classifier |
एक रिपोर्ट में सभी चार स्तंभ = दावा। कोई भी एक ही = विपणन।
इसे भेजें
सहेजेंoutputs/skill-eval-report.md. कौशल एक नए मॉडल चेकपॉइंट + बेसलाइन लेता है और एक पूर्ण मूल्यांकन योजना जारी करता हैः नमूना आकार, माप, विफलता मोड जांच, साइन-ऑफ मानदंड।
व्यायाम
- Easy.दौड़ें
code/main.py. समान सिंथेटिक वितरण पर N=100 बनाम N=1000 पर FID की तुलना करें। - Medium.सिंथेटिक CLIP-शैली की विशेषताओं से CMMD को लागू करें (सूत्र के लिए जयसूमन और अन्य, 2024 देखें) गुणवत्ता मतभेदों के प्रति संवेदनशीलता की तुलना करें।
- Hard.HPSv2 सेटअप को दोहराएंः पिक-ए-पिक के एक उपसमूह से 1000 छवि-प्रोम्प्ट जोड़े लें, प्राथमिकताओं पर एक छोटे से CLIP-आधारित स्कोरर को ठीक करें, और एक लंबे समय तक चलने वाले सेट के साथ इसकी संगतता को मापें।
प्रमुख शर्तें
| Term | What people say | What it actually means |
|---|---|---|
| FID | "Fréchet Inception Distance" | Fréchet distance of Gaussian fits to real vs gen Inception features. |
| CLIP score | "Text-image similarity" | Cosine similarity between CLIP image and text embeddings. |
| CMMD | "FID's replacement" | CLIP-feature MMD; less biased, no Gaussian assumption. |
| IS | "Inception score" | Exp KL(p(y |
| HPSv2 / ImageReward / PickScore | "Learned preference proxies" | Small models trained on human preferences; used as automatic judges. |
| Elo | "Chess rating" | Bradley-Terry aggregation of pairwise wins. |
| PartiPrompts | "The benchmark prompt set" | 1,600 Google-curated prompts across 12 categories. |
| FD-DINO | "Self-sup replacement" | FD using DINOv2 features; better for out-of-ImageNet domains. |
उत्पादन नोटः मूल्यांकन एक निष्कर्ष कार्यभार भी है
10k नमूनों पर FID चलाने का मतलब है 10k छवियों का उत्पादन करना। एक एकल L4 पर 10242 पर 50 चरणों के SDXL आधार के लिए, जो कि एकल अनुरोध निष्कर्ष का ~ 11 घंटे है। मूल्यांकन बजट वास्तविक हैं, और फ्रेमिंग वास्तव में ऑफ़लाइन-इन्फरेंस परिदृश्य है (थ्रुपूट को अधिकतम करें, TTFT को अनदेखा करें):
- Batch hard, forget latency.ऑफ़लाइन eval = मेमोरी में फिट होने वाले सबसे बड़े आकार पर स्थैतिक बैचिंग।
pipe(...).imagesके साथnum_images_per_prompt=880GB H100 पर एक एकल अनुरोध की तुलना में 4-6 गुना तेज दीवार घड़ी चलाता है। - Cache the real features.वास्तविक संदर्भ सेट पर प्रारंभ (FID) या CLIP (CLIP-स्कोर, CMMD) सुविधा निकासी once चलाया जाता है, जिसे एक
.npz. प्रति मूल्यांकन पर पुनः गणना न करें.
आईसी / प्रतिगमन गेट के लिएः प्रति पीआर (~ 30 मिनट) 500-सैम्पल उपसमूह पर एफआईडी + क्लिप स्कोर चलाएं; रात में पूर्ण 10k एफआईडी + एचपीएसवी 2 + एलो चलाएं।
आगे पढ़ना
- Heusel et al. (2017). GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium (FID) एफआईडी पेपर।
- Jayasumana et al. (2024). Rethinking FID: Towards a Better Evaluation Metric for Image Generation (CMMD) सीएमडी।
- Radford et al. (2021). Learning Transferable Visual Models from Natural Language Supervision (CLIP) क्लिप।
- Wu et al. (2023). HPSv2: A Comprehensive Human Preference Score HPSv2
- Xu et al. (2023). ImageReward: Learning and Evaluating Human Preferences for Text-to-Image Generation इमेज रिवार्ड।
- Yu et al. (2023). Scaling Autoregressive Models for Content-Rich Text-to-Image Generation (Parti + PartiPrompts) पार्टिप्रॉम्प्ट्स।
- Stein et al. (2023). Exposing flaws of generative model evaluation metrics विफलता मोड सर्वेक्षण।
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.