A Formal Perspective on Byte-Pair Encoding

Vilém Zouhar, Clara Meister, Juan Luis Gastaldi, Li Du, Tim Vieira +2 more
6/29/2023
cs.CLmath.OC

No official code found. Best implementation: zouharvi/formal-bpe (3 stars, last commit 2026-02-08).

Abstract

Byte-Pair Encoding (BPE) is a popular algorithm used for tokenizing data in NLP, despite being devised initially as a compression method. BPE appears to be a greedy algorithm at face value, but the underlying optimization problem that BPE seeks to solve has not yet been laid down. We formalize BPE as a combinatorial optimization problem. Via submodular functions, we prove that the iterative greedy version is a $\frac{1}{σ(\boldsymbolμ^\star)}(1-e^{-{σ(\boldsymbolμ^\star)}})$-approximation of an optimal merge sequence, where ${σ(\boldsymbolμ^\star)}$ is the total backward curvature with respect to the optimal merge sequence $\boldsymbolμ^\star$. Empirically the lower bound of the approximation is $\approx 0.37$. We provide a faster implementation of BPE which improves the runtime complexity from $\mathcal{O}\left(N M\right)$ to $\mathcal{O}\left(N \log M\right)$, where $N$ is the sequence length and $M$ is the merge count. Finally, we optimize the brute-force algorithm for optimal BPE using memoization.

View on arXivView PDF

Code Implementations(1)

zouharvi/formal-bpeCommunity100%
31Shell, PythonJan 17, 20238 months ago
bpebyte-pair-encodingtokenization

Similar Papers

Cite this paper

@article{zouhar2023formal,
  title  = {A Formal Perspective on Byte-Pair Encoding},
  author = {Vilém Zouhar and Clara Meister and Juan Luis Gastaldi and Li Du and Tim Vieira and Mrinmaya Sachan and Ryan Cotterell},
  year   = {2023},
  eprint = {2306.16837},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2306.16837v3}
}

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

Discussion