llama.cpp 与 GGUF:用 CPU 也能跑本地大模型的轻量方案
llama.cpp 与 GGUF 格式本地大模型的“裸引擎”想在自己电脑上跑一个大模型第一反应是装个几十 GB 的运行时环境再去买张昂贵显卡其实不用。llama.cpp 加上 GGUF 格式就能把这件事压缩到“一个可执行文件 一个模型文件”的级别。你只需要一台普通的 CPU 机器——哪怕是几年前的老笔记本也能把 7B、13B 级别的模型跑起来只是速度慢一点罢了。这个组合之所以被叫“裸引擎”是因为它把一切不必要的依赖都剥掉了不需要 Python、不需要 GPU 框架全家桶、不需要联网调 API一个 C 编译出来的二进制文件就能完成完整的推理流程。这篇文章写给两类人一类是刚接触本地大模型、想用最少成本跑通一个模型的新手另一类是已经在用其他推理框架、想搞清楚底层到底怎么运作的进阶玩家。我会从核心原理讲到完整实操再穿插一些只有亲手踩过坑才写得出来的经验希望能让你少走几步弯路。1. 为什么不直接跑 PyTorch非要折腾 GGUF1.1 llama.cpp 的定位一个“刚刚好”的推理引擎很多模型仓库里放的都是 PyTorch 格式的权重也就是一堆 .bin 或 .safetensors 文件外加一堆配置文件。你要用它们就得把整个 Python 生态装上torch、transformers、tokenizers、accelerate……光是依赖冲突就能耗掉半天。而且 PyTorch 推理通常默认把模型加载到显存没有 N 卡的人基本被劝退。llama.cpp 把这条路彻底简化了。它用纯 C/C 实现了模型推理的前向计算不需要 Python 运行时CPU 就能跑也可以把部分层卸载到 GPU 加速。它本身没有任何花哨的界面就是命令行工具像一台裸露的发动机——不漂亮但是直接、结实、启动快。我用过不少推理框架最终换回 llama.cpp 的原因是它够透明出了问题看日志就能定位不像黑盒框架那样报错报得莫名其妙。1.2 GGUF 为什么能成为“通用容器”GGUF 本质上是一种模型序列化格式专门为 llama.cpp 设计。它把所有权重张量、分词器词表、模型超参数、甚至部分推理配置都打包进一个文件里。好处非常直观单文件分发一个 .gguf 文件就包含完整的模型解压、移动、拷贝都很方便。自描述性文件头部带元数据llama.cpp 加载时不需要额外配置文件就知道模型结构、上下文长度、层数、注意力头数等参数。硬编码支持量化权重可以直接存储为 4-bit、5-bit、6-bit、8-bit 等低精度整数形式暴露在文件格式层加载时零转换开销。高效随机访问张量按偏移量表存储可以做到按需加载部分权重这对内存受限的设备特别友好。为什么不是原来的 GGML 或者更早的 ggjt 格式因为那些早期格式没有内建元数据系统模型结构和分词器经常要靠外部判断非常脆。GGUF 就像是给模型文件加了头文件和索引表让读取逻辑从“猜”变成了“查表”。1.3 量化为什么低精度反而能跑得动大模型模型权重的原始精度通常是 FP16也就是每个参数占 2 字节。一个 7B 参数的模型光权重就是 14GB很多人的机器根本塞不下。量化做的事情是把这些浮点数映射到更窄的整数范围比如 4-bit 的 Q4_0每个参数只占 0.5 字节同一个模型就缩小到大约 4GB。内存占用直接降到三分之一内存不足的问题解决了加载到内存后 CPU 读取的数据量也大幅下降。代价是精度损失但 LLM 的推理过程对权重轻微扰动并不算特别敏感因为每一层的输出会被后续多个层“平均化”少量噪声在传递中会被抑制。实践中 Q4_K_M 这类量化版本质量和 FP16 差距已经很难单靠阅读感知出来尤其是中文文本生成任务。这点稍后我展开聊。2. 模型选择、格式转换与量化参数全解2.1 从仓库里搞到一个 GGUF 模型有哪几条路最省事的方法是直接下载别人已经转换好的 GGUF 文件。很多开源模型在发布后很快会有社区成员做量化版本文件名里通常带着 “Q4_K_M”“Q5_1”“Q8_0” 之类的标记。下载后就能直接用几乎不用处理。但问题也很现实不是每个模型都有人做 GGUF而且别人的量化配置未必是最适合你机器的那一档。正规的通用流程是这样的从模型发布源下载 PyTorch 格式的原始权重一堆 .bin 或 .safetensors 文件。确认模型架构被 llama.cpp 的转换脚本支持比如 Llama、Mistral、Mixtral 等。用转换脚本把原始权重转换成未量化的 FP16 GGUF 文件。再用量化工具把 FP16 GGUF 进一步压缩成目标位宽比如 Q4_K_M、Q5_0。2.2 转换命令长什么样假设我已经有一份原始权重目录./my_model目录里是完整的模型文件。先执行转换python convert_hf_to_gguf.py ./my_model --outfile my_model.gguf --outtype f16这一步会读取模型配置和 PyTorch 权重生成一个 FP16 的完整 GGUF 文件。--outtype f16表示保留半精度不做任何量化。转换后最好想确认文件大小应该约等于参数量乘以 2 字节7B 大概就是 14GB 左右。然后量化./llama-quantize ./my_model.gguf ./my_model-Q4_K_M.gguf Q4_K_M其中Q4_K_M是要生成的量化类型。量化的本质是把一个大张量按块分组每一组用低比特整数加缩放因子来表示不同量化策略的分组大小和缩放方式不同影响了压缩率和质量。2.3 量化位宽速查什么时候用哪个我整理了一张表可以对照自己的需求选量化类型每权重占用7B 模型大概大小速度质量适用场景F162.0 bytes14GB慢基准有充足内存追求最佳质量Q8_01.0625 bytes7.4GB较快接近 F16内存有余量质量优先Q5_K_M0.66 bytes4.6GB快很好均衡之选Q4_K_M0.58 bytes4.1GB快良好大多数机器首选Q3_K_M0.44 bytes3.1GB很快有明显失真内存极度紧张Q2_K0.33 bytes2.3GB最快较差只求能跑不追求质量个人建议内存 8GB 左右选 Q4_K_M16GB 及以上直接上 Q5_K_M 或者 Q8_0。不用太过迷信 Q2省下来的内存通常不会转化为可用性反而文本质量和逻辑连贯度下降得很明显。2.4 为什么我推荐用 K-quant 而不是旧版 4-bit早期 GGUF 用 Q4_0、Q4_1 这类纯分组量化每个 block 内所有通道共享同一个缩放因子对权重分布不均匀的层不太友好。K-quant 系列Q4_K、Q5_K 等会对不同敏感度的通道采用不同策略重要通道用更高精度次要通道用低精度。实际体感是在同样的文件大小下K-quant 的输出更少出现逻辑断裂尤其是长上下文和复杂指令时差距会更明显。所以只要工具支持 K-quant我都用 K-quant。3. 编译与参数配置把引擎真正跑起来3.1 编译 llama.cpp比你想象中简单在 Linux 或 macOS 上直接用 make 就够了git clone https://github.com/ggerganov/llama.cpp cd llama.cpp make LLAMA_OPENBLAS1 -j8如果想要 GPU 加速N 卡就需要在 make 参数里加LLAMA_CUBLAS1Intel 核显可以试LLAMA_METAL1macOS或相应的 Vulkan 后端。我建议新手第一遍先什么都不加纯 CPU 编译把流程跑通再做加速。因为多一个编译参数就多一份依赖风险先用纯 CPU 版本理解引擎测试成功后再增加后端排查起来容易得多。Windows 用户可以去项目 Releases 页面下载已经编译好的可执行文件也可以自己装 MSVC 后用 CMake 编译官方 README 里的流程已经写得比较清楚了跟着走就行。3.2 常用启动参数怎么填直接运行 llama.cpp 自带的main工具最基础的一条指令长这样./main -m ./my_model-Q4_K_M.gguf -p 写一段关于秋天的散文 -n 256-m指定模型文件-p指定提示词-n指定要生成的最大 token 数。但真实场景里你基本不会只加这三个参数就满意下面这几个参数才是决定体验的关键-t线程数。默认是物理核数但实战中不是越大越好线程太多反而会因为锁竞争和内存带宽饱和而变慢。我的经验是物理核数的 2 到 4 倍通常是一个不错的值比如 8 核 16 线程的 CPU设-t 6~8体验不错。-c上下文长度。默认 512太短稍微对话几句就记不住了。内存够的话给到 4096 或 8192。注意上下文长度直接和 KV cache 内存占用成正比不能盲目拉高。-b批处理大小batch size。预填充阶段一次处理的 token 数默认 512这个值对首 token 延迟影响很大。-ngl把多少层卸载到 GPU。纯 CPU 跑就别加。用 GPU 加速时可以先从 20 左右开始观察显存占用再上调。--temp采样温度。默认 0.8。0.7 是偏稳妥的创作温度0.3 以下输出偏向确定性适合代码生成和简单问答。--top-k和--top-p限制采样的候选 token 范围避免低概率 token 干扰输出。3.3 用 server 模式搭建一个本地 API跑对话不能总在命令行里敲安装版 llama.cpp 自带一个轻量服务器模式./server -m ./my_model-Q4_K_M.gguf -c 4096 --host 127.0.0.1 --port 8080启动后它会在本地开一个 HTTP 服务提供/completion等接口。可以用 curl 测试curl http://127.0.0.1:8080/completion \ -H Content-Type: application/json \ -d {prompt: 你好请介绍一下你自己, n_predict: 128}这样你的本地模型就变成了一个标准 API 服务之后不管写脚本、接聊天前端都只是发请求的事。我把这个 server 端跑通之后基本上就不再碰命令行交互了因为它支持流式输出配合前端能做出类似云服务的打字机效果。4. 实战中遇到的坑与对应排查方案4.1 模型加载到一半崩了显存或内存估算失误最典型的报错是 “error loading model: not enough memory” 或者触发了系统 OOM。很多人只看了模型文件是 4GB就觉得自己 8GB 内存够跑了实际还漏了两块大头上下文 KV cache 和激活内存。4GB 的模型在 4096 上下文下KV cache 可能额外吃掉 1 到 2GB再算上程序本身和其他系统占用8GB 物理内存被吃干净是常有的事。排查方案是这样先看任务管理器或 htop里已有的内存占用再手动预算 “模型文件大小 上下文长度 × 每层 KV cache 开销 × 层数”。如果钱不够就果断换更小的量化比如 Q4_K_M 换 Q3_K_M或者把-c降到 2048。不要用一个“马上要崩溃的配置”硬撑生成的停顿和反复换页会让你怀疑人生。4.2 输出全是乱码或者重复绕圈这通常不是模型坏了而是采样参数跑飞了。温度设太高比如 1.5 以上模型会开始放飞中文尤其容易崩。另一个常见原因是你把--repeat-penalty设成了 1.0也就是完全关闭重复惩罚模型在高概率 token 上循环停不下来。我的做法.gguf模型下载后先跑一次默认参数确认模型本身没问题再慢慢调温度和重复惩罚。调参时一次只改一个变量不然出了问题都不知道是谁的锅。4.3 为什么模型加载很快但生成速度像蜗牛首 token 快不代表整体快。如果你的生成速度只有 1 token/s 甚至更慢先看一眼是不是被内存带宽卡死了。LLM 生成是内存带宽密集型任务模型越大、内存频率越低速度越慢。可以尝试用-t减少线程数因为超线程有时反而拖慢内存带宽利用率。把模型换到更高压缩率的量化档位减少每次读取的数据量。用-ngl把部分层丢给 GPU哪怕只卸载一半层因为显存带宽远高于内存带宽。我试过在同一台机器上Q8_0 大概 4 token/s换 Q4_K_M 之后能到 7 token/s 左右体感提升非常明显。4.4 编译阶段常见的报错编译llama.cpp时的报错通常集中在缺少基础依赖g版本太旧、cmake没装、OpenBLAS 库路径不对。我的建议是刚开始别加任何LLAMA_CUBLAS、LLAMA_BLAS等额外选项先保证纯 CPU 版本能编译出来。如果这样还失败多半是系统包的问题用系统包管理器把 build-essential、cmake、git 装齐再试。一个容易忽视的点git clone 后记得看 README 里的“最新构建要求”因为项目迭代快某些后端可能需要特定版本的编译器。如果你用的发行版 gcc 比较老出现一些奇怪的模板报错时优先升级编译器而不是去源码里找问题。4.5 上下文写太长后半段胡说八道很多人遇到这个问题对话超过一定轮次后模型开始完全无视前面的内容。听起来像模型“忘了”但更可能是上下文截断。llama.cpp 的main工具默认会按最大 token 数截断输入如果你把长对话塞进去前面的历史会被无情切掉。通过观察启动日志里的n_ctx和输入 token 数可以确认。解法很直接把-c调大并确保输入的 token 数量小于它。如果上下文实在需要很长考虑换支持长上下文的模型或者用本地向量数据库做检索把关键信息按需塞回提示词而不是把所有历史都丢进去。5. 体验优化让本地模型从“能跑”到“好用”5.1 模型文件放哪启动速度快不少文件系统对 GGUF 读取速度的影响比很多人想象中大。把模型放在 SSD 上首次加载快好几倍如果放在机械硬盘上光激活就可能要半分钟。而且尽量把模型和运行时临时文件放在同一块盘上避免加载时跨盘读取。更大的模型适当把一部分参数映射到内存mmapllama.cpp 会默认启用 mmap但如果你把文件放在网络盘或者虚拟内存盘反而会有额外的 IO 开销未必划算。5.2 合理利用 mmap 和参数预分配llama.cpp 支持 mmap 直接映射文件等于让操作系统管理按需加载。这样一来模型文件不需要一次性完整读入内存而是用到哪些 page 就加载哪些 page。这个机制在交互式输入比较短、上下文不长时效果很好模型文件可以“半躺在磁盘上”。但一旦上下文变长全量访问时 mmap 反而可能造成频繁缺页。如果你发现生成过程中 CPU 占用忽高忽低、有卡顿可以试试用参数--no-mmap强制把整个权重读进 RAM有时反而更流畅。5.3 对话模板和禁用系统提示词的作用用 GGUF 做对话时很多人直接-p 你好就完事了但输出往往不如预期。真正原因是没有按模型要求的 chat template 格式化输入。llama.cpp 的server模式默认会应用内置的模板但main工具不会自动处理。如果自己拼格式需要看模型文档对应的模板如|im_start|system ... |im_end|这种格式。尤其是中文模型对特殊 token 很敏感少了就可能触发异常输出。另外main工具有个--ignore-eos参数默认是关的也就是遇到结束 token 就说完了。有些场景下——比如代码续写、自由联想——你希望模型别太早收尾这时可以适当开启一个--ignore-eos但也要当心模型真的停不下来。5.4 用小模型做“探针”大模型做“主力”我在本地跑模型时有一个习惯先下载一个很小的 GGUF 模型比如 1B 到 3B 的 Q4 档把流程完全跑熟包括编译、转换、命令行参数、API 调用。确认所有环节都没问题后再去下载 7B 甚至 13B 的大模型。为什么要这样因为小模型加载快测试参数时响应快而且出了问题容易区分到底是模型本身的问题还是配置的问题。另外CPU 推理速度不理想时小模型也适合做各种输出质量的对比实验毕竟生成一段文本只要几秒。6. 一些写在最后的个人体会在实际折腾 llama.cpp 和 GGUF 的过程中我最深的感受是这个组合的最大价值不一定是跑出多聪明的模型而是让你把“大模型推理”这件事看得清清楚楚。没有隐式的依赖没有莫名其妙的框架开销一个二进制文件加一个模型文件就是全部。如果你是第一次尝试我建议从“最小可行配置”开始一台普通电脑、一个 Q4_K_M 的 7B 模型、纯 CPU 跑能顺利输出第一句回应就已经算入门了。之后再逐步加上 GPU 卸载、server 模式、外部调用。每加一项都单独测试这样每一步的可控性都很高。最后分享一个小技巧保存好你在用的启动命令最好挂在~/.bashrc里做成函数别名。因为 llama.cpp 的参数实在太多每次敲全有点浪费时间。我的别名是把常规参数固定好只留-m和-p交互这样实验不同模型时只需要改模型路径。等你把整套链路打通之后会发现本地模型不再是一个遥远的“云端黑盒”而是一个随时可以调用的本地工具——这种感觉还是很奇妙的。

相关新闻

Java老兵AI Agent转型实战:无需Python的工程化落地指南

Java老兵AI Agent转型实战:无需Python的工程化落地指南

1. 一个Java老兵的AI Agent转型之路1.1 为什么我决定从Java转向AI Agent写了十三年代码,Spring全家桶闭着眼睛都能搭出一套微服务架构,JVM调优参数比自家WiFi密码还熟。但去年开始,身边越来越多项目开始提“智能体”“Agent”“自动化决策”这…

2026/10/16 13:26:52 阅读更多 →
17个Deeplink动作速查表:用Shortcuts、Alfred和Raycast一句话控制Itsyhome

17个Deeplink动作速查表:用Shortcuts、Alfred和Raycast一句话控制Itsyhome

【免费下载链接】itsyhome-macos A native macOS menu bar app for controlling your smart home devices. 项目地址: https://gitcode.com/gh_mirrors/it/itsyhome-macos 点击查看 免费下载 Itsyhome 是一款原生的 macOS 菜单栏智能家居 App,支持控制 …

2026/10/16 13:26:52 阅读更多 →
Spring AI扩展包停更不用慌:Java开发者的大模型迁移与破局

Spring AI扩展包停更不用慌:Java开发者的大模型迁移与破局

前阵子社区里都在议论某个国产 Spring AI 扩展包停更的事,说实话,刚看到这个消息的时候我也愣了一下。这个扩展包一度被看作 Java 接入大模型最顺手的路径之一:依赖一引、配置一写,就能把对话补全、向量检索、工具调用接到 Spring…

2026/10/16 13:26:52 阅读更多 →

最新新闻

策略路由、GRE与NAT协同配置:企业网络流量精细化管理实战

策略路由、GRE与NAT协同配置:企业网络流量精细化管理实战

1. 从一条业务流量说起:为什么需要策略路由、GRE和NAT三者配合很多刚接触企业网络的朋友会有一个疑问:我明明已经配好了默认路由,内网能上网,为什么还要折腾策略路由、GRE隧道和NAT这些东西?这个问题我在带新人的时候被…

2026/10/16 14:05:05 阅读更多 →
C语言+SQLite医院管理系统课程设计实战

C语言+SQLite医院管理系统课程设计实战

简介:本资源是一份面向计算机专业本科生的C语言课程设计实践项目,聚焦医院管理系统的完整实现与总结报告,适用于软件工程、数据库原理及C语言综合实训等教学场景。项目采用纯C语言开发,结合SQL数据库操作与C API接口调用&#xff…

2026/10/16 14:05:05 阅读更多 →
KKWE地图编辑器实战:JASS脚本、触发器与调试避坑指南

KKWE地图编辑器实战:JASS脚本、触发器与调试避坑指南

简介:《魔兽争霸3地图编辑器-KKWE》是一款面向魔兽争霸3自定义地图制作者的第三方增强型编辑器,在MOD创作场景中广受欢迎。它提供可视化编辑界面与完整工具链,支持地形调整、单位与建筑布置、脚本编写及外部模型导入,还能自定义规…

2026/10/16 14:05:05 阅读更多 →
Codex 装上 Jev 决策快 200 倍,Jev 系第一个出圈的 CLI 是它

Codex 装上 Jev 决策快 200 倍,Jev 系第一个出圈的 CLI 是它

Codex 装上 Jev 决策快 200 倍,Jev 系第一个出圈的 CLI 是它 【免费下载链接】jevgrep Find code by asking what it does. A CLI for coding agents that uses Jev to discover relevant files and source context. 项目地址: https://gitcode.com/gh_mirrors/je…

2026/10/16 14:05:05 阅读更多 →
SmolLM2-135M-Instruct_rai_1.8.0_medusa_1.0_npu NPU加速实战:从AMD NPU到端侧推理的完整路径

SmolLM2-135M-Instruct_rai_1.8.0_medusa_1.0_npu NPU加速实战:从AMD NPU到端侧推理的完整路径

大模型推理模型本地部署 【免费下载链接】SmolLM2-135M-Instruct_rai_1.8.0_medusa_1.0_npu 项目地址: https://ai.gitcode.com/hf_mirrors/amd/SmolLM2-135M-Instruct_rai_1.8.0_medusa_1.0_npu 点击查看 免费下载 想在自己的设备上跑大模型?SmolLM2-1…

2026/10/16 14:05:05 阅读更多 →
把知识库搬进 CI/CD:WeKnora 官方 CLI 的脚本化玩法

把知识库搬进 CI/CD:WeKnora 官方 CLI 的脚本化玩法

把知识库搬进 CI/CD:WeKnora 官方 CLI 的脚本化玩法 【免费下载链接】WeKnora Open-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki. 项目地址: https://gitcode.com/Git…

2026/10/16 14:04:04 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

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

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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/15 9:49:14 阅读更多 →