RuView 边缘智能实战解析:ESP32-S3 分级 CSI 处理流水线(ADR-039)架构、协议与硬件验证
本文是 RuView 项目 ADR-039(ESP32-S3 Edge Intelligence Pipeline)的深度技术指南,聚焦如何把 WiFi-DensePose 的原始 CSI 流处理从服务端下沉到 ESP32-S3 双核本地,实现呼吸/心率估计、存在检测、跌倒检测与多人生命体征的分级边缘智能。读完本文你将掌握三级流水线的职责划分、32 字节 vitals 与压缩帧两种线协议的字节级布局、NVS 配置与 provision.py 参数映射,以及实测的时延、带宽、内存与稳定性数据,可直接指导真实节点的部署与调参。
为什么要在节点上做信号处理:四个被量化的瓶颈
WiFi-DensePose 通过 ESP32-S3 节点采集信道状态信息(Channel State Information,CSI),并把原始 I/Q 数据流式回传主机处理。ADR-039 在 Context 章节 中明确指出该集中式架构的四个核心限制:
| 维度 | 量化数据 | 问题本质 |
|---|---|---|
| 带宽 | 20 Hz × 128 子载波 × 2 字节 ≈ 5 KB/帧 ≈ 100 KB/s/节点 | 多节点部署会饱和低带宽链路 |
| 时延 | 服务端处理需计入网络往返(RTT) | 对跌倒检测等时间敏感信号不友好 |
| 功耗 | 连续原始流式上传 | 阻断电池供电场景的 duty-cycle |
| 可扩展性 | 服务器 CPU 随节点数线性增长 | 基础信号处理本可在 ESP32-S3 双核上完成 |
结论很直接:把"可在端上完成"的信号处理(相位提取、方差统计、滤波、过零率等)放到设备本地,只回传紧凑结果。这也是 ADR-039 作为"ESP32-S3 Edge Intelligence Pipeline"被接受并完成硬件验证的决策依据。
分级决策:Tier 0 / Tier 1 / Tier 2 三级流水线
决策本身是一条可渐进启用的分级处理流水线,兼顾向后兼容与投入产出:
Tier 0 —— 原始透传(默认且向后兼容)
不做任何设备端处理,CSI 帧原样上传(magic 0xC5110001),等价于旧架构行为。
Tier 1 —— 基础信号处理
- 从 I/Q 对提取相位并解卷绕(phase unwrapping)
- 每子载波的 Welford 在线方差
- 按方差选取 Top-K 子载波
- 差分压缩(XOR + RLE),实现 30–50% 带宽削减(magic
0xC5110005,原0xC5110003已被 ADR-069 重新分配)
Tier 2 —— 完整边缘智能 在 Tier 1 全部能力之上叠加:
- 双通道 Biquad IIR 带通滤波:呼吸(0.1–0.5 Hz)、心率(0.8–2.0 Hz)
- 过零率 BPM 估计
- 存在检测(自适应阈值校准,1200 帧,3-sigma)
- 跌倒检测(相位加速度超过可配置阈值)
- 多人生命体征(子载波组分簇,最多 4 人)
- 可配置间隔发送的 32 字节 vitals 包(magic
0xC5110002)
从 edge_processing.h 的模块头注释可以确认这套能力的完整落地形态:它明确列出 Biquad 带通、相位解卷绕与 Welford 统计、Top-K 选取、自适应阈值存在检测、过零 BPM、跌倒检测、差分压缩、多人分簇,以及 32 字节 vitals 包的设备端发送,共 11 步 DSP 处理链。
双核架构与锁无关 SPSC 环形缓冲
ADR-039 给出 Core 0(WiFi)/ Core 1(DSP)的双核流水线示意,而 edge_processing.h 与 edge_processing.c 将其落实为可读的源码结构:
- Core 0(生产者):
wifi_csi_cb回调把 CSI 帧推入无锁 SPSC 环形缓冲,同时维持 UDP 原始流(0xC5110001)。 - Core 1(消费者/DSP 任务):从环形缓冲弹出帧,依次执行相位提取与解卷绕、Welford 方差、Top-K 选取、Biquad 带通、过零 BPM、存在/跌倒检测、多人分簇、差分压缩,最后输出 UDP vitals(
0xC5110002)与压缩帧(0x05)。
/* edge_processing.h — SPSC 环形缓冲 slot 与缓冲区 */
#define EDGE_RING_SLOTS 16 /**< 槽位(2 的幂) */
#define EDGE_MAX_IQ_BYTES 1024 /**< 每槽最大 I/Q 载荷 */
typedef struct {
uint8_t iq_data[EDGE_MAX_IQ_BYTES]; /* 来自 CSI 回调的原始 I/Q */
uint16_t iq_len;
int8_t rssi; /* 来自 rx_ctrl 的 RSSI */
uint8_t channel;
uint32_t timestamp_us; /* 微秒时间戳 */
} edge_ring_slot_t;
关键实现事实(均可从 edge_processing.c 第 64–98 行读出):
ring_push()由 ISR 上下文调用,写入 slot 后用__sync_synchronize()内存屏障保证数据可见性再推进 head;ring_pop()对称地推进 tail。环形缓冲满时直接丢帧并累计s_ring_drops计数。- 公共 API 设计为可线程安全读取:
edge_enqueue_csi()(回调入队)、edge_processing_init()(启动 Core 1 DSP 任务)、edge_get_vitals()、edge_get_multi_person()、edge_get_sample_rate_hz()、edge_get_phase_history()与edge_get_variances()(后两者专为 WASM 运行时暴露相位历史与方差数组,衔接 ADR-040)。 - C6 单核回退:源码注释说明在单核目标(如 ESP32-C6)上 DSP 任务固定到 core 0;且
CONFIG_SOC_WIFI_HE_SUPPORT决定EDGE_MAX_SUBCARRIERS取 256(HE20,C6/C5)还是 128(S3 等 pre-HE),并配套了 2026-08-28 的一次修复——此前 C6 上报 256 bin 帧时因n_subcarriers > 128的守卫被整帧拒绝,导致边缘管线"静默失效"(无 vitals、无存在/跌倒输出),这正是该宏按芯片能力分叉的原因。
Tier 1 核心算法:相位解卷绕、Welford 方差与 Top-K
Tier 1 的三件套在代码中均有纯 C 实现:
Biquad 带通设计(Tier 2 复用)
edge_processing.c 的 biquad_bandpass_design() 依据 2 阶 Butterworth 带通公式生成系数 b0/b1/b2/a1/a2,输入 fs(采样率)、f_lo/f_hi(截止频率),呼吸通道用 0.1–0.5 Hz、心率通道用 0.8–2.0 Hz。状态结构 edge_biquad_t 保存输入/输出延迟线 x1/x2/y1/y2。
Welford 在线方差
edge_welford_t 只保存 mean、m2 与 count 三个量即可流式求方差,无需缓存整段子载波历史,是 MCU 内存受限场景的标准选型。多人的滤波器与历史缓冲(s_person_bq_br/hr、s_person_br_filt/hr_filt)在源码中以 EDGE_MAX_PERSONS(=4)为上限静态分配。
Top-K 子载波选取
update_top_k() 采用"标记排除 + 每轮线性扫描"的部分插入排序:O(n×K) 复杂度对 n≤128/256 完全够用。K 值由配置的 top_k_count 决定,默认 8,上限被编译期常量 EDGE_TOP_K 约束。堆栈节省方面值得注意:BPM 估算的临时缓冲被移为静态数组 s_scratch_br/hr,因为 process_frame + 多人更新原本要占掉 8 KB 任务栈中的约 6.5–7.5 KB。
差分压缩:XOR + RLE 的字节级实现
CSI 相邻帧在静止环境下高度相关,因此 edge_processing.c 用"上一帧 XOR 当前帧 + RLE 游程编码"压缩:
- 帧间不同则 XOR 结果有大量连续 0,随后以
[value, count]成对做 RLE; - 每对
count ≤ 255,超出则拆多对; - 只有压缩后确实更小才发送(
out_idx >= len时返回 0 放弃压缩帧); - 每次处理无论是否发送成功都会把当前帧存为下一帧的 XOR 参照(
s_prev_iq)。
这也解释了文档中 30–50% 带宽削减的来由:静态背景下 XOR 差分为 0 的游程极长,压缩收益最明显;而运动剧烈时压缩会"自然失效"回退为不发送,避免放大数据。Tier 1 的实际效果依赖场景,属启发式压缩而非无损通用压缩。
Tier 2 完整边缘智能与质量护栏
ADR-039 中 Tier 2 的多项能力在后来的固件迭代中补上了严谨的鲁棒性工程,均可在 edge_processing.h 的常量与注释中看到版本演进的痕迹:
- 存在检测的自适应校准:
EDGE_CALIB_FRAMES = 1200(约 60 秒@20 Hz),阈值为环境均值 +EDGE_CALIB_SIGMA_MULT = 3.0× sigma。 - Presence 迟滞与去抖(issue #996):由于单人体静止时 presence_score 实测可抖动 2.6–26.7,单阈值比较会致标志位在边界抖动。修复为施密特迟滞:
score > threshold立即置位、score >= threshold × EDGE_PRESENCE_HYST_RATIO(0.5)保持现状(死区)、连续EDGE_PRESENCE_CLEAR_FRAMES(5)帧低于低阈值才清除。presence_flag_update()被设计为无全局变量的纯函数,便于 host 端用整段 score 轨迹做回归测试。 - 跌倒检测去抖:
EDGE_FALL_CONSEC_MIN = 3(连续 3 帧超阈才触发)+EDGE_FALL_COOLDOWN_MS = 5000(触发后 5 秒冷却),可有效压制单帧尖峰误报。 - 多人计数闸门(issue #998):此前把 Top-K 子载波机械分成
EDGE_MAX_PERSONS组并全部标记为活跃,单人的多径会恒报满员 4 人。修复后只有同时满足三道闸门的组才晋升为"真实的人":(1) 能量闸门——组方差需 ≥ 最强组方差的 35%(EDGE_PERSON_MIN_ENERGY_RATIO),弱组视为多径/噪声;(2) 空间去重——代表子载波间距 ≥ 4(EDGE_PERSON_MIN_SC_SEP)才视为不同身体;(3) 持续性——候选人数需连续保持 3 帧(EDGE_PERSON_PERSIST_FRAMES)才被发射。count_distinct_persons()同样是无全局变量的纯函数,可被 host 测试直接调用;edge_evidence_person_count()还强制"房间级 presence 为 false 时人数恒为 0"这一线上不变量。
两种线协议的字节级格式
Vitals 包(32 字节,magic 0xC5110002)
ADR-039 给出了完整字段表,其在源码中对应 edge_processing.h 的 edge_vitals_pkt_t 紧凑结构体,并以 _Static_assert(sizeof == 32) 在编译期锁定字节数:
| Offset | 类型 | 字段 |
|---|---|---|
| 0–3 | u32 LE | Magic 0xC5110002 |
| 4 | u8 | Node ID |
| 5 | u8 | Flags(bit0=presence,bit1=fall,bit2=motion) |
| 6–7 | u16 LE | 呼吸率(BPM × 100) |
| 8–11 | u32 LE | 心率(BPM × 10000) |
| 12 | i8 | RSSI |
| 13 | u8 | 检测到的人数 |
| 14–15 | u8[2] | Reserved |
| 16–19 | f32 LE | Motion energy |
| 20–23 | f32 LE | Presence score |
| 24–27 | u32 LE | Timestamp(开机后毫秒) |
| 28–31 | u32 LE | Reserved |
值得注意:原
0xC5110003magic 已被 ADR-069 重新分配为 48 字节 CSI 特征向量包EDGE_FEATURE_MAGIC(含 8 维归一化特征与 int64 微秒时间戳),ADR-063 又扩展出带 mmWave 融合的 48 字节0xC5110004包(前 32 字节与 vitals 布局兼容,后 16 字节为毫米波心率/呼吸/距离/目标数/置信度),edge_processing.h 中均有_Static_assert保护;rv_feature_state.h 也集中注释了 0xC5110002/0xC5110005 的归属,可作为 magic 号全局注册表。
压缩帧(magic 0xC5110005,由 ADR-069 从 0xC5110003 改派)
| Offset | 类型 | 字段 |
|---|---|---|
| 0–3 | u32 LE | Magic 0xC5110005 |
| 4 | u8 | Node ID |
| 5 | u8 | WiFi 信道 |
| 6–7 | u16 LE | 原始 I/Q 长度 |
| 8–9 | u16 LE | 压缩后长度 |
| 10+ | bytes | RLE 编码的 XOR 差分 |
发送实现在 send_compressed_frame():若 delta_compress() 返回 0(压缩无收益),则跳过该帧只更新参照帧,从而保证线路上永远不会出现比原始更"膨胀"的压缩帧。
配置体系:csi_cfg 命名空间与 provision.py
六个 NVS 键
| NVS Key | 类型 | 默认值 | 说明 |
|---|---|---|---|
edge_tier |
u8 | 2 | 处理层级(0/1/2) |
pres_thresh |
u16 | 0 | 存在阈值 × 1000(0 = 自动校准) |
fall_thresh |
u16 | 2000 | 跌倒阈值 × 1000(rad/s²) |
vital_win |
u16 | 256 | 相位历史窗口 |
vital_int |
u16 | 1000 | vitals 发送间隔(ms) |
subk_count |
u8 | 8 | Top-K 子载波数 |
数值语义与底层结构对齐:浮点阈值在 NVS 中以定标整数存储(文档以 ×1000 说明,provision.py 中用 int(pres_thresh * 1000) / int(fall_thresh * 1000) 转换并声明为 u16);运行时 edge_processing.h 的 edge_config_t 再把它们恢复为 float,同时还保留了 NVS 之外的 power_duty(10–100)字段。该结构通过 edge_processing_init() 传入。
provision.py:免重编译烧录配置
固件发布为预编译二进制时,通过 provision.py 直接向 ESP32-S3 的 NVS 分区(默认偏移 0x9000、24 KiB)写入配置即可,无需重编固件。核心流程:拼 NVS CSV(csi_cfg namespace)→ 用 nvs_partition_gen(优先 pip 包 esp_idf_nvs_partition_gen,回退到 ESP-IDF 自带脚本或模块调用)生成分区镜像 → esptool write_flash。它支持 ADR-040 的 WASM 签名校验键(wasm_verify u8、wasm_pubkey 32 字节 hex2bin Ed25519 公钥)一并写入。
ADR-039 文档中的示例命令可展开为一次完整的 Tier 2 自定义配置:
python scripts/provision.py \
--port /dev/ttyUSB0 \
--ssid "MyWiFi" --password "secret" \
--target-ip 192.168.1.20 \
--node-id 7 \
--edge-tier 2 \
--pres-thresh 0.05 \
--fall-thresh 6.0 \
--vital-window 256 \
--vital-interval 1000 \
--subk-count 8
命令行参数与 NVS 键的合法范围(来自 provision.py 的 argparse 约束与源码注释)如下:
| CLI 参数 | NVS 键 | 取值范围/语义 |
|---|---|---|
--edge-tier |
edge_tier |
0/1/2 |
--pres-thresh |
pres_thresh |
浮点,0 = 自动校准;内部 ×1000 存 u16 |
--fall-thresh |
fall_thresh |
浮点 rad/s²,文档默认 2.0,×1000 存 u16 |
--vital-window |
vital_win |
32–256 |
--vital-interval |
vital_int |
100–10000 ms |
--subk-count |
subk_count |
1–32 |
--wasm-verify/--no-wasm-verify、--wasm-pubkey |
wasm_verify/wasm_pubkey |
ADR-040 签名校验(64 hex 字符) |
--dry-run |
— | 只生成 NVS 镜像不烧录 |
--port/--baud |
— | 串口(默认 460800 baud) |
未指定任何配置值时报错退出;多节点场景还可参考 qemu_swarm.py 对 edge_tier 的透传(--edge-tier 拼参)以及 swarm_presets 中大量 preset 对 edge_tier: 1/2 的编排。边界/极限值的系统验证见 generate_nvs_matrix.py:它把 1200 帧 3-sigma 自动校准、vital_win 32–256、subk_count 1–32、vital_int 100–10000、fall_thresh 0.1–65535(定标)等作为矩阵边界逐一生成 NVS 镜像,用于硬件范围验证。
服务端如何消费:从 5 KB CSI 到 32 字节 vitals
ADR-039 中"服务器可处理 10 倍节点"的论断基于:服务端只需要解析 32 字节 vitals 而不是约 5 KB 的原始 CSI。vitals magic 的消费端落在 v2/crates/wifi-densepose-sensing-server/src/csi.rs 与 main.rs(Rust 侧解析器),并有 tests/multi_node_test.rs 覆盖多节点帧解析。Rust 服务端除 UDP CSI 摄取与帧解析外,还承担 REST/vitals 端点的对外暴露,并支持把 vitals 桥接为 MQTT 主题(--mqtt-* CLI 旗标在 cli.rs 无条件声明)。这样端上只保留高价值语义(presence/fall/motion/呼吸/心率/人数),链路利用率与扩容性同时受益。
附加能力:OTA 与电源管理
- OTA 更新:HTTP 服务固定端口 8032,
POST /ota接收固件二进制(application/octet-stream)并烧录、GET /ota/status返回当前固件版本与分区信息,带回滚支持。实现在 ota_update.c(含 httpd handler 注册与OTA_PORT 8032定义)。 - 电源管理:WiFi modem sleep + 带可配置占空比的自动 light sleep,为电池供电部署打开 duty-cycling 窗口,实现在 power_mgmt.c/power_mgmt.h,其占空比即上文
edge_config_t中的power_duty。
Tier 3:WASM 可编程感知(ADR-040 / ADR-041)
ADR-039 与 ADR-040/041 形成递进:Tier 3 引入由 Rust 编译、经 WASM3 解释器在设备端热加载的 WASM 模块,实现"感知逻辑可编程"。核心模块包括手势识别、相干性监测与对抗检测。ADR-040 定义可热加载模块机制,ADR-041 定义策展模块集(6 大类 37 个模块),第一阶段已实现:
vital_trend.rs—— 临床生命体征趋势分析(bradypnea 呼吸过缓、tachypnea 呼吸过速、apnea 呼吸暂停)intrusion.rs—— 状态机入侵检测(calibrate-monitor-arm-alert)occupancy.rs—— 空间占用区域检测(逐区域方差分析)
设备端 wasm_runtime.c 直接消费 edge_get_phase_history() / edge_get_variances() 暴露的相位历史与方差,把 Tier 1/2 的 DSP 结果作为 WASM 模块输入。
硬件基准:RuView ESP32-S3 实测(boot / CSI / 内存 / 镜像 / WASM)
ADR-039 记录了在 ESP32-S3(QFN56 rev v0.2,8 MB flash,160 MHz,ESP-IDF v5.2)上的完整硬件验证:
启动时序
| 里程碑 | 时间(ms) |
|---|---|
app_main() |
412 |
| WiFi STA 初始化 | 627 |
| WiFi 连接 + 获取 IP | 3,732 |
| CSI 采集初始化 | 3,754 |
| Edge DSP 任务启动 | 3,773 |
| WASM 运行时初始化 | 3,857 |
| 总计 boot → ready | 约 3.9 s |
CSI 性能:帧率 28.5 Hz(实测,ch 5 BW20)、帧大小 128/256 字节、RSSI 范围 -83 至 -32 dBm(均值 -62 dBm)、帧间隔均值 30.6 ms。实测帧率高于预期 ~20 Hz 的规格——性能余量优于估算(即下方 Findings 第 3 条)。
内存:RAM 主堆 256 KiB、secondary RAM 21 KiB、DRAM 32 KiB、RTC RAM 7 KiB,合计可用 316 KiB;测试板未贴 PSRAM,因此 WASM arena 回退到内部堆(160 KB/slot × 4)。
固件镜像:二进制 925 KB(0xE7440 字节),1 MB factory 分区占用 90%,剩余 10%(99 KB);CI 大小闸门 950 KB 通过;含完整 WASM3 解释器(约 100 KB);7 个 WASM 模块总计仅 13.8 KB(wasm32-unknown-unknown release)。
WASM 运行时:初始化 106 ms、模块槽位 4、每槽 arena 160 KB、帧预算 10,000 µs(10 ms)、定时器间隔 1,000 ms(1 Hz)。
这些数据与 .github/workflows/firmware-ci.yml 中的固件大小闸门相互印证(超过 matrix 中 size_limit_kb 的构建会以 ::error:: 形式失败),固件体积被持续受控。
工程修正记录:五项实测发现与对应修复
ADR-039 末尾的五项 Findings 是部署前必读的实战经验:
- 默认跌倒阈值过低:默认
fall_thresh=2000(2.0 rad/s²)在静态室内环境产生 6.7 次误报/秒。建议典型部署调到 5000–8000。配套工程修复见 scripts/fix-markers.json——它以正则标记"禁止再出现fall_thresh = 2.0f默认值"并记录了一次实测结论(某串口硬件上 15.0 + 3 连续帧去抖 + 5 s 冷却在 600 帧内零误报),同时固件侧的去抖常量(连续 3 帧 + 5000 ms 冷却)为高阈值部署提供安全网。 - 测试板无 PSRAM:WASM arena 回退内部堆;带 PSRAM 的板卡可支撑更大模块。
- CSI 速率超规格:实测 28.5 Hz 高于预期 20 Hz,性能余量好于估计。
- WiFi-以太网隔离:部分路由器会阻断 WiFi 与有线客户端之间的 UDP,部署指南应要求同子网验证。
- sendto ENOMEM 崩溃(Issue #127):混杂模式 CSI 回调可达 100–500+ 次/秒,耗尽 lwIP pbuf 池导致 guru meditation 崩溃。修复采用双管齐下:在 csi_collector.c 加入 50 Hz 限速器(20 ms 最小发送间隔),并在 stream_sender.c 加入 100 ms ENOMEM 退避(该退避按连续失败次数指数翻倍直至上限 2000 ms,可防止 Tier 2 + 并发发送下节点卡死,见其源码注释对 Issue #1135 的记录)。带修复的镜像 947 KB,实测在 200+ CSI 回调下零 ENOMEM。
影响评估与风险边界
正面影响:跌倒检测时延从约 500 ms(网络 RTT)降到设备内 <50 ms;差分压缩削减带宽 30–50%,纯 vitals 模式削减 95%+;duty-cycled light sleep 使电池供电成为可能;服务器因只解析 32 字节 vitals 可支持约 10 倍节点。
代价:固件复杂度上升(edge_processing.c 约 1489 行,远超 ADR 初稿估算的 ~750 行);ESP32-S3 RAM 增加约 12 KB(环形缓冲 + 滤波器状态);接入完整 WASM3 Tier 3 后二进制从约 550 KB 增至 925 KB,1 MB 分区仅剩 10%。
风险:BPM 精度依赖受试者距离与运动,需真实场景验证;跌倒启发式可能对环境运动(开关门、宠物)误报;子载波分簇的多人分离在没有标定时是近似结果。因此源码中的存在迟滞、多人能量/间距/持续性三闸门、跌倒连续帧+冷却去抖,本质上都是对这些固有风险的"工程护栏",而真实计数精度对 ground truth 的依赖仍是数据侧命题。
总结
ADR-039 是 RuView 把 WiFi 感知从"原始 CSI 上云"推进到"端侧语义化"的关键转折:Tier 0 保兼容、Tier 1 压缩省带宽、Tier 2 在节点上直接产出呼吸/心率/presence/fall/多人 vitals,Tier 3 又以 WASM 打开可编程感知的上限。结合 edge_processing.h、edge_processing.c、provision.py 与硬件基准,你可以直接复现分级流水线、按场景调优 fall_thresh/pres_thresh/vital_int 等参数,并依据 ADR-039 的工程修正记录规避部署中的常见坑位。相关后续演进可继续阅读 ADR-040、ADR-041、ADR-063 与 ADR-069,它们分别定义了 WASM 机制、模块策展、mmWave 融合与 magic 重新分配后的特征向量协议。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0627
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00