MCPcopy Create free account
hub / github.com/ml-explore/mlx-data / bpe

Function bpe

python/mlx/data/tokenizer_helpers.py:168–186  ·  view source on GitHub ↗
(tokenmap, token, max_rank)

Source from the content-addressed store, hash-verified

166 merges = BPEMerges()
167
168 def bpe(tokenmap, token, max_rank):
169 parts = list(token)
170 while True:
171 min_idx = None
172 min_rank = None
173 for i, pair in enumerate(zip(parts[:-1], parts[1:])):
174 rank = tokenmap.get((pair[0] + pair[1]).encode())
175 if rank is not None and (min_rank is None or rank < min_rank):
176 min_idx = i
177 min_rank = rank
178 if min_rank is None or (max_rank is not None and min_rank >= max_rank):
179 break
180 assert min_idx is not None
181 parts = (
182 parts[:min_idx]
183 + [parts[min_idx] + parts[min_idx + 1]]
184 + parts[min_idx + 2 :]
185 )
186 return parts
187
188 for t in merged:
189 left, right = bpe(tokenmap, t.decode(), tokenmap[t])

Callers 1

read_bpe_from_spmFunction · 0.85

Calls 1

getMethod · 0.45

Tested by

no test coverage detected