SantaCoder: don't reach for the stars!
About
The BigCode project is an open-scientific collaboration working on the responsible development of large language models for code. This tech report describes the progress of the collaboration until December 2022, outlining the current state of the Personally Identifiable Information (PII) redaction pipeline, the experiments conducted to de-risk the model architecture, and the experiments investigating better preprocessing methods for the training data. We train 1.1B parameter models on the Java, JavaScript, and Python subsets of The Stack and evaluate them on the MultiPL-E text-to-code benchmark. We find that more aggressive filtering of near-duplicates can further boost performance and, surprisingly, that selecting files from repositories with 5+ GitHub stars deteriorates performance significantly. Our best model outperforms previous open-source multilingual code generation models (InCoder-6.7B and CodeGen-Multi-2.7B) in both left-to-right generation and infilling on the Java, JavaScript, and Python portions of MultiPL-E, despite being a substantially smaller model. All models are released under an OpenRAIL license at https://hf.co/bigcode.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Code Generation | HumanEval (test) | Pass@118 | 444 | |
| Code Generation | MBPP (test) | Pass@135 | 276 | |
| Code Generation | DS-1000 1.0 (test) | Matplotlib21.6 | 19 | |
| Docstring Generation | CodeXGLUE Python (test) | BLEU19.74 | 11 | |
| Fill-in-the-Middle Code Completion | FIM-Tasks Single-Line Infilling (test) | Python Score44 | 7 | |
| Code Generation | ODEX | English Overall Pass@137.7 | 6 | |
| Secret Detection | GitHub Issue Reports (test) | Precision93.05 | 5 | |
| Code Summarization | CodeXGLUE Python | BLEU19.74 | 4 | |
| Python return type prediction | Pradel benchmarks Fried adaptation (test) | Non-None F166.9 | 4 | |
| Single-line fill-in-the-middle | FIM Java (test) | Line Exact Match62 | 3 |