airllm分层加载实战:小显存跑大模型的原理与避坑指南
1. 当显存告急时我们还能不能跑大模型第一次看到 airllm 这个项目名的时候我正被一张 8GB 显存的显卡折磨得够呛。想跑一个 70B 参数级别的模型做本地推理结果加载权重阶段就直接爆显存连模型的门都没摸到。相信很多做本地推理的朋友都有类似经历模型参数动辄几十上百 GB而手头的硬件就那么点显存要么咬牙上多卡要么只能退而求其次用蒸馏小模型效果打折扣。airllm 这个项目给出的思路很直接既然显存装不下整个模型那就别一次性装进去。它做的事情本质上是把大模型的推理过程拆成按层加载、用完即弃的流水线让单张消费级显卡也能跑起远超显存容量的大模型。这个思路听起来简单但真正落地要解决一堆工程问题——层怎么切、权重从哪读、什么时候释放、注意力缓存怎么管、速度损失能不能接受。这篇文章我会围绕 airllm 这个项目把它的核心机制、适用边界、实操步骤、性能取舍、常见坑点全部拆开讲一遍。不管你是刚接触本地大模型推理的新手还是已经折腾过各种量化方案的老玩家都能从中找到能直接抄作业的部分。我会尽量用大白话把原理讲清楚同时给出可复现的操作路径和参数建议让你看完就能在自己机器上试起来。需要先说明一点airllm 不是银弹它用时间换空间速度上必然有代价。所以本文的重点不只是怎么跑起来更是什么场景下值得用它、什么场景下应该换别的方案。这个判断比单纯会敲命令重要得多。2. airllm 到底在解决什么问题显存墙的本质2.1 大模型推理时显存都被谁吃掉了要理解 airllm 的价值得先搞清楚推理阶段显存到底花在哪。很多人以为显存主要被模型权重占满其实这只是其中一块。以一次标准的自回归推理为例显存开销大致分四部分模型权重这是最大头。一个 70B 参数的模型如果用 FP16 存储光权重就要约 140GB。就算是 7B 模型FP16 也要约 14GB已经超过很多消费卡的容量。激活值Activations前向传播过程中每一层产生的中间结果层数越深、batch 越大这部分越可观。KV Cache自回归生成时为了避免重复计算历史 token 的注意力会把 Key 和 Value 缓存下来。上下文越长、batch 越大KV Cache 膨胀得越厉害长上下文场景下它甚至能超过权重占用。框架与运行时开销CUDA 上下文、算子临时缓冲区、显存碎片等通常几个 GB 起步。传统做法是把这四部分全部塞进显存所以显存容量直接决定你能跑多大的模型。量化能把权重压到 INT8、INT4 甚至更低缓解的是第一块PagedAttention 这类技术优化的是第三块。但只要权重本身超过显存量化到极限也还是装不下。2.2 分层加载的核心思想把装不下变成轮流装airllm 的切入点非常朴素模型是由一层层堆叠起来的推理时数据也是逐层往前流的。既然同一时刻只有当前层在参与计算那为什么要把所有层都常驻显存它的做法是把模型权重按层切分存储通常放在磁盘或内存里推理时只把当前需要的层加载进显存算完这一层就释放掉再加载下一层。这样一来显存的峰值占用就从整个模型降到了单层模型 必要的运行时开销。打个比方这就像你要搬一整套家具进一间小屋子。传统做法是把所有家具一次性堆进去屋子小了根本放不下。airllm 的做法是一次只搬一件家具进屋用完就搬出去屋子再小也能周转开。代价是搬运本身要花时间这就是它速度慢的根源。这个思路在业界其实有多个变体比如某些推理框架的 offload 机制、CPU-GPU 混合推理等。airllm 的特点是把这件事做得足够简单、足够傻瓜化让普通用户不需要懂分布式就能用起来。2.3 它和量化、offload 的区别在哪这里容易混淆我专门理一下。量化是把每个参数用更少的比特表示本质是压缩模型还是整体加载offload 是把部分权重或计算放到 CPU/内存GPU 只负责一部分airllm 更激进它是逐层流式加载同一时刻显存里基本只有一层。三者可以叠加使用。比如你可以先用 4bit 量化把权重压小再用 airllm 做分层加载进一步降低显存峰值。理解它们的正交关系才能组合出适合自己硬件的方案。方案核心手段显存峰值速度影响适用场景量化降低参数位宽中较小显存略小于模型时Offload部分权重放 CPU中中等显存不足但内存充足airllm 分层加载逐层流式加载极低较大显存远小于模型时3. 分层推理的工程实现从权重切分到逐层前向3.1 权重是怎么被切分和存储的airllm 的第一步是把 HuggingFace 格式的模型权重按层拆分。标准的大模型权重文件通常是若干个 safetensors 或 bin 文件里面按参数名存放张量。airllm 会解析这些参数名识别出每一层的归属然后把同一层的权重归拢到一起单独存成一个小文件。这样做的目的是让加载某一层变成一个廉价的、粒度可控的操作。如果权重还是混在一起的大文件每次加载都要读整个文件分层就失去意义了。切分之后每层一个文件加载时只需读取对应文件IO 量大幅下降。这里有个细节值得注意embedding 层和最后的 lm_head 层往往参数量很大词表越大越明显它们也是单独处理的。有些实现会把 embedding 也纳入分层流水线有些则常驻具体取决于版本。3.2 逐层前向的执行流程切分完成后推理的执行流程大致是这样输入 token 经过 embedding 层得到初始隐藏状态。进入第 0 层从磁盘加载第 0 层权重到显存执行注意力 前馈计算得到输出隐藏状态然后释放第 0 层权重。进入第 1 层重复上述过程加载、计算、释放。依次类推直到最后一层。最后一层的输出经过 lm_head 得到 logits采样出下一个 token。生成下一个 token 时重复整个流程。可以看到每一层都要经历加载-计算-释放的循环。如果生成 100 个 token模型有 80 层那就要做 8000 次层加载。这就是速度瓶颈的来源。3.3 KV Cache 在分层场景下的特殊处理KV Cache 是个麻烦事。传统推理中KV Cache 常驻显存每生成一个 token 就追加。但在 airllm 的分层模式下如果每层算完就释放那 KV Cache 放哪常见做法是把 KV Cache 也放在内存或磁盘每层计算时临时加载该层对应的 KV。这会进一步增加 IO 开销但换来了显存的极大节省。另一种做法是只对当前层保留 KV历史 KV 存到低速存储需要时再取。这个设计直接决定了长上下文场景下的性能表现。上下文越长KV Cache 越大来回搬运的成本越高。所以 airllm 在短上下文、单次生成场景下相对友好在超长上下文、大批量场景下会明显吃力。提示如果你的任务上下文很短比如几百 token 的问答airllm 的 KV Cache 开销可以忽略但如果是几万 token 的长文档处理一定要先评估 IO 带宽是否扛得住。4. 上手实操把 airllm 跑起来4.1 环境准备与依赖安装airllm 是 Python 包安装本身不复杂。基础依赖包括 PyTorch、transformers、safetensors、accelerate 等。建议用独立的虚拟环境避免和系统里的其他深度学习项目冲突。python -m venv airllm_env source airllm_env/bin/activate pip install airllm安装完成后建议先确认 PyTorch 能正确识别你的显卡import torch print(torch.cuda.is_available()) print(torch.cuda.get_device_name(0)) print(torch.cuda.get_device_properties(0).total_memory / 1024**3, GB)这一步很关键。如果 CUDA 不可用airllm 会退化到 CPU 或直接报错。另外记下你的显存总量后面选模型规模时要用到。4.2 第一次加载模型压缩与切分airllm 第一次使用某个模型时会先做一次预处理把原始权重切分成按层存储的格式。这个过程比较耗时取决于模型大小和磁盘速度。以 7B 模型为例切分可能要几分钟到十几分钟70B 模型则可能几十分钟起步。from airllm import AutoModel model AutoModel.from_pretrained(某开源7B模型)第一次运行会触发切分切分结果会缓存到本地目录。之后再加载同一模型就直接用缓存快很多。所以第一次跑别急着判断速度先让它把预处理做完。这里有个实操经验切分过程对磁盘 IO 压力很大如果用的是机械硬盘会非常慢。强烈建议把缓存目录放在 SSD 上最好是有较大剩余空间的 NVMe 盘。我试过在机械盘上切分一个 13B 模型等了快一个小时换到 NVMe 后同样的模型十几分钟就搞定了。4.3 推理调用与参数设置加载完成后推理调用和普通 transformers 用法类似input_text 请用一句话解释什么是分层加载。 input_ids tokenizer(input_text, return_tensorspt).input_ids output model.generate( input_ids, max_new_tokens64, do_sampleFalse, ) print(tokenizer.decode(output[0], skip_special_tokensTrue))几个参数值得关注max_new_tokens生成的最大 token 数。这个值直接决定要循环多少次层加载设得越大越慢按需设置。do_sample是否采样。贪心解码False结果稳定采样True更有多样性但需要额外随机数开销。batch sizeairllm 场景下建议保持为 1。批量推理会成倍增加 KV Cache 和激活值显存优势会被吃掉。注意不要一上来就设 max_new_tokens512 去测速度那样你会以为 airllm 慢得没法用。先用 32 或 64 跑通确认功能正常再根据实际需求调整。4.4 显存占用的实测观察跑起来之后用 nvidia-smi 观察显存占用你会发现峰值远低于模型权重的理论大小。一个 7B 模型 FP16 理论要 14GB但 airllm 下峰值可能只有 2-4GB具体取决于单层大小和运行时开销。这个数字是 airllm 的核心卖点。它意味着你可以在 8GB 甚至 6GB 的卡上跑 7B、13B 模型在 24GB 的卡上尝试 70B 模型。当然前提是内存和磁盘要够大因为权重和 KV Cache 主要靠它们兜底。5. 性能账本时间换空间到底划不划算5.1 速度损失的量级这是大家最关心的问题。airllm 的速度损失主要来自两方面层权重的反复加载以及 KV Cache 的搬运。实测下来相比权重常驻显存的常规推理airllm 的生成速度可能慢一个数量级甚至更多。具体慢多少取决于几个变量磁盘读取速度、单层权重大小、生成 token 数、上下文长度。SSD 比机械盘快很多小模型比大模型每层加载快短生成比长生成总开销小。我做过一个粗略对比同一个 7B 模型常规 FP16 推理每秒能出几十个 tokenairllm 下可能只有每秒几个 token。这个差距在交互式对话里体感很明显但在离线批处理任务里可以接受。5.2 什么任务适合用 airllm基于上面的性能特征airllm 适合的场景有离线批处理比如批量生成摘要、批量翻译、数据标注对延迟不敏感跑一晚上出结果就行。低频调用偶尔跑一次的大模型推理不值得为它专门升级硬件。验证与实验想快速验证某个大模型的效果手头只有小显存卡。教学与学习理解大模型推理机制airllm 是个很好的观察窗口。不适合的场景也很明确实时对话用户等不起每秒几个 token 的速度。高并发服务airllm 的资源占用模式不适合多请求并行。超长上下文KV Cache 搬运成本会急剧上升。5.3 和直接换大显存卡的成本对比有人会问既然 airllm 这么慢为什么不直接买张大显存卡这是个成本问题。一张 80GB 的专业卡价格可能是消费卡的十几倍甚至几十倍对个人开发者和小团队来说门槛很高。airllm 的价值在于让你用手头已有的硬件跑起原本跑不动的模型省下的是真金白银。当然如果你的任务对速度有硬性要求且预算充足升级硬件仍然是更优解。airllm 是没办法时的办法不是最优解。认清这一点才能做出合理的技术选型。维度airllm 方案升级硬件方案初始成本低复用现有硬件高需购置大显存卡推理速度慢受 IO 限制快适用规模显存远小于模型显存足够容纳模型运维复杂度中需管理磁盘缓存低适合人群个人开发者、学习者生产环境、团队6. 踩坑实录那些文档里不会写的细节6.1 磁盘空间被悄悄吃光airllm 切分后的权重会缓存到本地而且原始权重和切分权重可能同时存在。一个 70B 模型原始权重 140GB切分后又是 140GB加起来接近 300GB。如果你没注意磁盘剩余空间跑到一半报no space left on device是常有的事。我的建议是动手前先算清楚需要的空间预留至少模型大小两倍的余量。切分完成后如果确认不再需要原始格式可以手动清理但要注意别把缓存也删了否则下次又要重新切分。6.2 首次加载慢到怀疑人生前面提过首次切分很慢。但还有一种情况即使切分完成第一次推理也会偏慢因为要预热各种缓存、建立 CUDA 上下文、加载 tokenizer 等。别拿第一次的结果判断性能多跑几次取稳定值。另外如果缓存目录配置不当每次启动都重新切分那体验会非常糟糕。确认缓存路径是持久的、可写的并且不会被临时清理机制删掉。6.3 显存没爆但内存爆了airllm 把显存压力转移到了内存和磁盘所以内存成了新的瓶颈。如果内存不足系统会开始用交换分区速度断崖式下跌甚至直接卡死。跑大模型前确认物理内存足够并且关闭其他吃内存的程序。一个实用技巧用free -h或系统监控工具盯着内存曲线。如果发现内存持续上涨不释放可能是 KV Cache 或某些缓存没被正确回收这时候要检查版本是否有相关修复。6.4 模型兼容性的坑不是所有模型都能无缝用 airllm。一些自定义架构、特殊的注意力实现、非标准的权重命名都可能导致切分失败或推理结果异常。遇到报错时先确认模型是否是主流架构如标准的 decoder-only Transformer再看 airllm 版本是否支持。如果某个模型跑不通别死磕换个同规模的主流模型试试。airllm 的生态还在演进兼容性会逐步改善但当下选择成熟架构能省很多事。6.5 生成结果异常怎么排查有时候模型能跑通但输出是乱码或重复。常见原因有几个tokenizer 和模型不匹配、精度问题比如某些层用 FP16 溢出、KV Cache 处理有 bug。排查顺序建议是先用短输入、贪心解码跑一个简单任务确认基础功能正常再逐步增加复杂度定位是哪一步出问题。如果怀疑是精度问题可以尝试用 BF16 替代 FP16BF16 的动态范围更大不容易溢出但需要硬件支持。7. 进阶玩法把 airllm 用出花来7.1 和量化组合进一步压显存airllm 负责分层量化负责压缩两者叠加能把显存需求压到极低。你可以先加载一个 4bit 量化版本再用 airllm 做分层加载。这样单层权重更小加载更快显存峰值也更低。不过要注意量化本身可能引入精度损失叠加 airllm 的精度处理最终效果需要实测验证。对精度敏感的任务建议保留 FP16 或 BF16。7.2 缓存策略优化airllm 的性能很大程度取决于 IO。把缓存放在最快的存储上是最直接的优化。如果内存足够大甚至可以考虑把切分后的权重放到内存盘tmpfs里读取速度接近内存带宽能显著提升层加载速度。代价是内存盘会占用物理内存模型大了放不下。折中方案是把最常访问的层放内存盘其余放 SSD。这需要一些定制化改造适合愿意折腾的玩家。7.3 批处理任务的编排对离线批处理可以把多个任务串起来让模型加载一次、处理多个输入摊薄加载开销。虽然 airllm 每层还是要反复加载但至少 tokenizer、embedding 这些可以复用。更进一步可以写个任务队列把待处理的数据攒够一批再统一跑减少模型冷启动次数。这对吞吐量的提升在批量场景下很可观。7.4 监控与调优的实用手段跑 airllm 时建议同时监控几个指标GPU 利用率、显存占用、磁盘读写速率、内存占用。GPU 利用率低说明瓶颈在 IO这时候优化磁盘比优化计算更有用显存占用高说明单层太大或运行时开销大可以考虑更激进的量化。这些监控数据能帮你判断当前配置是否合理以及下一步该往哪个方向调。别凭感觉调参用数据说话。8. 我对 airllm 这类方案的看法折腾了一段时间 airllm我最大的感受是它代表了一类非常务实的技术思路——不追求极致性能而是用工程手段把不可能变成勉强可行。这种方案在资源受限的场景下价值巨大尤其是对个人开发者和小团队。但它也提醒我们本地大模型推理的瓶颈是多维的。显存、内存、磁盘、算力任何一环短板都会限制整体表现。airllm 解决的是显存这一环代价是放大了磁盘和内存的压力。选型时要通盘考虑而不是只盯着显存数字。最后分享一个我自己的判断标准如果一个任务对延迟不敏感、调用频率低、模型规模又超出显存那 airllm 值得一试如果任务要求实时响应或高并发那还是老老实实升级硬件或者用云端服务。技术方案没有绝对的好坏只有合不合适。

相关新闻

如何使用 OHIF Viewer 工具栏?测量、窗宽窗位与一键导出完整指南

如何使用 OHIF Viewer 工具栏?测量、窗宽窗位与一键导出完整指南

如何使用 OHIF Viewer 工具栏?测量、窗宽窗位与一键导出完整指南 【免费下载链接】Viewers OHIF zero-footprint DICOM viewer and oncology specific Lesion Tracker, plus shared extension packages 项目地址: https://gitcode.com/GitHub_Trending/vi/Viewers…

2026/10/19 1:26:17 阅读更多 →
Folia 音乐播放器上手指南:3 分钟把本地音乐库搬进全屏歌词动画

Folia 音乐播放器上手指南:3 分钟把本地音乐库搬进全屏歌词动画

Folia 音乐播放器上手指南:3 分钟把本地音乐库搬进全屏歌词动画 【免费下载链接】folia-major 专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major Folia 是一款把全屏…

2026/10/19 1:26:17 阅读更多 →
FinFIRST切片分析:任务难度、多信源与中英市场差异如何影响金融Agent表现?

FinFIRST切片分析:任务难度、多信源与中英市场差异如何影响金融Agent表现?

【免费下载链接】FinFIRST 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/FinFIRST 点击查看 免费下载 如果你正在评测或构建金融搜索Agent,FinFIRST 的切片分析(Slice Analysis)值得仔细研读:这个由蚂蚁…

2026/10/19 1:26:17 阅读更多 →

最新新闻

EMC设计整改与仿真应用:从PCB正向设计到实验室超标排查实战

EMC设计整改与仿真应用:从PCB正向设计到实验室超标排查实战

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

2026/10/19 2:02:29 阅读更多 →
deepagents中间件:30行代码搞定AI Agent文件系统、记忆与上下文压缩基建

deepagents中间件:30行代码搞定AI Agent文件系统、记忆与上下文压缩基建

1. 从"手搓轮子"到"搭积木":Agent 基建的痛点到底在哪如果你最近半年在折腾 AI Agent,大概率经历过这样一个阶段:一开始兴致勃勃地写了个 ReAct 循环,觉得"不过如此";等到真正要把它做成…

2026/10/19 2:02:29 阅读更多 →
Spring AI Alibaba Graph实战:ReAct Agent与Workflow混合编排的企业级AI应用

Spring AI Alibaba Graph实战:ReAct Agent与Workflow混合编排的企业级AI应用

1. 从“能聊天”到“能干活”:企业级AI编排的真实分水岭很多团队做AI应用,第一步都是接个大模型,写个对话接口,跑通“你问我答”就以为大功告成。但真正落到企业业务里,你会发现单轮问答根本撑不起一个完整流程。比如一…

2026/10/19 2:02:29 阅读更多 →
移动端AIcoding落地成本与端云协同选型实战

移动端AIcoding落地成本与端云协同选型实战

1. 移动端 AIcoding 落地,为什么大家都在算这笔账移动端 AIcoding 这个词,最近半年在圈子里被反复提起。我最早接触这个概念是在一个跨平台工具链项目里,当时团队想把代码补全和自然语言生成代码的能力塞进手机和平板端,让开发者在…

2026/10/19 2:02:29 阅读更多 →
移动端AIcoding真实成本账:端侧适配与上下文管理占大头

移动端AIcoding真实成本账:端侧适配与上下文管理占大头

1. 这笔账为什么值得算移动端接入 AIcoding,前两年大家聊的都是“能不能做”,现在聊的是“划不划算”。我所在的团队从去年下半年开始,把一个内部代码辅助工具从桌面端往移动端搬,前后折腾了差不多两个季度,踩过的坑、…

2026/10/19 2:02:29 阅读更多 →
1~30秒参考音频克隆任意声音:Seed-VC 零样本语音转换完整零训练指南

1~30秒参考音频克隆任意声音:Seed-VC 零样本语音转换完整零训练指南

1~30秒参考音频克隆任意声音:Seed-VC 零样本语音转换完整零训练指南 【免费下载链接】seed-vc zero-shot voice conversion & singing voice conversion, with real-time support 项目地址: https://gitcode.com/GitHub_Trending/se/seed-vc 有一场会要开…

2026/10/19 2:01:28 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式: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/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/18 12:16:16 阅读更多 →