使用mapreduce进行摘要总结时,在不联网的情况下,出现访问huggingface超时

如题,使用mapreduce时,会自动访问huggingface网站的gpt2的tokenizer方法,但是我用的本地加载的大语言模型,运行环境无法连接到外网,如何使用本地加载的方式访问gpt2的tokenizer方法呢??

您可以在有网络连接的环境中下载所需的 GPT-2 分词器文件,然后在您的运行环境中本地加载这些文件。您可以使用 Hugging Face 的 Transformers 库的 PreTrainedTokenizer 来下载并保存分词器,然后加载本地的文件。

在有网络连接的环境中,您可以使用以下 Python 代码下载并保存分词器:

from transformers import GPT2Tokenizer

tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
tokenizer.save_pretrained('./path_to_save_directory')  # 指定一个保存分词器文件的目录

之后,您可以将上述代码所保存的分词器文件(包括 ‘tokenizer_config.json’, ‘special_tokens_map.json’, ‘vocab.json’, ‘merges.txt’)迁移到您的运行环境(例如通过 USB 或者其他物理介质)。

在您的运行环境中,您可以使用以下 Python 代码从本地加载 GPT-2 分词器:

from transformers import GPT2Tokenizer

tokenizer = GPT2Tokenizer.from_pretrained('./path_to_save_directory')  # 使用保存分词器的目录来加载分词器

在这里,‘./path_to_save_directory’ 需要被替换为您保存分词器文件的具体路径。

如果您还有其他问题或者需要关于 transformer 分词器等其他资源的详细信息,欢迎继续提问。

我通过本地加载model和tokenizer来使用自定义的模型chatglm, 部分代码如下:
本地模型加载:
model_path=“/home/chatglm2-6b-32k”
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModel.from_pretrained(model_path, trust_remote_code=True).half().cuda()
model=model.eval()
自定义模型:
class ChatGLM(LLM):
max_token: int = 100000 #输入文本的额最大值
temperature: float = 0.2
top_p = 0.6
history = []

def __init__(self):
    super().__init__()

@property
def _llm_type(self) -> str:
    return "ChatGLM"

def _call(self, prompt: str, stop: Optional[List[str]] = None,) -> str:
    # headers中添加上content-type这个参数,指定为json格式
    headers = {'Content-Type': 'application/json'}
    data=json.dumps({ 'prompt':prompt, 'temperature':self.temperature,'history':self.history,'max_length':self.max_token})
    # print("ChatGLM prompt:",prompt)
    # 调用api
    response = requests.post("http://0.0.0.0:8000",headers=headers,data=data)
	# print("ChatGLM resp:",response)
    if response.status_code!=200:
        return "查询结果错误"
    resp = response.json()
    if stop is not None:
        response = enforce_stop_tokens(response, stop)
    self.history = self.history+[[None, resp['response']]]
    return resp['response']

但是使用mapreduce 的时候,会自动访问huggingface上gpt的tokenizer,这是不是说明本地的tokenizer和langchain未适配成功呢,如果是,应该怎么处理呢

是不是你本地目录下面一些其它*.py的文件没有拷贝过去?

在不连网的情况下,访问Huggingface可能会出现超时的问题,因为Huggingface是一个在线平台,它需要进行网络连接才能正常使用。如果您在使用MapReduce进行摘要总结时没有网络连接,并且出现了访问Huggingface超时的问题,那么可能需要考虑在有网络连接的情况下再次尝试。如果无法联网,可能需要寻找其他本地可用的工具或模型来完成任务。