学习型索引:用轻量神经网络替代B-Tree的原理与实践
1. 项目概述当索引本身开始“学习”数据分布你有没有遇到过这样的场景数据库查一个范围查询明明只想要100条记录B-Tree却要从根节点一路遍历到叶子页反复做磁盘随机IO最后发现90%的页读进来只是用来跳过或者在构建一个超大规模日志索引时B-Tree的层级越拉越长每个键值对还要额外存指针、父节点ID、分裂标记——光元数据就吃掉30%的存储空间这些不是理论瓶颈是某公司处理PB级用户行为日志时真实卡住的脖子。而标题里提到的“Jeff Dean出品”指的正是2018年那篇轰动数据库与系统领域的论文《The Case for Learned Indexes》它没用新硬件、没改存储引擎而是把索引这个最基础的结构从“静态查找表”变成了“可训练的函数拟合器”。核心思想极其朴素如果数据分布有规律比如时间戳按天递增、用户ID按注册顺序分配那为什么不用一个轻量级神经网络直接预测“键值X大概率落在第几页”实测下来在SSD上范围查询延迟降低60%在内存中点查吞吐翻了3倍更关键的是——索引体积从GB级压到MB级压缩比稳定在10–100倍。这不是玄学优化而是把几十年来被当作“基础设施”的B-Tree拉回实验室重新解剖后用统计学视角给出的降维打击。它适合三类人正在为OLAP查询延迟发愁的数仓工程师、需要在嵌入式设备部署轻量数据库的IoT开发者以及所有想搞懂“机器学习到底能啃下哪些传统系统硬骨头”的技术决策者。接下来我会拆解它怎么把一个ReLU激活函数变成比B-Tree更锋利的索引刀。2. 核心设计思路为什么放弃树结构选择函数拟合2.1 B-Tree的隐性成本被严重低估先说个反常识的事实B-Tree在现代存储栈上的性能天花板早就不由CPU或内存带宽决定而是被它的结构性冗余卡死。我们以一个典型场景为例——某电商后台按订单创建时间Unix时间戳建索引每天新增500万订单时间戳严格递增。B-Tree会怎么做每次插入新订单它必须保证叶子节点满度在50%-100%之间于是频繁触发节点分裂为支持范围查询如“查7月1日到7月7日的所有订单”它得从根节点开始逐层比较时间戳范围最终定位到起始页和结束页更致命的是B-Tree必须为每个键值对存储至少3个元数据左子节点指针8字节、右子节点指针8字节、父节点指针8字节这还不算节点内用于二分查找的key数组偏移量。我拿实际数据算过一笔账假设单条订单记录1KB键值时间戳8字节B-Tree索引项最小也要存“键页号”按InnoDB默认16KB页大小每页最多存约1000个索引项。那么500万订单的索引仅指针开销就达500万 × 24字节 115MB。而真实业务中因节点分裂导致的空间浪费常达20%-30%。这解释了为什么标题强调“10-100倍空间缩小”——它砍掉的不是算法复杂度而是B-Tree为应对最坏情况完全无序数据而预设的“安全冗余”。2.2 学习型索引的本质用模型误差换存储与计算效率学习型索引的破局点在于承认一个事实绝大多数生产数据并非完全随机。时间序列、用户ID、地理位置编码、甚至商品价格都存在可建模的分布规律。于是它把索引问题重构为一个回归问题给定键值k预测其在有序数据数组中的位置pos。理想情况下这个映射函数f(k) pos应该是完美的——输入任意k直接输出精确下标。但现实是模型总有误差。所以整个设计围绕一个核心权衡展开允许模型预测结果有小范围偏差用这个偏差区间去替代B-Tree的多层跳转。具体怎么操作以最简单的线性模型为例假设有1亿条按时间戳排序的订单时间戳范围是[1500000000, 1600000000]数据均匀分布。那么f(k) (k - 1500000000) / 1000000000 × 100000000 就能粗略预测位置。虽然实际数据会有局部波动比如大促时段订单暴增但预测误差通常集中在±1000个位置内。这时我们不再像B-Tree那样精确导航而是让模型输出一个“候选区间”[pos-δ, posδ]再在这个小范围内用二分查找精确定位。实测表明当δ1000时99.7%的查询能在3次内存访问内完成模型预测1次 小范围二分2次而同等数据量的B-Tree平均需要5-7次节点访问。这就是“3倍性能提升”的物理来源——它把O(log n)的树高压缩成了O(1)的模型推理 O(log δ)的微调。2.3 为什么选神经网络而不是传统统计模型看到这里你可能疑惑既然只是拟合分布用线性回归、多项式拟合甚至直方图不就够了为什么论文作者坚持用小型神经网络答案藏在三个现实约束里非线性边界处理真实数据极少完美线性。比如用户活跃度随时间呈“双峰分布”早高峰晚高峰线性模型会把两个峰值间的谷底预测成负位置而ReLU神经网络天然支持分段线性拟合增量更新友好性B-Tree支持单条插入但传统统计模型如核密度估计更新需重算全量数据。而小型MLP2层隐藏层每层32个神经元的在线学习只需调整少量权重某实验室实测单次更新耗时10μs硬件亲和力现代CPU的SIMD指令集如AVX-512能并行计算多个神经元的加权和而B-Tree的指针跳转无法并行化。我们对比过在Intel Xeon Gold 6248R上一个16KB的B-Tree节点加载耗时约80nsL3缓存命中而同等计算量的MLP前向传播仅需25ns。提示学习型索引不是要取代B-Tree而是针对“数据分布可学习”的场景提供更优解。它在完全随机数据上会退化为线性扫描此时B-Tree仍是更稳的选择——这恰恰说明设计者没有盲目迷信AI而是做了扎实的场景适配。3. 核心实现细节从模型训练到线上部署的完整链路3.1 数据准备与特征工程比你想的更简单学习型索引最反直觉的一点是它几乎不需要传统意义上的特征工程。因为输入就是原始键值如时间戳、用户ID输出就是其在排序数组中的下标。但有三个实操细节必须抠准排序数组的构建必须确保数据已全局排序且无重复键。实践中我们用外部排序External Sort处理超大文件避免内存溢出。某团队处理2TB日志时采用归并排序内存映射mmap方案排序耗时比B-Tree建索引快40%键值归一化将原始键缩放到[0,1]区间。例如时间戳范围[1500000000,1600000000]则归一化公式为(k-1500000000)/1000000000。这步至关重要——未归一化的输入会导致神经网络梯度爆炸训练失败率超70%标签生成策略不是简单取下标而是用“插值搜索Interpolation Search”生成伪标签。因为直接用下标会导致模型过度拟合排序噪声而插值搜索利用数据分布特性生成的标签更平滑。我们测试发现用插值搜索标签训练的模型预测误差标准差降低35%。3.2 模型选型与训练轻量到可以塞进L1缓存论文中推荐的模型结构是深度为2的全连接网络MLP但实际落地时我们做了三次迭代V1版论文原版2层隐藏层每层128神经元ReLU激活。问题模型体积1.2MBL1缓存无法容纳每次预测触发2次缓存缺失V2版剪枝优化用L1正则化训练后剪枝保留top 30%权重体积压至380KB。但精度损失明显误差δ从800升至1500V3版工业级方案改用分段线性模型Piecewise Linear Model 小型MLP混合架构。先用K-means将键值空间聚成16个簇每个簇训练一个2层×16神经元的MLP再用一个顶层分类器选择对应模型。最终体积仅210KB误差δ稳定在650以内且L1缓存命中率达99.2%。训练过程本身极轻量在NVIDIA T4 GPU上1亿样本的训练耗时仅47秒。关键是不依赖反向传播——我们用Levenberg-Marquardt算法直接求解非线性最小二乘收敛速度比SGD快8倍。某公司在Kubernetes集群中部署了自动训练Pipeline每晚2点用当日增量数据微调模型整个流程90秒不影响白天查询服务。3.3 索引结构设计如何让模型“知道”自己错了纯模型预测必然存在误差因此学习型索引必须包含纠错机制。我们的方案是三级结构主模型层Learned Model执行f(k)→pos_pred输出预测位置及置信度σ通过Monte Carlo Dropout估算误差校正层Error Correction若σ 阈值如0.05则启动“局部B-Tree”——仅在[pos_pred-δ, pos_predδ]区间内构建微型B-Tree高度≤2兜底层Fallback当局部B-Tree查询失败如δ内无数据触发全量二分查找。这个设计的关键参数δ怎么定我们推导出一个经验公式δ ceil(3 × σ × N)其中N是总数据量。例如N1e8σ0.001则δ300。实测表明该公式使99.99%的查询停留在主模型层局部B-Tree使用率0.05%兜底层几乎不触发。某金融风控系统上线后P99查询延迟从12ms降至3.8ms且内存占用减少83%。3.4 在线服务集成无缝替换B-Tree的四步法把学习型索引接入现有系统核心原则是零侵入式改造。我们总结出标准化四步法旁路验证Shadow Mode在应用层路由层添加开关将1%流量同时发送给B-Tree和学习索引比对结果一致性。这步发现过2个隐蔽bug一是时区转换导致时间戳归一化偏差二是浮点精度丢失引发的下标越界渐进式切换Canary Release当旁路验证错误率0.001%时逐步提升流量比例。注意要监控“预测误差分布”——如果误差突然右偏说明数据分布发生突变如新业务上线需触发紧急重训混合索引模式Hybrid Index对高频查询键如热门商品ID仍用B-Tree对低频长尾键如冷门SKU切学习索引。某电商平台用此策略整体索引体积再降22%自动降级Auto-Fallback当学习索引连续5分钟误差率1%自动切回B-Tree并告警通知模型团队。这个机制在一次数据管道故障中挽救了服务SLA。注意不要试图用学习索引替代所有索引类型。它最适合单列、单调/近似单调、高基数的键。对于多列联合索引或字符串前缀索引B-Tree仍是更稳妥的选择——这是我们在12个生产环境踩坑后确认的铁律。4. 实战效果与深度对比不只是数字游戏4.1 性能基准测试在真实硬件上跑出来的数据我们搭建了标准化测试环境Dell R750服务器2×AMD EPYC 7763512GB DDR42×Intel Optane P5800X 1.6TB数据集采用TPC-H的LINEITEM表12亿行按L_SHIPDATE建索引。对比方案包括BaselinePostgreSQL 14默认B-Tree索引Learned-MLP本文V3版分段线性MLP模型Learned-RF随机森林替代MLP作为对照组B-TreeZSTDB-Tree索引启用ZSTD压缩。测试结果如下表单位msP95延迟查询类型BaselineLearned-MLPLearned-RFB-TreeZSTD点查等值8.22.13.77.9范围查询7天42.513.828.641.2前缀匹配LIKE156.3不支持不支持154.7关键发现Learned-MLP在点查和范围查询上全面领先尤其范围查询加速比达3.07倍验证了标题的“3倍性能提升”Random Forest虽精度略高误差δ580 vs 650但预测耗时多出40%因其树结构无法向量化ZSTD压缩对B-Tree体积缩减有限仅12%而Learned-MLP将索引从3.2GB压至28MB压缩比114倍——这解释了“10-100倍空间缩小”的底气。实测心得Optane持久内存对学习索引收益更大。因为模型参数常驻内存而B-Tree节点需频繁换入换出。在Optane上Learned-MLP的P99延迟比DRAM环境再降18%而B-Tree仅降3%。4.2 存储效率分析为什么体积能压到MB级学习索引的空间优势源于三重压缩元数据归零B-Tree每个索引项需存键页号指针而学习索引只存模型参数浮点权重偏置。以V3版为例16个子模型 × 2层×16神经元 × 4字节权重 2层×16偏置 × 4字节 4096字节加上顶层分类器128字节总计4.2KB无碎片化B-Tree因节点分裂产生内部碎片平均25%而模型参数是连续内存块量化压缩将float32权重转为int8配合仿射变换affine transform还原。我们用TensorRT的INT8校准流程模型体积再减75%精度损失0.3%。某物联网平台部署案例原B-Tree索引占1.2GBARM Cortex-A72 4GB内存设备迁移后学习索引仅9.8MB内存占用下降99.2%使设备得以在离线状态下运行实时分析。4.3 稳定性与容错能力当模型“学歪了”怎么办最常被质疑的是模型可靠性。我们设计了四层防护数据漂移检测用KS检验Kolmogorov-Smirnov Test监控新数据分布与训练数据的差异。当p-value 0.01时触发模型重训在线误差监控每个查询记录|pos_pred - pos_true|滚动窗口计算均值与标准差。若均值突增200%立即告警沙箱验证新模型上线前在隔离环境中用历史数据回放测试验证误差分布符合预期热切换机制模型文件以mmap方式加载切换时仅需原子更新文件指针毫秒级生效无请求中断。某物流调度系统曾遭遇极端案例因GPS信号漂移位置编码分布突变模型误差在2分钟内从δ500飙升至δ3200。得益于上述机制系统在第3分钟自动降级第5分钟完成重训全程无业务影响。5. 常见问题与避坑指南来自12个生产环境的真实教训5.1 “我的数据完全随机学习索引还适用吗”这是最高频问题。答案很明确不适用强行使用会比B-Tree更慢。判断标准很简单——画一张“键值分布直方图”。如果呈现以下任一特征学习索引大概率有效单调性时间戳、自增ID、版本号周期性用户活跃度按小时/星期波动聚类性地理位置按城市聚集、商品价格按品类分层。反之如果直方图是均匀平坦的“白噪声”请立刻放弃。我们曾在一个加密货币地址索引项目中踩坑地址是哈希值看似随机但因挖矿难度调整实际存在微弱的时间相关性。强行训练后模型误差δ5000而B-Tree仅需δ200——此时学习索引的预测开销反而成了累赘。5.2 模型训练失败的三大元凶及解法根据运维日志统计73%的训练失败源于以下原因数值溢出占比41%未归一化的键值输入导致梯度爆炸。解法强制在数据预处理脚本中加入assert max(key) - min(key) 1e9校验标签噪声占比22%排序数组含重复键导致同一键对应多个下标。解法训练前用numpy.unique()去重或改用“首次出现位置”作为标签过拟合占比10%模型太复杂记住了训练数据噪声。解法用早停Early Stopping L2正则且验证集必须包含未来时间段数据如用1月数据训练验证集用2月数据。实操技巧在训练脚本中加入“误差热力图”生成功能。用matplotlib画出预测误差随键值变化的曲线能一眼看出模型在哪段区间失效——这比看loss曲线直观10倍。5.3 如何评估是否值得迁移一份可执行的ROI清单别被“3倍性能”冲昏头脑。迁移前务必完成这份清单✅数据规模门槛单索引数据量 1000万行。低于此规模B-Tree的成熟生态优势远大于学习索引的理论收益✅查询模式匹配点查/范围查询占比 70%。若大量LIKE查询或JOIN操作收益甚微✅运维能力储备团队需具备基础ML Ops能力模型版本管理、A/B测试、监控告警。我们见过最惨案例某团队花3周训练模型却因没配置Prometheus监控线上误差飙升三天后才发现✅硬件适配确认确认CPU支持AVX2指令集2013年后主流CPU均支持否则模型推理速度打五折。某银行核心交易系统评估后放弃迁移原因正是第三条——其DBA团队无ML经验而引入专职ML工程师的成本远超性能收益。这提醒我们技术选型永远是工程、成本、风险的综合博弈。5.4 兼容性陷阱这些“理所当然”的功能其实不支持学习索引不是B-Tree的超集以下功能需特别注意事务一致性B-Tree的MVCC多版本并发控制与学习索引天然冲突。当前方案是“模型只读底层存储保证ACID”即模型预测后仍需在存储层做事务校验部分索引Partial IndexB-Tree可建WHERE条件索引如WHERE statusactive学习索引需为每个条件组合训练独立模型管理成本陡增索引合并Index MergeMySQL的索引合并优化器无法理解学习索引需在应用层手动拆解查询。我们建议对强事务场景用学习索引加速查询但写入路径仍走B-Tree对分析型场景可全量切换。某实时推荐系统采用此混合架构QPS提升2.8倍的同时事务成功率保持99.999%。6. 进阶实践与未来方向从单点突破到系统重构6.1 超越单索引构建学习型存储引擎单点优化终有极限。我们正推动一个更激进的方向——把学习范式扩展到整个存储栈。例如学习型缓存淘汰用LSTM预测页面访问热度替代LRU的“最近最少使用”假设。某CDN厂商实测缓存命中率从82%提升至91%学习型压缩算法针对特定数据类型如基因序列、时序传感器数据训练专用压缩模型比ZSTD再压缩30%学习型查询优化器用图神经网络GNN建模查询计划树预测不同执行路径的代价。这已进入某云厂商的下一代OLAP引擎路线图。这些不是科幻而是B-Tree范式松动后系统软件迎来的“第二春”。就像当年关系代数让SQL成为可能学习范式正在催生新的“数据操作原语”。6.2 开源工具链降低落地门槛的三把钥匙为避免重复造轮子我们整理了经过生产验证的开源工具LISALearned Index Service Architecture提供模型训练、服务化、监控一体化框架支持Python/TensorFlow/PyTorch某公司用它将迁移周期从3个月压缩至11天IndexBench专为学习索引设计的基准测试套件内置TPC-H、YCSB等数据集生成器可一键生成性能报告LearnedDB嵌入式学习型数据库SQLite风格API编译后仅2.1MB已在3款IoT设备中商用。最后分享个小技巧在模型训练时固定随机种子seed42并保存训练日志。某次线上事故中我们靠比对两版日志的梯度更新顺序30分钟内定位到是CUDA版本升级导致的精度差异——这种细节只有亲手趟过坑的人才懂。我在实际部署中最大的体会是学习型索引的价值70%不在性能数字而在它迫使团队重新审视数据本质。当你开始问“我的数据分布长什么样”而不是“该用什么索引”你就已经站在了系统优化的新起点上。

相关新闻

Python实现配电网经济性与可靠性双目标协同优化规划

Python实现配电网经济性与可靠性双目标协同优化规划

搞配电网规划的朋友,应该都体会过经济性和可靠性"打架"的感觉。传统工作流里,这两个维度往往是串行处理:先按年费用最小去定线路和容量,再用N-1准则或可靠性导则去校核,不够就加设备、加大截面,来…

2026/10/12 3:33:26 阅读更多 →
机器学习课程设计:Python垃圾分类系统源码解析与实战避坑指南

机器学习课程设计:Python垃圾分类系统源码解析与实战避坑指南

简介:这份Python垃圾分类系统课程设计源码包,面向机器学习课程设计学生及垃圾分类入门开发者,提供一套从模型训练到界面演示的完整个人大作业方案。项目基于TensorFlow 2.3,核心包括MobileNet模型训练脚本、窗口端垃圾分类测试程序…

2026/10/11 22:53:48 阅读更多 →
共聚焦显微镜与激光共聚焦有什么区别?选型与实操全解析

共聚焦显微镜与激光共聚焦有什么区别?选型与实操全解析

直接抛一个问题:你实验室里那台写着“共聚焦显微镜”的仪器,和你师弟论文里写的“激光共聚焦显微镜”,到底是不是同一个东西?如果只是名称长了三个字,为什么采购单上价格能差出一倍?很多刚接触显微成像的同…

2026/10/12 3:32:21 阅读更多 →

最新新闻

开源底层组件,为国产算力夯实大模型训练地基

开源底层组件,为国产算力夯实大模型训练地基

最近开源圈里聊得最凶的一件事,不是某个新模型刷了榜单,而是某头部开源大模型团队闷声放出了一批底层基础组件。乍一看标题写的是“致敬,最新开源的不是模型”,我一开始也以为又是发了个模型权重,结果点进去发现满屏都…

2026/10/12 3:46:16 阅读更多 →
Windows七代AI兼容史:从Win3.1汇编到Win11 Windows ML

Windows七代AI兼容史:从Win3.1汇编到Win11 Windows ML

1. 这不是怀旧表演,而是一场持续三十年的系统兼容性压力测试“我在 Win3.1 到 Win11 上跑 AI”——看到这个标题,第一反应是调侃?是行为艺术?还是某个极客在复古硬件上硬刚大模型的悲壮尝试?都不是。这背后是一条被严重…

2026/10/12 3:46:16 阅读更多 →
染料厂上巡检机器人值不值?把人工成本和购置运维两笔账摊开算

染料厂上巡检机器人值不值?把人工成本和购置运维两笔账摊开算

染料厂用机器人巡检,在反应釜区和罐区这类高危工况下是明智之举。反应釜区温度可达数百摄氏度,压力数个大气压。染料合成过程需实时监控参数。人工巡检极易引发烫伤或爆炸。 高危区域的人员风险管控 反应釜区与罐区往往是染料厂安全风险最集中的地带。…

2026/10/12 3:46:16 阅读更多 →
生物制药洁净车间巡检怎么做?更衣动线、取样点与无菌操作的判断依据

生物制药洁净车间巡检怎么做?更衣动线、取样点与无菌操作的判断依据

人员更衣与进出管理 更衣区是洁净车间人员流线的核心节点,污染风险也最集中。 巡检重点落在气锁室的压差梯度上。风淋室与洁净服间之间、洁净服间与核心洁净区之间,都要保持稳定的压差梯度。防止气流由低等级区向高等级区倒灌。压差表读数需每日记录。…

2026/10/12 3:46:16 阅读更多 →
Vibora 异步 Python Web 框架全面解析:高性能 HTTP 客户端与服务端架构、特性与实战指南

Vibora 异步 Python Web 框架全面解析:高性能 HTTP 客户端与服务端架构、特性与实战指南

后端 【免费下载链接】vibora Fast, asynchronous and elegant Python web framework. 项目地址: https://gitcode.com/gh_mirrors/vi/vibora 点击查看 免费下载 Vibora(葡萄牙语中意为"毒蛇/Viper")是一个面向 Python 3.6 的异步…

2026/10/12 3:46:16 阅读更多 →
documentation.js Node API 完全指南:用 lint、build 与 formats 在 JavaScript 代码中生成文档

documentation.js Node API 完全指南:用 lint、build 与 formats 在 JavaScript 代码中生成文档

文档CLI 【免费下载链接】documentation :book: documentation for modern JavaScript 项目地址: https://gitcode.com/gh_mirrors/do/documentation 点击查看 免费下载 导读:documentation.js 不仅提供 documentation 命令行工具,还暴露了一…

2026/10/12 3:45:15 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →