Release best Gemini-tuned Whisper Base and Small with code, normalization and evaluation
cd9b2d8 verified Download training/embedding_probe_study/configure.py from laion/humaneness-ears-base-medium: direct link, hf CLI and curl.
- Browser
- Download file 4.14 kB
-
https://huggingface.co/laion/humaneness-ears-base-medium/resolve/main/training/embedding_probe_study/configure.py
- Command line
-
hf download hf://laion/humaneness-ears-base-medium/training/embedding_probe_study/configure.py
-
curl -L -o configure.py https://huggingface.co/laion/humaneness-ears-base-medium/resolve/main/training/embedding_probe_study/configure.py
4.14 kB
| #!/usr/bin/env python3 | |
| """Freeze backbone revisions, head budgets and comparison protocols.""" | |
| from pathlib import Path | |
| from study_paths import ROOT, SEED, write, CLAP_CODE, CLAP_BENCH, TRANSFORMERS_REVISION | |
| def main(): | |
| models = [ | |
| {'id': 'embeddinggemma2', 'repo': 'google/embeddinggemma-2', 'revision': '914f7f89142e33e77833254d9c9b90c3cef7303b', 'backend': 'gemma', 'native_dim': 768, 'batch': 8}, | |
| {'id': 'ovis3b', 'repo': 'ATH-MaaS/Ovis-Omni-Embedding-3B', 'revision': '08547b8479edc10edc9878597438ebd076f74dff', 'subfolder': 'model', 'backend': 'omni', 'native_dim': 2048, 'batch': 4}, | |
| {'id': 'voiceclap_large_v2', 'repo': 'laion/voiceclap-large-v2', 'revision': 'edd7959017dd3f2315d147b629204229a18f6c59', 'backend': 'omni', 'native_dim': 3584, 'batch': 2}, | |
| {'id': 'voiceclap_commercial', 'repo': 'laion/voiceclap-commercial', 'revision': '4e0170bf9a7e29704dd3a26ca92855b3cdd8706c', 'backend': 'commercial', 'native_dim': 768, 'batch': 16}, | |
| ] | |
| base = Path('/e/data1/datasets/playground/mmlaion/shared/experiments/autoexp/polygon/scaling_law_grid_clap_v3') | |
| for size in ('XXS', 'XS', 'S', 'M', 'L'): | |
| nodes = 32 if size == 'L' else 16 | |
| matches = [p / 'checkpoints/epoch_320.pt' for p in base.iterdir() | |
| if f'_model=CLAPNaFlex-v3-{size}_' in p.name and '_epochs=320_' in p.name and f'_nodes={nodes}_' in p.name] | |
| if len(matches) != 1 or not matches[0].is_file(): | |
| raise RuntimeError(f'Missing/ambiguous epoch 320 checkpoint for {size}') | |
| import json | |
| config = json.loads((CLAP_CODE / 'src/open_clip/model_configs' / f'CLAPNaFlex-v3-{size}.json').read_text()) | |
| models.append({'id': 'clapv2_' + size.lower(), 'backend': 'clap', 'model_name': 'CLAPNaFlex-v3-' + size, | |
| 'checkpoint': str(matches[0]), 'checkpoint_bytes': matches[0].stat().st_size, | |
| 'native_dim': config['embed_dim'], 'nodes_in_original_run': nodes, 'batch': 16}) | |
| study = {'schema': 'frozen-audio-probe-study-v1', 'seed': SEED, 'models': models, | |
| 'clap_code': str(CLAP_CODE), 'clap_benchmark_code': str(CLAP_BENCH), | |
| 'transformers_revision': TRANSFORMERS_REVISION, | |
| 'backbone_policy': 'Frozen audio backbones; inference only; no reference captions or transcripts in inputs', | |
| 'stages': ['S8', 'S9', 'S10'], 'stage_levels': {'S8': 't2', 'S9': 't1', 'S10': 't0'}, | |
| 'p3_fraction': .10, 'common_pool_dim': 256, 'common_frame_dim': 64, | |
| 'pool_projection': 'Train-only PCA, retain min(256,native_dim) components; zero-pad smaller models', | |
| 'frame_projection': 'Fixed seeded orthogonal projection; no labels or validation data used', | |
| 'head_hidden': 64, 'head_dropout': .1, 'maximum_parameters_per_head': 50000, | |
| 'probe_epochs_per_stage': 1, 'gemini_probe_epochs': 2, 'whisper_gemini_epochs': 2, | |
| 'probe_batch': 256, 'probe_lr': .001, 'minimum_lr_ratio': .1, 'warmup_ratio': .05, | |
| 'weight_decay': .01, | |
| 'losses': 'Masked normalized Huber for 192 scalars and CPS; cosine+Huber Orange; frame BCE+Dice; event CE', | |
| 'benchmarks': ['emonet', 'emolia-emo', 'emolia-dim', 'crema', 'ravdess'], | |
| 'acted_adapter': {'input': '192 scalar predictions from every compared model', 'hidden': 64, | |
| 'outer_actor_folds': 5, 'inner_actor_folds': 3, 'epochs': [20, 50], 'lr': [.001, .003], | |
| 'classes': {'crema': 6, 'ravdess': 8}, | |
| 'parameters': {'crema': 12742, 'ravdess': 12872}, | |
| 'reporting': 'Supervised nested actor-disjoint adaptation; separate from fixed-taxonomy / paper zero-shot'}, | |
| 'report_space': 'laion/whisper-base-small-emotion-voice-burst', | |
| 'report_path': 'embedding-probes.html'} | |
| for model in models: | |
| model['local_path'] = str(ROOT / 'models' / model['id']) if model.get('repo') else None | |
| write(ROOT / 'study.json', study) | |
| print(ROOT / 'study.json') | |
| if __name__ == '__main__': | |
| main() | |