首页/新闻资讯/正文详情

Atlas 300V部署YOLO全攻略:从模型转换到推理加速的实战指南

发布时间:2026/9/25 12:15:56 来源:云帆数科 栏目:资讯中心
Atlas 300V部署YOLO全攻略:从模型转换到推理加速的实战指南
先讲个有意思的现象你随便在一个技术群里丢一句“atlas”能收到五六种完全不同的回复。有人以为你在说Atlas数据库中间件有人以为你在聊Atlas机器人搞嵌入式的会问你是不是在说ST的那块开发板但这两年越来越多的人问的是同一个东西——华为的Atlas AI计算产品线尤其是当一句话后面跟了“部署YOLO”“运算加速卡”这种词的时候。我最近就频繁看到有人在问“Atlas 300V 24G是运算加速卡吗”“Atlas部署YOLO怎么搞”甚至有朋友把Atlas 300V当显卡买回去插上机才发现驱动、生态、部署流程跟GPU完全是两码事然后一脸懵地来问我。这篇东西就是想把这些事一次说清楚。我会先从Atlas 300V 24G这张卡的身份问题讲起把Atlas整个产品线的命名规律捋一遍然后重点讲在Atlas设备上跑YOLO的完整流程——不是只丢几个命令而是把为什么要转模型、为什么推理代码长这样、为什么内存老是不够用这些背后的原因都讲透。适合谁看手里正好有Atlas卡、打算在昇腾环境上跑目标检测的开发者以及正在做技术选型、纠结要不要入坑NPU的人。你不需要有华为官方认证的经验只要懂点Python、用过YOLO这篇文章能帮你少走一大半弯路。1. Atlas产品线到底怎么认一张表理清型号关系先说结论Atlas 300V 24G确实是运算加速卡但它不是显卡。这个“不是显卡”的表述不是咬文嚼字而是会直接影响你怎么用这张卡、怎么部署模型、怎么调性能。很多人把它当GPU用本质上是因为它在物理形态上长得像一块PCIe卡插在服务器里有自己的显存能跑神经网络推理——这些表象都和GPU很像。但从指令集到编程模型它走的是完全不同的另一套体系。1.1 Atlas 300V 24G的准确定位华为的Atlas产品线根据使用场景分成几个大类不同类之间的差异比你想的大。为了让你一眼看明白我把它简化成下面这个表产品系列典型型号形态核心用途算力特点Atlas 300系列300I Duo、300V ProPCIe加速卡服务器推理加速主打推理功耗较低Atlas 800/900系列800T训练服务器、900 A2整机服务器训练和推理集群多卡互联、高性能Atlas 200系列200 DK、200I DK开发者套件/模组边缘计算、嵌入式低功耗适合端侧Atlas 500系列500 A2、500 Pro智能小站边缘场景整机交付一体化防护等级高Atlas 300V 24G属于Atlas 300系列里的推理加速卡后缀“24G”指的是板上集成了24GB的存储用于缓存模型权重和中间计算结果。它搭载的是昇腾310P芯片这颗芯片的设计目标和NVIDIA的A10、T4这类推理卡是同一个生态位而不是和A100、H100那样的训练卡对标。正因为定位是“推理卡”它上面没有完整的AI训练流水线你不能直接拿它跑PyTorch的backward()也不能把它当成一块大显存的GPU来跑训练。1.2 为什么“是不是运算加速卡”会让人犯迷糊这个问题之所以成为热搜我分析有三个层面的原因第一华为官方物料里对“加速卡”的界定很宽泛。你查Atlas 300V的数据手册里面写的是“AI加速卡”再往下看规格洋洋洒洒列了几百个TOPS的INT8算力给人的直觉就是它什么AI计算都能干。但实际上如果没有昇腾的软件栈配合这张卡插到普通x86服务器上是不能直接参与计算的。第二市面上叫“加速卡”的东西太多了。视频编解码有加速卡网络卸载有加速卡AI推理也有加速卡。大家默认“运算加速卡”就等于“能跑深度学习的那张卡”但没想到AI加速卡内部还有推理和训练的区分。Atlas 300V是推理卡这一点决定了它最擅长的是把已经训练好的模型跑到尽可能高的吞吐量而不是从零开始训练一个模型。第三Atlas 300V的“24G”和GPU的“24G”语义近似但不完全一致。GPU的显存既是计算缓冲也是数据中转站CPU和GPU之间通过PCIe拷贝数据显存大小直接影响你能塞多大的batch。Atlas 300V的24G是板载存储作用同样是放权重和中间特征图但它的数据通路、内存管理方式跟GPU不是一回事。所以你在GPU上养成的习惯——比如“24G显存就能跑batch size 64的YOLOv5”——在Atlas上是不成立的实际能跑多少要重新测。如果一句话总结Atlas 300V 24G是一张专用于AI推理的PCIe加速卡它运算能力很强但和显卡是两种物种你需要用昇腾的工具链去驱动它。2. 为什么YOLO部署到Atlas上要重走一遍流程很多人的第一个疑问是我的YOLO在GPU上跑得好好的导出成ONNX换个设备推理不是分分钟的事吗理论上是这样但到了Atlas这里你把ONNX直接喂给硬件它是听不懂的。这里面的核心原因是芯片架构的差异不理解这一层后面的每一步配置文件、转换报错、性能调优你都只能是照着文档瞎试。2.1 从GPU到NPU的架构差异NVIDIA GPU的核心是CUDA Core Tensor Core走的指令集是CUDA扩展出的并行计算模型。ATLAS 300V用的昇腾310P NPU核心是达芬奇架构里面是AI Core、AI CPU、向量计算单元、矩阵计算单元的组合。这两者的本质区别在于GPU是通用并行计算设备它不光能跑神经网络还能跑CUDA加速的很多通用计算任务比如数值模拟、图像处理、密码学运算。昇腾NPU是专用的AI计算设备它的矩阵计算单元是为神经网络里的卷积、矩阵乘法高度定制的普通逻辑运算能力很弱甚至可以说几乎没有。这就导致了一个关键结论NPU上不是所有算子都能高效运行甚至不是所有算子都能运行。GPU上常见的torch.cat、torch.stack、各种tensor.reshape在GPU上都能找到优化过的实现但在昇腾NPU上有些算子不支持有些算子虽然支持但效率很低尤其是动态shape相关的算子。这也是为什么YOLO的部署流程里必须经过模型转换和算子调优而不是直接加载权重。2.2 模型转换从ONNX到OM的完整链路在昇腾平台上能被NPU直接加载执行的模型格式是**.om**Offline Model。你训练得到的PyTorch权重、导出的ONNX模型都不能直接跑在NPU上必须经过一个叫做ATCAscend Tensor Compiler的工具做离线转换。整个链路是PyTorch权重 (.pth/.pt) ↓ 导出ONNX模型 (.onnx) ↓ ATC工具转换 ↓ 离线模型 (.om) ↓ ACLAscend CANN运行时加载推理这里有个点你必须提前意识到ATC转换不是格式翻译而是重新编译。它会把ONNX里的算子映射到昇腾的算子实现上然后做计算图优化、算子融合、内存重排最终生成一份深度定制过的离线模型。这个过程中的任何一步出问题都会导致转换失败而失败信息往往不会直接告诉你“你这个算子在昇腾上不支持”而是报一些看起来莫名其妙的原因比如某个Tensor的shape对不上、某个attribute的取值非法。调这些报错的过程非常磨人我后面会专门写一节怎么排查。2.3 推理框架的选择ACL还是MindSpore LiteUTC转换好OM模型之后你需要一套官方运行时去加载它。昇腾平台上有两套主流的推理方案很多新手在这里被绕晕方案一直接调ACLAscend CANN的推理API也叫acl。这是最底层的方式C和Python接口都有。你直接调用acl.mdl.load_from_file加载OM模型然后手动管理输入输出的buffer、自己处理图像的前处理、后处理。优点是完全可控、性能上限高、没有多余框架的隐形成本缺点是代码量大你得自己把YOLO的前处理letterbox、归一化和后处理NMS全部写成普通Python/C代码每个环节都要手动管理内存。方案二用MindSpore Lite推理框架。它像是一个封装好的推理引擎你在Python里把OM模型当成一个“黑盒”调用mindspore_lite的接口跑推理输入输出是numpy数组内存管理由框架代劳。优点是代码简洁、快速跑通适合验证模型转换结果对不对、性能大概什么水平缺点是你要想压榨极致性能框架的一些封装反而成为阻碍而且MindSpore Lite的版本和CANN版本必须严格匹配错一个版本就会出现奇怪的segment fault。我的建议是验证阶段用MindSpore Lite正式产品里如果追求性能直接上ACL。这两条路线的代码风格完全不同不要指望中间切换很轻松所以选型要提前想明白。3. 手把手YOLOv5/v8在Atlas 300V上的完整部署流程讲完了原理这一节直接给可复现的部署路径。我拿YOLOv5和YOLOv8分别说因为这两个是当前最主流的版本部署细节上略有差异但整体思路一致。这里假设你手里已经有一张Atlas 300V 24G插在服务器上系统是Ubuntu 20.04/22.04CANN和驱动已经装好昇腾环境能正常识别设备。3.1 环境准备最容易漏掉的两步很多人卡在环境准备的第一关不是驱动装不上而是版本对不齐。昇腾的软件栈包含三层驱动Driver、固件Firmware、CANN工具包。三层必须保证版本兼容官方文档里列了个兼容性矩阵一定要先查你再动手。第二步是确认设备是否被系统正确识别。执行npu-smi info如果你能看到类似下面这行说明驱动和固件都正常-------------------------------------------------------- | NPU | Name | HBM | Health | Power| Temp | -------------------------------------------------------- | 0 | 310P | 24G | OK | 40W | 45C | --------------------------------------------------------如果这里看不到卡后面装什么CANN都白搭。这时候查两件事驱动是否加载lsmod | grep drvPCIe设备是否枚举成功lspci | grep -i ascend。接下来设置环境变量。CANN安装完成后官方脚本在/usr/local/Ascend/ascend-toolkit/set_env.sh你需要在~/.bashrc里source它。但这里有个很容易踩的坑如果你在conda虚拟环境里跑Python这个环境变量必须在启动Python之前就生效。很多人在conda环境里直接跑import acl报找不到库根源就是环境变量没在这个shell会话里刷新生效。3.2 YOLOv5的模型导出与转换以YOLOv5 v6.0以上版本为例把训练好的PyTorch权重导出为ONNX官方仓库里已经有现成脚本python export.py --weights yolov5s.pt --include onnx --opset 11这里有几个参数要特别注意--opset 11不是越高越好。ONNX算子集版本越高ATC转换器的兼容性压力越大实测opset 11到12最稳。--dynamic不要加。YOLOv5的export.py默认导出的是静态shape的ONNX如果你加了--dynamicATC转换时动态shape的支持会牵扯到dynamic_dims配置处理起来非常麻烦。第一版先跑通静态shape再考虑动态shape的优化。--simplify建议加上。用onnx-simplifier把模型里的冗余算子比如一些identity、shape相关的算子清理掉能让ATC转换更顺利。导出的ONNX如果输入shape是[1, 3, 640, 640]那ATC转换命令大概是atc --modelyolov5s.onnx \ --framework5 \ --outputyolov5s_bs1 \ --input_shapeimages:1,3,640,640 \ --soc_versionAscend310P3这里面的参数我解释一下--framework5表示输入是ONNX模型。--soc_versionAscend310P3是Atlas 300V对应的芯片版本。注意不同批次的Atlas 300V可能对应310P1、310P2、310P3具体用哪个要用npu-smi info或官方文档确认填错了转换也能过但上板加载时会报版本不匹配。--input_shape必须和ONNX的输入名完全一致。YOLOv5导出后的输入名一般是imagesYOLOv8可能是images也可能是input用Netron打开ONNX看一下就知道。转换成功后会生成yolov5s_bs1.om这就离能跑通只有一步了。3.3 YOLOv8的模型转换差异YOLOv8的导出命令类似yolo export modelyolov8s.pt formatonnx opset11但YOLOv8导出的ONNX和YOLOv5有一个显著区别就是它的输出层不包含NMS后处理而是直接输出[1, 84, 8400]这种shape的原始预测张量4个框坐标 80个类别分数8400个anchor。这本身是好事因为NMS后处理本来就应该放在CPU上做而不是塞进模型里。但转换时要注意YOLOv8导出的ONNX可能会有一些ReduceMax、Mul、Add组合出来的算子ATC转换时偶尔会报不支持。我遇到过的处理方式是先把ONNX用onnx-simplifier简化一遍如果还不行就用onnxruntime做一次静态shape的重新导出import onnx from onnxsim import simplify model onnx.load(yolov8s.onnx) model_sim, check simplify(model, input_shapes{images: [1, 3, 640, 640]}) onnx.save(model_sim, yolov8s_sim.onnx)拿到简化后的ONNXATC转换参数和YOLOv5基本一致只是--input_shape要按实际输入名调整。3.4 推理代码的两种写法与实测对比转换完模型后写推理脚本。我先给一个最简的MindSpore Lite版本适合快速验证模型能否跑通import numpy as np import mindspore_lite as mslite # 加载模型 model mslite.Model() model.load_from_file(yolov5s_bs1.om, mslite.ModelType.MINDIR_LITE) # 构建输入 input_tensor mslite.Tensor() input_tensor.set_data(np.random.rand(1, 3, 640, 640).astype(np.float32)) # 推理 inputs [input_tensor] outputs model.predict(inputs) # 输出是一个list每个元素是对应输出头的numpy数组 print(outputs[0].get_data().shape)这段代码能跑通说明你的OM模型是好的、环境是通的整个链路已经没有任何原则性问题。但如果你要做性能测试或者后面要接到真实业务里我建议直接用ACL理由很简单MindSpore Lite在每次predict的时候都可能做额外的内存分配和数据拷贝吞吐量会难看很多。ACL版本的核心代码大概是import acl # 初始化 acl.init() ret acl.rt.set_device(0) # 加载模型 model_id, ret acl.mdl.load_from_file(yolov5s_bs1.om) # 准备输入输出内存 input_desc acl.mdl.create_tensor_desc_from_model(model_id, 0) output_desc acl.mdl.create_tensor_desc_from_model(model_id, 1) input_data acl.util.np_to_ptr(np.random.rand(1, 3, 640, 640).astype(np.float32)) output_data acl.util.np_to_ptr(np.zeros((1, 84, 8400), dtypenp.float32)) # 推理 ret acl.mdl.execute(model_id, [input_data], [output_data]) # 把输出拷回numpy output_np acl.util.ptr_to_np(output_data, (1, 84, 8400), np.float32)ACL代码看起来繁琐但它把内存和执行的每一个环节都交到了你手里。实测同一个YOLOv5s模型在相同的输入和业务逻辑下ACL版本的吞吐量比MindSpore Lite版本能高出10%~30%延迟也更稳定。如果你们的业务对性能有硬性要求多写这几行代码非常值得。3.5 性能调优的三个可执行方向模型跑通只是第一步真正决定你能不能用起来的是性能。Atlas 300V上的性能调优跟GPU上那套不完全一样我建议按下面的优先级来第一优先检查model转换时的算子融合情况。ATC转换日志里会输出融合后的算子信息重点看有没有大量的TransData算子插入。如果有说明你的模型在某些层的输入输出格式上不匹配NPU内部的数据排列AT C自动插入了格式转换算子在兜底。这种转换一次两次没关系如果整个模型到处是TransData推理性能会大打折扣。处理方式是尽量保持网络结构的规整性减少reshape、permute、transpose这类算子。第二优先调整batch size和AIPP配置。静态batch的模型在推理时batch越大吞吐量越高但延迟也会相应增加。你要根据业务场景找平衡点。AIPPAI Preprocessing是昇腾的硬件图像预处理单元可以把图像缩放、归一化、格式转换比如BGR到RGB这些操作从CPU挪到专用硬件上做节省不少时间。在ATC转换时用--insert_op_confaipp.cfg来配置具体写法官方文档有模板这里不展开。第三优先开启多线程/多流推理。当单模型单batch的性能已经到瓶颈真正的提升空间在“并发”。Atlas 300V支持多流Stream并发执行你可以同时创建多个ACL Stream每个Stream独立跑一批输入利用NPU上的多核并行能力。这个方案的难点在于你的业务代码得多路并发地准备数据、提交推理、回收结果复杂度会上一个台阶但吞吐量能再翻一倍以上。4. 部署中避不开的那些坑精度对不上、内存不足、算子不支持这一节我专门写踩坑实录。不夸张地说我第一次在Atlas 300V上跑YOLOv5从拿到卡到推理结果全绿花了将近一个星期最后发现好几个坑都是文档里提过但一句话带过的点。4.1 推理结果和GPU差距大先从输入侧找原因如果你在GPU上用同一张图片测试用同一份权重在Atlas上推理结果P5的人头框位置偏了、confidence普遍低别急着怀疑模型转换。我的排查顺序是第一看前处理是否一致。YOLO的LetterBox处理在GPU上用PyTorch实现可能在uint8和float32之间的转换、像素值除以255的时机、BGR/RGB通道顺序上都存在细微差异。这些差异在GPU上几乎不影响结果但在Atlas上因为模型对输入的敏感度不同会被放大。我建议你在两端统一用完全相同的预处理代码最好把预处理结果直接存成npy文件再分别喂给GPU和Atlas对比模型输入的数值差异。如果np.max(np.abs(input_gpu - input_atlas))超过0.5那结果不一致就是预处理引起的。第二检查NPU上运行的是FP16还是FP32。ATC转换时默认会把模型里的权重转成FP16存储推理也用FP16计算。FP16的动态范围比FP32小如果你的模型权重里存在极端的数值分布FP16计算会出现精度损失导致检测框偏移。在ATC命令里加上--output_typeFP32可以强制用FP32推理代价是内存翻倍、速度下降如果加了之后结果恢复正常就说明问题出在精度模式上。第三检查后处理NMS的置信度阈值。这个看着很蠢但确实有人踩过。NPU上推理输出的原始预测张量和GPU上的数值基本一致但NMS的处理逻辑如果用的是你之前为GPU量身定做的版本注意一下阈值设置和坐标解码顺序是不是一样。尤其是YOLOv8的输出坐标是相对于640x640输入图的不是相对于原图的解码时要先还原到原图坐标系再套用confidence和NMS。4.2 “内存不足”的报错常是HBM分配策略和batch的串联问题Atlas 300V 24G这个24G看着挺大但实际跑起来很容易报内存不足原因很反直觉NPU不是GPU你在GPU上习惯的“同一个模型能塞多少batch就塞多少batch”的策略在NPU上不成立。昇腾的HBM不仅要存模型权重和中间激活值还要存每个Stream的上下文、算子的工作空间、输入输出的缓冲等内存占用跟模型结构、算子类型强相关。一个小模型的batch从1加到4内存占用可能不是翻4倍而是翻8倍因为某些中间算子的工作空间和batch呈超线性关系。处理方式有三个切入点用npu-smi info看当前NPU的HBM占用情况确认是模型自己吃掉了大部分显存还是有别的进程在抢占。减小batch size跑一轮观察内存占用随batch的变化曲线找到这个模型的合理batch上限。如果必须大batch考虑换用更小的模型变体或者用多卡如果你有不止一张300V做数据并行。另外还有一个特别容易被忽略的点ACL默认会为每个模型分配数量可观的静态内存池如果你的业务会频繁加载/卸载模型内存碎片会越积越多。我见过一个极端案例模型反复加载五次之后即使卸载了HBM也回不到初始状态最终直接报HBM out of memory。解决办法是在加载模型前显式调用acl.rt.set_memory_allocate_policy或者在工程里复用同一个模型实例不要频繁加载卸载。4.3 ATC转换报算子不支持的排查链路如果你运气不太好在ATC转换阶段就遇到不支持的算子报错别慌按下面这套思路来排查第一步读懂报错的算子名和位置。ATC的报错信息里一般会带Onnx节点的名字比如/model.24/m.0/conv/Conv这种明确告诉你哪个算子在哪个位置挂了。用Netron打开ONNX模型定位到同名节点看一下这个算子的具体参数。第二步判断算子的作用是否可以替代。昇腾对标准算子支持得比较全常见的Conv、BatchNorm、Relu、MaxPool都没问题容易挂的是那些自定义算子或者在PyTorch中被融合进torch.nn.functional的算子。如果你的模型用了torchvision.ops.nms、torchvision.ops.roi_align这些基本可以确定要换成自定义CPU实现把它们从模型里拆出来放到后处理代码里。第三步用算子替代的方式解决问题。举个例子YOLOv8用到的一个可能出问题的算子是GridSample在upsample相关的模块里。这不是YOLO必需的算子而是我见过有人把自定义的注意力模块导进ONNX之后踩到的坑。如果遇到这种非标准算子思路不是去修改ATC配置而是改模型结构用等价的算子组合替代比如GridSample可以用affine_gridgrid_sample的组合绕开实在绕不开就把这个模块挪到后处理里用CPU实现。这是最不受罪的路。第四步如果模型结构没法改考虑分块转换。把一个大模型按结构拆成几段分别转成OM然后在推理代码里按顺序依次跑中间用内存buffer把特征图传给下一段。这个方案会增加不少推理延迟和代码复杂度但对于某些必须跑通的模型来说是一个可靠的兜底方案。5. Atlas部署YOLO的后续扩展思路说完了整个部署流程和排错经验再分享几个我实际使用中觉得可以往下走的方向你可以根据自己手头的业务决定要不要继续深入。第一个方向是动静结合的推理路径。我前面建议第一版用静态shape先跑通但实际业务里的输入图像尺寸往往是不固定的。Atlas 300V支持动态shape官方叫Dynamic Shape模式它要求ATC转换时指定多个可能的shape组合推理时根据实际输入匹配最接近的shape。这个功能在CANN 6.0以后做得比较成熟了性能损失也可以接受。我建议在静态模型跑通后再用动态shape的方式重新转换一版专门应对业务里参差不齐的输入尺寸。第二个方向是把AIPP彻底用起来。我开始讲AIPP只是提了一句实际上AIPP的能力远不止缩放和归一化它还能做色域转换、填充padding、裁剪crop。如果你的取流链路是摄像头直接出的视频帧AIPP可以把YUV到RGB的转换也下沉到硬件里CPU占用能再降一块。这个优化在边缘服务器上尤其划算因为边缘场景CPU往往很紧张。第三个方向是模型量化。Atlas 300V的INT8算力是FP16的好几倍如果业务对精度损失有容忍度可以考虑用昇腾的AMCTAscend Model Compression Toolkit做量化把模型压到INT8吞吐量能再上一个台阶。但量化是个系统工程需要准备校准数据集、做精度对比、调量化敏感层不是简单加一个flag就能完成的。我建议等FP16版本的部署链路完全稳定后再把量化当成二期优化来做。另外如果你的业务不是单纯的目标检测而是要做跟踪、计数、OCR这些复合任务Atlas 300V同样能跑但要注意多个模型之间的串并行调度。我见过有人在单卡上同时跑检测模型和ReID模型结果两张模型的推理延迟互相拖累后来把两个模型放在两个独立的ACL Stream里并行执行问题就解决了。这里的核心思想是Atlas 300V的多核心能力不只体现在单模型的batch并发上也体现在多模型的流并行上这块能做很多文章。最后再分享一个小技巧也是我踩过几次坑之后总结出来的在Atlas上做任何部署实验先把日志级别调到INFO。昇腾的日志默认输出量太少很多警告比如算子精度降级、内存策略调整都被静默吞掉了调高日志级别之后很多“看起来摸不着头脑”的报错都能在日志里找到端到端的上下文。日志级别调整在/usr/local/Ascend/ascend-toolkit/latest/...下的配置文件里设置方法官方文档有写这里不赘述了。Atlas这条技术栈不像GPU生态那么“开箱即用”但好处是它把推理场景的很多事做得很专一旦你把流程走通性能和稳定性都是能打的。希望这篇东西能帮你少走点弯路把这卡真正用起来。

相关推荐

Atlas 300V 24G运算加速卡部署YOLO全流程:从环境配置到推理调优
Atlas 300V 24G运算加速卡部署YOLO全流程:从环境配置到推理调优

1. 先搞清楚:Atlas 300V 24G到底是不是“运算加速卡”最近总有人拿着一个词来问我:Atlas 300V 24G是不是运算加速卡?能不能用来部署YOLO?说实话,这个产品在AI推理圈子里讨论度一直不低,但不少人对它的定位还… · 2026/9/25 12:15:50

Atlas 300V AI推理加速卡部署YOLO实战:从环境配置到性能调优
Atlas 300V AI推理加速卡部署YOLO实战:从环境配置到性能调优

1. Atlas 300V 24G的身份确认:它是AI推理加速卡,不是显卡1.1 从"运算加速卡"这个问题说起先说结论:Atlas 300V 24G 是运算加速卡,但它是AI推理加速卡,不是传统意义上的GPU显卡。这个问题看似简单&#xff0c… · 2026/9/25 12:15:44

小白必看!用收藏模式解锁大模型Loop Engineering的神奇世界:TaoToken 统一 Key 配置实战
小白必看!用收藏模式解锁大模型Loop Engineering的神奇世界:TaoToken 统一 Key 配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 12:15:38

不喝白酒的人聚餐喝什么?低度黄酒方案了解一下
不喝白酒的人聚餐喝什么?低度黄酒方案了解一下

聚餐桌上总有人不喝白酒:嫌度数高、入口冲,或者只是想轻松吃顿饭,不想被酒劲捆住。这类人该喝什么?这篇给一个实际的方案——低度黄酒,尤其是冰饮的果味黄酒和温饮的草本黄酒。先把结论放在前面:不喝白酒&a… · 2026/9/25 13:51:15

缤果日纪为什么做黄酒创新?聊聊品牌的出发点和产品定位
缤果日纪为什么做黄酒创新?聊聊品牌的出发点和产品定位

近几年黄酒有点“安静”:说起它,很多人脑子里浮现的还是厨房料酒、长辈酒桌上的老味道,年轻人日常喝酒时很少第一时间想到它。缤果日纪这个品牌,正是在这样的背景下做黄酒创新。这篇不讲口号,把品牌为什么出发、想解决… · 2026/9/25 13:51:09

使用 Nacos + Higress 连接 Agent 和 MCP 服务进行使用:TaoToken 统一 Key 接入配置骨架
使用 Nacos + Higress 连接 Agent 和 MCP 服务进行使用:TaoToken 统一 Key 接入配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 13:51:03

Atlas 300V 24G推理卡详解:YOLO模型迁移部署与调优实战
Atlas 300V 24G推理卡详解:YOLO模型迁移部署与调优实战

Atlas 300V 24G这块卡,最近问我的人特别多。搜“atlas部署yolo”能搜出一堆帖子,搜“atlas 300v 24g 是运算加速卡吗”也能搜出一堆疑问。很多人手里已经有这张卡了,或者是正准备从GPU阵营切过来,但搞不清它到底算什么定位、能不能… · 2026/9/25 13:50:38

用 SetCursorPos 和 mouse_event 模拟鼠标移动与点击:一份可直接跑的配置骨架
用 SetCursorPos 和 mouse_event 模拟鼠标移动与点击:一份可直接跑的配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 13:50:38

使用Claude Code Router轻松切换各种高性价比模型:TaoToken统一Key接入与config.toml配置实战
使用Claude Code Router轻松切换各种高性价比模型:TaoToken统一Key接入与config.toml配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 13:50:38

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码