afrisign-encoder-best-models / code /docs /EXPERIMENT_CODE_MAP.md
luciayen's picture
Upload best AfriSign Encoder checkpoints and documentation
3d02762 verified
|
Raw
History Blame Contribute Delete
8.14 kB

AfriSignEncoder Experiment Code Map

This document maps the research experiments to the code that prepares data, trains models, aggregates results, and checks reproducibility. It is meant to be the first place to look before submitting PSC jobs or explaining the codebase to a collaborator.

Quick Scaffold Check

Run this from the repository root before pushing or submitting jobs:

python scripts/check_experiment_scaffold.py

On PSC, also check Slurm script syntax:

.venv/bin/python scripts/check_experiment_scaffold.py --bash

Data Preparation Code

Purpose Main code Notes
Global image/video/landmark manifests scripts/build_global_manifests.py, scripts/build_remote_manifests.py Remote-first catalogs; raw data stays outside git
CASL RGB + pose paired manifest scripts/build_casl_rgb_pose_pair_manifest.py Random split; useful baseline only
CASL signer-independent manifest scripts/build_casl_signer_independent_rgb_pose_manifest.py Preferred protocol for CASL
CASL official split audit scripts/build_casl_official_rgb_pose_manifest.py, scripts/filter_manifest_unseen_test_signers.py Used to compare against reported CASL split counts and signer leakage
CASL/KSL video frames scripts/extract_paired_video_frames.py, scripts/extract_word_video_frames.py Converts videos to fixed frame folders for cheaper RGB training
KSL word RGB + pose manifest scripts/build_ksl_word_rgb_pose_manifest.py Uses local/remote KSL word video sources when available
KSLC fixed image split scripts/build_kslc_fixed_image_manifest.py Uses labeled Kaggle train.csv; hidden Kaggle test stays unlabeled
NSL RGB image manifest scripts/build_nsl_local_image_manifest.py Used when local NSL images are available
GSL/GhSL health sentence landmarks scripts/download_gsl_sentence_landmarks.py, scripts/build_gsl_sentence_landmark_manifest.py Uses Hugging Face landmark dataset plus metadata
Leakage audit scripts/audit_video_pose_manifest_leakage.py Checks clip/path/stem/signer overlap

Single-Language And Modality Experiments

Experiment Dataset/language Modality Main training code PSC job Aggregator/output
KSL notebook baselines KSL word-level RGB, pose, fusion ksl_word_video_multimodal_experiments.ipynb Colab/manual Notebook result tables
CASL RGB/pose architecture sweep CASL-W60 RGB, pose, RGB+pose experiments/exp5_video_rgb_pose_architectures.py psc_jobs/60_casl_rgb_pose_arch_array.sbatch scripts/aggregate_video_rgb_pose_results.py
CASL signer-independent modality CASL-W60 RGB, pose, fusion experiments/exp5_video_rgb_pose_architectures.py psc_jobs/64_casl_signer_independent_modality_array.sbatch results/rgb_pose_summary_signer_independent/
CASL frame RGB baseline CASL-W60 RGB frames experiments/exp7_frame_baselines.py psc_jobs/67_e2_rgb_casl_si_frame_array.sbatch scripts/aggregate_frame_baseline_results.py
KSL frame/pose ablation KSL word videos RGB frames, pose, fusion experiments/exp4_frame_pose_modality_ablation.py psc_jobs/77_e4_ksl_frame_pose_modality_array.sbatch scripts/aggregate_video_rgb_pose_results.py
GhSL/GSL health sentence pose GSL Health Sentences pose sentence experiments/exp6_ghsl_health_sentence_landmark.py psc_jobs/70_ghsl_health_sentence_landmark_array.sbatch scripts/aggregate_ghsl_health_sentence_results.py

Multilingual Pose Experiments

Experiment Meaning Main training code PSC job Aggregator
E1 monolingual pose Separate model per language experiments/exp1_single_baseline.py psc_jobs/10_e1_pose_mono_array.sbatch scripts/aggregate_multilingual_landmark_results.py
E2 naive pooled pose One shared encoder trained on pooled pose data experiments/exp2_pooled_landmark_baseline.py psc_jobs/20_e2_pooled_pose_array.sbatch scripts/aggregate_multilingual_landmark_results.py
E2b pooled architecture sweep Pooled variants such as BiLSTM/TCN/Transformer/TransSLR experiments/exp2b_pooled_landmark_architectures.py psc_jobs/25_e2b_pooled_architectures_array.sbatch scripts/aggregate_pooled_architecture_results.py
E2c pooled TransSLR CASL-SI Stronger pooled pose baseline using signer-independent CASL experiments/exp2c_pooled_transslr_casl_si.py psc_jobs/27_e2c_pooled_transslr_casl_si_array.sbatch scripts/aggregate_pooled_architecture_results.py
E3 language-aware pose Shared encoder with language conditioning experiments/exp3_language_aware_landmark.py psc_jobs/30_e3_language_aware_pose_array.sbatch scripts/aggregate_multilingual_landmark_results.py
E3 proposed pose encoder Shared encoder + language embeddings/adapters/metric loss experiments/exp3b_proposed_language_aware_encoder.py psc_jobs/37_e3b_metric_adapter_array.sbatch scripts/aggregate_metric_adapter_results.py
E4 balanced adapter pose Balanced multilingual adapter model experiments/exp4_balanced_adapter_landmark.py psc_jobs/35_e4_balanced_adapter_pose_array.sbatch scripts/aggregate_multilingual_landmark_results.py

Unified Mixed-Modality Experiments

Experiment Main idea Main training code PSC job Aggregator
Exp8 unified mixed encoder One model across pose word, pose image, pose sentence, RGB image, RGB word tasks experiments/exp8_unified_mixed_encoder.py psc_jobs/80_exp8_unified_mixed_encoder_array.sbatch scripts/aggregate_unified_encoder_results.py
Exp8 full multimodal Adds prepared RGB frame streams where available experiments/exp8_unified_mixed_encoder.py psc_jobs/82_exp8_unified_full_multimodal_array.sbatch scripts/aggregate_unified_encoder_results.py
Exp8-v2 strong unified Stronger unified model with better training defaults experiments/exp8_v2_strong_unified_encoder.py psc_jobs/84_exp8_v2_strong_unified_full_array.sbatch scripts/aggregate_unified_encoder_results.py
Exp9 KSL+CASL+NSL focused Main paper track focused on the reliable languages/modalities experiments/exp9_kcn_focused_unified_encoder.py psc_jobs/90_kcn_joint_experiments_array.sbatch scripts/aggregate_kcn_focus_results.py
Exp9-v2 research upgrade E9.5-E9.7 ArcFace/CosFace + center-loss upgrade over the focused baseline experiments/exp9b_kcn_research_unified_encoder.py psc_jobs/92_kcn_v2_research_array.sbatch scripts/aggregate_kcn_focus_results.py

Exp9 KSL+CASL+NSL Joint Experiments

These are the focused joint experiments for the paper after removing the noisiest train-only or huge-class streams.

ID Name What it tests
E9.1 KSL+CASL+NSL pooled pose-only Strong pooled TransSLR-style pose baseline
E9.2 KSL+CASL+NSL proposed pose-only Same languages, but language/task-aware unified encoder
E9.3 KSL+CASL+NSL proposed RGB/image-only Whether RGB/image appearance streams can learn useful shared representations
E9.4 KSL+CASL+NSL proposed RGB+pose/image Main multimodal focused model
E9.5 KSL+CASL+NSL research-v2 pose-only ArcFace/CosFace + center loss upgrade for the pose-only winner
E9.6 KSL+CASL+NSL research-v2 RGB/image-only Metric-learning upgrade for RGB/image streams
E9.7 KSL+CASL+NSL research-v2 RGB+pose/image Metric-learning upgrade for the full multimodal model

Submit the full focused sweep:

sbatch --parsable psc_jobs/90_kcn_joint_experiments_array.sbatch

Aggregate after jobs finish:

.venv/bin/python scripts/aggregate_kcn_focus_results.py

What Should Not Be Committed

The repository should track source code, notebooks, docs, small metadata, and manifest JSON files. Do not commit raw videos, extracted frames, checkpoints, or large generated result folders unless a specific release artifact is requested.