Direct Quantized Training of Language Models with Stochastic Rounding

Kaiyan Zhao, Tsuguchika Tabaru, Kenichi Kobayashi, Takumi Honda, Masafumi Yamazaki +1 more
12/6/2024
cs.LGcs.CL

No official code found. Best implementation: KYuuto1006/DQT (7 stars, last commit 2025-10-09).

Abstract

Although recent quantized Large Language Models (LLMs), such as BitNet, have paved the way for significant reduction in memory usage during deployment with binary or ternary weights, training these models still demands substantial memory footprints. This is partly because high-precision (i.e., unquantized) weights required for straight-through estimation must be maintained throughout the whole training process. To address this, we explore directly updating the quantized low-precision weights without relying on straight-through estimation during backpropagation, aiming to save memory usage during training. Specifically, we employ a stochastic rounding technique to minimize the information loss caused by the use of low-bit weights throughout training. Experimental results on our LLaMA-structured models of various sizes indicate that (1) training with only low-precision weights is feasible even when they are constrained to ternary values; (2) extending the bit width to 8 bits achieves performance on par with BitNet b1.58; (3) our models remain robust to precision scaling and memory reduction, showing minimal performance degradation when moving from FP32 to lower-memory environments (BF16/FP8); and (4) our models also support inference using ternary weights, showcasing their flexibility in deployment.

View on arXivView PDF

Code Implementations(1)

KYuuto1006/DQTCommunity100%
71PythonNov 19, 20241 years ago

Similar Papers

Cite this paper

@article{zhao2024direct,
  title  = {Direct Quantized Training of Language Models with Stochastic Rounding},
  author = {Kaiyan Zhao and Tsuguchika Tabaru and Kenichi Kobayashi and Takumi Honda and Masafumi Yamazaki and Yoshimasa Tsuruoka},
  year   = {2024},
  eprint = {2412.04787},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2412.04787v3}
}

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/2412.04787.svg)](https://codeofpaper.com/paper/2412.04787)

Discussion