"2024-04-05 10:15:18.347 | WARNING | agentscope.models:read_model_configs:164 - config_name [qwen] already exists.
[2024-04-05 10:15:18] 2024-04-05 10:15:18.349 | INFO | agentscope.models:read_model_configs:171 - Load configs for model wrapper: qwen
[2024-04-05 10:15:18] 2024-04-05 10:15:18.351 | INFO | agentscope.models.model:init:257 - Initialize model [qwen]
[2024-04-05 10:15:18] Process Process-1:
[2024-04-05 10:15:18] Traceback (most recent call last):
[2024-04-05 10:15:18] File ""/opt/conda/lib/python3.10/multiprocessing/process.py"", line 314, in _bootstrap
[2024-04-05 10:15:18] self.run()
[2024-04-05 10:15:18] File ""/opt/conda/lib/python3.10/multiprocessing/process.py"", line 108, in run
[2024-04-05 10:15:18] self._target(self._args, *self._kwargs)
[2024-04-05 10:15:18] File ""/home/studio_service/studio_file/PROJECT/agentscope/src/agentscope/agents/rpc_agent.py"", line 213, in setup_rcp_agent_server
[2024-04-05 10:15:18] servicer = RpcServerSideWrapper(
[2024-04-05 10:15:18] File ""/home/studio_service/studio_file/PROJECT/agentscope/src/agentscope/agents/rpc_agent.py"", line 463, in init
[2024-04-05 10:15:18] self.result_pool = ExpiringDict(
[2024-04-05 10:15:18] TypeError: 'NoneType' object is not callable 请问以上是什么modelscope问题?"
根据您提供的日志信息和问题描述,以下是对此问题的详细分析和解答:
从日志中可以看出,系统在初始化 qwen
模型时发生了错误。具体表现为以下几点: 1. 警告信息:config_name [qwen] already exists
表明配置文件中已经存在名为 qwen
的模型配置。 2. 初始化过程:日志显示模型加载配置成功 (Load configs for model wrapper: qwen
) 并尝试初始化模型 (Initialize model [qwen]
)。 3. 异常抛出:在初始化过程中,程序抛出了 TypeError: 'NoneType' object is not callable
错误。
根据日志和错误信息,可以推断问题的根本原因如下:
配置冲突或重复加载:
qwen
模型的配置可能被重复加载或定义。这可能导致模型初始化时使用了不完整的或冲突的配置。ExpiringDict 初始化失败:
RpcServerSideWrapper
类在初始化时尝试创建一个 ExpiringDict
对象,但传入的参数为 None
,导致 TypeError: 'NoneType' object is not callable
。ExpiringDict
的依赖未正确安装,或者其构造函数所需的参数未正确传递。多进程环境下的问题:
multiprocessing.process.py
),这可能与进程间资源的共享或初始化顺序有关。针对上述问题,建议按照以下步骤进行排查和修复:
qwen
模型的配置文件没有重复定义或冲突。qwen
配置项,请删除多余的配置,确保唯一性。确认 ExpiringDict
库已正确安装。可以通过以下命令检查:
pip show expiringdict
如果未安装,请运行以下命令安装:
pip install expiringdict
检查代码中 ExpiringDict
的初始化逻辑,确保传入的参数不为 None
。例如:
from expiringdict import ExpiringDict
# 确保 max_len 和 max_age_seconds 参数已正确设置
self.result_pool = ExpiringDict(max_len=100, max_age_seconds=300)
multiprocessing
模块,建议在主进程中完成模型的初始化,避免在子进程中重复加载。RpcServerSideWrapper
和 ExpiringDict
相关的代码实现,定位具体的参数传递问题。ExpiringDict
或其他依赖库,请确认其与当前 Python 版本和项目环境兼容。此问题的核心在于模型配置冲突和 ExpiringDict
初始化失败。通过检查配置文件、确保依赖库正确安装以及优化多进程环境,可以有效解决该问题。如果仍有疑问,建议提供更详细的代码片段或日志信息以便进一步分析。
希望以上解答对您有所帮助!您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。
ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352