Table of Contents
Fetching ...

BatCoder: Self-Supervised Bidirectional Code-Documentation Learning via Back-Translation

Jingwen Xu, Yiyang Lu, Zisu Huang, Changze Lv, Xiaohua Wang, Shizheng Li, Zhibo Xu, Zhengkang Guo, Zhengyuan Wang, Muzhao Tian, Xuanjing Huang, Xiaoqing Zheng

TL;DR

BatCoder tackles the scarcity of code-documentation supervision by proposing a self-supervised back-translation framework that jointly learns code generation and documentation synthesis from unlabeled code. It optimizes a bidirectional two-stage transformation, using a reconstruction-based similarity reward to guide both directions without external paired data. The approach demonstrates strong improvements on Python benchmarks (HumanEval, MBPP) and multilingual Go/Ruby tasks, especially in low-resource settings, and scales favorably with model size and data. This back-translation signaling enables practical, data-efficient learning for code tasks and suggests broader applicability to related code-centric problems.

Abstract

Training LLMs for code-related tasks typically depends on high-quality code-documentation pairs, which are costly to curate and often scarce for niche programming languages. We introduce BatCoder, a self-supervised reinforcement learning framework designed to jointly optimize code generation and documentation production. BatCoder employs a back-translation strategy: a documentation is first generated from code, and then the generated documentation is used to reconstruct the original code. The semantic similarity between the original and reconstructed code serves as an implicit reward, enabling reinforcement learning to improve the model's performance both in generating code from documentation and vice versa. This approach allows models to be trained using only code, substantially increasing the available training examples. Evaluated on HumanEval and MBPP with a 7B model, BatCoder achieved 83.5% and 81.0% pass@1, outperforming strong open-source baselines. Moreover, the framework demonstrates consistent scaling with respect to both training corpus size and model capacity.

BatCoder: Self-Supervised Bidirectional Code-Documentation Learning via Back-Translation

TL;DR

BatCoder tackles the scarcity of code-documentation supervision by proposing a self-supervised back-translation framework that jointly learns code generation and documentation synthesis from unlabeled code. It optimizes a bidirectional two-stage transformation, using a reconstruction-based similarity reward to guide both directions without external paired data. The approach demonstrates strong improvements on Python benchmarks (HumanEval, MBPP) and multilingual Go/Ruby tasks, especially in low-resource settings, and scales favorably with model size and data. This back-translation signaling enables practical, data-efficient learning for code tasks and suggests broader applicability to related code-centric problems.

Abstract

Training LLMs for code-related tasks typically depends on high-quality code-documentation pairs, which are costly to curate and often scarce for niche programming languages. We introduce BatCoder, a self-supervised reinforcement learning framework designed to jointly optimize code generation and documentation production. BatCoder employs a back-translation strategy: a documentation is first generated from code, and then the generated documentation is used to reconstruct the original code. The semantic similarity between the original and reconstructed code serves as an implicit reward, enabling reinforcement learning to improve the model's performance both in generating code from documentation and vice versa. This approach allows models to be trained using only code, substantially increasing the available training examples. Evaluated on HumanEval and MBPP with a 7B model, BatCoder achieved 83.5% and 81.0% pass@1, outperforming strong open-source baselines. Moreover, the framework demonstrates consistent scaling with respect to both training corpus size and model capacity.
Paper Structure (34 sections, 10 equations, 2 figures, 3 tables, 1 algorithm)

This paper contains 34 sections, 10 equations, 2 figures, 3 tables, 1 algorithm.

Figures (2)

  • Figure 1: BatCoder training pipeline via self-supervised back-translation. Given an unlabeled code snippet $c$, the model first generates multiple documentation candidates in Stage 1 (code-to-documentation). After extracting content and filtering for structural validity, each valid candidate is used to sample a single reconstructed code in Stage 2 (documentation-to-code). Rewards consist of code similarity and document format compliance, allocated differently to the two stages. Both directions are jointly optimized via Reinforce++ algorithm.
  • Figure 2: Training dynamics of BatCoder. All curves show a consistent upward trend, indicating that the reward signals are aligned with the training objectives and correlate with improved model performance.