使用这个模型本地推理时访问modelscope的80端口

在按照本地方案推理配置教程中进行模型推理的时候,为啥还需要访问www.modelscope.cn的80端口呢
image.png
,个人使用的时候是下载了这里的所有文件:https://modelscope.cn/models/iic/nlp_raner_named-entity-recognition_chinese-base-ecom-50cls/files
image.png
,然后按照如下配置进行本地模型推理的,请问有什么配置错误了吗?

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
ner_pipeline = pipeline(Tasks.named_entity_recognition, "*/nlp_raner_named-entity-recognition_chinese-base-ecom-50cls")
result = ner_pipeline('eh 摇滚狗涂鸦拔印宽松牛仔裤 情侣款')
print(result)

展开
收起
游客jr442oxim3qss 2024-04-24 15:35:41 111 分享 版权
阿里云 AI 助理回答

在您描述的场景中,您尝试通过本地文件进行模型推理,但仍然需要访问 www.modelscope.cn 的 80 端口。这种现象可能与 ModelScope SDK 的工作机制以及您的配置方式有关。以下是详细分析和解决方案:


1. ModelScope SDK 的工作机制

ModelScope 是一个模型开放平台,其 SDK 在加载模型时,默认会尝试从远程服务器(如 www.modelscope.cn)下载模型文件或元数据。即使您已经手动下载了模型文件并放置在本地路径,SDK 可能仍然会尝试访问远程服务以验证模型的完整性、获取额外的配置信息或更新缓存。

关键点: - SDK 默认行为是优先从远程仓库拉取模型。 - 如果未正确指定本地路径或未禁用远程访问,SDK 会尝试连接到 www.modelscope.cn


2. 配置错误的可能性分析

根据您提供的代码片段:

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

ner_pipeline = pipeline(Tasks.named_entity_recognition, "*/nlp_raner_named-entity-recognition_chinese-base-ecom-50cls")
result = ner_pipeline('eh 摇滚狗涂鸦拔印宽松牛仔裤 情侣款')
print(result)

(1) 路径配置问题

  • 您使用了 "*/nlp_raner_named-entity-recognition_chinese-base-ecom-50cls" 作为模型路径。这里的 * 是通配符,表示当前目录下的某个子目录。如果路径不明确,SDK 可能无法正确找到本地模型文件,从而回退到远程仓库。
  • 建议: 明确指定模型的完整本地路径,例如:
    ner_pipeline = pipeline(Tasks.named_entity_recognition, "/path/to/local/model/nlp_raner_named-entity-recognition_chinese-base-ecom-50cls")
    

(2) 缓存机制问题

  • ModelScope SDK 会在本地缓存模型文件,通常位于 ~/.cache/modelscope/ 目录下。如果您之前运行过其他代码,SDK 可能已经缓存了部分远程模型文件,并尝试重新验证这些文件。
  • 建议: 清理缓存目录,确保 SDK 不会误用远程缓存:
    rm -rf ~/.cache/modelscope/
    

(3) 环境变量配置问题

  • 如果未设置 DASHSCOPE_API_KEY 或其他相关环境变量,SDK 可能会尝试访问远程服务以获取默认配置。
  • 建议: 确保设置了正确的环境变量,或者在代码中显式禁用远程访问。

3. 解决方案

为了完全避免访问 www.modelscope.cn,您可以按照以下步骤调整配置:

(1) 明确指定本地模型路径

将模型路径替换为绝对路径,确保 SDK 能够直接加载本地文件。例如:

ner_pipeline = pipeline(
    Tasks.named_entity_recognition,
    "/absolute/path/to/nlp_raner_named-entity-recognition_chinese-base-ecom-50cls"
)

(2) 禁用远程访问

通过设置环境变量或修改代码,禁用 SDK 的远程访问功能。例如:

import os
os.environ["MODELSCOPE_CACHE"] = "/path/to/local/cache"  # 指定本地缓存目录
os.environ["MODELSCOPE_REMOTE"] = "false"  # 禁用远程访问

(3) 验证模型文件完整性

确保您下载的模型文件完整无误,包括以下内容: - config.json - pytorch_model.bin - tokenizer_config.json - vocab.txt 或其他词表文件

如果缺少某些文件,SDK 可能会尝试从远程仓库补全。


4. 其他注意事项

  • 网络隔离环境: 如果您在完全隔离的网络环境中运行代码,建议提前下载所有依赖文件,并确保 SDK 不会尝试访问外部网络。
  • 版本兼容性: 确保本地安装的 ModelScope SDK 版本与模型文件兼容。如果版本不匹配,可能会导致加载失败或回退到远程仓库。

总结

您遇到的问题主要是由于 ModelScope SDK 的默认行为导致的。通过明确指定本地模型路径、禁用远程访问以及验证模型文件完整性,可以有效解决该问题。如果仍有疑问,请检查 SDK 日志输出,定位具体的访问请求来源。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

包含命名实体识别、文本分类、分词、关系抽取、问答、推理、文本摘要、情感分析、机器翻译等多个领域

热门讨论

热门文章

还有其他疑问?
咨询AI助理