当前位置: 首页 > 知识库问答 >
问题:

人工智能 - 手动从 huggingface 下载模型之后,怎么把模型文件放到指定路径?

朱欣荣
2024-01-08

手动从 huggingface 下载模型之后,怎么把模型文件放到指定路径?

我需要在本地运行 chatGLM3,然后我就用下面的代码跑

from transformers import AutoTokenizer, AutoModeltokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True)model = AutoModel.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True, device='cuda')model = model.eval()response, history = model.chat(tokenizer, "你好", history=[])

运行上面的代码,首先会从 huggingface 下载 10GB 左右的模型文件。但是问题来了,huggingface 的下载速度太慢了。所以我就想手动下载:https://huggingface.co/THUDM/chatglm3-6b/tree/main

但是问题在于,huggingface 奇葩的本地目录结构:

╰─➤  fd -a -u pytorch_model | grep chatglm3-6b/home/pon/.cache/huggingface/hub/models--THUDM--chatglm3-6b/snapshots/e46a14881eae613281abbd266ee918e93a56018f/pytorch_model-00007-of-00007.bin/home/pon/.cache/huggingface/hub/models--THUDM--chatglm3-6b/snapshots/e46a14881eae613281abbd266ee918e93a56018f/pytorch_model-00003-of-00007.bin/home/pon/.cache/huggingface/hub/models--THUDM--chatglm3-6b/snapshots/e46a14881eae613281abbd266ee918e93a56018f/pytorch_model-00006-of-00007.bin/home/pon/.cache/huggingface/hub/models--THUDM--chatglm3-6b/snapshots/e46a14881eae613281abbd266ee918e93a56018f/pytorch_model-00004-of-00007.bin/home/pon/.cache/huggingface/hub/models--THUDM--chatglm3-6b/snapshots/e46a14881eae613281abbd266ee918e93a56018f/pytorch_model-00001-of-00007.bin/home/pon/.cache/huggingface/hub/models--THUDM--chatglm3-6b/snapshots/e46a14881eae613281abbd266ee918e93a56018f/pytorch_model.bin.index.json/home/pon/.cache/huggingface/hub/models--THUDM--chatglm3-6b/snapshots/e46a14881eae613281abbd266ee918e93a56018f/pytorch_model-00002-of-00007.bin/home/pon/.cache/huggingface/hub/models--THUDM--chatglm3-6b/snapshots/e46a14881eae613281abbd266ee918e93a56018f/pytorch_model-00005-of-00007.bin/home/pon/.cache/huggingface/hub/models--THUDM--chatglm3-6b/.no_exist/e46a14881eae613281abbd266ee918e93a56018f/pytorch_model.bin

有一串莫名其妙的 snapshots/e46a14881eae613281abbd266ee918e93a56018f !!!! so, 我手动下载了模型文件之后,我怎么知道要把这些模型文件放哪个路径?上哪知道是 e46a14881eae613281abbd266ee918e93a56018f 还是 e46a14881eae613281abbd266ee918e93a56018w?

共有1个答案

吴刚毅
2024-01-08

当你从Hugging Face手动下载模型文件时,你确实需要将模型文件放置在正确的路径。由于Hugging Face在本地目录结构中生成了随机的唯一标识符(如e46a14881eae613281abbd266ee918e93a56018f),因此你不能简单地预测或确定正确的路径。

一种解决方法是查看你的Python环境中的缓存路径。在你的代码中,AutoTokenizerAutoModel在初始化时会使用缓存路径。你可以通过以下方式找到这个路径:

from transformers import AutoTokenizer, AutoModeltokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True)model = AutoModel.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True, device='cuda')print(tokenizer.model_max_length)  # 这将打印出模型的最大长度

在你的代码中,打印的模型最大长度将是一个数字。然后,你可以使用这个数字作为Hugging Face模型缓存的子目录名称。例如,如果模型的最大长度是10240,那么你的模型文件应该放在以下路径:

/home/pon/.cache/huggingface/hub/models--THUDM--chatglm3-6b/10240/pytorch_model.bin

请注意,这只是一种可能的解决方案,并且可能不适用于所有情况。如果这种方法不起作用,你可能需要查看Hugging Face的文档或寻求其他社区的帮助。

 类似资料:
  • 最近在搞国产 GPU 的适配 用的 GPU 是 ascend310 遇到一个问题,网上说的都是什么离线模型使用 但是,我想知道的是这个 om 可以用 python 调用推理吗? 比如 onnx 模型可以用 onnxruntime 包调用推理 但是华为的 om 模型怎么用 python 调用?

  • 主要内容:AI类型 - 1:基于功能,人工智能类型-2:基于功能人工智能可以分为多种类型,主要有两种类型的主要分类,它们基于能力并基于AI的功能。以下是解释AI类型的流程图。 AI类型 - 1:基于功能 基于能力的人工智能的类型如下 - 1. 弱AI或狭隘AI 狭隘AI是一种能够执行智能专用任务的AI。最常见和当前可用的AI是人工智能领域的狭隘AI。 狭隘的AI不能超出其领域或限制,因为它只针对一项特定任务进行培训。因此它也被称为弱AI。如果超出限制,缩小的A

  • 英文原文: http://emberjs.com/guides/routing/specifying-a-routes-model/ 指定路由的模型 应用中的模板背后是由模型来支撑的。那么模板是如何知道需要显示哪些模型的呢? 例如,如果有一个photos模板,那么它是如何知道应该渲染哪一个模型的呢? 这正是Ember.Route的工作之一。通过定义一个与模板同名的,并实现其model方法的路由,是

  • 主要内容:1. 简单的反射代理,2. 基于模型的反射代理,3. 基于目标的代理,4. 基于效用的代理,5. 学习代理代理可以根据其感知智能和能力的程度分为五类。所有这些代理都可以改善其性能并在一段时间内产生更好的行动。这些如下: 简单的反射代理 基于模型的反射代理 基于目标的代理商 基于效用的代理 学习代理 1. 简单的反射代理 简单反射代理是最简单的代理。这些代理人根据当前的感知来做出决定,并忽略其余的感知历史。 这些代理只能在完全可观察的环境中取得成功。 简单反射代理在决策和行动过程中不考虑

  • 有什么好用的文字转语音的开源模型?要求如下: 开源免费 可以离线部署,不需要联网 人声多样,不单一 可以做到声情并茂,语气自然

  • 使用三维软件导出.obj模型文件的时候,会同时导出一个材质文件.mtl, .obj和.stl文件包含的信息一样都是几何体顶点相关数据,材质文件.mtl包含的是模型的材质信息,比如颜色、贴图路径等。 加载.obj三维模型的时候,可以只加载.obj文件,然后借助three.js引擎自定义材质Material,也可以同时加载.obj和.mtl文件。 只加载obj文件 只加载obj文件,引入路径three