变压器库缓存路径未更改

问题描述

我尝试过this,但对我来说不起作用。我正在使用此Git repo。我正在构建一个桌面应用程序,并且不希望用户下载模型。我想运送带有模型的模型。我知道变形金刚库会在cache/torch/transformers中寻找模型。如果不存在,请下载。我也知道您可以在cache_dir中传递pre_trained参数。 我正在尝试这个。

cache = os.path.join(os.path.abspath(os.getcwd()),'Transformation/Annotators/New Sentiment Analysis/transformers')
os.environ['TRANSFORMERS_CACHE'] = cache


if args.model_name_or_path is None:
    args.model_name_or_path = 'barissayil/bert-sentiment-analysis-sst'
#Configuration for the desired transformer model
config = AutoConfig.from_pretrained(args.model_name_or_path,cache_dir=cache)

我已经尝试了上述问题的解决方案,还尝试了cache_dir。转换器文件夹与analyzer.py位于同一目录中。整个repo和转换器文件夹位于New Sentiment Analysis目录中。

解决方法

您实际上没有显示无法正常工作的代码,但我认为您执行了以下操作:

from transformers import AutoConfig

import os
os.environ['TRANSFORMERS_CACHE'] = '/blabla/cache/'

config = AutoConfig.from_pretrained('barissayil/bert-sentiment-analysis-sst')

os.path.isdir('/blabla/cache/')

输出:

False

这不会为缓存创建一个新的默认位置,因为在设置环境变量之前已导入了转换器库(我修改了链接的问题以使其更加清楚)。修改默认缓存目录的正确方法是在导入转换器库之前,先设置环境变量

import os
os.environ['TRANSFORMERS_CACHE'] = '/blabla/cache/'

from transformers import AutoConfig

config = AutoConfig.from_pretrained('barissayil/bert-sentiment-analysis-sst')

os.path.isdir('/blabla/cache/')

输出:

True