# cli.main { #axolotl.cli.main }

`cli.main`

Click CLI definitions for various axolotl commands.

## Functions

| Name | Description |
| --- | --- |
| [cli](#axolotl.cli.main.cli) | Axolotl CLI - Train and fine-tune large language models |
| [evaluate](#axolotl.cli.main.evaluate) | Evaluate a model. |
| [fetch](#axolotl.cli.main.fetch) | Fetch example configs or other resources. |
| [inference](#axolotl.cli.main.inference) | Run inference with a trained model. |
| [merge_lora](#axolotl.cli.main.merge_lora) | Merge trained LoRA adapters into a base model. |
| [merge_sharded_fsdp_weights](#axolotl.cli.main.merge_sharded_fsdp_weights) | Merge sharded FSDP model weights. |
| [preprocess](#axolotl.cli.main.preprocess) | Preprocess datasets before training. |
| [train](#axolotl.cli.main.train) | Train or fine-tune a model. |

### cli { #axolotl.cli.main.cli }

```python
cli.main.cli()
```

Axolotl CLI - Train and fine-tune large language models

### evaluate { #axolotl.cli.main.evaluate }

```python
cli.main.evaluate(config, accelerate, **kwargs)
```

Evaluate a model.

Args:
    config: Path to `axolotl` config YAML file.
    accelerate: Whether to use `accelerate` launcher.
    kwargs: Additional keyword arguments which correspond to CLI args or `axolotl`
        config options.

### fetch { #axolotl.cli.main.fetch }

```python
cli.main.fetch(directory, dest)
```

Fetch example configs or other resources.

Available directories:
- examples: Example configuration files
- deepspeed_configs: DeepSpeed configuration files

Args:
    directory: One of `examples`, `deepspeed_configs`.
    dest: Optional destination directory.

### inference { #axolotl.cli.main.inference }

```python
cli.main.inference(config, accelerate, gradio, **kwargs)
```

Run inference with a trained model.

Args:
    config: Path to `axolotl` config YAML file.
    accelerate: Whether to use `accelerate` launcher.
    gradio: Whether to use Gradio browser interface or command line for inference.
    kwargs: Additional keyword arguments which correspond to CLI args or `axolotl`
        config options.

### merge_lora { #axolotl.cli.main.merge_lora }

```python
cli.main.merge_lora(config, **kwargs)
```

Merge trained LoRA adapters into a base model.

Args:
    config: Path to `axolotl` config YAML file.
    kwargs: Additional keyword arguments which correspond to CLI args or `axolotl`
        config options.

### merge_sharded_fsdp_weights { #axolotl.cli.main.merge_sharded_fsdp_weights }

```python
cli.main.merge_sharded_fsdp_weights(config, accelerate, **kwargs)
```

Merge sharded FSDP model weights.

Args:
    config: Path to `axolotl` config YAML file.
    accelerate: Whether to use `accelerate` launcher.
    kwargs: Additional keyword arguments which correspond to CLI args or `axolotl`
        config options.

### preprocess { #axolotl.cli.main.preprocess }

```python
cli.main.preprocess(config, cloud=None, **kwargs)
```

Preprocess datasets before training.

Args:
    config: Path to `axolotl` config YAML file.
    cloud: Path to a cloud accelerator configuration file.
    kwargs: Additional keyword arguments which correspond to CLI args or `axolotl`
        config options.

### train { #axolotl.cli.main.train }

```python
cli.main.train(config, accelerate, cloud=None, sweep=None, **kwargs)
```

Train or fine-tune a model.

Args:
    config: Path to `axolotl` config YAML file.
    accelerate: Whether to use `accelerate` launcher.
    cloud: Path to a cloud accelerator configuration file
    sweep: Path to YAML config for sweeping hyperparameters.
    kwargs: Additional keyword arguments which correspond to CLI args or `axolotl`
        config options.
