Files changed (1) hide show
  1. README.md +243 -1
README.md CHANGED
@@ -2,4 +2,246 @@
2
  license: openmdw-1.1
3
  language:
4
  - en
5
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  license: openmdw-1.1
3
  language:
4
  - en
5
+ ---
6
+ # Physical Plausibility Evaluator
7
+
8
+ ## Model Overview
9
+
10
+ ### Description or Model Summary:
11
+
12
+ The Physical Plausibility Evaluator scores video acceptability using a frozen video encoder and a trained binary
13
+ classifier. It supports synthetic-video quality screening without a reference video. Users can train or adapt the
14
+ classifier and calibrate its decision threshold for their own definition of acceptable video. The pretrained classifier
15
+ uses human quality labels for Cosmos-generated FineVideo samples.
16
+
17
+ This model is ready for commercial or non-commercial use.
18
+
19
+ ### License/Terms of Use:
20
+
21
+ [OpenMDW-1.1][openmdw] <br>
22
+
23
+ The pinned V-JEPA source is primarily [MIT-licensed][upstream-license], with [Apache-2.0 exceptions][upstream-terms].
24
+ Upstream components retain their own terms; this license does not relicense the frozen backbone. <br>
25
+
26
+ V-JEPA 2.1 weights will not be bundled or redistributed with this release. The trained bundle is currently in the [Hugging Face
27
+ repository][weights]; it contains the classifier, normalization, calibration thresholds and provenance. <br>
28
+
29
+ ### Deployment Geography:
30
+
31
+ Global. <br>
32
+
33
+ ### Use Case: <br>
34
+
35
+ Developers and researchers assessing and filtering individual videos using task-specific acceptability criteria.
36
+ The model produces scores and decisions, not generated media. A passing decision does not certify physical correctness
37
+ or suitability for safety-critical use. <br>
38
+
39
+ ### Release Date: <br>
40
+
41
+ Build.Nvidia.com: Not Applicable. <br>
42
+ GitHub: Planned 10/20/2026 via [Cosmos Evaluator][release-repository]. <br>
43
+ Hugging Face: Planned 10/20/2026 via [nvidia/physical-plausibility-evaluator][weights]. <br>
44
+ NGC: Not Applicable. <br>
45
+ Other: Not Applicable. <br>
46
+
47
+ ## References(s):
48
+
49
+ - [V-JEPA source repository][vjepa], [pinned source license][upstream-license] and [license exceptions][upstream-terms].
50
+ Users obtain the frozen backbone separately under its upstream terms. <br>
51
+ - [FineVideo source dataset at the recorded revision][finevideo]. <br>
52
+
53
+ ## Model Architecture:
54
+
55
+ **Architecture Type:** Transformer encoder with learned attention pooling and a binary linear classifier.
56
+
57
+ **Network Architecture:** Frozen V-JEPA 2.1 ViT-L/16 encoder (`vjepa2_1_vitl_dist_vitG_384.pt`), feature normalization,
58
+ learned attention pooling and a linear binary classifier. A sigmoid provides the bad-class score; a calibrated threshold
59
+ determines the decision.
60
+
61
+ **This model was developed based on:** Meta V-JEPA 2.1; encoder weights remain frozen.
62
+
63
+ **Number of model parameters:** Approximately **3.0 × 10^8** frozen encoder parameters and **2,049** trainable
64
+ parameters in the attention query and linear classifier.
65
+
66
+ The query pools normalized space-time tokens into a 1,024-dimensional vector; the linear head produces one bad logit.
67
+ Feature mean and scale are fitted on training data and then held fixed. Padding-coverage weights enter attention as a
68
+ multiplicative prior; fully padded tokens are excluded.
69
+
70
+ ## Input(s): <br>
71
+
72
+ **Input Type(s):** Video. <br>
73
+
74
+ **Input Format(s):** <br>
75
+
76
+ - Video: .mp4 (H.264/AVC), decoded to RGB frames by FFmpeg. Other containers/codecs depend on the decoder. <br>
77
+
78
+ **Input Parameters:**
79
+
80
+ - Video: Three-Dimensional (3D): time, height and width, with three RGB channels. <br>
81
+
82
+ **Other Properties Related to Input:** Sample 64 distinct frames uniformly across the video, including both endpoints;
83
+ reject videos with fewer than 64 decodable frames. Resize with preserved aspect ratio, pad to 384 × 384 pixels, and
84
+ normalize using ImageNet channel statistics. Audio and alpha channels are not used; no reference video is required.
85
+ Decoded frames use 8-bit RGB. The normalized encoder input is `[batch, 3, 64, 384, 384]`; encoder tokens are
86
+ `[batch, 32, 24, 24, 1024]` before padding removal.
87
+ <br>
88
+
89
+ ## Output(s)
90
+
91
+ **Output Type(s):** Numerical scores and a categorical good/bad decision. <br>
92
+
93
+ **Output Format(s):** <br>
94
+
95
+ - Numerical scores and decision: JSON from the CLI and service. <br>
96
+
97
+ **Output Parameters:**
98
+
99
+ - Numerical scores: Scalar (0D), one value per score per video. <br>
100
+ - Decision: One good/bad label per video. <br>
101
+
102
+ **Other Properties Related to Output:**
103
+
104
+ - `bad_logit`: Raw classifier output; larger values indicate stronger evidence for the bad class. <br>
105
+ - `bad_score = sigmoid(bad_logit)` and `plausibility_score = 1 - bad_score`: Scores in `[0, 1]`, not guaranteed
106
+ calibrated probabilities. `prediction` and `passed` record the thresholded decision. <br>
107
+ - The default `cap: 0.3` selects the saved logit threshold calibrated to a validation good-rejection cap of 30%. It is
108
+ not a score cutoff of 0.3, a maximum-accuracy setting, or a guarantee on new data. At or above the cutoff, the video
109
+ is rejected. <br>
110
+ - No spatial or temporal defect-localization output is provided. <br>
111
+
112
+ Our AI models are designed and/or optimized to run on NVIDIA GPU-accelerated systems. <br>
113
+ Encoder and classifier execution use PyTorch/CUDA. Decoding and resizing use CPU. <br>
114
+
115
+ ## Software Integration:
116
+
117
+ **Runtime Engine(s):** PyTorch; the integration pins PyTorch 2.10.0 with CUDA 12.8. FFmpeg decodes video.
118
+
119
+ **Supported Hardware Microarchitecture Compatibility:** NVIDIA Hopper H100, the tested configuration. Other GPU
120
+ architectures are not certified by this card.
121
+
122
+ **Supported Operating System(s):** Linux.
123
+
124
+ The model can be integrated through the CLI or REST API. Its `.pt` bundle is loaded with `weights_only=True` and
125
+ schema/feature-contract validation. These integrity checks do not establish robustness or privacy.
126
+
127
+ Integration requires additional testing with use-case-specific data. Following the V-model methodology, iterative unit
128
+ and system validation should assess functional requirements, misuse and safety risks before deployment.
129
+
130
+ ## Model Version(s):
131
+
132
+ `finevideo-attention-linear-v1`: FineVideo-trained attention query and linear classifier, with normalization and
133
+ calibration thresholds. The model-card
134
+ name remains `Physical Plausibility Evaluator`; this identifier names the existing checkpoint artifact.
135
+
136
+ No ongoing model retraining or maintenance is planned.
137
+
138
+ ## Training, Testing, and Evaluation Datasets:
139
+
140
+ The dataset will not be released; the held-out FineVideo benchmark results may be shared. The following describes the
141
+ classifier dataset; the encoder was pretrained separately by Meta.
142
+
143
+ ## Training Dataset:
144
+
145
+ ### Data Modality:
146
+
147
+ Video, with human binary quality labels. Source images and captions condition video generation; the classifier does not
148
+ train on caption text or audio.
149
+
150
+ ### Training Data Size:
151
+
152
+ **Video Training Data Size:** Less than 10,000 hours: 2,991 training videos, approximately 7.7 hours.
153
+
154
+ **Data Collection Method by dataset:** Synthetic videos generated from FineVideo frame/caption conditioning.
155
+
156
+ **Labeling Method by dataset:** Manually labeled; three quality levels mapped to binary acceptable/unacceptable labels.
157
+
158
+ **Properties:**
159
+
160
+ The dataset was generated with Cosmos 3 image-to-video, around mid-July 2026.
161
+ Preparation selected 5,000 unique sources from [FineVideo][finevideo] at revision
162
+ `84c74091e1c6ee7a5dffabfafb5c9033e4718883`, stratified by content category and dynamism. Selection applied landscape
163
+ resolution, age-restriction, visual-caption, temporal-coverage, audiovisual-correlation and limited text filters.
164
+ The second decoded frame of a timestamp-selected source clip was resized to 1280 by 720 pixels and paired with its
165
+ FineVideo activity description, with whitespace normalization only. Frame/caption alignment was not verified across
166
+ the full dataset.
167
+
168
+ One video was generated per source: 1280 by 720 pixels, 93 frames at 10 FPS (9.3 seconds).
169
+ Human annotators assigned three quality levels: major artifacts/nonphysical behavior; usable with minor artifacts and a
170
+ correctly described main event; or no artifacts. Annotation QC excluded 13 of 5,000 outputs, leaving 4,987 videos.
171
+ The classifier maps quality level 1 to bad (`0`, 3,491 videos) and levels 2–3 to good (`1`, 1,496 videos).
172
+
173
+ The selected classifier uses Adam with learning rate `0.003` and explicit L2 coefficients `0.001` for both query and
174
+ classifier weights. Training uses class-balanced binary cross-entropy; gradients update only the query and classifier.
175
+ User adaptation options are scratch training, warm-start fine-tuning with fixed source normalization, or threshold-only
176
+ calibration.
177
+
178
+ The retained inventory totals approximately 12.9 hours. Source preparation, generation, annotation and split provenance
179
+ are documented internally. The dataset and detailed generation settings are not publicly released.
180
+ No personal data was used in the selected FineVideo source frames/captions, generated videos or annotations. This
181
+ statement concerns the classifier dataset, not Meta's encoder pretraining; see the [privacy subcard][privacy].
182
+
183
+ ### Testing Dataset:
184
+
185
+ **Data Collection Method by dataset:** Synthetic; same generation process as training.
186
+
187
+ **Labeling Method by dataset:** Manually labeled; same quality-to-binary mapping as training.
188
+
189
+ **Properties:** 998 held-out test videos from the same 4,987-video inventory. The quality-stratified 60/20/20
190
+ train/validation/test split uses seed `20260915` and separates identical-video groups, but does not establish
191
+ scene-disjointness. Test videos do not fit normalization, classifier parameters or thresholds.
192
+
193
+ ### Evaluation Dataset:
194
+
195
+ **Benchmark Score:** On 998 held-out Cosmos-generated FineVideo test videos (698 bad, 300 good), the pretrained
196
+ classifier achieves bad-class ROC AUC **0.8258**. At the default validation good-rejection cap of **30%**, bad recall
197
+ is **80.52%** (562/698) and actual good-video rejection is **31.33%** (94/300). These results use the saved
198
+ validation-calibrated logit threshold **0.5438173**; test labels did not select the threshold.
199
+
200
+ **Data Collection Method by dataset:** Synthetic; same generation process as training.
201
+
202
+ **Labeling Method by dataset:** Manually labeled; same quality-to-binary mapping as training.
203
+
204
+ **Properties:** 998 validation videos select the classifier configuration/checkpoint by ROC AUC and calibrate
205
+ thresholds.
206
+ Final benchmark evaluation uses the separate 998 test videos described above. Metrics are bad-class ROC AUC, bad recall
207
+ and good-video rejection; a validation rejection cap is not a guarantee on test data.
208
+
209
+ ## Inference:
210
+
211
+ **Acceleration Engine:** PyTorch with CUDA. This release does not provide a TensorRT or TensorRT-LLM engine.
212
+
213
+ **Test Hardware Set-Up:** NVIDIA Hopper H100.
214
+
215
+ Encoder inference uses BF16 autocast with FP32 weights; cached tokens use FP16. Feature normalization, attention pooling
216
+ and classification use FP32. GPU memory requirements depend on batch size and retained tokens.
217
+
218
+ ## Ethical Considerations:
219
+
220
+ NVIDIA believes Trustworthy AI is a shared responsibility and has established policies and practices for a wide array
221
+ of AI applications. Developers should work with their model team to ensure the model meets relevant industry and
222
+ use-case requirements and addresses unforeseen misuse.
223
+
224
+ Ensure you have proper rights and permissions for all input video content, including content involving people, personal
225
+ health information or intellectual property. This classifier produces scores and decisions; it does not generate or
226
+ anonymize media.
227
+
228
+ Users are responsible for model inputs and outputs and for safe integration, including appropriate review and safety
229
+ mechanisms before deployment. A passing score does not certify physical correctness and must not be the sole basis for
230
+ safety-critical decisions. See the [bias][bias], [explainability][explainability], [privacy][privacy] and
231
+ [safety/security][safety] subcards for limitations.
232
+
233
+ Please report model quality, risk, security vulnerabilities or NVIDIA AI Concerns
234
+ [here](https://www.nvidia.com/en-us/support/submit-security-vulnerability/).
235
+
236
+ [openmdw]: https://openmdw.ai/license/1-1/
237
+ [weights]: https://huggingface.co/nvidia/physical-plausibility-evaluator
238
+ [vjepa]: https://github.com/facebookresearch/vjepa2
239
+ [upstream-license]: https://github.com/facebookresearch/vjepa2/blob/204698b45b3712590f06245fbfba32d3be539812/LICENSE
240
+ [upstream-terms]: https://github.com/facebookresearch/vjepa2/blob/204698b45b3712590f06245fbfba32d3be539812/README.md#license
241
+ [bias]: physical_plausibility_evaluator_subcards/bias.md
242
+ [explainability]: physical_plausibility_evaluator_subcards/explainability.md
243
+ [privacy]: physical_plausibility_evaluator_subcards/privacy.md
244
+ [safety]: physical_plausibility_evaluator_subcards/safety_security.md
245
+ [release-repository]: https://github.com/nvidia-cosmos/cosmos-evaluator
246
+
247
+ [finevideo]: https://huggingface.co/datasets/HuggingFaceFV/finevideo/tree/84c74091e1c6ee7a5dffabfafb5c9033e4718883