# SmolVLA
SmolVLA模型基于基模型进行微调，支持全参数微调（FFT）和LORA微调。
- conda环境：lerobot
- 默认超参数：batch_size=64、steps=100000、save_freq=10000、chunk_size=50、optimizer_lr=1e-4、scheduler_decay_lr=2.5e-6、scheduler_warmup_steps=1000、scheduler_decay_steps=30000
**训练启动命令（FFT）**
```
conda activate lerobot && cd /opt/cloud/lerobot_ascend_notebook/lerobot && HF_HOME=${HF_CACHE} HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 accelerate launch --num_processes=${MA_NUM_GPUS} scripts/train.py --policy.type=smolvla --output_dir=${OUTPUT}/_ckpt --dataset.root=${DATASET} --dataset.repo_id=cloudrobo --policy.push_to_hub=false --wandb.enable=true --wandb.mode=offline --policy.pretrained_path=${BASE_MODEL}
```
**训练启动命令（LORA）**
1. 复制基模型到输出目录
   ```
   if [ -d "${BASE_MODEL}/base" ]; then
   cp -r ${BASE_MODEL}/base ${OUTPUT}/base
   else
   cp -r ${BASE_MODEL} ${OUTPUT}/base
   fi
   ```
   

2. 启动LORA训练
   ```
   conda activate lerobot && cd /opt/cloud/lerobot_ascend_notebook/lerobot && HF_HOME=${HF_CACHE} HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 accelerate launch --num_processes=${MA_NUM_GPUS} scripts/train.py --policy.type=smolvla --output_dir=${OUTPUT}/_ckpt --dataset.root=${DATASET} --dataset.repo_id=cloudrobo --policy.push_to_hub=false --wandb.enable=true --wandb.mode=offline --policy.pretrained_path=${BASE_MODEL} --peft.method_type=LORA
   ```
   
**推理部署启动命令**
```
conda activate lerobot && cd /opt/cloud/lerobot_ascend_notebook/lerobot && HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 HF_HOME=/home/ma-user/.cache/huggingface/hf_cache python -m scripts.serve_policy --policy_type=smolvla --checkpoint_path=${CHECKPOINT} --base_model_name_or_path=${CHECKPOINT}/base
```
