oumi#
Oumi (Open Universal Machine Intelligence) library.
This library provides tools and utilities for training, evaluating, and inferring with machine learning models, particularly focused on language tasks.
- Modules:
models
: Contains model architectures and related utilities.evaluate
: Functions for evaluating models.evaluate_async
: Asynchronous evaluation functionality.infer
: Functions for model inference, including interactive mode.train
: Training utilities for machine learning models.utils
: Utility functions, including logging configuration.judges
: Functions for judging datasets and conversations.
- Functions:
train()
: Train a machine learning model.evaluate_async()
: Asynchronously evaluate a model.evaluate()
: Evaluate a model using LM Harness.infer()
: Perform inference with a trained model.infer_interactive()
: Run interactive inference with a model.quantize()
: Quantize a model to reduce size and memory usage.judge_dataset()
: Judge a dataset using a model.
Examples
Training a model:
>>> from oumi import train
>>> from oumi.core.configs import TrainingConfig
>>> config = TrainingConfig(...)
>>> train(config)
Evaluating a model:
>>> from oumi import evaluate
>>> from oumi.core.configs import EvaluationConfig
>>> config = EvaluationConfig(...)
>>> results = evaluate(config)
Performing inference:
>>> from oumi import infer
>>> from oumi.core.configs import InferenceConfig
>>> config = InferenceConfig(...)
>>> outputs = infer(config)
Quantizing a model:
>>> from oumi import quantize
>>> from oumi.core.configs import QuantizationConfig
>>> config = QuantizationConfig(...)
>>> result = quantize(config)
- Judging a dataset::
>>> from oumi import judge_dataset >>> from oumi.core.configs import JudgeConfig >>> config = JudgeConfig(...) >>> judge_dataset(config, dataset)
See also
oumi.core.configs
: For configuration classes used in Oumi
- oumi.evaluate(config: EvaluationConfig) list[dict[str, Any]] [source]#
Evaluates a model using the provided configuration.
- Parameters:
config – The desired configuration for evaluation.
- Returns:
A list of evaluation results (one for each task). Each evaluation result is a dictionary of metric names and their corresponding values.
- oumi.evaluate_async(config: AsyncEvaluationConfig) None [source]#
Runs an async evaluation for a model using the provided configuration.
- Overview:
This is a utility method for running evaluations iteratively over a series of checkpoints. This method can be run in parallel with a training job to compute metrics per checkpoint without wasting valuable time in the main training loop.
- Parameters:
config – The desired configuration for evaluation.
- Returns:
None.
- oumi.infer(config: InferenceConfig, inputs: list[str] | None = None, inference_engine: BaseInferenceEngine | None = None, *, input_image_bytes: list[bytes] | None = None) list[Conversation] [source]#
Runs batch inference for a model using the provided configuration.
- Parameters:
config – The configuration to use for inference.
inputs – A list of inputs for inference.
inference_engine – The engine to use for inference. If unspecified, the engine will be inferred from config.
input_image_bytes – A list of input PNG image bytes to be used with image+text VLMs. Only used in interactive mode.
- Returns:
A list of model responses.
- Return type:
object
- oumi.infer_interactive(config: InferenceConfig, *, input_image_bytes: list[bytes] | None = None, system_prompt: str | None = None) None [source]#
Interactively provide the model response for a user-provided input.
- oumi.quantize(config: QuantizationConfig) QuantizationResult [source]#
Quantizes a model using the provided configuration.
- Parameters:
config – Quantization configuration containing model parameters, method, output path, and other settings.
- Returns:
quantized_size_bytes: Size of the quantized model in bytes
output_path: Path to the quantized model
quantization_method: Quantization method used
format_type: Format type of the quantized model
additional_info: Additional method-specific information
- Return type:
QuantizationResult containing
- Raises:
RuntimeError – If quantization fails for any reason
ValueError – If configuration is invalid for this quantizer
- oumi.synthesize(config: SynthesisConfig) list[dict[str, Any]] [source]#
Synthesize a dataset using the provided configuration.
- oumi.train(config: TrainingConfig, additional_model_kwargs: dict[str, Any] | None = None, additional_trainer_kwargs: dict[str, Any] | None = None) None [source]#
Trains a model using the provided configuration.
Subpackages#
- oumi.builders
build_chat_template()
build_collator_from_config()
build_data_collator()
build_dataset()
build_dataset_mixture()
build_metrics_function()
build_model()
build_optimizer()
build_peft_model()
build_processor()
build_quantizer()
build_reward_functions()
build_tokenizer()
build_trainer()
build_training_callbacks()
is_image_text_llm()
- oumi.cli
- Submodules
- oumi.cli.alias module
- oumi.cli.cli_utils module
- oumi.cli.distributed_run module
- oumi.cli.env module
- oumi.cli.evaluate module
- oumi.cli.fetch module
- oumi.cli.infer module
- oumi.cli.judge module
- oumi.cli.launch module
- oumi.cli.main module
- oumi.cli.quantize module
- oumi.cli.synth module
- oumi.cli.train module
- oumi.core
- oumi.datasets
AlpacaDataset
AlpacaEvalDataset
ArgillaDollyDataset
ArgillaMagpieUltraDataset
AyaDataset
C4Dataset
COCOCaptionsDataset
ChatRAGBenchDataset
ChatqaDataset
ChatqaTatqaDataset
CoALMDataset
DebugClassificationDataset
DebugPretrainingDataset
DebugSftDataset
DocmatixDataset
DolmaDataset
FalconRefinedWebDataset
FineWebEduDataset
Flickr30kDataset
Geometry3kDataset
HuggingFaceDataset
HuggingFaceVisionDataset
LetterCountGrpoDataset
LlavaInstructMixVsftDataset
LmmsLabMultimodalOpenR1Dataset
MagpieProDataset
MnistSftDataset
OpenO1SFTDataset
OrpoDpoMix40kDataset
PileV1Dataset
PixmoAskModelAnythingDataset
PixmoCapDataset
PixmoCapQADataset
PromptResponseDataset
RedPajamaDataV1Dataset
RedPajamaDataV2Dataset
SlimPajamaDataset
StarCoderDataset
TextSftJsonLinesDataset
TheCauldronDataset
TheStackDataset
TinyStoriesDataset
TinyTextbooksDataset
TldrGrpoDataset
Tulu3MixtureDataset
UltrachatH4Dataset
VLJsonlinesDataset
VisionDpoJsonlinesDataset
Vqav2SmallDataset
WikiTextDataset
WikipediaDataset
WildChatDataset
YouTubeCommonsDataset
- Subpackages
- oumi.inference
AnthropicInferenceEngine
DeepSeekInferenceEngine
GoogleGeminiInferenceEngine
GoogleVertexInferenceEngine
LambdaInferenceEngine
LlamaCppInferenceEngine
NativeTextInferenceEngine
OpenAIInferenceEngine
ParasailInferenceEngine
RemoteInferenceEngine
RemoteVLLMInferenceEngine
SGLangInferenceEngine
SambanovaInferenceEngine
TogetherInferenceEngine
VLLMInferenceEngine
- oumi.judges
- oumi.launcher
- oumi.models
- oumi.performance
- oumi.quantize
- oumi.utils
- Submodules
- oumi.utils.analysis_utils module
- oumi.utils.batching module
- oumi.utils.conversation_utils module
- oumi.utils.debug_utils module
- oumi.utils.device_utils module
- oumi.utils.distributed_utils module
- oumi.utils.git_utils module
- oumi.utils.grpo_utils module
- oumi.utils.hf_utils module
- oumi.utils.http module
- oumi.utils.image_utils module
- oumi.utils.io_utils module
- oumi.utils.logging module
- oumi.utils.math_utils module
- oumi.utils.model_caching module
- oumi.utils.packaging module
- oumi.utils.peft_utils module
- oumi.utils.placeholders module
- oumi.utils.saver module
- oumi.utils.serialization_utils module
- oumi.utils.str_utils module
- oumi.utils.torch_naming_heuristics module
- oumi.utils.torch_utils module
- oumi.utils.verl_model_merger module
- oumi.utils.version_utils module