HuggingFace学习笔记-零碎记录

1,模型下载地址

HuggingFace学习笔记-零碎记录_第1张图片

 一开始以为是黑线的地址,找了之后发现大小对不上,还去傻傻搜了safetensors然后想起来直接找红线的模型名称找到了。不过有个奇怪的地方。

pipeline的参数有model、tokenizer、device、task四种(来自gpt3.5),其中可以只填task。如果只填task,会自动下载一个默认的模型model,下载地址在\.cache\huggingface\hub(这个地址和环境变量HUGGINGFACE_HUB_CACHE有关,可以配置更改)。

but用户目录下Anaconda3\envs\pytorch\Lib\site-packages\transformers也有个models,这里面不知道下的啥,反正不是上面的模型(大小和时间对不上)。

还有一点,虽然地址名字.cache和缓存相关,但不会因为重启电脑而清空,依然保存在电脑上。

2,distilgpt2错误

下载distilgpt2时,因为之前已经下了text-generation的模型,执行pipeline("text-generation", model="distilgpt2")后报错:

ValueError: Could not load model distilgpt2 with any of the following classes: (, ).

 在GitHub和huggingface的hub都有同样的问题,但没对应的解决方案。

咨询了一下GPT-3.5,得到了如下的回答:

这个错误是由于无法加载模型`distilgpt2`,原因是没有找到与之对应的类。具体来说,错误信息指出找不到以下两个类之一来加载`distilgpt2`模型:`transformers.models.auto.modeling_auto.AutoModelForCausalLM`或`transformers.models.gpt2.modeling_gpt2.GPT2LMHeadModel`。

为了解决这个问题,可以尝试以下几个步骤:

1. 确保使用的`transformers`库版本是最新的。您可以通过运行`pip install transformers --upgrade`来更新该库。

2. 确认是否正确安装了所需的模型文件。在加载`distilgpt2`模型前,请确保您已经成功下载并安装了这个模型的权重文件。您可以使用`transformers`库的`pretrained_models`模块来下载所需的模型权重,具体可以参考相关文档或示例代码。

3. 检查代码中的模型加载代码是否正确。确保在加载模型时使用了正确的类。例如,如果您使用`from transformers import GPT2LMHeadModel`来加载`distilgpt2`模型,则可能需要将代码修改为`from transformers import AutoModelForCausalLM`或者`from transformers import GPT2LMHeadModel`。

4. 如果以上步骤都没有解决问题,可能是由于模型文件或代码存在其他问题。您可以尝试在相关的开发者社区或论坛上提问,以获得更多专业的帮助。

 尝试了一下在前面加上from transformers import GPT2LMHeadModel,居然解决了……

奇怪的是,关闭后重新执行,还会再次下载一遍distilgpt2,原来的模型文件夹大小变为原来的两倍(约两倍)。下载大小300多,下载后文件夹大小变为600多。

然后我把distilgpt2模型删掉,把from transformers import GPT2LMHeadModel这句话也删掉,就不报上面的错了,顺利下载下来了。

3,翻译模型似乎只能单向,不能互译。

4,不同语句相同效果(?)

加载模型时,之前使用的是

from transformers import pipeline

classifier = pipeline("sentiment-analysis")

 似乎还有一种可以达到相同的效果

from transformers import AutoTokenizer

checkpoint = "distilbert-base-uncased-finetuned-sst-2-english"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)

 不过不清楚是只针对情感分析,还是其他都行?第2条的错误似乎也和这个有点关联……

你可能感兴趣的:(学习,笔记)