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)
Tune a model:
>>> from oumi import tune
>>> from oumi.core.configs import TuningConfig
>>> config = TuningConfig(...)
>>> tune(config)
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, verbose: bool = False) dict[str, Any] | None[source]#
Trains a model using the provided configuration.
- oumi.tune(config: TuningConfig) None[source]#
Tunes hyperparameters for 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_rollout_function()build_tokenizer()build_trainer()build_training_callbacks()build_tuner()is_image_text_llm()
- oumi.cli
- Submodules
- oumi.cli.alias module
- oumi.cli.analyze module
- oumi.cli.cache 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.cli.tune module
- oumi.core
- oumi.datasets
AlpacaDatasetAlpacaEvalDatasetArgillaDollyDatasetArgillaMagpieUltraDatasetAyaDatasetC4DatasetCOCOCaptionsDatasetChatRAGBenchDatasetChatqaDatasetChatqaTatqaDatasetCoALMDatasetDebugClassificationDatasetDebugPretrainingDatasetDebugSftDatasetDocmatixDatasetDolmaDatasetFalconRefinedWebDatasetFineWebEduDatasetFlickr30kDatasetGeometry3kDatasetHuggingFaceDatasetHuggingFaceVisionDatasetLetterCountGrpoDatasetLlavaInstructMixVsftDatasetLmmsLabMultimodalOpenR1DatasetMagpieProDatasetMnistSftDatasetOpenO1SFTDatasetOpenbmbRlaifVDatasetOrpoDpoMix40kDatasetPileV1DatasetPixmoAskModelAnythingDatasetPixmoCapDatasetPixmoCapQADatasetPromptResponseDatasetRedPajamaDataV1DatasetRedPajamaDataV2DatasetSlimPajamaDatasetStarCoderDatasetTextSftJsonLinesDatasetTheCauldronDatasetTheStackDatasetTinyStoriesDatasetTinyTextbooksDatasetTldrGrpoDatasetTulu3MixtureDatasetUltrachatH4DatasetVLJsonlinesDatasetVisionDpoJsonlinesDatasetVqav2SmallDatasetWikiTextDatasetWikipediaDatasetWildChatDatasetYouTubeCommonsDataset- Subpackages
- oumi.inference
AnthropicInferenceEngineBedrockInferenceEngineDeepSeekInferenceEngineGoogleGeminiInferenceEngineGoogleVertexInferenceEngineLambdaInferenceEngineLlamaCppInferenceEngineNativeTextInferenceEngineOpenAIInferenceEngineParasailInferenceEngineRemoteInferenceEngineRemoteVLLMInferenceEngineSGLangInferenceEngineSambanovaInferenceEngineTogetherInferenceEngineVLLMInferenceEngine
- oumi.judges
- oumi.launcher
- oumi.models
- oumi.performance
- oumi.quantize
- oumi.utils
- Submodules
- oumi.utils.analysis_utils module
- oumi.utils.batching module
- oumi.utils.cache_utils 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_cache_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