Robo-Instruct: Simulator-Augmented Instruction Alignment For Finetuning CodeLLMs
<|reference_start|>Robo-Instruct: Simulator-Augmented Instruction Alignment For Finetuning CodeLLMs: Open-weight LLMs are particularly appealing choices to generate training data for fine-tuning Code LLMs on domain-specific service robot applications because they are cost-effective, customizable, and offer better privacy protection. However, unlike proprietary LLMs, open-weight models are more error-prone and often produce programs that violate domain-specific constraints. A promising solution is to incorporate a robot simulator with a well-defined environment to verify program correctness. Yet, these environments require pre-enumeration of relevant entities and their states, which limits the diversity of programs that can be effectively verified. In this work, we introduce ROBO-INSTRUCT that preserves the diversity of programs generated by an LLM while providing the correctness of simulator-based checking. ROBO-INSTRUCT introduces ROBOSIM to dynamically synthesize consistent simulation environments for each generated program. Moreover, ROBO-INSTRUCT handles subtler instruction-program inconsistencies that do not result in a constraint violation via INSTALIGN, an LLM-aided instruction-program alignment process. Given domain-specific APIs and a few seed examples, ROBO-INSTRUCT can leverage an 8B Llama3 model to generate a training dataset for fine-tuning a 7B CodeLlama model. Our fine-tuned model achieves a 28.75% improvement in pass@1 over the original base model and a 13.75% improvement compared to its SELF-INSTRUCT-finetuned counterparts, even surpassing the performance of a few proprietary LLMs, such as GPT-3.5-Turbo and Gemini-Pro.<|reference_end|>
@article{hu2024robo-instruct:,
    title={Robo-Instruct: Simulator-Augmented Instruction Alignment For Finetuning
  CodeLLMs},
    author={Zichao Hu, Junyi Jessy Li, Arjun Guha, Joydeep Biswas},
    journal={arXiv preprint arXiv:2405.20179},
    year={2024},
    archivePrefix={arXiv},
    eprint={2405.20179},
    primaryClass={cs.CL cs.AI cs.RO}
}