MCPcopy Index your code
hub / github.com/microsoft/BitNet / check_vocab_size

Function check_vocab_size

utils/convert.py:1037–1069  ·  view source on GitHub ↗
(params: Params, vocab: BaseVocab, pad_vocab: bool = False)

Source from the content-addressed store, hash-verified

1035
1036
1037def check_vocab_size(params: Params, vocab: BaseVocab, pad_vocab: bool = False) -> None:
1038 # Handle special case where the model's vocab size is not set
1039 if params.n_vocab == -1:
1040 raise ValueError(
1041 "The model's vocab size is set to -1 in params.json. Please update it manually."
1042 + (f" Maybe {vocab.vocab_size}?" if isinstance(vocab, Vocab) else ""),
1043 )
1044 if not isinstance(vocab, Vocab):
1045 return # model has no vocab
1046
1047 # Check for a vocab size mismatch
1048 if params.n_vocab == vocab.vocab_size:
1049 logger.warning("Ignoring added_tokens.json since model matches vocab size without it.")
1050 return
1051
1052 if pad_vocab and params.n_vocab > vocab.vocab_size:
1053 pad_count = params.n_vocab - vocab.vocab_size
1054 logger.debug(
1055 f"Padding vocab with {pad_count} token(s) - <dummy00001> through <dummy{pad_count:05}>"
1056 )
1057 for i in range(1, pad_count + 1):
1058 vocab.added_tokens_dict[f"<dummy{i:05}>"] = -1
1059 vocab.added_tokens_list.append(f"<dummy{i:05}>")
1060 vocab.vocab_size = params.n_vocab
1061 return
1062
1063 msg = f"Vocab size mismatch (model has {params.n_vocab}, but {vocab.fname_tokenizer} has {vocab.vocab_size})."
1064 if vocab.vocab_size < params.n_vocab < vocab.vocab_size + 20:
1065 msg += f" Most likely you are missing added_tokens.json (should be in {vocab.fname_tokenizer.parent})."
1066 if vocab.vocab_size < params.n_vocab:
1067 msg += " Add the --pad-vocab option and try again."
1068
1069 raise ValueError(msg)
1070
1071
1072class OutputFile:

Callers 2

write_vocab_onlyMethod · 0.70
write_allMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected