Hot or Cold? Adaptive Temperature Sampling for Code Generation with Large Language Models

Yuqi Zhu, Jia Li, Ge Li, YunFei Zhao, Jia Li +2 more
9/6/2023
cs.SEcs.CL

No official code found. Best implementation: LJ2lijia/AdapT (9 stars, MIT, last commit 2023-12-28).

Abstract

Recently, Large Language Models (LLMs) have shown impressive abilities in code generation. However, existing LLMs' decoding strategies are designed for Natural Language (NL) generation, overlooking the differences between NL and programming languages (PL). Due to this oversight, a better decoding strategy for code generation remains an open question. In this paper, we conduct the first systematic study to explore a decoding strategy specialized in code generation. With an analysis of loss distributions of code tokens, we find that code tokens can be divided into two categories: challenging tokens that are difficult to predict and confident tokens that can be easily inferred. Among them, the challenging tokens mainly appear at the beginning of a code block. Inspired by the above findings, we propose a simple yet effective method: Adaptive Temperature (AdapT) sampling, which dynamically adjusts the temperature coefficient when decoding different tokens. We apply a larger temperature when sampling for challenging tokens, allowing LLMs to explore diverse choices. We employ a smaller temperature for confident tokens avoiding the influence of tail randomness noises. We apply AdapT sampling to LLMs with different sizes and conduct evaluations on two popular datasets. Results show that AdapT sampling significantly outperforms state-of-the-art decoding strategy.

View on arXivView PDF

Code Implementations(1)

LJ2lijia/AdapTCommunity100%
MIT

Official implementation of AdapT in AAAI 2024

93C++, ShellDec 14, 20232 years agoMIT

Cite this paper

@article{zhu2023cold,
  title  = {Hot or Cold? Adaptive Temperature Sampling for Code Generation with Large Language Models},
  author = {Yuqi Zhu and Jia Li and Ge Li and YunFei Zhao and Jia Li and Zhi Jin and Hong Mei},
  year   = {2023},
  eprint = {2309.02772},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2309.02772v3}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2309.02772.svg)](https://codeofpaper.com/paper/2309.02772)

Discussion