为什么你的AI产品突然被下架?——开源模型商用许可失效的7个隐蔽信号(含GitHub官方政策更新预警)
更多请点击 https://codechina.net第一章开源模型商用许可解析开源大语言模型的商用许可并非“开箱即用”的自由通行证其法律约束力直接决定企业能否合法部署、微调、分发或嵌入模型至商业产品中。当前主流许可协议存在显著差异从宽松的 Apache 2.0 到强限制性的 RAIL、Custom Commercial Licenses许可条款对“商用”“衍生作品”“API服务”等关键概念的界定直接影响合规边界。典型许可协议对比许可类型是否允许商用是否允许修改与再分发是否要求源码公开是否禁止AI服务化如SaaSApache 2.0✅ 是✅ 是❌ 否仅需保留 NOTICE 文件❌ 否MIT✅ 是✅ 是❌ 否仅需保留版权申明❌ 否RAIL License✅ 有条件需签署附加条款✅ 是❌ 否✅ 是明确禁止作为AI服务提供验证许可状态的操作步骤定位模型仓库根目录下的 LICENSE 或 LICENSE.md 文件检查是否存在额外声明文件如 ACCEPTABLE_USE_POLICY、COMMERCIAL_LICENSE.md运行以下命令提取许可元数据适用于 Hugging Face 模型# 使用 huggingface-hub 工具获取模型卡片及许可信息 pip install huggingface-hub huggingface-cli repo info --repo-id meta-llama/Llama-3.1-8B-Instruct --revision main --include-license该命令将输出结构化 JSON其中license字段标识基础许可类型tags数组可能包含commercial-use或non-commercial等语义标签是快速识别商用可行性的第一道过滤器。常见合规风险点将 RAIL 许可模型用于托管式 API 接口即使未收费也构成违规在闭源商业应用中静态链接 Apache 许可的模型权重未在分发包中附带 NOTICE 文件误将社区版模型如 Qwen2.5-7B的商用许可等同于企业版Qwen2.5-7B-Enterprise后者需单独授权。第二章主流开源模型许可证深度解构2.1 MIT/Apache-2.0的商用边界与隐性约束附LLaMA-3、Qwen模型实测合规审计许可证核心义务对比条款MITApache-2.0专利授权❌ 无明示✅ 明确授予用户实施专利权商标使用⚠️ 未禁止但无豁免❌ 明确禁止用于背书实测中的隐性约束LLaMA-3虽标称Apache-2.0但其NOTICE文件要求分发时保留Meta版权声明Qwen-2.5在license.txt中嵌套了额外的商业用途限制条款需单独签署协议合规检查脚本示例# 检查LICENSE文件是否含附加条款 grep -r -i additional terms\|not for commercial ./model/ --include*.txt该命令扫描模型目录下所有文本文件识别潜在的隐性约束关键词-r启用递归--include限定范围避免误报二进制文件。2.2 GPL类许可证在AI模型权重分发中的传染性风险含Hugging Face Hub上传触发场景分析传染性触发的核心边界GPL的“衍生作品”定义在模型权重场景中存在法律解释模糊性若仅分发训练后的二进制权重文件不含训练代码多数法域倾向认为其不构成GPL程序的“修改版本”。但一旦权重与GPL许可的训练框架深度耦合如基于GPL许可的PyTorch扩展模块导出则可能被认定为整体衍生。Hugging Face Hub上传的隐式触发点上传时勾选“Include training script”且该脚本含GPL代码 → 触发传染模型卡片README.md中嵌入GPL许可的推理示例代码 → 构成“组合发布”风险典型风险代码片段# train.py (GPL-licensed) from my_gpl_trainer import Trainer # ← GPL库导入 model.save_pretrained(hf://my-model) # 权重上传至Hub该代码将GPL训练逻辑与模型持久化绑定Hugging Face Hub自动归档整个提交上下文含train.py构成GPL要求的“完整对应源码”分发义务。触发条件传染风险等级法律依据要点纯权重MIT许可证README低权重属数学表达非版权保护客体权重GPL训练脚本同仓提交高FSF明确将“一起分发”视为组合作品2.3 商用禁令型许可如Meta的LLaMA系列的法律效力与技术规避陷阱结合模型微调API封装案例许可边界的技术误读风险LLaMA 2/3 的商用禁令明确禁止“将模型用于商业产品或服务”但未定义“商业用途”的技术判定标准。实践中微调后部署为内部工具常被误判为合规——而若该工具支撑付费业务链路则构成实质性违约。微调行为的法律灰度仅使用公开权重进行LoRA微调不改变原始许可约束若微调后模型权重通过API暴露给第三方即触发“分发”与“商用”双重违规企业级封装必须隔离模型输出与业务逻辑层避免API响应携带可识别的原始模型指纹。典型API封装陷阱示例# 错误直接暴露微调后模型的原始输出 app.route(/chat) def chat(): return {response: model.generate(prompt)} # ❌ 响应体含原始token分布特征该实现未对logits、top-k采样参数、temperature等敏感元信息做归一化处理易被逆向识别模型身份违反LLaMA许可中“不得以任何方式使模型能力可被复现或推断”的隐含条款。2.4 社区驱动许可如BigScience BLOOM License的协作义务落地难点从数据集归属到衍生模型署名实践数据同步机制BLOOM License 要求衍生模型“明确标注训练数据来源”但实践中常缺失可验证的数据溯源链。例如{ license: BLOOM-1.0, derived_from: [root-dataset-v1, curated-subset-2023], attribution: [BigScience Workshop, HuggingFace Datasets] }该元数据需嵌入模型卡片modelcard.json但无强制校验工具导致字段空缺或伪造。署名传播断层原始许可未定义“显著署名”的最小字号/位置标准API服务中模型输出未自动注入归属声明合规性验证瓶颈检查项人工审核自动化工具支持数据集许可证兼容性✅❌仅支持CC-BY等常见协议衍生模型署名完整性⚠️依赖README扫描✅HF Hub API可提取2.5 许可证组合冲突当基础模型推理框架训练数据集采用不同许可时的合规断点Stable Diffusion生态链拆解许可证层叠风险图谱Stable Diffusion v1.5(CreativeML Open RAIL-M) ↓Diffusers(Apache 2.0) ↓LAION-5B 子集(CC BY-NC 4.0)典型冲突场景RAIL-M 禁止军事用途但 Apache 2.0 允许商用闭源部署CC BY-NC 4.0 禁止商业使用与下游 SaaS 服务直接冲突合规性校验代码片段# 检查许可证兼容性矩阵 license_compatibility { (RAIL-M, Apache-2.0): ✅ 兼容RAIL-M 显式允许, (Apache-2.0, CC-BY-NC-4.0): ❌ 冲突NC 条款禁止 Apache 衍生品商用 } print(license_compatibility[(Apache-2.0, CC-BY-NC-4.0)])该脚本通过预定义元组键匹配许可证对输出兼容性结论CC-BY-NC-4.0的非商业NC限制与 Apache 2.0 的商用自由形成不可调和矛盾构成典型合规断点。第三章GitHub政策更新对AI模型商用的连锁冲击3.1 GitHub 2024年6月新规解读仓库License字段强制校验与自动下架机制含API响应头合规检测脚本新规核心变更自2024年6月15日起GitHub 对所有新创建及更新的公开仓库强制校验license字段若repository.license.key为空或为none/unlicensedAPI 创建/更新请求将返回422 Unprocessable Entity且 Web 端提交将被拦截。响应头合规性检测脚本curl -I https://api.github.com/repos/:owner/:repo \ -H Accept: application/vnd.github.v3json \ -H Authorization: Bearer $TOKEN | \ grep -i x-github-license-status该脚本通过X-GitHub-License-Status响应头判断仓库许可状态valid、missing或invalid。参数-I仅获取响应头避免传输主体内容提升检测效率。自动下架触发条件连续7天未补全有效 license如 MIT、Apache-2.0License 文件存在但 SPDX ID 解析失败状态码含义重试建议422License 字段缺失或无效提交 LICENSE 文件并更新仓库元数据451因许可不合规被临时下架修正后调用PATCH /repos/:owner/:repo3.2 GitHub Copilot集成模型的许可穿透效应第三方模型被间接纳入Copilot服务后的授权失效路径许可穿透的核心机制当第三方开源模型如Llama 2、StarCoder通过API或权重注入方式接入Copilot后其原始许可证如LLaMA 2 Community License在服务端被覆盖为GitHub的统一服务条款导致原许可约束力实质性消解。关键授权失效节点模型权重与Copilot推理服务深度耦合无法分离部署用户调用行为触发服务端动态加载构成“即服务”SaaS场景规避GPL等传染性条款适用典型代码层表现# Copilot SDK中隐式模型路由逻辑 def route_to_model(prompt: str) - str: # 模型选择由服务端控制客户端无权指定或审计 return requests.post(https://api.githubcopilot.com/v1/invoke, json{prompt: prompt, model_id: auto}).text该调用绕过本地模型加载使用户无法行使Apache 2.0或MIT许可赋予的修改/再分发权model_id: auto表明模型调度完全黑盒化切断了许可证合规链路。3.3 开源模型托管平台责任转移从“仅托管”到“主动合规审查”的平台义务升级对比GitLab/GitHub/Codeberg策略差异合规审查触发机制差异平台审查触发条件人工介入阈值GitHub仅响应DMCA或政府指令≥1000 stars license scan failureGitLab自动扫描训练数据哈希许可证冲突模型权重文件含GPLv3符号表Codeberg依赖用户声明社区举报3独立举报且含证据链模型元数据校验示例# GitLab CI 中嵌入的合规钩子 def validate_model_license(model_yaml): assert license in model_yaml, Missing license declaration assert model_yaml[license] not in [AGPL-3.0, CC-BY-NC], Non-commercial licenses prohibited for inference APIs return True该函数在CI流水线中强制校验模型YAML元数据拦截不兼容商业部署的许可证类型体现平台从被动托管转向前置风控。责任边界演进路径2022年平台仅保证存储完整性SHA256校验2024年要求上传者签署《AI模型合规承诺书》2025Q2起GitLab已强制启用训练数据溯源图谱生成第四章商用许可失效的7个隐蔽信号实战诊断4.1 模型权重文件中缺失LICENSE声明或版本标识自动化扫描工具正则匹配规则扫描目标与风险定位模型权重文件如 .bin、.safetensors常被直接分发但易遗漏 LICENSE 声明与版本字段导致合规风险。需在 CI/CD 流水线中嵌入轻量级静态扫描。正则匹配核心规则# 匹配常见LICENSE声明片段支持多行注释与JSON元字段 r(?i)(license|copyright|version)\s*[:]\s*[\]([^\])[\]|^\s*#.*?(license|copyright|v\d\.\d)该正则兼顾 Python 注释、JSON 字段及 YAML 键值支持跨行捕获re.MULTILINE | re.DOTALL标志确保匹配换行符与多行内容。扫描结果示例文件路径匹配状态建议动作model.safetensors❌ 未匹配插入{license: Apache-2.0, version: 1.2.0}元数据config.json✅ 已匹配验证 license URL 可访问性4.2 Hugging Face Model Card中许可声明与实际代码库LICENSE文件不一致Diff比对与CI/CD拦截方案许可一致性校验必要性Model Card 中的license字段常被人工填写易与根目录LICENSE文件内容脱节导致合规风险。自动化 Diff 检测脚本# validate_license_consistency.py import re from pathlib import Path def extract_license_from_card(card_path): with open(card_path) as f: content f.read() match re.search(rlicense:\s*[\]?(\w), content) return match.group(1).lower() if match else None def extract_license_from_file(license_path): if not license_path.exists(): return None first_line Path(license_path).read_text().split(\n)[0].strip() return re.sub(r^(MIT|Apache-2\.0|GPL-3\.0|BSD-3-Clause).*, r\1, first_line, flagsre.I) # 脚本逻辑提取并比对两个来源的许可证标识符忽略大小写与空格差异。该脚本通过正则从 YAML 和纯文本中提取标准化许可标识如mit、apache-2.0支持常见开源协议归一化匹配。CI/CD 拦截策略在 PR 触发阶段运行校验脚本失败时阻断合并并输出差异详情至 GitHub Checks API典型不一致场景对比Model Card licenseLICENSE 文件首行校验结果apache-2.0Apache License, Version 2.0✅ 通过MITMIT License (c) 2023✅ 通过bsdGNU GPL v3❌ 拦截4.3 推理服务日志中出现上游模型作者的版权声明变更通知监听GitHub Release Notes的Webhook配置Webhook事件过滤逻辑仅响应release事件中的published动作并校验body是否包含关键词copyright或licenseif event release and action published: if re.search(r(copyright|license), release_body, re.I): log_copyright_notice(release_body)该逻辑避免误触发预发布prereleased或草稿版本确保仅对正式发布的法律条款变更做出响应。通知路由配置表字段值说明Content-Typeapplication/jsonGitHub Webhook 标准请求头X-Hub-Signature-256SHA256 HMAC用于验证 payload 来源真实性日志注入策略在推理服务启动时注册CopyrightNoticeHandler中间件将变更摘要以WARN级别写入结构化日志含repo、tag、notice_hash字段4.4 用户协议中未明确披露模型许可限制导致GDPR/CCPA合规风险用户数据处理条款嵌套审查模板核心合规断点当用户协议将模型许可条款隐含于第三方AI服务条款中而未在数据处理目的、共享范围、存储期限等关键字段中显式声明即构成GDPR第13条与CCPA §1798.100(b)下的“透明度失效”。嵌套审查模板片段# user_terms_v2.yaml —— 必须独立声明的字段 data_processing_purposes: - purpose: fine-tuning LLMs licensed_under: Apache-2.0 # ← 模型许可证类型必须显式标注 third_party_sharing: true retention_period_months: 6该YAML结构强制将模型许可约束与数据用途绑定避免因LLM厂商许可禁止商用微调却未向用户披露而触发“未经同意的数据再利用”违规。风险映射对照表协议条款位置GDPR违规项CCPA处罚触发点“服务条款”第5.2款未链接模型许可证Art. 13(1)(c)§1798.140(o)(1)(D)隐私政策中缺失训练数据排除声明Recital 63§1798.100(a)(2)第五章开源模型商用许可解析开源大模型的商用许可并非“免费即自由”其法律边界常被开发者低估。Llama 3 的 Meta Community License 明确禁止将模型用于训练竞品而 Mixtral 8x7B 的 Apache 2.0 许可则允许商用与再分发——但需保留 NOTICE 文件并明确标注修改。Stable Diffusion XLSDXL采用 Creative Commons Attribution 4.0 InternationalCC BY 4.0允许商用但必须署名 Stability AI并注明是否修改过模型权重Hugging Face 上多数模型采用 MIT 或 Apache 2.0但部分如 Qwen-2.5-7B-Instruct 实际附带《Qwen License》额外限制“不得用于生成违法/歧视性内容”以下为典型许可条款兼容性检查脚本片段Python# 检查模型许可证是否允许商用及衍生模型分发 def validate_license(license_name: str) - dict: # 来源SPDX License List v3.22 Hugging Face model card schema rules { apache-2.0: {commercial_use: True, modify: True, sublicense: True}, mit: {commercial_use: True, modify: True, sublicense: False}, # MIT 不显式授予 sublicense 权 cc-by-4.0: {commercial_use: True, modify: True, attribution_required: True} } return rules.get(license_name.lower(), {error: unknown license})模型名称许可类型允许商用需署名可闭源集成Gemma 2 (Google)Terms of Use非 SPDX✓✓显式要求✗需向 Google 报备部署场景Phi-3-miniMIT✓✓✓→ 获取模型卡 → 解析 LICENSE / NOTICE 文件 → 校验 SPDX ID → 对照企业合规策略 → 输出许可风险矩阵

相关新闻

【数据结构与算法 | 第五篇】力扣303,304前缀和数组

【数据结构与算法 | 第五篇】力扣303,304前缀和数组

力扣 303. 区域和检索 - 数组不可变。 用法本质: 就是新创建一个数组,大小多1.然后数组的值是原数组与前面的和.这样用新数组-前面数组就行了. class NumArray {// 前缀和数组private int[] preSum;// 输入一个数组,构造前缀和public NumArray(int[] nums) {// p…

2026/10/14 14:26:49 阅读更多 →
煤炭稳产背景下井下线缆故障定位技术 鼎讯 DJY-1 实践

煤炭稳产背景下井下线缆故障定位技术 鼎讯 DJY-1 实践

Ⅰ. 矿井低阻接地故障阻碍煤炭稳定生产煤炭作为基础能源,井下采掘、通风排水及洗煤厂生产均依赖电力电缆稳定运行。井下落石冲击、机械剐蹭、高湿环境易造成电缆隐性破损,设备长期带载运行后,导体与屏蔽层易发生熔接,形成 0-10Ω …

2026/10/10 18:40:04 阅读更多 →
【效率革命】哔咔漫画下载器:解决漫画收藏者的批量获取与管理难题

【效率革命】哔咔漫画下载器:解决漫画收藏者的批量获取与管理难题

【效率革命】哔咔漫画下载器:解决漫画收藏者的批量获取与管理难题 周五晚上8点,大学生小陈盯着电脑屏幕叹气——刚更新的漫画章节分散在不同页面,手动点击"保存图片"上百次后,文件夹里的图片顺序全乱了。这正是漫画爱好…

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

最新新闻

Vue3图片查看器:鼠标为中心缩放与拖拽实现详解

Vue3图片查看器:鼠标为中心缩放与拖拽实现详解

图片查看功能在后台系统、编辑器、图库工具里太常用了,但很多人做的时候都栽在同一个坑上:缩放是缩了,但中心点永远在左上角,鼠标滚轮一滚,图片直接跑偏;想拖拽吧,又和文字选中等浏览器默认行为…

2026/10/14 14:26:39 阅读更多 →
MyBatis-Plus BaseMapper核心解析与实战应用

MyBatis-Plus BaseMapper核心解析与实战应用

1. 理解MyBatis-Plus中的BaseMapper1.1 什么是BaseMapperBaseMapper是MyBatis-Plus框架提供的一个核心接口&#xff0c;它封装了最基础的CRUD&#xff08;Create, Read, Update, Delete&#xff09;操作方法。当我们在DAO层接口中声明extends BaseMapper<UserEntity>时&a…

2026/10/14 14:26:39 阅读更多 →
从IP102到田间部署:4400张图训练YOLO实现智慧农业害虫检测

从IP102到田间部署:4400张图训练YOLO实现智慧农业害虫检测

做智慧农业项目&#xff0c;真正让人抓狂的往往不是模型训练&#xff0c;而是数据本身。去年我在做一个农作物害虫检测原型时&#xff0c;面临一个很现实的问题&#xff1a;室内测试效果不错的模型&#xff0c;一拿到田间图片就“失忆”。翻遍公开数据集之后&#xff0c;我锁定…

2026/10/14 14:26:39 阅读更多 →
OpenSim外部几何模型导入全攻略:格式、单位与网格处理

OpenSim外部几何模型导入全攻略:格式、单位与网格处理

简介&#xff1a;面向OpenSim生物力学建模用户&#xff0c;这份资源演示在OpenSim 4.1中为腿部模型&#xff08;leg6dof9musc&#xff09;添加外部几何组件的完整方法&#xff0c;解决外骨骼、假肢等辅助设备与肌肉骨骼模型整合的典型问题。压缩包为rar格式&#xff0c;共3个文…

2026/10/14 14:26:39 阅读更多 →
农业害虫检测YOLO数据集:从训练调参到部署的实战指南

农业害虫检测YOLO数据集:从训练调参到部署的实战指南

1. 这个数据集到底解决了什么问题&#xff1a;先聊聊智慧农业的痛点做农业AI这几年&#xff0c;我最大的感触是&#xff1a;真正卡脖子的不是模型&#xff0c;是数据。你去GitHub上翻目标检测的经典数据集&#xff0c;COCO有33万张、VOC有两万张&#xff0c;看着不少&#xff0…

2026/10/14 14:26:39 阅读更多 →
R-CNN系列目标检测算法演进:关键改进与工程实践

R-CNN系列目标检测算法演进:关键改进与工程实践

1. 从R-CNN到Cascade R-CNN&#xff0c;这条技术主线凭什么值得反复研究做目标检测的人&#xff0c;几乎绕不开R-CNN这条家族线。从2014年的R-CNN开始&#xff0c;到Fast R-CNN、Faster R-CNN、Mask R-CNN&#xff0c;再到后来的Cascade R-CNN&#xff0c;这条路基本奠定了两阶…

2026/10/14 14:25:38 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起&#xff1a;它到底想解决什么问题第一次看到"AnyPS5"这个标题&#xff0c;我脑子里冒出来的第一个念头是&#xff1a;这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述&#xff1a;Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师&#xff0c;我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性&#xff0c;实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景&#xff0c;也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间&#xff0c;确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中&#xff0c;这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/14 7:53:34 阅读更多 →