空壳网站清理,天津公司网站建设费,设计品牌名称和标志,哈尔滨建设网证件查询2024年12月26日#xff0c;DeepSeek-V3横空出世#xff0c;以其卓越性能备受瞩目。该模型发布即支持昇腾#xff0c;用户可在昇腾硬件和MindIE推理引擎上实现高效推理#xff0c;但在实际操作中#xff0c;部署流程与常见问题困扰着不少开发者。本文将为你详细阐述昇腾Dee…2024年12月26日DeepSeek-V3横空出世以其卓越性能备受瞩目。该模型发布即支持昇腾用户可在昇腾硬件和MindIE推理引擎上实现高效推理但在实际操作中部署流程与常见问题困扰着不少开发者。本文将为你详细阐述昇腾DeepSeek模型部署的常见问题及解决方案。
01 通信错误Hccl execute failed
问题现象
日志显示卡IP地址10.0.3.9与卡IP地址10.0.3.17之间connection fail
查看日志发现出现hccl通信失败相关日志内容 解决方案 问题定位前需要先开启日志生成环境变量 算子库加速库模型库日志保存路径/root/atb/log CANN日志保存路径/root/ascend/log/debug/plog 通过hccn_tool工具进行连通性检测发现出现链路down修复链路down的问题后通信失败问题解决。
02 通信错误Hccl通信超时
可配置以下环境变量增大超时等待时间。 03 显存不足NPU out of memory
问题现象
在服务化拉起过程中出现NPU out of memory报错。 解决方案
适当调高NPU_MEMORY_FRACTION环境变量默认值为0.8适当调低mindie-service服务化配置文件config.json中maxSeqLen、maxInputTokenLen、maxPrefillBatchSize、maxPrefillTokens、maxBatchSize等参数。 04 推理卡顿模型加载时间长可能达到2H及以上
问题现象
模型部署过程中推理前的模型加载时间过长部分极端情况需要等待2H。
可能原因
1用户场景内存不足导致swap介入
2首次加载权重权重存储硬件的传输速率慢传统的HDD或低速SSD或网络存储方式存在I/O瓶颈
3框架权重加载使用单线程加载
解决方案
1更换NVMe SSD高速存储硬件
2使用内存映射文件mmap加载权重例如Weights torch.load(“model.bin”,mmapTrue)
3使用并行加载的方式将权重按层或模块拆分为多个文件可搜索教程
4减少多线程开销设置以下环境变量 export OMP_NUM_THREADS15预热加载提前预加载模型权重到内存
05 推理卡顿纯模型/服务化拉起卡住、停止 问题现象
如果free -h中的free内存小于权重大小 / 机器数纯模型拉起会卡死过一段时间后进程被杀。
根据经验可以确保一下free_mem (权重大小 / 机器数) * 1.3 该计算方式待验证但需要确保内存足够
解决方案 重启/释放缓存。
推荐使用释放缓存的方式可以在容器内运行以下指令
sync; echo 3 /proc/sys/vm/drop_caches
注意每次跑完模型请检查一下机器的host侧内存占用。
06 推理卡顿首Curl请求卡死
问题现象
在服务化成功启动后出现首次curl请求发送后无返回的现象或者服务化拉起卡死的现象。
可能原因
多节点的服务化config.json有区别或是除了需要写本机信息外的环境变量不一样。
1、例如A、B两个8卡节点的服务化配置文件中A配置了interNodeTLSEnabledtrueB配置了interNodeTLSEnbalfalse。
2、容器A的环境变量中未设置确定性计算相关环境变量容器B的环境变量中却有确定性计算相关的环境变量。尽管执行推理请求的节点确定性计算相关的环境变量是关闭状态仍可能影响推理卡住。 export HCCL_DETERMINISTICfalse所以请一定要一一核对好每个8卡容器内的环境变量是一样的服务化的config.json也需是一样的。
07 推理卡顿大流量下curl请求超时
问题现象
服务启动后在大流量下会出现挂死具体表现为Curl请求超时Aicore利用率为0 所有卡利用率为0 当前识别为重计算触发的问题可通过修改mindieservice的config文件进行临时规避。
要求maxseqen与maxprefilltoken参数配置为相同大小。
当前识别为重计算触发的问题可通过修改mindieservice的config文件进行临时规避。
要求maxseqen与maxprefilltoken参数配置为相同大小。 08 配置问题服务化benchmark初始化失败 需正确配置Ranktable: export RANKTABLEFILE/Path/To/ranktable[X].json
09 配置问题Ranktable中的server id和container ip填写
ranktable中的server id和container ip均填写成主机IP前提是起容器时需要设置成host模式docker run --network host image_name含义就是容器的ip地址主机的ip地址注意容器开放的端口不要和主机冲突。 10 日志采集纯模型Profiling 采集
当前 MindIE atb-models 中已经内置了 Profiling 采集逻辑核心代码在 atb-models/examples/run_pa.py 的 PARunner 中。我们可以通过以下环境变量对 Profiling 采集进行控制 执行采集时只需要配置环境变量在modeltest下拉起性能测试即可获取到 Profiling 数据。若需采集的卡数大于8,则需要在每个节点上同时开启以下环境变量 开启环境变量后参照性能测试指令如下可自行修改指令 采集完成后核心数据解析到$PROFILING_FILEPATH /ASCEND_PROFILER_OUTPUT 路径下。
11 日志采集通用方法
遇到推理报错时请打开日志环境变量收集日志信息。 12 Tokenizer 报错 MindIE 报 XXX 错误有一定误导性。实际上只要是 transformers 加载 tokenizer 报错MindIE 会捕获所有错误直接退出并且不会显示真正错误原因。通常transformers 加载 tokenizer 常见错误以及对应排查方法有
1、词表文件损坏
检查tokenizer.json 文件完整性V3 和 R1 的词表不一样。 推荐使用由 Unsloth 维护的 bf16 版本 2、transformers / tokenizer 版本不匹配
确认 transformers、tokenizer 版本查看模型权重路径下的 config.json 中transformers版本号。注意不同的原权重由于fp8转bf16时的transformers版本不同可能会有不同的transformers 配套请以机器上的deepseek官方权重中的config.json中的transformers版本为准若怀疑Tokenizer的问题可以使用以下Tokenizer 校验方法创建一个 python 脚本如果运行成功则 tokenizer 加载无问题。若报错请按照上述方法检查。 13 性能问题推理性能不符合预期
首先请确保使能AIV关闭确定性计算。 其次DeepSeek-R1 官方推荐服务化请求遵循以下配置以达到预期性能
将温度设置在0.5-0.7范围内推荐0.6以防止出现无休止的重复或不连贯的输出。避免添加 System Prompt所有指令应包含在 User Prompt 中。对于数学问题建议在提示中加入以下指令“请逐步推理并将最终答案放在\boxed{}内。”在评估模型性能时建议进行多次测试并取平均结果。若遇到精度问题请确保使用openai接口。
此外DeepSeek-R1系统模型在回答某些问题时倾向于绕过思考模式即不输出“think\n\n/think”这可能会影响模型的表现。为了确保模型进行正确的推理建议强制模型在每次输出的开头使用“think\n”。
14 权重路径和权限问题
问题描述
在服务化拉起过程中出现权重路径不可用或者权重文件夹权限问题。
解决方案
注意保证权重路径是可用的执行以下命令修改权限注意是整个父级目录的权限 15. 16卡及以上配置推理测试类问题
1、16卡及以上配置推理测试类问题
问题描述
多节点参与的推理超过两小时不通信会超时从而服务化报错。
解决方案
当前版本可以写一个每小时调用健康监控接口的脚本进行服务化保活。服务化监控探测接口参考MindIE官方文档健康探针接口-EndPoint管理面接口-服务化接口-MindIE Service开发指南-服务化集成部署-MindIE1.0.0开发文档-昇腾社区
2、权重加载过程中/加载完成后卡死
遇到多节点推理拉起问题可以用一个轻量化的脚本尝试快速定位一下卡死是否是由于节点间通信算子导致的以AllReduce为例。
首先需要在每个节点上推理容器内创建三个文件分别是 hostfile, test_allreduce.sh, test_allreduce.py 如果该指令能成功跑通且有回显则hccl出现问题的几率较小可以定位范围缩小到模型加载的问题上本方法为简易HCCL联通验证HCCL连通完全校验请使用 hccl test 工具。
如果该指令在计算过程中卡住则hccl出现问题的几率较大可以再容器外再次尝试该验证方法。若在容器外也无法验通可以按照1.4.1章节对机器进行前置准备再进行容器外、容器内的连通验证。
如果该指令直接拉起失败检查脚本是否有写错的地方如sh脚本中各个参数。
3、Unicode Error
问题描述
出现UnicodeEncodeError: ascii codec cant encode character \uff5c in position 301:ordinal not in range(128) 报错。
解决方案
这是因为由于系统在写入或打印日志ASCII编码deepseek的词表失败导致报错不影响服务化正常运行。如果需要规避需要将/usr/local/Ascend/atb-models/atb_llm/runner/model_runner.py的第145行注释掉 4、Not set valid RANKTABLEFILE报错
问题描述
在执行服务化benchmark测试时报错 not set valid RANKTABLEFILE。 解决方案
需在每台机器上正确配置RANKTABLEFILE文件路径的环境变量: