先决条件
在提交问题之前,请先为自己回答以下问题。
- 我正在运行最新的代码。开发非常迅速,所以目前没有标记的版本。
- 我仔细遵循了 README.md 。
- 我 searched using keywords relevant to my issue ,以确保我创建的新问题尚未打开(或已关闭)。
- 我审查了 Discussions ,并有一个新的错误或有用的增强功能要分享。
功能描述
为phi-2提供支持。运行以下命令会产生错误:
python -c "
from huggingface_hub import snapshot_download;
snapshot_download(repo_id='microsoft/phi-2', local_dir='phi-2', local_dir_use_symlinks=False)
"
python convert-hf-to-gguf.py phi-2/ --outtype f16
错误:
Traceback (most recent call last):
File "/home/local/vanroy/llama.cpp/convert-hf-to-gguf.py", line 3001, in <module>
main()
File "/home/local/vanroy/llama.cpp/convert-hf-to-gguf.py", line 2988, in main
model_instance.set_vocab()
File "/home/local/vanroy/llama.cpp/convert-hf-to-gguf.py", line 75, in set_vocab
self._set_vocab_gpt2()
File "/home/local/vanroy/llama.cpp/convert-hf-to-gguf.py", line 331, in _set_vocab_gpt2
tokens, toktypes, tokpre = self.get_vocab_base()
File "/home/local/vanroy/llama.cpp/convert-hf-to-gguf.py", line 242, in get_vocab_base
tokpre = self.get_vocab_base_pre(tokenizer)
File "/home/local/vanroy/llama.cpp/convert-hf-to-gguf.py", line 323, 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()
Phi-2使用 CodeGenTokenizer
,这是一个BPE分词器。
我不确定是否只需在这里添加以下行?
{ "name": "phi-2", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/microsoft/phi-2" },
编辑尝试过那个,这是生成的哈希值:
if chkhsh == "fcace8b9cac38ce847670c970cd5892031a753a1ef381abd1d9af00f713da085":
# ref: https://huggingface.co/microsoft/phi-2
res = "phi-2"
5条答案
按热度按时间tjrkku2a1#
@BramVanroy #7024
d5vmydt92#
你能确认HF分词和llama.cpp量化的GGUF连接的分词器给出相同的结果吗?
特别是当文本包含特殊字符时,如#7049和#7062。
zynd9foi3#
@turian 有任何想法可以让我轻松测试吗?
pokxtpni4#
抱歉,如果这是发错的帖子,我不知道这是否有用,但我想分享一下我尝试转换Phi 2模型的快速尝试。
我遇到了上面提到的错误,并尝试修改从HuggingFace转换而来的两个
.py
文件。在更新文件中,我在问题这里搜索到的Phi行中添加了更多的Phi行,特别是这个线程和:
7219(评论)
...以及对两个
convert-hf-to-gguf.py
的修改:请注意,这两个
chkhsh
值是相同的吗?对于
Phi2Model
类,我添加了一个单独的add_tokenizer_pre
行:然后我尝试运行我的弗兰肯斯坦创造物。它似乎起作用了,但是当我测试它时,我看到了这个错误:
//我尝试删除所有的phi 1引用,再试一次。现在错误变成了:
xfb7svmp5#
有什么方法可以让我像Fietje一样通过解决办法来工作吗?