CSV & Video Training Workflows
Relevant source files
The following files were used as context for generating this wiki page:
The oxidize-train crate provides tools for CPU-based training of classifiers and generative models. It specifically supports Multi-Layer Perceptron (MLP) classification of CSV datasets, video clip classification for engagement or creator labels, and autoregressive next-frame video generation.
These workflows are distinct from the LoRA and SFT fine-tuning capabilities found in oxidize-finetuning, focusing instead on structured data and multimodal video paths. Video-related tasks require ffmpeg to be present on the system path.
Sources: oxidize-train/AGENTS.md:1-12, CLAUDE.md:175-177, oxidize-core/src/lib.rs:105-107
CSV Classification Workflow
The CSV workflow trains an MLP classifier over structured features provided in a CSV format. The system loads the dataset and maps a specified column as the target label for training.
CSV Training Architecture
The following diagram illustrates the flow from raw CSV input to a trained MLP model:
The workflow utilizes load_csv_dataset to ingest data and train_classifier to perform the optimization steps.
Sources: oxidize-train/AGENTS.md:14-16, oxidize-train/AGENTS.md:21-23
Configuration Options
Users configure the training process through several CLI parameters:
| Parameter | Type | Description | Default |
|---|---|---|---|
--train-csv | File Path | Path to the source CSV file | N/A |
--label-column | Integer | Index of the column containing target labels | 0 |
--epochs | Integer | Number of full passes over the dataset | 20 |
--batch-size | Integer | Number of samples per gradient update | 32 |
--hidden-size | Integer | Number of neurons in the MLP hidden layer | 128 |
--learning-rate | Float | Step size for weight updates | 1e-3 |
Sources: oxidize-train/AGENTS.md:21-23
Video Training Workflows
Video workflows involve two primary tasks: classification of video clips and autoregressive generation of video frames. Both subcommands rely on ffmpeg for frame sampling and processing.
Video Classification
The video classifier identifies patterns related to virality, engagement, or specific creator labels. It processes video clips using the train_video_classifier function and the LabelTask structure to manage objectives.
Generative Video Training
The gen-train subcommand initializes the training of an autoregressive next-frame generator. This model predicts subsequent frames based on temporal context. Once trained, the generate command uses the resulting checkpoint to synthesize new video content.
Sources: oxidize-train/AGENTS.md:8-10, oxidize-train/AGENTS.md:24-27
System Dependencies and Integration
The training workflows are integrated into the broader oxidize ecosystem but maintain specific external dependencies for multimodal processing.
- FFmpeg Requirement: The
video,gen-train, andgeneratesubcommands perform an early check usingffmpeg_available(). If the binary is missing, the workflow fails immediately to prevent runtime errors during frame extraction. - Relationship to Fine-tuning: While
oxidize-trainhandles CSV and Video training, theoxidize-finetuningcrate is reserved for LLM-specific tasks like LoRA, SFT, and iterative self-train cycles using GGUF base models. - Core Primitives: The training logic utilizes tensor primitives and configuration structures (e.g.,
TrainingConfig,FrameConfig) defined within theoxidize-coreandoxidize-trainlibraries.
Sources: oxidize-train/AGENTS.md:29-30, CLAUDE.md:175-177, PRD.md:275-279
Conclusion
CSV and Video training workflows provide a specialized CPU-based training path within the project. By separating structured data classification and video frame processing from standard LLM inference, the system allows for targeted multimodal development using standard tools like ffmpeg.
Sources: oxidize-train/AGENTS.md:1-12