news 2026/9/6 2:14:20

8G显存跑大模型:量化、蒸馏与异构计算实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
8G显存跑大模型:量化、蒸馏与异构计算实战指南

1. 先算笔账:700G 和 8G 之间,差的不是一点点

说实话,我第一次看到这个标题的时候,第一反应是“这人是不是对 700G 和 8G 的单位换算有什么误解”。但仔细想想,这个问题背后其实是很多人的真实困境:手里没有 A100、H100 那种 80G 显存的怪兽卡,只有一张 8G 显存的消费级显卡(比如 RTX 3060/4060 或者苹果的 M 系列统一内存),却想跑一个参数量巨大、光权重就几百 GB 的大模型。这个需求听起来很疯狂,但在 2025 年的今天,它已经不是纯粹的“做梦”,而是有具体技术路径可以走通的事情——只是过程中你必须搞清楚自己在做什么,以及愿意牺牲什么。

先说个最直观的账,帮大家找到感觉。以 Qwen3 系列为例,Qwen3-235B-A22B 这种 MoE 架构的模型,光权重文件用 FP16 保存,就得占用接近 470GB 的磁盘空间。你要是换成更稠密的架构、参数更多的模型,比如 700B 级别的,FP16 权重冲到 1400GB 都不稀奇。那标题里的“700G”怎么来的?大概率是某个 400B~700B 之间的大模型,权重用BF16/FP16保存后的体积。这种模型如果直接加载进显存跑推理,对显卡显存的需求是:模型权重体积 + KV Cache + 激活值 + 框架本身的开销,远超裸权重的大小。这也是为什么厂商和社区都在反复折腾量化、蒸馏、剪枝——显存就那么大,模型却越来越大,不改模型本身,就只能改模型的“表达方式”和“生成方式”。

对于 8G 显存的显卡,你要先认清楚一个残酷现实:显存不是拿来一次性装下整个模型的。8G 显存的实际可用空间通常只有 7.x G,因为系统、显示输出、驱动和推理框架本身也要占一部分。你唯一能接受的方案是:模型本体不要一次性全部驻留在显存里,或者模型被压缩到显存能装下的程度,再配合 CPU 内存和磁盘做分层调度。说白了,这就像你家里冰箱只有 8L 的冷冻室,却要囤一吨的年货——你不可能把肉全塞进冷冻室,要么切碎冻一部分、其余的放冷藏,要么干脆每天只解冻当天要吃的分量。

这篇文章的核心价值,就是把这条技术路径完整铺开:量化怎么把模型体积打下来,蒸馏怎么把一个超大模型变成一个“浓缩但够用”的小模型,以及两者怎么组合才能真正在 8G 显存上跑起来。适合人群很明确:想本地跑大模型但显卡不行的玩家、做私有化部署但对硬件预算敏感的小团队、以及被各种“量化版”“蒸馏版”模型文件搞到一头雾水的普通用户。看完你能得到的不只是操作步骤,还有一套决策思路——下次看到一个大模型,你能立刻判断出自己的机器到底能不能扛得住。

2. 量化:把高精度参数变成“短数字”,代价是精度换空间

2.1 量化到底在干什么?用“四舍五入”的思路理解它

模型量化这个技术,本质上干的事情非常朴素:把一个用高精度浮点数(比如 FP16 的 16 位、BF16 的 16 位)表示的权重参数,转成低位数表示(比如 INT8 的 8 位、INT4 的 4 位)。你可以把原始权重想象成一个人的详细身高数据,比如 172.34857384 厘米,FP16 存的就是这种小数点后很多位的精度;而 INT8 量化之后,就变成了“172 厘米”,甚至 INT4 就成了“170 厘米左右”。精度丢了,但存储空间大幅缩小。

具体到数字上,一个 700B 参数的模型,FP16 格式占用大约 1400GB,BF16 也差不多这个量级(就是标题里的 700G 如果是这些格式,那说明模型参数应该是 350B 左右)。如果你把它量化为 INT8,体积缩减一半,变成约 350GB;如果量化为INT4,体积再减一半,约 175GB。看到这里你可能会说,那不还是塞不进 8G 显存吗?别急,这只是一个维度,量化还是必须做的前置步骤,因为不量化,后面连和内存、磁盘做数据交换的资格都没有——传输 700GB 数据和传输 175GB 数据的耗时差距是数量级的。

量化方案目前主流的有三条路线:

  1. PTQ(训练后量化,Post-Training Quantization):模型训练完之后,直接对权重做量化,不需要重新训练。这是最主流的路线,因为成本低、速度快。代表性工具包括 GPTQ、AWQ、GGUF(llama.cpp 生态)。
  2. QAT(量化感知训练,Quantization-Aware Training):在训练过程中就模拟量化的误差,让模型提前适应低精度的“粗糙感”。效果通常比 PTQ 好,但训练成本高,普通用户很难自己完成,一般只在特定任务上做微调时使用。
  3. 动态量化(Dynamic Quantization):只在推理时对某些层临时做量化,常见于 PyTorch 的 CPU 推理优化。

2.2 实测下来,不同量化格式对显存和速度的影响

我自己实际跑过不少在 8G 显存上运行大模型的场景,这里把主流方案的对比数据整理出来,方便你做判断。注意,数据基于 Qwen2.5-7B-Instruct 这类 7B 级别的模型,如果你跑的是更大的模型,缩放比例关系是线性放大的。

量化方案格式模型文件体积显存占用(推理时)推理速度(相对 FP16)回答质量损失
原始 FP16.bin/.safetensors约 15GB约 16GB+基准速度无损失
INT8 (W8A8).safetensors约 8GB约 8.5GB+比 FP16 慢 10% 左右几乎无感知
INT4 (GPTQ).safetensors约 4GB约 4.5GB比 FP16 快 20% 左右有轻微下降,复杂推理任务会丢分
INT4 (AWQ).safetensors约 4GB约 4.5GB比 FP16 快 15% 左右比 GPTQ 略好,感知不明显
混合精度 (GGUF Q4_K_M).gguf约 4.4GB取决于是否开启 GPU 层数取决于 CPU/GPU 分工与 GPTQ 相当

注意:这里的“显存占用”指的是加载模型权重本身所需的空间。实际推理时的总显存占用还要加上 KV Cache 和激活值,长文本生成时 KV Cache 会显著膨胀,尤其是多轮对话场景。

看到没?单就 7B 模型来说,INT4 量化后,8G 显存已经可以完整放下模型本体和一定长度的上下文了。但我们要讨论的是 700G 级别的模型,就算量化到 INT4,体积还有 175GB 左右,依然远超 8G。所以对超大模型,量化只能算“第一步”,不是“全部”。

2.3 实操:用 GGUF 格式把量化做到手

如果你用的是 Ollama、llama.cpp 这类工具,量化这件事基本是“下载即用”,因为社区已经帮你量好了。选择 GGUF 格式时,你会看到一堆像q4_0q4_K_Mq5_K_Mq8_0这样的命名后缀,它们代表不同的量化精度和策略:

  • q4_0:最激进的 4-bit 量化,文件最小,质量最低。
  • q4_K_M:4-bit 量化里相对均衡的版本,用 K-means 聚类算法优化了重要参数的保留,我日常首选,质量和体积的平衡点做得最好。
  • q5_K_M:5-bit 量化,文件比 q4 大 20% 左右,质量更接近原始模型。
  • q8_0:8-bit 量化,文件体积偏大,但精度损失极小,显存够用的场景可以直接选它。

实际操作时,以 llama.cpp 为例(我这里用命令行演示,如果你更喜欢界面操作,Ollama 也能达到类似效果):

# 克隆 llama.cpp 并编译 git clone https://github.com/ggerganov/llama.cpp cd llama.cpp make -j4 # 下载一个 GGUF 格式的量化模型,比如 Qwen2.5-7B-Instruct q4_K_M # 假设你已经把模型文件放到 models/ 目录下 # 用 CPU+GPU 混合方式运行模型 ./llama-cli -m models/qwen2.5-7b-instruct-q4_K_M.gguf \ -ngl 20 \ -c 2048 \ --temp 0.7 \ -p "你好,请介绍一下你自己"

参数说明:-ngl 20表示把模型的前 20 层放在 GPU 上计算(你的 8G 显存能塞几层就填几层),剩下的层交给 CPU;-c 2048设置上下文长度为 2048 个 token;--temp 0.7控制生成随机性。这个组合拳是低显存跑模型的标准姿势,后文我会专门讲为什么不追求“全部进 GPU”。

如果你用的是 Ollama,那就更简单了,直接执行:

ollama run qwen2.5:7b-instruct-q4_K_M

它会自动下载量化好的模型并开始对话。Ollama 的优势在于它把显存管理、模型加载全部自动化了,适合不太想折腾的人。

3. 蒸馏:与其硬塞大模型,不如训练一个“浓缩版”

3.1 蒸馏的本质:让“徒弟模型”学会“师傅模型”的判断力

如果说量化是在“存储格式”上做文章,那蒸馏就是在“模型本身”上做文章。知识蒸馏(Knowledge Distillation)的核心思路是:用一个大而强的模型(教师模型,Teacher)作为“老师”,用它来指导一个小模型(学生模型,Student)的训练。学生模型的参数量远小于教师模型,但训练目标不是简单地去拟合原始训练数据,而是去模仿教师模型的输出分布。

举个例子,教师模型面对“今天天气怎么样”这个问题,可能输出:“今天晴,气温 25 度,适合外出”的概率是 0.7,“今天晴,气温 25 度”的概率是 0.2,还有其他一些低概率答案。这些概率分布里包含了远比原始标签更丰富的信息——“外出”这个词和“天气”的关联性被编码在了软标签(soft label)里。学生模型学习的就是这种软标签,而不是只有“标准答案”的硬标签。这样一来,学生模型用很少的参数就能学会教师模型的“思考方式”,而不是死记硬背答案。

蒸馏在实际使用中有一个重要的衍生方案,叫MiniLLM知识蒸馏 + 指令微调的组合:先用教师模型生成大量高质量的问答对、推理链数据,再用这些数据去微调一个相对较小的开源模型(比如 7B/14B)。这比从零训练小模型成本低得多,也是很多团队做“针对特定领域的小模型”时常用的套路。

3.2 蒸馏对 8G 显存场景的实际意义:你可能不需要那个 700G 的模型

回到我们的核心问题。如果你想在 8G 显存上跑一个 700G 级别的模型,首先要想清楚一个问题:你真的需要这个 700G 的模型吗?700G 模型通常意味着几百 B 的参数,这种规模的模型一般是为了极限的通用能力、海量的知识覆盖和复杂的推理能力而训练的。但如果你只是想要一个能够流畅对话、写代码、做摘要的助手,一个 7B~32B 的模型在绝大多数场景下已经够用了。在这种情况下,正确路径是:选择一个大模型作为教师,蒸馏出一个适合你硬件的小模型,或者直接使用社区已经蒸馏好的小模型。

这里我必须强调一个容易混淆的点:很多人以为“蒸馏”是个运行时技术,可以像量化一样直接对模型文件操作。实际上,蒸馏是训练阶段的优化手段,你不能对一个已经训练好的大模型直接“按一下蒸馏按钮”就得到小模型。蒸馏的过程需要 GPU 资源去跑训练/微调任务,你自己做这件事的成本可能比买一张大显存显卡还高。所以,对普通用户来说,更现实的选择是:下载社区已经蒸馏好的小模型,而不是自己从头蒸馏一个。

3.3 实操思路:用哪些现成的“浓缩版”模型替代大模型

社区里已经有很多靠蒸馏思路训练出来的优秀小模型,其中不少是专门为低显存设备优化的。我自己在 8G 显存场景下实测过的、效果和速度都比较满意的模型有这些:

模型参数量量化后体积8G 显存可运行方式特点
Qwen2.5-7B-Instruct7B约 4.4GB (Q4)全 GPU 加载 + 短上下文中文能力突出,通用对话、代码都不错
Qwen2.5-14B-Instruct14B约 8.8GB (Q4)CPU+GPU 混合,部分层驻留显存更强复杂推理,但速度明显下降
MiniCPM-3-4B4B约 2.6GB (Q4)全 GPU 加载,长上下文依然流畅端侧友好,中文对话质量超出体积预期
Phi-3.5-mini3.8B约 2.4GB (Q4)全 GPU 加载微软出品,英文推理、代码能力强
Gemma-2-9B9B约 5.5GB (Q4)全 GPU 加载,需控制上下文长度Google 出品,综合能力强

选模型的铁律是:能用 7B 解决的事,千万别想着去跑 700B。很多时候我们以为自己在追求“最好”,其实是被“参数越大越厉害”的惯性思维绑架了——对于本地部署来说,跑得动、回答问题能看,这两点比什么都重要。

4. 组合策略:量化 + 蒸馏 + 异构计算的综合解法

4.1 为什么“单靠量化”或“单靠蒸馏”都搞不定 8G 显存

如果你仔细算了前面的账就会发现:700G 的模型就算量化到 INT4,也还剩 175GB;而蒸馏出来的小模型虽然能装进 8G,但它已经不再是“700G 的大模型”,而是另一个小模型了。所以,如果你的诉求是“必须保留 700G 大模型的能力”,那很遗憾,任何单一手段都做不到。能做的只有组合拳:蒸馏出一个小模型,再量化到极致,然后配合 CPU 内存做异构计算——这已经是在物理定律允许的范围内能打到的最好结果了。

组合方案里还需要引入另一块拼图:内存映射和层调度(Offload)。主流的推理框架(llama.cpp、Ollama、ExLlamaV2)都支持把模型的一部分层放在 GPU 显存里计算,另一部分层放在 CPU 内存里计算,GPU 和 CPU 之间通过 PCIe 总线传输数据。这个设计的精妙之处在于:你完全不需要一次性把整个模型载入显存,而是让模型“住”在内存和显存的混合空间里,哪边有富余就放哪边。8G 显存不够,但你电脑如果有 32G/64G 内存,就能用“显存 + 内存”的组合拳跑起来远比 8G 大的模型。代价是:因为 GPU 需要频繁从内存读取参数,速度会明显下降,尤其当模型体积远大于显存时,PCIe 带宽会成为瓶颈。

这里有个很硬核的计算,可以帮你看清速度瓶颈。PCIe 4.0 x16 的理论带宽大约是 32GB/s,但实际有效带宽通常在 25GB/s 左右。假设你跑一个 175GB 的 INT4 量化模型,模型每生成一个 token,原则上需要把相关的权重参数从内存搬到显存(或者直接在 CPU 上计算),即使不考虑 KV Cache 和其他开销,光搬运 175GB 的权重就需要 7 秒。也就是说,生成一个 token 要等 7 秒,生成 100 个 token 就是 12 分钟。这个速度基本没法正常对话。所以,模型越大,异构计算的体验越差——这直接从数学上回答了“为什么 700G 模型哪怕量化了,在 8G 显存机器上也很难用”这个问题。

4.2 一个折中方案:用 MoE 架构的模型做“降级运行”

如果一定要在低显存机器上跑大模型,还有一种更聪明的选型思路:选择MoE(混合专家)架构的模型。MoE 模型的特点是:虽然总参数量很大,但推理时每次只激活一部分专家(Expert)网络。比如 Qwen3-235B-A22B,总参数是 235B,但每次推理只激活 22B 的参数。这种特性让它非常适合低显存设备——你不需要加载全部参数,只需加载激活的那部分,配合 CPU 内存调度,可以让 8G 显存的机器“碰一碰”百亿参数级别的模型。

我实测过在 8G 显存 + 32G 内存的机器上跑 Qwen3-30B-A3B(MoE 架构,总参数 30B,激活参数 3B)的 INT4 量化版。效果超出我的预期:因为实际激活参数只有 3B,推理时从内存调到显存的数据量相对可控,速度虽然比纯 7B 模型慢,但至少能接受——每秒钟能输出 3~5 个 token。这比硬啃 175GB 的稠密模型靠谱得多。所以,对于低显存环境,“选对模型架构”比“硬上量化”更关键。关注模型文件的“激活参数”而不是“总参数”,是这里最重要的选型判断标准。

4.3 实操:一个跑通低显存大模型的完整示例

下面我以一个实际可复现的完整流程,演示如何在 8G 显存 + 16G 内存的机器上,跑一个 14B 级别的量化模型(Qwen2.5-14B-Instruct GGUF Q4_K_M,体积约 8.8GB)。这个方法利用了 llama.cpp 的层调度机制,你可以把示例中的模型替换成任何你喜欢的 GGUF 模型。

步骤 1:安装依赖并编译 llama.cpp

git clone https://github.com/ggerganov/llama.cpp cd llama.cpp # 启用 GPU 加速(CUDA 环境) cmake -B build -DGGML_CUDA=ON cmake --build build --config Release

如果你的显卡是 NVIDIA 且驱动、CUDA 环境正常,这样编译能得到支持 GPU 加速的版本。CPU 用户直接make -j4也行,但速度会慢不少。

步骤 2:下载量化模型文件

从 Hugging Face 搜索 GGUF 格式的 Qwen2.5-14B-Instruct(例如社区用户量化的Qwen2.5-14B-Instruct-GGUF),下载q4_K_M.gguf文件,放到models/目录下。

步骤 3:用自动层调度方式运行

./build/bin/llama-cli \ -m models/qwen2.5-14b-instruct-q4_K_M.gguf \ -ngl 999 \ -c 4096 \ --temp 0.6

注意:-ngl 999的意思是“尽可能把所有层放到 GPU 上,直到显存不够为止”。llama.cpp 会检测显存占用并自动回退到 CPU。这是一种“无脑但有效”的配置方式。如果你想手动控制,可以先设一个较小的值,比如-ngl 20,然后观察显存占用,逐步调高,直到刚好不 OOM。

实战经验:在 14B 模型下,8G 显存通常能容纳大约 20~30 层左右(具体取决于模型层数和显存占用情况),剩下的层在内存里跑。这个配置下,生成速度大约是 2~4 token/s,做一个简单的问答需要等 10~30 秒。耐心点能用,但不适合追求流畅对话的场景。

步骤 4:调整 KV Cache 以减少显存占用

如果你在生成很长文本时报 OOM,大概率是 KV Cache 爆炸了。可以用-c 1024-c 512缩短上下文长度,或者用--cache-type-k q8_0对 KV Cache 本身做量化,减少显存消耗。

5. 常见问题与排查技巧实录

做低显存部署这件事,我踩过不少坑,这里把最高频的问题和排查思路整理成一个速查表,遇到问题可以直接对照检查。

典型问题原因解决方案
启动时报CUDA out of memory模型一次性加载到显存,或 KV Cache 分配过大降低-ngl值;缩短-c上下文长度;换更小量化格式(如 Q4 换 Q4_K_S);换更小模型
生成速度极慢(0.5 token/s)模型太大,大量层在 CPU 上跑,PCIe 带宽成为瓶颈换取激活参数更小的 MoE 模型;提升 CPU 内存频率和通道数;减少上下文长度
回答质量明显下降量化精度太低,或模型本身不适合低比特量化换用 AWQ 或 GGUF Q5_K_M;关掉一些特殊指令模板问题;检查提示词是否被截断
模型加载后只输出乱码GGUF 文件下载不完整或损坏;上下文长度设置过长重新下载文件并检查 sha256;降低-c值;用--file参数检查模型文件完整性
显存还剩好几 G,但总是 OOMllama.cpp 的显存分配策略太保守或太激进,或者推理框架本身有内存碎片尝试-ngl 0先纯 CPU 验证模型是否正常,再逐步增加 GPU 层数;更新 CUDA 驱动
多轮对话后速度越来越慢KV Cache 持续增长,显存被占满,层调度开始频繁搬运数据--no-mmap或开启--cache-reuse(不同框架参数不同);限制对话轮数;用-c限制最大上下文

这里我想特别强调一个很多人忽视的点:KV Cache 是低显存场景下的隐形杀手。模型权重是固定大小,但 KV Cache 是动态增长的。你有一个 7B 模型的 Q4 量化版,权重只占 4.4GB,看起来 8G 显存很富裕;但只要上下文拉长到 32K tokens,KV Cache 可能额外吃掉 2~3GB 显存,加上模型权重,直接触碰 8G 的天花板。解决方案很简单:量化 KV Cache。llama.cpp 里--cache-type-k q8_0 --cache-type-v q8_0这种参数能将 KV Cache 体积缩小一大截,虽然理论上精度略有损失,但实际感知差异很小,强烈建议开启。

另外一个独门技巧是:限制最大生成长度(max_tokens)。很多人对话时总让模型长篇大论,其实对于大多数本地问答场景,生成 256~512 个 token 完全够用。缩短单次生成长度,能显著降低 KV Cache 峰值,这比调任何参数都管用。

6. 实测体验:8G 显存跑大模型的真实感受

最后跟大家交个底,分享一下我在 8G 显存机器上跑各类模型的真实体验迭代过程。最开始我拿到一张 8G 显存的卡时,跟所有人一样,第一件事就是想跑个最大的模型证明它能行。结果自然是被 OOM 教育了。后来我学聪明了,开始按“模型大小 → 量化格式 → 层调度 → 上下文控制”这条链路逐步调优。

第一个让我眼前一亮的是跑通 4G 显存量化版的 Qwen2.5-7B。全 GPU 加载,上下文控制在 2048,生成速度能到 12~15 token/s,多轮对话完全无压力。这个配置适合日常使用,质量在绝大多数任务上是够用的。后面我又尝试了 14B 模型的混合加载,速度降到 3~4 token/s,但回答质量确实有明显提升。这让我意识到一个真理:低显存场景下没有“免费的午餐”,速度和质量只能二选一,或者牺牲一个换一个平衡

到了 MoE 模型出现之后,体验又有了一次质的飞跃。以 Qwen3-30B-A3B 来说,虽然总参数 30B,但激活参数只有 3B,实际运行速度和 7B 级别的模型非常接近,而回答质量的复杂度却上了一个台阶。这给我最大的启发是:未来低显存设备跑大模型的希望,可能在模型架构设计上,而不只是量化压缩技巧上

根据我个人这些天实测下来的判断,如果你的显卡只有 8G 显存,最值得参考的组合策略是:

  • 日常对话、资料总结、普通文本生成:直接用7B 模型 INT4 量化版,全 GPU 加载,速度快体验好。
  • 复杂推理、长代码生成、专业知识问答:用14B~30B 模型 INT4 量化版 + CPU 内存 offload,牺牲速度换质量。
  • 如果有明确的垂直领域需求(比如客服、法律、代码辅助):去找专门针对该领域蒸馏微调过的小模型,比硬跑通用大模型高效得多。
  • 内存足够大(64G+)的情况下:可以尝试67B 级别的 MoE 模型(如 Qwen3-30B-A3B、DeepSeek-V2-Lite 等),体验接近云端大模型。

最后再分享一个小技巧:配置低显存推理环境时,别一上来就追求“最大模型”,先用一个 7B 级模型把整套工具链跑通,确认显存管理、上下文设置、层调度这些都摸透了,再逐步加大模型体积。这能帮你少走很多弯路——我从第一次 OOM 到跑通 14B 模型,中间折腾了两天,而把整套思路理清之后,换任何模型都只是改参数的事。希望这篇经验能让你直接跳过那些不必要的坑。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 2:13:34

物联平台中TDengine 超级表如何与工业物模型进行映射

工业物联网的数据有一个很现实的特点:设备型号有限,设备数量却很多;每台设备的属性结构相近,采集频率又高。比如同一类风机,可能有成百上千台,每台持续上报温度、振动、电流、转速和运行状态。若把这些数据…

作者头像 李华
网站建设 2026/9/6 2:10:28

LoRA高效微调技术实战:从基础概念到四大变体完整部署指南

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

作者头像 李华
网站建设 2026/9/6 2:08:53

虚拟机安装部署全攻略:从环境检查到故障排查

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

作者头像 李华
网站建设 2026/9/6 2:08:20

博客-字体和文本样式属性案例改写

微信小程序案例改写:字体和文本样式设置——从内联 style 到 class 的样式管理实践本文基于《微信小程序开发》课程案例 2.1《字体和文本样式属性》改写。核心内容:将 WXML 中用 style 属性指定的静态样式抽取为 WXSS 中的 class,并扩充页面内…

作者头像 李华
网站建设 2026/9/6 2:06:58

具身基准:RoboChallenge 【从 Table30 到 Table30 V2,30 项真机任务、4 类机器人、VLA 评测协议与泛化能力】

详细介绍RoboChallenge基准 详细介绍 RoboChallenge 基准 ,给出相关论文地址,分析,任务类型,数量等所有维度的信息,最后给出一个csdn标题 我会先核对 “RoboChallenge” 的正式出处、论文/项目页和数据规模,再把任务类型、评测指标、数据构成、优缺点和适用研究方向系统整…

作者头像 李华
网站建设 2026/9/6 2:02:49

TI2026瑞士轮焦点战:OG vs TRE赛制、阵容与出线形势分析

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

作者头像 李华