How omkarmulakala/curio_next works
Audio Context Layer adapts Qwen2-Audio-7B-Instruct with LoRA for multiple-choice, audio-grounded question answering. Dataset preparation builds and validates leakage-remediated splits; training loads records, prepares audio/question/answer batches, adapts the language-model decoder, and saves an adapter. For use, inference combines an audio recording, question, and choices to generate an answer; evaluation compares predictions with references and reports metrics and errors. Reporting and training-curve plotting are additional analysis capabilities. CLI wiring is described in the README, but several scripts were not sampled, so uncertain internal calls are omitted.
Main entry points: run_inference.py Inference command · train.py Train command · evaluate.py Evaluation metrics · dataset_loader.py Manifest loader
Components 27
Dataset preparation
- Prepare manifests
scripts/prepare_dataset.py - Build manifests
scripts/build_manifests.py - Split and leakage checks
src/data/splitting.py - Manifest loader
src/data/dataset_loader.py - Dataset validation
src/data/validation.py
Model and training
- Train command
scripts/train.py - Conversation preparation
src/data/preprocessing.py - Batch collator
src/data/collator.py - Audio loading
src/utils/audio.py - Qwen2-Audio
src/models/qwen2_audio.py - LoRA adaptation
src/models/lora.py - Trainer
src/training/trainer.py
Answering
- Inference command
scripts/run_inference.py - Answer generation
src/models/qwen2_audio.py
Evaluation and analysis
- Evaluation command
scripts/evaluate.py - Evaluation metrics
src/evaluation/evaluate.py - Answer matching
src/evaluation/metrics.py - Error analysis
src/evaluation/error_analysis.py - Report generation
scripts/generate_report.py - Training plots
src/training/plots.py
Other components
- Researcher
- DCASE data
- Audio recordings
- Audio QA inputs
- Saved adapter
- Predictions
- Metrics and reports
Connections 35
- Researcher → Prepare manifests: runs preparation
- DCASE data → Prepare manifests: provides metadata
- Prepare manifests → Build manifests: builds manifests
- Build manifests → Split and leakage checks: assigns splits
- Split and leakage checks → Manifest loader: defines split records
- Researcher → Dataset validation: requests validation
- Dataset validation → Manifest loader: loads splits
- Researcher → Train command: starts training
- Train command → Manifest loader: loads records
- Train command → Qwen2-Audio: loads model
- Train command → LoRA adaptation: applies adapters
- Train command → Trainer: builds trainer
- Trainer → Batch collator: batches records
- Batch collator → Conversation preparation: formats prompts
- Batch collator → Audio loading: loads audio
- Trainer → Saved adapter: saves adapter
- Researcher → Inference command: requests answers
- Inference command → Manifest loader: loads records
- Inference command → Audio loading: decodes audio
- Inference command → Qwen2-Audio: loads model
- Inference command → Saved adapter: loads adapter
- Inference command → Answer generation: requests generation
- Answer generation → Conversation preparation: formats prompt
- Audio QA inputs → Inference command: supplies questions
- Audio recordings → Inference command: supplies recordings
- Answer generation → Predictions: produces answers
- Researcher → Evaluation command: requests evaluation
- Predictions → Evaluation command: provides predictions
- Evaluation command → Evaluation metrics: evaluates records
- Evaluation metrics → Answer matching: computes accuracy
- Evaluation metrics → Error analysis: identifies errors
- Evaluation metrics → Metrics and reports: writes metrics
- Researcher → Report generation: requests report
- Report generation → Metrics and reports: generates report
- Researcher → Training plots: requests plots