CANN-LLM WebUI:打造国产 LLM 推理的“驾驶舱
CANN-LLM WebUI打造国产 LLM 推理的“驾驶舱”cann组织链接https://atomgit.com/cannops-nn仓库链接https://atomgit.com/cann/ops-nn 目标实时显示吞吐、延迟、显存、NPU 利用率可视化各优先级队列状态、KV Cache 分布交互功能查看/取消正在运行的请求日志流滚动显示最新推理日志技术栈纯 C 后端 WebSocket Vue3 前端嵌入式✅ 所有数据来自 CANN Profiling API 内部调度器状态一、系统架构MetricsRequest EventsCancel RequestCANN-LLM EngineMetrics CollectorEvent BusWebSocket ServerVue3 WebUIHTTP DELETE二、后端实现C1.指标采集器MetricsCollector// metrics_collector.hstructSystemMetrics{doubletokens_per_sec0;doubleavg_latency_ms0;size_t gpu_memory_used0;floatnpu_utilization0.0f;structQueueStats{intpending0;intrunning0;}high,medium,low;std::vectorstd::stringrecent_logs;};classMetricsCollector{SystemMetrics metrics_;std::mutex mtx_;public:voidupdate_from_engine(constEngineStatestate){std::lock_guardlock(mtx_);// 从调度器获取队列状态metrics_.highstate.scheduler.get_queue_stats(Priority::HIGH);// 从 hcll 获取显存metrics_.gpu_memory_usedhcllQueryUsedMemory();// 从 CANN Profiling API 获取 NPU 利用率metrics_.npu_utilizationcann::profiling::get_device_util(0);// 计算吞吐滑动窗口metrics_.tokens_per_secstate.token_counter.rate_last_10s();}SystemMetricsget_snapshot(){std::lock_guardlock(mtx_);returnmetrics_;}};cann::profiling::get_device_util()通过aclprofAPI 实现2.WebSocket 服务嵌入式使用轻量级库如uWebSockets或Boost.Beast// webui_server.cppvoidWebUIServer::start_websocket(){server.listen(8081,[](auto*ws){// 新客户端连接autometrics_jsonjson_serializer(metrics_collector_.get_snapshot());ws-send(metrics_json);// 每 500ms 推送更新start_timer(500ms,[ws,this](){if(ws-is_open()){autoupdatejson_serializer(metrics_collector_.get_snapshot());ws-send(update);}});});}3.活跃请求列表接口// 提供 /api/requests?statusrunningstd::vectorRequestInfoget_active_requests(){std::vectorRequestInfolist;for(autoseq:scheduler_.get_all_sequences()){if(!seq-is_finished()!seq-is_cancelled()){list.push_back({.idseq-id(),.priorityto_string(seq-priority()),.prompt_lenseq-prompt_len(),.generated_lenseq-generated_len(),.kv_blocksseq-block_table.size(),.created_atseq-timestamp()});}}returnlist;}三、前端实现嵌入式 Vue3将前端资源编译为 C 字符数组或打包进 binarywebui/index.html简化templatedivclassdashboard!-- 核心指标卡片 --divclassmetric-cardh3吞吐/h3p{{ metrics.tokens_per_sec.toFixed(1) }} tokens/s/p/div!-- 队列状态 --divclassqueue-bardivclassbar high:style{width: highRatio %}High/divdivclassbar medium:style{width: mediumRatio %}Medium/divdivclassbar low:style{width: lowRatio %}Low/div/div!-- 活跃请求表 --tabletrv-forreq in activeRequests:keyreq.idtd{{ req.id }}/tdtd{{ req.priority }}/tdtd{{ req.generated_len }}/tdtdbuttonclickcancelRequest(req.id)❌ Cancel/button/td/tr/table!-- 实时日志 --divclasslog-paneldivv-forlog in logs:keylog{{ log }}/div/div/div/templatescriptexportdefault{data(){return{metrics:{},activeRequests:[],logs:[]};},mounted(){// 连接 WebSocketconstwsnewWebSocket(ws://localhost:8081);ws.onmessage(event){constdataJSON.parse(event.data);this.metricsdata.metrics;this.activeRequestsdata.requests;this.logsdata.logs.slice(-50);// 保留最近 50 行};},methods:{cancelRequest(id){fetch(/requests/${id},{method:DELETE}).then(()this.refresh());// 重新拉取列表}}}/script 使用xxd -i index.html webui_embedded.h将前端嵌入 C 二进制四、关键可视化组件1.KV Cache 热力图X 轴Block IDY 轴Layer ID颜色引用计数红色高共享蓝色独占点击 block 可查看所属请求2.NPU 利用率时间序列折线图显示过去 5 分钟利用率阈值线80%标红预警3.请求生命周期甘特图每个请求显示排队时间 推理时间 生成 token 数支持按 priority 着色五、部署与访问启动服务后./llm_server --enable-webui --port8080--webui-port8081浏览器访问http://server-ip:8081无需额外依赖所有静态资源由 C 二进制提供。六、安全与生产建议认证添加--webui-tokenxxx前端需携带 Token只读模式可通过--webui-readonly禁用取消按钮日志脱敏自动过滤 prompt 中的敏感词如 API Key七、结语透明即信任一个优秀的推理系统不仅要跑得快更要看得清。通过内建WebUI 控制台CANN-LLM 实现了运维友好快速定位瓶颈开发友好直观验证调度策略用户友好自助管理请求这标志着国产 AI 软件栈从“黑盒加速”走向“白盒可控”的重要一步。CANN-LLM WebUI 将随 v1.0 正式版一同开源是否希望下一篇深入如何用 CANN Profiler 生成火焰图并嵌入 WebUI或提供完整的 CI/CD 流水线配置GitLab CI Ascend 云欢迎告诉我

相关新闻

so文件是什么

so文件是什么

so文件是什么? 在Linux系统中,.so 文件 是最常见的动态链接库(Dynamic Shared Library),全称是 Shared Object(共享对象)。 简单来说,它就相当于 Windows 系统里的 .dll 文件。 一…

2026/7/4 12:23:09 阅读更多 →
CAD工程制图规则

CAD工程制图规则

CAD工程制图规则(中国国家标准视角) 在中国的工程设计领域,使用AutoCAD、浩辰CAD、中望CAD等软件进行制图时,必须遵循相关国家标准,以保证图纸的规范性、一致性、可读性和可复制性。 最核心的两大标准是:…

2026/5/17 3:12:08 阅读更多 →
【Linux命令大全】010.设备管理(理论篇)

【Linux命令大全】010.设备管理(理论篇)

【Linux命令大全】010.设备管理 ✨ 本文为Linux系统设备管理相关命令的全面汇总与深度优化,结合图标、结构化排版与实用技巧,专为高级用户和系统管理员打造。 覆盖常见设备管理命令,按字母序排列,便于快速定位与查阅。 (关注不迷路…

2026/7/3 22:34:43 阅读更多 →

最新新闻

AI大模型实战手册:从Transformer到RAG,核心概念与工程实践详解

AI大模型实战手册:从Transformer到RAG,核心概念与工程实践详解

1. 项目概述:为什么需要一本AI大模型的“词典”?最近几年,AI大模型的热度居高不下,几乎每天都能看到新的模型发布、新的应用落地。但随之而来的,是铺天盖地的技术名词和行业黑话。从“Transformer”到“RAG”&#xff…

2026/7/5 23:33:07 阅读更多 →
ElasticFace:动态边缘惩罚提升深度人脸识别性能

ElasticFace:动态边缘惩罚提升深度人脸识别性能

1. 论文核心内容概览 在深度人脸识别领域,特征提取的质量直接决定了模型的识别性能。传统方法如ArcFace、CosFace等通过引入固定的惩罚边缘(Fixed Penalty Margin)来增强特征的区分度,但这种"一刀切"的方式在面对真实场…

2026/7/5 23:33:07 阅读更多 →
AI模型Web服务安全加固实战:从CSRF/XSS防护到生产部署

AI模型Web服务安全加固实战:从CSRF/XSS防护到生产部署

1. 项目概述:当AI视觉模型遇上Web安全最近在部署一个基于OFA(One-For-All)的图像语义蕴含模型服务时,我遇到了一个非常典型但又容易被忽视的问题:我们往往把绝大部分精力都花在了模型调优、接口性能优化上,…

2026/7/5 23:29:06 阅读更多 →
视频嵌入表示技术:从3D CNN到Transformer的实践指南

视频嵌入表示技术:从3D CNN到Transformer的实践指南

1. 视频嵌入表示生成方案概述视频嵌入表示(Video Embedding)是计算机视觉领域将原始视频数据转化为低维稠密向量的关键技术。不同于传统视频处理直接操作像素数据,嵌入表示通过深度学习模型提取视频的语义特征,形成固定长度的向量…

2026/7/5 23:29:06 阅读更多 →
GPT-4o与Claude 3.5 Sonnet模型选型实战指南

GPT-4o与Claude 3.5 Sonnet模型选型实战指南

该项目标题存在严重事实性错误与误导风险,不符合内容安全与专业规范要求。根据公开、权威、可验证的官方信息渠道(OpenAI官网、主流科技媒体如The Verge、TechCrunch、MIT Technology Review等2024年至今的持续追踪报道),截至目前…

2026/7/5 23:29:06 阅读更多 →
DC-DC降压转换器设计与PID控制优化实践

DC-DC降压转换器设计与PID控制优化实践

1. 项目背景与核心器件选型解析在电力电子领域,DC-DC降压转换器(Buck Converter)是最基础也最关键的拓扑结构之一。这次我们要实现的方案采用了171010550电源管理IC与PIC18F97J60微控制器的组合,这个搭配在工业控制领域颇具代表性…

2026/7/5 23:25:05 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻