# Конфигурация

Конфигурация LeRobot представляет собой обычные dataclasses, которые парсятся с помощью [draccus](https://github.com/dlwh/draccus), поэтому каждое поле можно задать из CLI. `TrainPipelineConfig` — это объект верхнего уровня для `lerobot-train`.

Полиморфные конфигурации (политики, роботы, среды) используют `draccus.ChoiceRegistry`: подкласс регистрирует себя с помощью `@register_subclass("name")` и после этого может быть выбран по этому имени в командной строке.

## TrainPipelineConfig[[lerobot.configs.train.TrainPipelineConfig]]

#### lerobot.configs.train.TrainPipelineConfig[[lerobot.configs.train.TrainPipelineConfig]]

```python
lerobot.configs.train.TrainPipelineConfig(dataset: DatasetConfig, env: lerobot.envs.configs.EnvConfig | None = None, policy: lerobot.configs.policies.PreTrainedConfig | None = None, reward_model: lerobot.configs.rewards.RewardModelConfig | None = None, output_dir: pathlib.Path | None = None, job_name: str | None = None, resume: bool = False, seed: int | None = 1000, cudnn_deterministic: bool = False, tf32: bool | None = True, num_workers: int = 4, batch_size: int = 8, prefetch_factor: int = 4, persistent_workers: bool = True, dataloader_multiprocessing_context: str | None = 'spawn', steps: int = 100000, env_eval_freq: int = 20000, log_freq: int = 200, eval_steps: int = 0, max_eval_samples: int = 0, tolerance_s: float = 0.0001, save_checkpoint: bool = True, save_freq: int = 20000, checkpoint_format: CheckpointFormat = <CheckpointFormat.SAFETENSORS: 'safetensors'>, use_policy_training_preset: bool = True, optimizer: lerobot.optim.optimizers.OptimizerConfig | None = None, scheduler: lerobot.optim.schedulers.LRSchedulerConfig | None = None, parallelism: ParallelismConfig = <factory>, accelerator: AcceleratorConfig = <factory>, eval: EvalConfig = <factory>, ema: lerobot.optim.ema.EMAConfig | None = None, trackio: TrackioConfig = <factory>, peft: lerobot.configs.default.PeftConfig | None = None, job: JobConfig = <factory>, save_checkpoint_to_hub: bool = False, sample_weighting: lerobot.utils.sample_weighting.SampleWeightingConfig | None = None, rename_map: dict = <factory>)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/configs/train.py#L126)

## PreTrainedConfig[[lerobot.configs.PreTrainedConfig]]

#### lerobot.configs.PreTrainedConfig[[lerobot.configs.PreTrainedConfig]]

```python
lerobot.configs.PreTrainedConfig(n_obs_steps: int = 1, input_features: dict[str, lerobot.configs.types.PolicyFeature] | None = <factory>, output_features: dict[str, lerobot.configs.types.PolicyFeature] | None = <factory>, device: str | None = None, dtype: torch.dtype | None = None, use_amp: bool = False, use_peft: bool = False, push_to_hub: bool = True, repo_id: str | None = None, private: bool | None = None, tags: list[str] | None = None, license: str | None = None, pretrained_path: pathlib.Path | None = None, pretrained_revision: str | None = None)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/configs/policies.py#L42)

**Параметры:**

n_obs_steps : Количество шагов среды, наблюдения с которых передаются в политику (текущий шаг и дополнительные шаги, идущие назад).

input_features : Словарь, определяющий PolicyFeature входных данных для политики. Ключ представляет имя входных данных, а значением является PolicyFeature, состоящий из атрибутов FeatureType и shape.

output_features : Словарь, определяющий PolicyFeature выходных данных для политики. Ключ представляет имя выходных данных, а значением является PolicyFeature, состоящий из атрибутов FeatureType и shape.

normalization_mapping : словарь, сопоставляющий значение str типа FeatureType (например, "STATE", "VISUAL") с соответствующим NormalizationMode (например, NormalizationMode.MIN_MAX)

Базовый класс конфигурации для моделей политики.

## DatasetConfig[[lerobot.configs.DatasetConfig]]

#### lerobot.configs.DatasetConfig[[lerobot.configs.DatasetConfig]]

```python
lerobot.configs.DatasetConfig(repo_id: str, repo_type: str = 'dataset', root: str | None = None, episodes: list[int] | None = None, exclude_episodes: list[int] | None = None, image_transforms: ImageTransformsConfig = <factory>, revision: str | None = None, use_imagenet_stats: bool = True, video_backend: str = <factory>, return_uint8: bool = False, depth_output_unit: str = 'mm', streaming: bool = False, streaming_episode_pool_size: int | None = None, streaming_sampling_strategy: StreamingSamplingStrategy = <StreamingSamplingStrategy.REMAINING: 'remaining'>, streaming_prefetch_episodes: int = 8, streaming_byte_budget_gb: float = 8.0, streaming_decode_threads: int = 2, streaming_decoded_queue_size: int = 8, streaming_native_http_connections: int | None = None, streaming_native_http_subranges: int = 1, streaming_sidecar_lock_timeout_s: float = 1800, video_decoder_cache_size: int | None = None, eval_split: float = 0.0)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/configs/default.py#L30)

## EvalConfig[[lerobot.configs.EvalConfig]]

#### lerobot.configs.EvalConfig[[lerobot.configs.EvalConfig]]

```python
lerobot.configs.EvalConfig(n_episodes: int = 50, batch_size: int = 0, use_async_envs: bool = True, recording: bool = False, recording_repo_id: str | None = None, recording_private: bool = False, max_episode_steps: int | None = None)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/configs/default.py#L169)

## TrackioConfig[[lerobot.configs.TrackioConfig]]

#### lerobot.configs.TrackioConfig[[lerobot.configs.TrackioConfig]]

```python
lerobot.configs.TrackioConfig(enable: bool = False, disable_artifact: bool = True, project: str = 'lerobot', space_id: str | None = None, private: bool | None = None, run_name: str | None = None, resume: str | None = None, capture_console: bool = True)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/configs/default.py#L136)

Отслеживание обучающих прогонов с помощью Trackio (https://huggingface.co/docs/trackio).

Запуски хранятся в локальной базе данных SQLite по пути `~/.cache/huggingface/trackio` и просматриваются с помощью `trackio show --project <project>`. Чтобы синхронизировать запуск с Hugging Face Space, установите значение `space_id`.

