Closed
Description
What happened?
Despite phi-2 being listed here as a supported model, trying to compile it using the following command:
python llama.cpp/convert-hf-to-gguf.py saved_model/ --outfile chi-2.gguf --outtype f16
Fails with the following error:
INFO:hf-to-gguf:Loading model: saved_model
INFO:gguf.gguf_writer:gguf: This GGUF file is for Little Endian only
INFO:hf-to-gguf:Set model parameters
INFO:hf-to-gguf:Set model tokenizer
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
WARNING:hf-to-gguf:
WARNING:hf-to-gguf:**************************************************************************************
WARNING:hf-to-gguf:** WARNING: The BPE pre-tokenizer was not recognized!
WARNING:hf-to-gguf:** There are 2 possible reasons for this:
WARNING:hf-to-gguf:** - the model has not been added to convert-hf-to-gguf-update.py yet
WARNING:hf-to-gguf:** - the pre-tokenization config has changed upstream
WARNING:hf-to-gguf:** Check your model files and convert-hf-to-gguf-update.py and update them accordingly.
WARNING:hf-to-gguf:** ref: https://github.com/ggerganov/llama.cpp/pull/6920
WARNING:hf-to-gguf:**
WARNING:hf-to-gguf:** chkhsh: fcace8b9cac38ce847670c970cd5892031a753a1ef381abd1d9af00f713da085
WARNING:hf-to-gguf:**************************************************************************************
WARNING:hf-to-gguf:
Traceback (most recent call last):
File "/home/cc/polymorph/lab6/llama.cpp/convert-hf-to-gguf.py", line 2856, in <module>
main()
File "/home/cc/polymorph/lab6/llama.cpp/convert-hf-to-gguf.py", line 2841, in main
model_instance.set_vocab()
File "/home/cc/polymorph/lab6/llama.cpp/convert-hf-to-gguf.py", line 116, in set_vocab
self._set_vocab_gpt2()
File "/home/cc/polymorph/lab6/llama.cpp/convert-hf-to-gguf.py", line 502, in _set_vocab_gpt2
tokens, toktypes, tokpre = self.get_vocab_base()
File "/home/cc/polymorph/lab6/llama.cpp/convert-hf-to-gguf.py", line 381, in get_vocab_base
tokpre = self.get_vocab_base_pre(tokenizer)
File "/home/cc/polymorph/lab6/llama.cpp/convert-hf-to-gguf.py", line 493, in get_vocab_base_pre
raise NotImplementedError("BPE pre-tokenizer was not recognized - update get_vocab_base_pre()")
NotImplementedError: BPE pre-tokenizer was not recognized - update get_vocab_base_pre()
This is also the code for saving the phi-2 model:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
torch.set_default_device("cuda")
model = AutoModelForCausalLM.from_pretrained("microsoft/phi-2", torch_dtype="auto", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("microsoft/phi-2", trust_remote_code=True)
model.save_pretrained("./saved_model")
tokenizer.save_pretrained("./saved_model")
Name and Version
./main --version version: 3024 (2b737ca) built with cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 for x86_64-linux-gnu
What operating system are you seeing the problem on?
Linux
Relevant log output
INFO:hf-to-gguf:Loading model: saved_model
INFO:gguf.gguf_writer:gguf: This GGUF file is for Little Endian only
INFO:hf-to-gguf:Set model parameters
INFO:hf-to-gguf:Set model tokenizer
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
WARNING:hf-to-gguf:
WARNING:hf-to-gguf:**************************************************************************************
WARNING:hf-to-gguf:** WARNING: The BPE pre-tokenizer was not recognized!
WARNING:hf-to-gguf:** There are 2 possible reasons for this:
WARNING:hf-to-gguf:** - the model has not been added to convert-hf-to-gguf-update.py yet
WARNING:hf-to-gguf:** - the pre-tokenization config has changed upstream
WARNING:hf-to-gguf:** Check your model files and convert-hf-to-gguf-update.py and update them accordingly.
WARNING:hf-to-gguf:** ref: https://github.com/ggerganov/llama.cpp/pull/6920
WARNING:hf-to-gguf:**
WARNING:hf-to-gguf:** chkhsh: fcace8b9cac38ce847670c970cd5892031a753a1ef381abd1d9af00f713da085
WARNING:hf-to-gguf:**************************************************************************************
WARNING:hf-to-gguf:
Traceback (most recent call last):
File "/home/cc/polymorph/lab6/llama.cpp/convert-hf-to-gguf.py", line 2856, in <module>
main()
File "/home/cc/polymorph/lab6/llama.cpp/convert-hf-to-gguf.py", line 2841, in main
model_instance.set_vocab()
File "/home/cc/polymorph/lab6/llama.cpp/convert-hf-to-gguf.py", line 116, in set_vocab
self._set_vocab_gpt2()
File "/home/cc/polymorph/lab6/llama.cpp/convert-hf-to-gguf.py", line 502, in _set_vocab_gpt2
tokens, toktypes, tokpre = self.get_vocab_base()
File "/home/cc/polymorph/lab6/llama.cpp/convert-hf-to-gguf.py", line 381, in get_vocab_base
tokpre = self.get_vocab_base_pre(tokenizer)
File "/home/cc/polymorph/lab6/llama.cpp/convert-hf-to-gguf.py", line 493, in get_vocab_base_pre
raise NotImplementedError("BPE pre-tokenizer was not recognized - update get_vocab_base_pre()")
NotImplementedError: BPE pre-tokenizer was not recognized - update get_vocab_base_pre()