Windows系统下CUDA与llama.cpp环境搭建:本地大语言模型部署实战
1. 项目概述为什么要在Windows上折腾CUDA和llama.cpp如果你手头有一张NVIDIA显卡无论是主流的RTX 3060还是性能更强的RTX 4090并且想在Windows系统上本地运行一些开源的大语言模型比如Llama 3、Qwen或者Mistral那么你大概率绕不开两个东西CUDA和llama.cpp。CUDA是NVIDIA推出的并行计算平台和编程模型它能让你的GPU火力全开而不是仅仅用来打游戏。而llama.cpp是一个用C编写的高效推理框架它最大的魅力在于能将各种大模型量化后在消费级硬件上流畅运行极大地降低了个人开发者和研究者的门槛。我最初接触这个组合是因为想在本地部署一个能快速响应、且保护隐私的代码助手。云端API虽然方便但延迟、费用和隐私始终是痛点。在Windows上搞定这套环境意味着你拥有了一台24小时待命、完全受控的“本地大脑”。这个过程看似只是安装软件实则涉及到驱动兼容性、环境变量配置、编译工具链选择等一系列细节任何一个环节出错都可能导致后续步骤失败。网上教程虽多但往往只讲步骤不讲原理或者环境稍有不同就束手无策。这篇内容就是把我从零开始搭建、踩过无数坑后总结出的完整路径和核心心法分享出来目标是让你不仅能照着做成功更能理解每一步背后的逻辑从而具备自己排查问题的能力。2. 核心工具链解析与环境准备在动手安装之前我们需要理清整个工具链的依赖关系。这就像盖房子地基没打牢后面砌再漂亮的墙也容易塌。2.1 CUDA ToolkitGPU计算的基石CUDA Toolkit不是显卡驱动但它依赖于特定版本的NVIDIA驱动。它包含编译器、调试器、数学库等一系列开发工具。这里最大的坑就是版本匹配问题。版本选择策略 首先你需要知道自己显卡的算力Compute Capability和当前驱动的版本。以RTX 30/40系列显卡为例它们普遍支持CUDA 11.x到12.x。一个稳妥的方法是访问NVIDIA官网的CUDA Toolkit归档页面查看每个CUDA版本所需的最低驱动版本。例如CUDA 12.4可能要求驱动版本为550以上。如果你的驱动是旧版的536那么直接安装CUDA 12.4可能会失败或无法识别GPU。我的建议是优先升级你的NVIDIA显卡驱动到最新稳定版。通过GeForce Experience或从官网下载这能确保最大程度的硬件兼容性。驱动更新后再安装与之匹配的CUDA Toolkit。对于大多数2024年的新项目CUDA 12.x是更通用的选择。安装过程中的关键选项 运行CUDA安装程序通常是一个巨大的可执行文件时安装类型建议选择“自定义”。在组件选择页面务必取消勾选“Visual Studio Integration”除非你确定需要使用特定版本的VS进行CUDA C开发。对于我们的目标运行llama.cpp只需要核心的CUDA Runtime、开发库和命令行工具。此外安装路径尽量保持默认C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x避免路径中包含空格或中文减少后续配置的麻烦。安装完成后需要验证环境变量是否自动配置。打开系统环境变量检查Path中是否添加了CUDA_PATH如C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin和CUDA_PATH_V12_4。同时系统变量中应该会有CUDA_PATH指向CUDA的根目录。这是很多后续工具如PyTorch寻找CUDA库的依据。2.2 编译环境MSYS2与CMakellama.cpp是一个C项目我们需要在Windows上编译它。官方的推荐工具是MSYS2它提供了一个类Unix的Shell环境和强大的包管理器pacman让我们能轻松获取make、gcc、g等编译工具链。MSYS2安装与配置从官网下载MSYS2安装程序安装到无空格无中文的路径例如D:\msys64。安装完成后从开始菜单启动MSYS2 UCRT64。这个环境是关键它使用较新的UCRT运行时库兼容性更好能避免很多奇怪的链接错误。在打开的UCRT64终端里首先更新软件包数据库pacman -Syu。如果提示关闭终端就照做重新打开UCRT64再运行一次pacman -Syu确保完全更新。安装必要的编译工具pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain cmake git。这个命令会安装gcc、g、make、cmake和git。注意千万不要在Windows自带的CMD或PowerShell里直接尝试编译llama.cpp缺少必要的库和工具链会导致编译失败。MSYS2的环境是必须的。CMake的角色 CMake是一个跨平台的构建系统生成器。llama.cpp使用CMake来管理编译过程。我们通过CMake命令生成适合MSYS2环境的Makefile然后再用make命令进行实际编译。安装好上述工具后可以在MSYS2 UCRT64终端中用cmake --version和gcc --version验证是否安装成功。2.3 模型文件GGUF格式与获取llama.cpp运行的不是原始的PyTorch模型.pth或.bin而是一种特殊的量化格式——GGUFGPT-Generated Unified Format。这种格式将模型权重转换为高效的、适合在CPU和GPU上加载的二进制格式并且支持多种量化等级如Q4_K_M, Q5_K_S, IQ4_XS等在精度和速度/显存占用之间取得平衡。如何选择与下载模型确定需求你是需要通用的对话模型如Llama 3.1 8B还是代码模型如CodeLlama 7B或是多语言模型如Qwen 2.5 7B模型参数越大如70B能力通常越强但对显存和内存的要求也呈指数级增长。选择量化等级这是平衡点。Q4_K_M是一个很好的起点在7B/8B模型上能保持不错的精度同时显著减少资源占用。IQ4_XS是更激进的量化能进一步压缩模型适合显存紧张的显卡如8GB显存的RTX 4060 Ti想跑14B模型但可能会有轻微的质量损失。对于初试建议从Q4_K_M开始。下载渠道最知名的站点是Hugging Face。搜索模型名称加上“GGUF”关键词例如“Llama-3.1-8B-Instruct-GGUF”。进入仓库后找到对应的.gguf文件下载。例如llama-3.1-8b-instruct-q4_k_m.gguf。将下载好的.gguf模型文件放在一个你容易找到的目录比如D:\models。记住这个路径后续运行推理时会用到。3. 详细实操编译与运行llama.cpp环境准备好模型已就位现在进入核心环节让llama.cpp在Windows上跑起来。3.1 获取与编译llama.cpp源码首先在MSYS2 UCRT64终端中切换到你打算存放项目的目录例如/d/ai_projects这对应Windows的D:\ai_projects。克隆仓库git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp创建构建目录并配置CMake 不建议在源码根目录直接编译。创建一个单独的build目录是标准做法。mkdir build cd build接下来是关键的CMake配置命令。我们需要显式地开启CUDA支持并指定CUDA工具包的路径。cmake .. -DCMAKE_BUILD_TYPERelease -DLLAMA_CUDAON -DCUDAToolkit_ROOTC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.4-DCMAKE_BUILD_TYPERelease编译发布版本优化性能。-DLLAMA_CUDAON这是启用GPU加速的关键标志。-DCUDAToolkit_ROOT...指定你的CUDA安装路径。请根据你的实际CUDA版本v12.1, v12.4等修改。路径中的反斜杠\需要改为正斜杠/。执行这个命令后CMake会检查环境配置生成Makefile。如果看到CUDA found和Building with CUDA等字样说明CUDA配置成功。开始编译 使用make命令进行编译-j参数可以指定并行编译的线程数加快速度例如-j8表示用8个线程。make -j8编译过程可能需要几分钟。如果一切顺利你会在build目录下或者其bin/Release子目录下取决于CMake版本看到生成的可执行文件最主要的是main.exe和server.exe。3.2 运行你的第一个模型编译成功后我们来测试一个简单的交互式对话。假设你的模型文件路径是D:\models\llama-3.1-8b-instruct-q4_k_m.gguf。在MSYS2终端中进入main.exe所在的目录例如/d/ai_projects/llama.cpp/build/bin/Release运行以下命令./main.exe -m /d/models/llama-3.1-8b-instruct-q4_k_m.gguf -n 256 --color -i -r User: -f prompts/chat-with-bob.txt --ctx-size 2048 -ngl 99这是一个较复杂的命令我们来拆解关键参数-m指定模型文件的路径。-n生成的最大令牌数即回复长度。-i交互模式可以连续对话。-r设置用户输入的提示符。-f指定一个包含系统提示词的文件。prompts/chat-with-bob.txt是项目自带的一个示例。--ctx-size上下文窗口大小即模型能“记住”多长的对话历史。2048是一个保守的起始值可根据模型能力和显存调整。-ngl 99这是将模型层数卸载到GPU的关键参数。99意味着尽可能多地将模型层放在GPU显存中运行可以极大提升推理速度。如果显存不足程序会自动将剩余层放在CPU上运行。你可以设置一个具体的层数如-ngl 40来精确控制。运行后如果看到模型开始输出文字并且通过nvidia-smi命令在Windows CMD中运行能看到GPU利用率上升那么恭喜你CUDA加速的llama.cpp已经在Windows上成功运行了3.3 进阶使用构建WebUI服务器命令行交互对于调试和简单使用足够但一个图形界面显然更友好。llama.cpp项目自带了server示例可以启动一个类似OpenAI API风格的HTTP服务器。编译后在build/bin/Release目录下运行./server.exe -m /d/models/llama-3.1-8b-instruct-q4_k_m.gguf --ctx-size 4096 -ngl 99 -c 4096-c控制批处理大小影响并行处理能力。服务器默认在http://127.0.0.1:8080启动。你可以用浏览器访问这个地址会看到一个简单的聊天界面。更强大的方式是使用第三方UI比如Open WebUI或Text Generation WebUI它们可以通过配置将后端API地址指向这个本地服务器http://127.0.0.1:8080从而获得功能完备的图形化操作界面支持模型切换、参数调整、对话历史管理等。4. 性能调优与深度配置指南成功运行只是第一步如何让它跑得更快、更稳、支持更大的模型才是进阶玩家关心的。4.1 理解并优化-nglGPU层卸载参数-ngl(Number of GPU Layers) 是影响性能和显存占用的最核心参数。它决定了有多少层神经网络被放在GPU上计算。原理大语言模型由数十甚至上百个相同的“Transformer层”堆叠而成。每一层的计算都可以在GPU上并行加速。-ngl值越大GPU参与的计算越多速度越快但同时占用的显存也越多。如何设置试探法从一个较大的值开始如40层运行模型并观察nvidia-smi中的显存占用。如果接近爆显存例如8G显存占用7.5G就适当减少-ngl值。如果显存还有大量空闲就增加它以提升速度。经验值对于7B/8B的Q4量化模型在8GB显存的显卡上-ngl设置为35-40层通常可以流畅运行并留出一些显存给上下文--ctx-size。对于更大的模型如14B你可能需要将-ngl降到20层甚至更低让一部分层在CPU上运行形成混合推理模式。监控工具除了nvidia-smi在Windows下可以使用任务管理器的“性能”选项卡监控GPU使用情况或者使用更专业的工具如GPU-Z。4.2 上下文长度与批处理大小--ctx-size这个参数定义了模型能处理的文本总长度Token数。更大的上下文窗口意味着模型能记住更长的对话或文档但也会线性增加GPU和CPU的内存消耗。例如从2048增加到4096显存占用可能近乎翻倍。对于聊天应用4096通常足够对于长文档分析可能需要8192甚至更多但这需要足够的硬件资源。-c(batch size)在server模式下尤为重要。它指定一次处理多少个令牌序列。增大批处理大小可以提高GPU的利用率和整体吞吐量每秒处理的令牌数尤其是在有多个并发请求时。但同样这会增加显存占用。需要根据你的应用场景是单用户对话还是多用户服务和硬件条件进行权衡。一般可以从默认值开始逐步上调并观察显存和速度变化。4.3 多模型管理与快速切换随着你尝试的模型增多管理它们会成为问题。我建议建立清晰的目录结构D:\models\ ├── llama3.1\ │ ├── 8b-instruct-q4_k_m.gguf │ └── 8b-instruct-q8_0.gguf ├── qwen2.5\ │ └── 7b-instruct-q4_k_m.gguf └── codellama\ └── 7b-instruct-q4_k_m.gguf然后可以为常用的运行命令编写简单的批处理脚本.bat或Shell脚本.sh。例如创建一个run_llama.batecho off cd /d D:\ai_projects\llama.cpp\build\bin\Release main.exe -m D:\models\llama3.1\8b-instruct-q4_k_m.gguf -n 512 --color -i -ngl 35 --ctx-size 4096这样双击脚本就能快速启动指定配置的模型。5. 常见问题排查与实战心得即使按照步骤操作也难免会遇到问题。下面是我遇到并解决过的一些典型情况。5.1 CUDA相关错误与解决错误CUDA error: operation not supported或CUDA error: no kernel image is available for execution原因这是最经典的版本不匹配错误。你编译的llama.cpp是针对某一特定CUDA架构如sm_86for RTX 30系列优化的但你的显卡计算能力或CUDA运行时版本不支持。排查确认你的显卡算力如RTX 3060是sm_86。在llama.cpp的CMake配置阶段可以尝试指定架构cmake .. -DLLAMA_CUDAON -DCMAKE_CUDA_ARCHITECTURES86将86替换为你的显卡算力。但更常见的是直接使用项目默认的通用编译设置它通常会包含主流架构。更根本的解决方法是确保CUDA Toolkit版本与显卡驱动兼容并且CMake能找到正确版本的CUDA。有时系统里有多个CUDA版本比如Anaconda安装了一个导致路径混乱。在CMake命令中显式用-DCUDAToolkit_ROOT指定路径是最可靠的做法。错误Failed to initialize CUDA backend原因llama.cpp无法加载CUDA运行时库。解决检查环境变量CUDA_PATH和Path是否正确设置。在MSYS2中CUDA的DLL可能不在搜索路径。一个粗暴但有效的方法是将C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\bin目录下的cudart64_12.dll、cublas64_12.dll等核心DLL文件复制到main.exe或server.exe所在的同级目录下。5.2 编译与运行时的其他问题MSYS2中pacman更新或安装失败通常是网络问题。可以尝试更换MSYS2的软件源为国内镜像如清华源编辑/etc/pacman.d/mirrorlist.mingw64等文件。或者使用科学的上网方式。模型加载慢第一次运行卡顿这是正常的。llama.cpp在首次加载一个GGUF模型时会对其进行内存映射和初始化这个过程可能耗时几十秒到几分钟取决于模型大小和硬盘速度。后续再运行就会快很多因为模型文件已经被缓存。推理速度慢GPU利用率低首先用nvidia-smi确认GPU是否真的被使用查看Volatile GPU-Util。如果GPU利用率很低比如低于20%而CPU占用很高很可能-ngl参数设置得太小大部分计算落在了CPU上。尝试增加-ngl值。检查是否在电源管理选项中设置了“高性能”模式笔记本尤其要注意。显存不足Out of Memory这是硬件限制。解决方案有降低-ngl值让更多层在CPU上运行。使用量化等级更高的模型如从Q4_K_M换到IQ4_XS。减小上下文大小--ctx-size。关闭其他占用显存的程序如游戏、浏览器。5.3 个人实操心得与建议环境隔离强烈建议为这类AI开发项目创建一个独立的工作目录如D:\ai_projects并将MSYS2、llama.cpp源码、模型文件都放在附近。避免使用系统盘或路径过深的目录减少权限和路径问题。版本控制对于llama.cpp源码使用git拉取特定发布版本如git checkout b1234而非总是用master分支这样能获得一个经过测试的稳定环境。master分支可能包含实验性功能容易引入不稳定因素。量化模型选择对于初次尝试7B/8B模型的Q4_K_M版本是甜点。它能在6-8GB显存的显卡上获得不错的速度和可接受的质量。不要一开始就追求70B模型那需要专业的计算卡和大量的系统内存。备用方案如果CUDA配置实在困难可以回退到纯CPU模式。在CMake配置时不加-DLLAMA_CUDAON编译出的main.exe将只使用CPU和内存进行计算。速度会慢很多但作为功能验证和调试是可行的。对于支持AVX2指令集的现代CPU纯CPU推理7B模型也能达到每秒几个令牌的速度对于非实时交互是可以接受的。整个过程就像在组装一台精密的仪器每一步的严谨都能为后续的稳定运行打下基础。当你在自己的电脑上看到由本地GPU驱动生成的流畅文本时那种完全掌控、没有延迟、隐私无忧的体验会让人觉得这些折腾都是值得的。这套环境一旦搭好就成了一个强大的本地AI实验平台你可以自由地尝试各种最新的开源模型而不再受制于云服务的条款与限制。

相关新闻

【学习笔记】Harness 六大核心组件 —— Agent 生产化的完整拼图-02/15

【学习笔记】Harness 六大核心组件 —— Agent 生产化的完整拼图-02/15

前两天帮朋友看他团队做的一个 Agent。功能挺全:能读代码库、能跑测试、能调 API。Demo 的时候很顺。但他跟我说了一件事——有天晚上他们挂着 Agent 跑了个大重构任务,第二天早上来一看,Agent 确实改了代码,但改到一半上下文窗口…

2026/10/17 14:26:49 阅读更多 →
Python音频分析实战:从音乐特征提取到巴西PHONK风格节奏生成

Python音频分析实战:从音乐特征提取到巴西PHONK风格节奏生成

最近在整理音乐素材时,发现了一首名为《This Feeling》的“巴西PHONK”风格曲目,其独特的低音线条和复古采样让我印象深刻。这种融合了Memphis Rap、Drift Phonk和巴西Baile Funk元素的音乐风格,正在全球电子音乐和短视频平台掀起一股热潮。对…

2026/10/16 16:14:30 阅读更多 →
RAG使用摘要索引报错

RAG使用摘要索引报错

1、base_llm.py代码:#!/usr/bin/env python # -*- coding: UTF-8 -*-from dotenv import load_dotenv from langchain_huggingface import HuggingFaceEmbeddings from langchain_openai import ChatOpenAI import os load_dotenv()llm ChatOpenAI(api_keyos.geten…

2026/10/5 10:12:15 阅读更多 →

最新新闻

Java随机数安全:从Random到SecureRandom实战指南

Java随机数安全:从Random到SecureRandom实战指南

有段时间没写 Java 安全相关的话题了。前阵子帮一个团队做代码走查,发现线上生成优惠券兑换码的地方还在用new Random().nextLong()。我当时就说,这个代码不出事是运气好,出事的概率其实一直挂在审计面前。方案改为SecureRandom后&#xff0c…

2026/10/17 14:27:13 阅读更多 →
流式翻译延迟控制与分段策略:OpenClaw实战解析

流式翻译延迟控制与分段策略:OpenClaw实战解析

做实时字幕和会议同传的同学,应该都体会过那种难受:说话人嘴都快闭上了,翻译结果才慢悠悠弹出来。更尴尬的是,弹出来的还是一句缺头少尾的“半成品”,用户当场就会质疑这东西到底能不能用。我接触 OpenClaw 之前&#…

2026/10/17 14:27:13 阅读更多 →
基于YOLOv26的棉纺车间烟雾火焰检测系统实战

基于YOLOv26的棉纺车间烟雾火焰检测系统实战

棉纺车间的防火难题,我做工业视觉检测这块三年多了,接触过不少纺织客户,真正让我决定认真做一个专门针对棉花场景的烟雾火焰检测系统的,是一次去某棉纺厂的实地调研。车间里全是飘飞的棉尘和短绒,稍微有点火星就顺着滤…

2026/10/17 14:27:13 阅读更多 →
CT三维图像分类实战:Keras 3D CNN全流程解析

CT三维图像分类实战:Keras 3D CNN全流程解析

1. 项目初步认知与整体方案选择1.1 CT扫描3D图像分类到底在解决什么问题CT扫描和普通照片有一个本质区别:照片是二维的,而CT本质上是一组沿着人体纵轴连续切片堆叠起来的三维体数据。每一层切片都是人体某一层面的灰度图像,层与层之间还有固定…

2026/10/17 14:27:13 阅读更多 →
大数据采集与处理知识骨架:从源头到应用的工程逻辑

大数据采集与处理知识骨架:从源头到应用的工程逻辑

1. 这不是“背题指南”,而是一套可复用的大数据采集与处理知识骨架“大数据采集与处理期末复习题”——看到这个标题,很多同学第一反应是翻出往年卷子、划重点、狂背MapReduce的shuffle阶段流程图。但我在连续三年带某高校《大数据技术基础》实验课、参与…

2026/10/17 14:27:13 阅读更多 →
西门子S7-1200四轴步进同步控制实战:从PTO配置到微秒级同步

西门子S7-1200四轴步进同步控制实战:从PTO配置到微秒级同步

简介:本资源是一套基于西门子S7-1200 PLC的工业级脉冲定位控制工程实例,面向自动化工程师、PLC初学者及机电一体化专业学习者,聚焦多轴步进电机协同控制这一典型产线需求。内容完整覆盖四台步进电机的独立启停、速度调节与脉冲精确定位&#…

2026/10/17 14:26:12 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/16 14:23:36 阅读更多 →