You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Botframework Orchestrator多语言模型部署Azure Sites报内存分配错误

问题更新

该问题似乎仅出现在被重命名为model.onnx的pretrained.20210205.microsoft.dte.00.06.unicoder_multilingual.onnx预训练模型上,若使用英文模型则运行一切正常。

问题描述

请问是否有人成功将替代NLP Dispatch的新版Orchestrator部署到Azure Sites上运行?我参照迁移示例操作后,本地使用模拟器或ngrok运行均正常,但部署到Azure Sites后无法读取模型。

报错日志
EXCEPTION THROWN - utility_onnx::OnnxUtility::InitOnnxSession(): e.what()=Load model from D:\home\site\wwwroot\CognativeModels\model\model.onnx failed:bad allocation, FILE=D:\a\1\s\oc\utility\OnnxUtility.h, LINE=117
EXCEPTION THROWN - OC - EmbedderBase::EmbedderBase(json const& config, const string onnxVocabFileDefault, const string onnxModelFileDefault): e.what()=Load model from D:\home\site\wwwroot\CognativeModels\model\model.onnx failed:bad allocation, FILE=D:\a\1\s\oc\EmbedderBase.cc, LINE=57
fail: Microsoft.Bot.Builder.Integration.AspNet.Core.BotFrameworkHttpAdapter[0]
[OnTurnError] unhandled error : Failed to find or load Model with path D:\home\site\wwwroot\CognativeModels\model
System.InvalidOperationException: Failed to find or load Model with path D:\home\site\wwwroot\CognativeModels\model
---> System.ApplicationException: Load model from D:\home\site\wwwroot\CognativeModels\model\model.onnx failed:bad allocation
at Microsoft.BotFramework.Orchestrator.Orchestrator..ctor(String baseModelConfigOrPath)
at Microsoft.Bot.Builder.AI.Orchestrator.OrchestratorRecognizer.b__39_0(String path)
--- End of inner exception stack trace ---
at Microsoft.Bot.Builder.AI.Orchestrator.OrchestratorRecognizer.b__39_0(String path)
at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
at Microsoft.Bot.Builder.AI.Orchestrator.OrchestratorRecognizer.InitializeModel()
at Microsoft.Bot.Builder.AI.Orchestrator.OrchestratorRecognizer.RecognizeAsync(DialogContext dc, Activity activity, CancellationToken cancellationToken, Dictionary`2 telemetryProperties, Dictionary`2 telemetryMetrics)
at SSC.Chatbot.QnABot`1.OnMessageActivityAsync(ITurnContext`1 turnContext, CancellationToken cancellationToken) in D:\a\1\s\Bots\QnABot.cs:line 121
at Microsoft.Bot.Builder.ActivityHandler.OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken)
at SSC.Chatbot.QnABot`1.OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken) in D:\a\1\s\Bots\QnABot.cs:line 97
at Microsoft.Bot.Builder.TelemetryLoggerMiddleware.OnTurnAsync(ITurnContext context, NextDelegate nextTurn, CancellationToken cancellationToken)
at Microsoft.Bot.Builder.Integration.ApplicationInsights.Core.TelemetryInitializerMiddleware.OnTurnAsync(ITurnContext context, NextDelegate nextTurn, CancellationToken cancellationToken)
at Microsoft.Bot.Builder.BotFrameworkAdapter.TenantIdWorkaroundForTeamsMiddleware.OnTurnAsync(ITurnContext turnContext, NextDelegate next, CancellationToken cancellationToken)
at Microsoft.Bot.Builder.MiddlewareSet.ReceiveActivityWithStatusAsync(ITurnContext turnContext, BotCallbackHandler callback, CancellationToken cancellationToken)
at Microsoft.Bot.Builder.BotAdapter.RunPipelineAsync(ITurnContext turnContext, BotCallbackHandler callback, CancellationToken cancellationToken)
核查情况

已在Azure门户中确认报错路径下的模型文件真实存在,相关凭证截图:
Azure Portal Console

可行解决方案
  • 升级Azure App Service定价层:多语言Unicoder模型体积约1.8GB,加载时需额外预留2~3GB运行内存,免费层/F1/B1层可用内存不足以支撑加载,英文模型体积更小所以可正常运行,建议至少升级到B2及以上配置。
  • 切换为64位运行时:进入Azure门户→App Service配置→常规设置,将平台设置为64位,关闭32位应用开关,多语言ONNX模型仅支持64位运行时加载。
  • 调整模型加载逻辑:改为首次调用时异步懒加载模型,不要在应用启动阶段同步加载,避免启动时内存占用过高触发Azure进程回收机制。
  • 检查配套文件完整性:确认模型对应vocab词汇表文件也同步上传到模型同目录下,不要仅上传.onnx单个模型文件。
  • 替代部署方案:如果业务必须使用多语言模型且不想升级App Service配置,可将Orchestrator服务托管到Azure Functions弹性Premium计划(EP2及以上)或者Azure容器实例中运行,内存限制更宽松。

内容的提问来源于stack exchange,提问作者nephinj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:24:05