新闻详情

新闻详情

首页 / 资讯中心 / 详情

Atlas 300V Pro部署YOLO实战:环境配置、模型转换与推理优化全攻略

发布时间:2026/9/25 15:45:04来源:尧图网络
Atlas 300V Pro部署YOLO实战:环境配置、模型转换与推理优化全攻略
去年有个朋友问我说在二手市场看到一块叫“atlas 300v 24g”的卡商家说是运算加速卡问我能不能买来跑YOLO。我第一反应是——这东西确实是个加速卡但它不是显卡和你想的“插上就能用”完全不是一回事。如果你正打算用Atlas系列卡部署YOLO或者已经在折腾了但跑不通这篇内容应该能帮你少走不少弯路。我从环境准备、模型转换到推理代码、常见坑点把整个链路完整过一遍尽量说人话让你照着就能复现。1. Atlas 300V是什么卡先把“运算加速卡”这个概念捋清楚1.1 热搜里的“atlas 300v 24g 是运算加速卡吗”到底该怎么理解先说结论是但它的定位是AI推理加速卡不是图形显卡。很多人第一次接触Atlas都会拿它和NVIDIA的显卡做类比然后默认“显存越大越能跑大模型”。这个思路对了一半但忽略了最关键的差异——Atlas 300V系列是基于昇腾AI处理器的推理卡它的核心职责是把已经训练好的模型高效地跑起来而不是像GPU那样兼顾训练、渲染、通用计算。所以它没有显示输出接口不能接显示器也不能用来玩3D游戏。那“24G”是什么指的是卡上集成的内存容量具体型号是Atlas 300V Pro内存带宽和容量都比早期版本大不少用来部署YOLO这类目标检测模型非常合适。很多人搜索“300V 24G是不是运算加速卡”本质上是因为被商家用“大显存”的概念误导了。你要明白这块卡的目标场景是服务器端的视频分析、边缘推理、智慧园区这类业务不是给你当显卡用的。1.2 昇腾产品矩阵里300V Pro处在什么位置昇腾的产品线分为训练卡和推理卡两条线。训练卡常见的是Atlas 800训练服务器里用的NPU算力强、功耗高、价格贵推理卡则包括Atlas 300I Duo、Atlas 300V Pro等。300V Pro的算力大约在140 TOPS INT8不同型号略有差异功耗只有几十瓦不需要额外接辅助供电通过PCIe接口供电就可以。这个功耗表现和NVIDIA的T4比较接近但在某些视频编解码场景下昇腾的DVPP硬件模块反而更有优势。从部署YOLO的角度来看300V Pro属于“够用且不浪费”的选择。YOLOv5s的FP16模型在300V Pro上单路推理延迟大概能做到十几毫秒多路并发也能扛得住。相比之下如果你用Atlas 200 DK开发套件去跑YOLO虽然也能跑但受限于散热和算力性能和稳定性都差一截。所以如果你手头是300V Pro 24G完全值得认真调一调。1.3 为什么选它跑YOLO算力、显存、功耗三角关系跑YOLO这种模型瓶颈通常不在算力而在数据搬运和后处理。Atlas 300V Pro的24G内存意味着你可以把多个模型的权重全部驻留在卡上避免频繁加载模型文件。比如同时部署YOLOv5检测、YOLOv8分割、或者一个ReID模型24G内存都绰绰有余。功耗方面300V Pro的典型功耗在50W左右峰值也不会超过80W这点比很多GPU卡要友好得多。之前我看到有人拿它和RTX 3060比说3060也能跑YOLO而且更便宜。这话逻辑上没问题但忽略了一个事实Atlas 300V Pro支持硬件视频解码可以同时处理多路RTSP视频流而RTX 3060的NVENC虽然也支持硬解但在纯推理场景下昇腾的DVPP与推理引擎的协同更高效。简单说如果你是做视频结构化、抓拍机分析这类项目300V Pro是更对口的方案。2. 部署YOLO前环境三板斧驱动、固件、CANN2.1 驱动和固件的版本匹配最容易翻车的地方很多人在Atlas上部署YOLO第一步就卡在驱动上。Atlas 300V Pro不是即插即用的设备你需要安装三个层面的东西驱动、固件、CANN工具包。这三者的版本必须匹配否则会出现“npu-smi能看到卡但初始化失败”的诡异问题。具体来说驱动负责操作系统和NPU之间的通信固件负责NPU芯片自身的运行逻辑CANN是昇腾的计算架构类似NVIDIA的CUDA。我的建议是直接安装“Ascend-cann-toolkit”全家桶因为CANN安装包里面会附带对应版本的驱动和固件。比如我用的CANN 7.0版本对应的驱动就是24.1.rc1这个版本组合实测过稳定性不错。# 查看当前系统架构Atlas只支持aarch64或x86_64 uname -m # 安装驱动以x86_64为例 ./Ascend-hdk-910b-npu-driver_24.1.rc1_linux-x86_64.run --full # 安装固件 ./Ascend-hdk-910b-npu-firmware_24.1.rc1_linux-x86_64.run --full # 安装CANN工具包 ./Ascend-cann-toolkit_7.0.RC1_linux-x86_64.run --install安装完成后重启系统然后执行npu-smi info如果能正常列出卡的信息说明驱动和固件没问题。这里有个容易踩的坑很多人装完驱动不重启就直接装CANN结果运行npu-smi时提示“driver not ready”误以为自己安装失败其实是没重启导致的。2.2 CANN工具包为什么说它是必须装的“运行时”CANNCompute Architecture for Neural Networks是昇腾的计算架构包含运行时、算子库、图编译器和应用开发接口。它类似于CUDA工具包但比CUDA更封闭一些。你在Atlas上跑YOLO无论用哪种推理引擎底层都依赖CANN提供的ACLAscend Computing Language接口。CANN装好之后还需要设置环境变量。我个人的习惯是写一个环境变量脚本每次开终端先source一下避免每次都手动export。# set_env.sh source /usr/local/Ascend/ascend-toolkit/set_env.sh export ASCEND_DEVICE_ID0 export ASCEND_SLOG_PRINT_TO_STDOUT0 export ASCEND_GLOBAL_LOG_LEVEL3ASCEND_GLOBAL_LOG_LEVEL3表示只输出ERROR级别的日志调试时改成0可以看到INFO级别的详细输出。这个设置对排查问题非常有帮助尤其是模型加载失败、算子不支持这类问题日志里会明确告诉你哪个算子出了问题。2.3 Python环境和推理引擎选型MindX还是纯ACLCANN装好之后你还要选择一个推理引擎。昇腾官方提供了MindX推理引擎但如果你只是跑YOLO我建议直接用ACL Python接口原因是依赖少、问题容易定位。MindX虽然封装得好但版本匹配和依赖冲突很容易让人崩溃。我个人跑YOLO用的是acllite这样的Python封装库或者直接自己写ACL调用。CANN安装包自带的样程代码在/usr/local/Ascend/ascend-toolkit/latest/tools/目录下里面有现成的目标检测样例支持YOLOv3/YOLOv5等模型你可以拿它作为起点。Python版本建议用3.7到3.10之间的版本太新或太旧都可能出现.so文件不兼容的问题。实测在华为的openEuler系统上Python 3.9配合CANN 7.0是最稳的组合。3. YOLO模型转换从PyTorch的.pt到昇腾的.om3.1 为什么要转换模型格式.om和推理引擎的关系PyTorch训练的模型是.pt格式包含了网络结构和权重但昇腾NPU不能直接运行.pt文件你需要先用ATCAscend Tensor Compiler工具把它转换成.om格式。这个转换过程有点像把Python代码编译成二进制可执行文件转换时会做算子融合、内存布局优化、量化等操作让模型能在NPU上高效运行。这里有一个很多人不理解的点pt - onnx - om和pt - om是两条不同的路径。虽然ATC工具可以直接读取.pt文件但实际项目中我们通常先把PyTorch模型导出为ONNX再由ATC做ONNX到OM的转换。这样做的原因是ONNX格式已经把网络结构固定下来了不容易出现算子映射丢失的问题而且导出ONNX时可以顺手固定输入尺寸、批处理大小等参数避免转换和推理时出现维度不匹配。3.2 模型转换的完整步骤以YOLOv5s为例我们以YOLOv5s为例走一遍完整流程。注意这里说的YOLOv5s是GitHub上的ultralytics版本整个转换链路比较成熟。第一步在PyTorch环境里导出ONNX。我习惯用Python脚本导出而不是命令行因为可以在导出时修改模型结构去掉不必要的输出层。import torch from models.experimental import attempt_load model attempt_load(yolov5s.pt, map_locationcpu) model.eval() # 固定输入尺寸640x640是YOLOv5的默认输入 dummy_input torch.randn(1, 3, 640, 640) # 导出ONNXopset版本推荐11 torch.onnx.export( model, dummy_input, yolov5s.onnx, opset_version11, input_names[images], output_names[output], dynamic_axesNone # 固定batch和尺寸转换更稳定 )导出时需要注意关闭dynamic_axes。昇腾NPU对动态shape支持有限如果开启动态轴转换后的.om模型推理速度会明显下降甚至某些算子直接不支持。如果你非要动态shape建议在推理时用固定shape通过AIPP的裁剪缩放来实现不同分辨率的输入这个后面会提。第二步用ATC工具转换。在安装了CANN的环境里执行atc --modelyolov5s.onnx \ --framework5 \ --outputyolov5s_aipp \ --soc_versionAscend310P3 \ --insert_op_confaipp.cfg \ --output_typeFP16 \ --input_shapeimages:1,3,640,640 \ --loginfo关键参数逐个说明--framework5表示输入的是ONNX模型1代表Caffe2代表MindSpore3代表TensorFlow。--soc_version必须和你实际的芯片型号一致。Atlas 300V Pro对应的是Ascend310P3如果你不确定可以用npu-smi info查看芯片类型。--insert_op_conf用于插入AIPP预处理配置通过AIPP可以把图像缩放、归一化这些操作直接做到硬件里不再占用NPU计算单元。--output_typeFP16是精度类型。YOLO这种检测模型用FP16基本不掉点但速度能提升不少。AIPP配置文件的写法如下aipp_op { aipp_mode: static input_format: RGB888_U8 src_image_size_w: 640 src_image_size_h: 640 csc_switch: true rbuv_swap_switch: true min_chn_0: 0 min_chn_1: 0 min_chn_2: 0 var_reci_chn_0: 0.003921569 var_reci_chn_1: 0.003921569 var_reci_chn_2: 0.003921569 }这个配置的意思是把输入图像统一为RGB格式的uint8然后做归一化。rbuv_swap_switch: true表示交换R和B通道因为OpenCV读图是BGR顺序而YOLO训练时用的是RGB。很多人转换后推理精度崩了就是因为这个通道顺序没处理好。3.3 转换过程中的算子支持和精度问题ATC转换时最怕遇到不支持的算子。YOLOv5的模型结构相对常规大部分算子都能直接映射到昇腾的底层算子库。但有个常见的坑是torch.onnx.export导出的模型里可能包含ReduceL2或者某些自定义上采样算子ATC会提示“Unsupported op”。这时候不要慌方案有两个一是修改模型源码用标准算子替换掉不支持的算子二是用--op_type_list参数强制指定替代算子。精度方面FP16转换之后强烈建议做一个对比验证。拿同一张测试图分别跑PyTorch原始模型和Atlas上的.om模型对比检测框坐标和置信度。如果精度差异超过合理范围比如两个模型的检测框IoU小于0.5就要考虑是不是AIPP配置里归一化参数写错了或者模型输出层有额外的后处理没做对齐。4. 跑通推理代码ACL接口下YOLO的预处理、推理、后处理4.1 初始化流程从acl.init到模型加载模型转换完成后接下来就是写推理代码。我们用CANN自带的ACL Python接口。整个过程可以分为初始化、加载模型、准备输入输出内存、执行推理、解析结果五个步骤。import acl import numpy as np # 1. 初始化ACL ret acl.init() # 2. 设置设备 ret acl.rt.set_device(0) # 3. 创建上下文Context类似CUDA的context context, ret acl.rt.create_context(0) # 4. 加载模型 model_path b./yolov5s_aipp.om model_id, ret acl.mdl.load_from_file(model_path) # 5. 获取模型描述信息用于后续分配内存 model_desc acl.mdl.create_desc() ret acl.mdl.get_desc(model_desc, model_id) # 获取输入输出大小 input_size acl.mdl.get_num_inputs(model_desc) output_size acl.mdl.get_num_outputs(model_desc)模型加载这一步acl.mdl.load_from_file返回的model_id是一个整数标识后续所有推理操作都要用到。之所以要创建Context是因为NPU设备执行任务时需要有一个上下文环境来管理资源类似进程句柄。这里有个常见的坑如果你用多线程推理每个线程必须单独创建Context或者显式地切换Context否则会报“ACL_ERROR_RT_CONTEXT_NULL”错误。4.2 推理调用数据搬运和模型执行数据从内存到NPU之间需要一个拷贝过程。ACL中负责这件事的是数据缓冲区Data Buffer。我们需要先用acl.rt.malloc在NPU上申请内存然后把图像数据拷贝进去。# 申请NPU内存 input_data np.random.randn(1, 3, 640, 640).astype(np.float16) # 创建数据缓冲区 input_buffer acl.rt.malloc(input_data.nbytes, ACL_MEM_MALLOC_NORMAL_ONLY) # 将数据拷贝到NPU内存 ret acl.rt.memcpy(input_buffer, input_data.nbytes, input_data.ctypes.data, input_data.nbytes, ACL_MEMCPY_HOST_TO_DEVICE) # 执行推理 output_data, ret acl.mdl.execute( model_id, [input_buffer], [input_data.nbytes] )这里特别要注意数据格式。ACL默认的输入数据要求是float16而原始图像是uint8中间的转换需要用cv2或者numpy完成。如果你在模型转换时用了AIPP预处理那么输入数据就是原始的uint8图像AIPP会自动完成归一化和缩放这时的输入buffer大小就是1 * 3 * 640 * 640字节而不是乘以2float16是两个字节。acl.mdl.execute是同步接口会阻塞到推理完成。如果想提升吞吐量可以用acl.mdl.execute_async配合Stream实现异步推理。异步推理是后面性能调优的关键但先跑通同步版本最重要。4.3 解析输出YOLO的detect层后处理YOLOv5的输出是一个形状为[1, 25200, 85]的张量。25200是三个特征图80x80、40x40、20x20上anchor的总数85是4个坐标、1个置信度、80个类别概率。如果你在导出ONNX时只保留主干输出那么后面还需要自己在后处理里完成NMS非极大值抑制。# 这里的output_data已经是numpy数组 predictions output_data.reshape(1, 25200, 85) # 过滤掉置信度低的框 conf_mask predictions[..., 4] 0.5 filtered predictions[conf_mask] # 对每个类别做NMS from torchvision.ops import nms boxes filtered[:, :4] scores filtered[:, 4] * filtered[:, 5:].max(axis1) nms_idx nms(torch.from_numpy(boxes), torch.from_numpy(scores), iou_threshold0.5)调试时建议先用一张已知的图片做验证提前用PyTorch跑出标准结果再和Atlas输出做对比。如果发现检测框全部偏移或者置信度全为0大概率是后处理的anchor配置不对或者模型输出的坐标归一化方式和你预期的不一致。5. 实测踩坑部署YOLO最容易遇到的5个问题5.1 推理结果精度崩了先查letterbox和AIPP第一次在Atlas 300V Pro上跑YOLOv5我遇到最诡异的问题是检测框偏了大概十几像素置信度倒是正常。排查了半天发现是图像预处理不一致导致的。PyTorch训练时YOLO的预处理通常是把图像等比缩放后填充到640x640也就是letterbox操作。但在Atlas部署时如果直接把原始图像缩放成640x640输入给AIPP图像就会变形检测框自然不准。解决办法是在主机端先完成letterbox然后把处理后的图像交给AIPP做归一化。或者直接在主机端把缩放、填充、归一化全部做掉AIPP只做数据格式转换。我更推荐后一种方式因为逻辑清晰出问题容易定位。def letterbox(img, new_shape640): shape img.shape[:2] r min(new_shape / shape[0], new_shape / shape[1]) new_unpad int(round(shape[1] * r)), int(round(shape[0] * r)) dw (new_shape - new_unpad[0]) / 2 dh (new_shape - new_unpad[1]) / 2 img cv2.resize(img, new_unpad, interpolationcv2.INTER_LINEAR) top, bottom int(round(dh - 0.1)), int(round(dh 0.1)) left, right int(round(dw - 0.1)), int(round(dw 0.1)) img cv2.copyMakeBorder(img, top, bottom, left, right, cv2.BORDER_CONSTANT, value(114, 114, 114)) return img5.2 模型转换时遇到不支持的算子如何定位并绕过我转换YOLOv8时遇到过GridSample算子不支持的问题。ATC日志会直接告诉你哪个算子、在哪个节点、什么原因失败。定位到具体算子后有两个绕法一是用ATC的--enable_small_channel之类的优化参数有时能自动把复杂算子拆解成多个简单算子二是修改模型源码把不支持的算子用等价操作替换。以GridSample为例如果只是用于坐标采样你可以把它拆成多个Gather和StridedSlice操作虽然代码变复杂了但至少能在NPU上跑。还有个办法是升级CANN版本。昇腾的算子库迭代很快可能新版本就支持了之前缺失的算子。所以在排查算子问题时先确认CANN版本是不是最新的。5.3 推理速度上不去AIPP和DVPP的正确用法以YOLOv5s为例理论上在300V Pro上跑640x640的输入单帧延迟应该在20毫秒以内。如果你发现延迟超过了100毫秒十有八九是图像解码和预处理占了大部分时间。Atlas 300V Pro的DVPP硬件模块支持JPEG解码和图像缩放。如果输入源是JPEG图片或H.264视频流建议用DVPP完成解码、缩放和格式转换而不是用OpenCV的cv2.imread和cv2.resize。DVPP的缩放性能比CPU快一个数量级。我的实际测试数据CPU端用OpenCV解码1080p JPEG并resize到640x640单帧耗时约35毫秒用DVPP解码加缩放耗时约8毫秒。在视频流场景下这个差距非常可观。不过DVPP的使用门槛较高需要申请VPC通道、配置图像描述符。如果你的业务对延迟不敏感可以暂时用CPU预处理但如果是多路视频并发建议还是花时间啃一下DVPP的接口。5.4 多路并发时的内存泄漏以及如何规避跑视频流分析时最容易出现内存缓慢增长的问题。原因是每次推理循环里申请的NPU内存没有释放。ACL的acl.rt.malloc和acl.rt.free必须成对出现但很多人用的是acl.mdl.execute它会自动申请临时内存如果不显式释放累积下来内存就会爆。我的经验是写一个资源管理器把每次申请的Buffer对象记录下来在不需要时统一释放。另外acl.rt.memcpy如果是从Device到Host方向拷贝完成后Host端的内存可以复用不要每次循环都新建numpy数组。关于多路并行300V Pro支持多个Stream并发执行。你可以为每路视频创建一个Stream然后使用acl.mdl.execute_async把推理任务投递到不同Stream上。实测下来4路视频流并发推理时总吞吐量能达到单路的3.2倍以上说明多Stream并行是有效果的。5.5 npu-smi监控与温度控制长时间运行时建议写一个监控脚本定时读取npu-smi info的输出重点关注芯片温度和内存占用。300V Pro是 passively cooled的卡如果机箱风道不好温度会飙升到90度以上然后NPU开始降频推理延迟突然变高。如果你的服务器是塔式机箱建议给卡加一个辅助散热风扇或者把机箱侧板打开。数据中心环境里通常服务器的前置风扇足够但在边缘网关里这个问题很常见。6. 性能调优与量产部署建议6.1 延迟和吞吐量的平衡策略部署YOLO到生产环境时你要先明确业务指标是追求单帧延迟低还是多路并发吞吐高这两个方向在300V Pro上的调优策略完全不同。追求延迟时需要做三件事把模型的batch size固定为1、使用ACL_MEM_MALLOC_HUGE_FIRST分配大页内存、避免在推理前打印日志。实测下大页内存能降低约10%的延迟因为在NPU和CPU之间搬运数据时缓存命中率更高。追求吞吐量时应该用动态batch。ATC转换时把input_shape设成1,3,640,640但推理时通过acl.mdl.set_dynamic_batch_size在运行时设置batch大小。比如一次输入4张图虽然单帧延迟略有增加但整体吞吐量提升了三倍。6.2 多路视频流的异步推理实现异步推理的核心是不要阻塞在acl.mdl.execute上而是用Stream把多个推理任务串起来。ACL的推理流程是创建多个Stream每个Stream绑定一路视频流的预处理和推理。每路视频流循环执行解码取帧 - 预处理 - 投递推理 - 读取结果。在实现上需要注意acl.mdl.execute_async的最后一个参数是Stream句柄。如果你希望多路并行一定要给每路创建独立的Stream# 每路视频流创建独立的Stream stream_list [] for i in range(4): stream, ret acl.rt.create_stream() stream_list.append(stream) # 推理时指定stream ret acl.mdl.execute_async(model_id, input_buffer, output_buffer, stream)有个坑execute_async返回后推理可能还没完成你需要acl.rt.synchronize_stream(stream)来等待结果。如果忘了同步读出来的数据可能是旧数据。6.3 从Atlas 300V Pro到整个昇腾部署生态跑通YOLO之后你会发现昇腾生态有个别的平台没有的优势模型转换、推理、编解码都是闭环的。如果你需要把结果传到云端CANN提供了acldvpp和acllite等模块可以组合出“视频接入 - 推理分析 - 结构化输出 - 上传”的完整链路。部署时还可以用昇腾官方的ModelBox框架来编排流程。ModelBox类似GStreamer通过配置图的方式把视频流、推理、输出串起来。虽然是图形化编排但底层还是ACL接口。如果你只是做简单验证用Python脚本就够了但如果是给客户交付项目建议用ModelBox因为它的错误处理、日志管理、资源释放都更规范。关于模型后续的维护建议保留一份ONNX模型文件和AIPP配置文件方便随CANN版本迭代重新转换。昇腾新版本发布后旧模型可能需要重新转换才能获得性能提升有源码在手就随时能重新生成。我个人在实际部署中的体会是Atlas 300V Pro这块卡的单卡算力虽然不是顶级但胜在功耗低、内存大、视频处理硬件能力强特别适合YOLO这类目标检测模型的多路视频分析场景。最难熬的其实是第一次从GPU思维切换到NPU思维的过程只要理解了模型转换、AIPP预处理、ACL推理这三件事后面就顺畅了。最后再分享一个小技巧遇到奇怪问题时先把ASCEND_GLOBAL_LOG_LEVEL调成0看完整的INFO日志绝大部分问题都能在日志里找到答案比在网上瞎搜有效得多。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ChatGPT failed to start报错 2026/9/25 16:24:58

ChatGPT failed to start报错

文章目录前言一、移动到C盘二、编辑环境变量1.下载文件总结前言 8月27日windows打开gpt后报错: ChatGPT failed to start. Unable to locate the Codex CLI binary. Set CODEX_CLI_PATH or ensure the Electron resources include bin/codex. 一、移动到C盘 第一…

阅读更多 →
Ghidra MCP 7.0.0 工具整合迁移指南:272→251工具的破坏性变更全解析 2026/9/25 16:24:26

Ghidra MCP 7.0.0 工具整合迁移指南:272→251工具的破坏性变更全解析

Ghidra MCP 7.0.0 工具整合迁移指南:272→251工具的破坏性变更全解析 【免费下载链接】ghidra-mcp Ghidra MCP Server — 200 MCP tools for AI-powered reverse engineering. GUI plugin headless server, lazy tool loading, convention enforcement, batch oper…

阅读更多 →
OBS/会议/游戏怎么接入手机麦克风?MicYou虚拟声卡路由保姆级教程 2026/9/25 16:24:19

OBS/会议/游戏怎么接入手机麦克风?MicYou虚拟声卡路由保姆级教程

OBS/会议/游戏怎么接入手机麦克风?MicYou虚拟声卡路由保姆级教程 【免费下载链接】MicYou MicYou is a powerful tool that turns your Android device into a high-quality microphone for your PC. 项目地址: https://gitcode.com/gh_mirrors/mi/MicYou MicYou 是一款…

阅读更多 →
基于 Spring Boot 的二手车交易网站的设计与实现 2026/9/25 16:23:53

基于 Spring Boot 的二手车交易网站的设计与实现

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 1. 项目背景与意义 随着汽车保有量的持续增长和消费观念的转变,二手车交易市场呈现出快速发展的态势。传统的线下二手车交易存在信息不对称、车源分散、交易…

阅读更多 →
GEOFlow知识库搭建完整指南:pgvector向量检索让AI内容生产有据可依 2026/9/25 16:23:27

GEOFlow知识库搭建完整指南:pgvector向量检索让AI内容生产有据可依

GEOFlow知识库搭建完整指南:pgvector向量检索让AI内容生产有据可依 【免费下载链接】GEOFlow Open-source GEO content engineering and multi-site distribution platform with AI quality inspection, illustrated admin help, hosted sites, browser-assisted pu…

阅读更多 →
Agent Skills 实用指南:构建可复用智能体技能体系 2026/9/25 16:23:27

Agent Skills 实用指南:构建可复用智能体技能体系

"agent-skills"这个词,最近在AI圈子里被反复提起。我做智能体开发也有两三年了,从最早的提示词堆砌,到后来的函数调用,再到现在围绕技能(skills)来构建智能体,最大的感受是&#xff1…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉