从零训练64M参数大语言模型:MiniMind单卡2小时全流程实战
1. 为什么我要花时间折腾一个只有 64M 参数的“玩具模型”大语言模型这两年火得一塌糊涂但大多数人的参与方式其实只有两种要么调用云端 API按 token 付费要么下载几十 GB 的开源权重然后发现自己手头那张消费级显卡根本跑不动微调。真正想从零理解“一个语言模型到底是怎么被训练出来的”门槛一直卡在算力和工程复杂度上。MiniMind 这个项目吸引我的地方恰恰是它把这两道门槛同时砍掉了——64M 参数、单卡、2 小时、3 块钱电费就能完整走一遍从数据准备到模型收敛的全流程。先说清楚它是什么。MiniMind 是一个极简的大语言模型训练项目核心模型参数量约 64M0.064B采用类 Llama 的 Decoder-only 架构包含 RMSNorm、RoPE 旋转位置编码、SwiGLU 激活、GQA 分组查询注意力这些现代 LLM 的标准组件。它配套了完整的训练脚本预训练Pretrain、监督微调SFT、以及可选的 LoRA 微调甚至还有蒸馏和 DPO 的简化实现。换句话说你在论文里读到的那些名词在这个项目里都能找到对应的、能跑起来的代码。它能做什么最直接的价值是教学与验证。你可以用它验证自己的数据清洗流程是否合理、学习率调度是否有效、tokenizer 训练是否踩坑也可以把它当成一个“沙盒”在几块钱的成本内反复试错而不是在昂贵的 A100 集群上烧钱。它适合谁我认为有三类人一是想入门 LLM 训练但被工程复杂度劝退的开发者二是需要快速验证想法、不想等大模型训练排队的研究者三是纯粹好奇“模型内部长什么样”的技术爱好者。我自己的动机很朴素调了半年 API始终觉得隔了一层纱。我想知道 loss 曲线是怎么抖的、梯度裁剪到底在什么时刻救命、学习率 warmup 为什么不能省。MiniMind 给了我一个成本低到可以忽略的答案。下面我把整个折腾过程拆开讲包括我踩过的坑和最后总结出的可复现方案。2. 项目整体设计与思路拆解2.1 为什么是 64M 这个“尴尬”的参数量很多人第一反应是64M 也太小了吧能学到什么东西这个问题我一开始也纠结过。后来想明白了参数量选择本质上是一个成本与可解释性的权衡。GPT-2 small 是 124MMiniMind 直接砍到一半目的不是追求效果而是追求“能在单卡上快速迭代”。从计算量看64M 参数的模型单次前向反向的显存占用在 FP16 下大约 1.5GB 左右参数 128MB 梯度 128MB 优化器状态Adam 会翻三倍所以实际约 1GB 上下加上激活值。这意味着什么一张 8GB 显存的消费级卡就能轻松跑起来甚至 6GB 的卡配合梯度累积也能凑合。相比之下7B 模型光是优化器状态就要 56GB 以上完全是另一个世界。更关键的是训练时间。64M 模型在单卡上每秒能处理几千个 token2 小时能跑完几十万到上百万 token 的语料。这个量级虽然不足以让模型“聪明”但足以让它学会基本的语法结构、常见搭配和简单的问答模式。对于验证流程来说这已经足够了。提示不要用 MiniMind 的效果去对标任何商用模型。它的定位是“训练流程的显微镜”不是“生产力工具”。心态摆正收获会大很多。2.2 架构选型为什么照搬 Llama 而不是自创MiniMind 的架构几乎是 Llama 的缩小版这个选择我认为非常聪明。原因有三点。第一生态兼容。Llama 架构已经被 HuggingFace Transformers、vLLM、llama.cpp 等工具广泛支持。你训练出来的权重可以直接用标准工具加载、推理、量化不需要自己写一套解析逻辑。这省下的工程量是巨大的。第二组件成熟。RMSNorm 比 LayerNorm 少一个均值计算训练更稳定RoPE 让位置编码可以外推到更长序列SwiGLU 在同等参数量下通常比 ReLU 效果更好GQA 则是在推理时减少 KV Cache 显存的关键。这些组件都是经过大规模验证的直接拿来用避免了自己设计架构时踩坑。第三教学价值。当你读 Llama 论文时觉得抽象的那些概念在这个项目里都能对应到几十行代码。比如 RoPE 的实现核心就是一个复数旋转操作代码量不到 30 行但理解了它你就理解了为什么现在几乎所有模型都用它。2.3 训练流程的三段式设计MiniMind 把训练拆成三个阶段这个设计值得单独说。预训练阶段用的是大规模无标注文本目标是让模型学会“预测下一个 token”。这个阶段的数据量最大但质量要求相对宽松因为模型只是在学习语言的统计规律。我用的是一份约 1GB 的中文英文混合语料清洗后大概 800MB。监督微调阶段用的是指令-回答对目标是让模型学会“听懂人话”。这个阶段数据量小得多通常几万到几十万条但质量要求极高。一条低质量的指令数据可能比一百条高质量数据破坏性还大。LoRA 微调阶段是可选的用于在特定任务上做轻量适配。它的好处是只训练少量参数显存占用极低适合在预训练模型基础上快速定制。这个三段式设计的好处是职责分离。预训练负责“知识”SFT 负责“对齐”LoRA 负责“定制”。每一段都可以独立调试出问题时容易定位。2.4 成本控制的几个关键决策3 块钱、2 小时这个数字不是噱头背后有几个具体决策支撑。混合精度训练用 FP16 或 BF16 代替 FP32显存减半速度提升约 1.5 倍。BF16 的动态范围更大不容易溢出我实测下来比 FP16 更稳。梯度累积当显存不够时用多个小 batch 累积梯度再更新等效于大 batch。比如 batch_size8、累积 4 次等效于 batch_size32。小词表MiniMind 的 tokenizer 词表通常在 3 万左右比一些大模型的 10 万 小很多。词表小意味着 embedding 层参数少输出层计算量也小。数据精简不追求数据量而是追求数据质量。我用的语料经过去重、过滤后实际训练量控制在合理范围内。这几条加起来才让“3 块钱”成为可能。如果换成 FP32、大词表、海量数据成本立刻翻十倍。3. 核心细节解析与实操要点3.1 环境准备别小看这一步环境配置是第一个坑。我一开始想当然地用了最新版的 PyTorch结果发现某些算子在这个项目里不兼容。后来退回到一个稳定版本才跑通。我的环境清单如下组件版本说明Python3.103.11 也可以但 3.10 兼容性最好PyTorch2.1.x2.0 以上都行注意 CUDA 版本匹配CUDA11.8与 PyTorch 版本对应Transformers4.36用于 tokenizer 和部分工具Datasets2.14数据加载Accelerate0.25可选用于多卡或混合精度安装命令大致是这样pip install torch2.1.2 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install transformers datasets accelerate sentencepiece注意如果你用的是 40 系显卡建议用 CUDA 11.8 以上30 系显卡 CUDA 11.7 也能跑。装完之后务必用torch.cuda.is_available()验证一下别等到训练开始才发现 GPU 没挂上。3.2 数据准备质量比数量重要十倍数据是训练效果的天花板。我一开始图省事直接拿了一份网上随便找的语料结果模型训练到一半 loss 就开始震荡生成的内容也是胡言乱语。后来重新清洗数据效果立刻不一样。我的数据清洗流程是这样的去重用 MinHash 或简单的哈希去重去掉重复段落。重复数据会让模型过拟合到特定模式。过滤长度去掉过短10 字符和过长2048 字符的样本。过短的没信息量过长的会撑爆显存。语言过滤如果只想训练中文模型用语言检测工具过滤掉非中文内容。敏感内容过滤这一步必须做否则模型可能生成不合适的内容。我用的是关键词黑名单加简单分类器。格式统一把所有文本转成纯文本去掉 HTML 标签、特殊符号。清洗完之后我把数据打包成二进制格式比如.bin文件训练时用内存映射加载速度比读 txt 快很多。实操心得数据清洗花的时间通常比训练本身还长。但这一步省不得。我见过太多人抱怨模型效果差最后发现是数据里混了大量噪声。3.3 Tokenizer 训练被低估的关键环节很多人直接用现成的 tokenizer但 MiniMind 建议自己训练一个。原因是通用 tokenizer 的词表可能不适合你的语料导致同样的文本被切成更多 token训练效率降低。训练 tokenizer 用的是 SentencePiece 或 HuggingFace 的 tokenizers 库。核心参数是vocab_size我设的是 32000。这个数字怎么定太小会导致常见词被拆碎太大则 embedding 层参数膨胀。32000 是一个经验值对中文英文混合语料比较合适。训练命令大致如下from tokenizers import Tokenizer, models, trainers tokenizer Tokenizer(models.BPE()) trainer trainers.BpeTrainer(vocab_size32000, special_tokens[unk, s, /s]) tokenizer.train(files[corpus.txt], trainertrainer) tokenizer.save(tokenizer.json)训练完之后一定要检查一下分词效果。我习惯拿几句话测试看看是不是把常用词切得太碎。如果发现“人工智能”被切成“人工”“智能”“”这种说明词表还需要调整。3.4 模型配置几个必须理解的参数MiniMind 的模型配置通常写在一个config.json或 Python 字典里。几个关键参数hidden_size隐藏层维度我设的是 512。这个值决定了模型的“宽度”。num_hidden_layers层数我设的是 8。这个值决定了模型的“深度”。num_attention_heads注意力头数我设的是 8。num_key_value_headsGQA 的 KV 头数我设的是 2。这意味着 8 个查询头共享 2 组 KV推理时 KV Cache 减少到 1/4。intermediate_sizeFFN 中间层维度通常是 hidden_size 的 2.5 到 4 倍我设的是 1408。max_position_embeddings最大序列长度我设的是 512。这个值影响 RoPE 的预计算。这些参数加起来参数量大约就是 64M。你可以用这个公式粗略估算12 * layers * hidden_size^2这是 Transformer 的经验公式实际会有偏差。提示如果你想调整参数量优先调num_hidden_layers和hidden_size。这两个参数对参数量影响最大而且调整后模型能力的变化最明显。4. 实操过程与核心环节实现4.1 预训练从随机权重到“会说话”预训练是整个流程里最耗时的一步但也是最“爽”的一步——你能亲眼看着 loss 从 10 降到 3 左右模型从输出乱码变成能拼出通顺句子。我的预训练配置batch_size 16 gradient_accumulation_steps 4 learning_rate 3e-4 warmup_steps 500 max_steps 20000 weight_decay 0.1 grad_clip 1.0这里有几个参数值得解释。学习率 3e-4这是小模型预训练的常见值。大模型通常用 1e-4 甚至更低因为参数量大、容易震荡。小模型可以用大一点的学习率加速收敛。warmup_steps500前 500 步学习率从 0 线性增加到 3e-4。这个设计是为了避免训练初期梯度爆炸。我试过去掉 warmup结果前几百步 loss 直接飙到 NaN。grad_clip1.0梯度裁剪把梯度范数限制在 1.0 以内。这是防止梯度爆炸的保险丝几乎必开。weight_decay0.1权重衰减防止过拟合。小模型容易过拟合这个值不能省。训练启动命令python train_pretrain.py \ --data_path ./data/pretrain.bin \ --tokenizer_path ./tokenizer.json \ --hidden_size 512 \ --num_hidden_layers 8 \ --batch_size 16 \ --learning_rate 3e-4 \ --max_steps 20000 \ --output_dir ./checkpoints/pretrain训练过程中我习惯用 TensorBoard 或 WandB 监控 loss 曲线。正常的曲线应该是前几百步快速下降然后进入平缓下降阶段偶尔有小幅震荡。如果 loss 突然飙升通常是学习率太大或数据有问题。我实测下来在单张消费级显卡上20000 步大约需要 1.5 到 2 小时。loss 最终能降到 3.0 左右模型能生成简单的通顺句子但逻辑性还很差。4.2 监督微调让模型“听懂人话”预训练完的模型你问它“今天天气怎么样”它可能会回“今天天气怎么样今天天气怎么样”——因为它只学会了续写没学会对话。SFT 阶段就是解决这个问题的。我用了一份约 5 万条的指令数据格式是 JSONL每行一个样本{instruction: 介绍一下人工智能, output: 人工智能是计算机科学的一个分支...}SFT 的配置和预训练略有不同batch_size 8 gradient_accumulation_steps 2 learning_rate 1e-5 warmup_steps 100 max_steps 3000学习率降到 1e-5这是关键。SFT 是在预训练权重上微调学习率太大会把预训练学到的知识“冲掉”这叫灾难性遗忘。我试过用 3e-4 做 SFT结果模型完全忘了怎么说话。步数少SFT 数据量小3000 步通常就够了。跑太多会过拟合表现为模型只会复述训练数据里的回答。SFT 的 loss 计算有个细节通常只对 output 部分计算 lossinstruction 部分 mask 掉。这样模型学的是“给定指令生成回答”而不是“复述指令”。训练完之后模型就能进行简单的多轮对话了。虽然回答质量有限但至少格式是对的。4.3 LoRA 微调低成本定制如果你想在特定任务上优化模型比如让它专门回答某个领域的问题LoRA 是最经济的选择。LoRA 的原理是在原始权重旁边加一个低秩矩阵只训练这个矩阵原始权重冻结。这样可训练参数可能只有原模型的 1% 不到。配置示例lora_rank 8 lora_alpha 16 lora_dropout 0.05 target_modules [q_proj, v_proj]rank8低秩矩阵的秩。越大表达能力越强但参数也越多。8 是一个常用值。alpha16缩放因子通常设为 rank 的两倍。target_modules只对注意力的 Q 和 V 投影加 LoRA。这是经验选择效果和参数量的平衡最好。LoRA 训练显存占用极低我实测 4GB 显存就能跑。训练完后可以把 LoRA 权重合并回原模型也可以单独保存推理时动态加载。4.4 推理测试看看模型到底学了什么训练完之后用推理脚本测试from model import MiniMind from tokenizer import Tokenizer model MiniMind.from_pretrained(./checkpoints/sft) tokenizer Tokenizer.from_file(./tokenizer.json) prompt 你好请介绍一下自己。 inputs tokenizer.encode(prompt, return_tensorspt) outputs model.generate(inputs, max_new_tokens100, temperature0.7) print(tokenizer.decode(outputs[0]))temperature0.7控制生成的随机性。太低会重复太高会胡言乱语。0.7 是一个平衡点。我实测下来64M 模型能生成语法基本正确的短句但知识量有限复杂问题会答非所问。这符合预期——它的价值在于流程验证不在于效果。5. 常见问题与排查技巧实录5.1 Loss 不下降或震荡这是最常见的问题。我遇到过几次原因各不相同。原因一学习率太大。表现是 loss 先降后升或者直接 NaN。解决方法是降低学习率或者增加 warmup 步数。原因二数据有问题。表现是 loss 卡在某个值不动。解决方法是检查数据里是否有大量重复、乱码或空样本。原因三梯度爆炸。表现是 loss 突然飙升。解决方法是开梯度裁剪检查是否有异常大的梯度。原因四batch size 太小。表现是 loss 震荡剧烈。解决方法是增大 batch size 或用梯度累积。我整理了一个速查表现象可能原因解决方法loss 变 NaN学习率太大 / 数据有 NaN降学习率检查数据loss 不降数据质量差 / 模型太小清洗数据增大模型loss 震荡batch 太小 / 学习率大增大 batch降学习率loss 先降后升过拟合加 weight decay早停生成重复temperature 太低提高 temperature生成乱码训练不足 / tokenizer 问题增加步数检查分词5.2 显存不足OOMOOM 是另一个高频问题。我的排查顺序是减小 batch size最直接的方法。开梯度累积等效大 batch但显存占用小。用混合精度FP16 或 BF16显存减半。减小序列长度max_position_embeddings 从 512 降到 256。用 gradient checkpointing用时间换空间显存大幅降低但速度慢 20% 左右。实操心得我习惯先用小 batch 跑通流程确认没问题后再逐步增大。一上来就拉满配置很容易卡在 OOM 上浪费时间。5.3 生成结果重复或胡言乱语这个问题通常和推理参数有关。重复降低 repetition_penalty 或者提高 temperature。我一般设 repetition_penalty1.1。胡言乱语检查模型是否训练不足或者 SFT 数据质量太差。也有可能是 temperature 太高试试降到 0.5。答非所问SFT 数据格式可能有问题。检查 instruction 和 output 是否对应有没有错位。5.4 训练速度慢如果觉得训练太慢可以检查这几点数据加载是否是瓶颈用num_workers多进程加载或者预先把数据打包成二进制。是否开了混合精度FP32 比 FP16 慢一倍以上。GPU 利用率用nvidia-smi看 GPU 利用率如果低于 80%说明有瓶颈。是否频繁保存 checkpoint保存太频繁会拖慢训练我一般每 1000 步存一次。5.5 几个我踩过的坑坑一tokenizer 和模型不匹配。我一开始用了一个 tokenizer训练时又换了另一个结果 token id 对不上模型完全学不会。教训是tokenizer 一旦确定就不要换。坑二数据里有特殊字符。有些语料里混了控制字符导致 tokenizer 报错。解决方法是清洗时过滤掉非打印字符。坑三忘记设随机种子。不设种子的话每次训练结果都不一样没法复现。我习惯在脚本开头设torch.manual_seed(42)。坑四checkpoint 保存路径写错。训练了几小时才发现权重没存下来这种痛我不想再经历第二次。建议训练前先确认输出目录存在且可写。6. 从 3 块钱的模型里我真正学到了什么折腾完这一整套流程我最大的收获不是模型本身而是对 LLM 训练这件事的“祛魅”。以前觉得训练大模型是玄学现在明白它其实就是一堆工程细节的堆叠数据要干净、学习率要合理、梯度要裁剪、显存要管理。每一个环节都有明确的原理和可调参数没有想象中那么神秘。另一个收获是成本意识的建立。当你用 3 块钱跑完一次完整训练你会开始思考哪些步骤是必要的哪些是浪费。这种思考在大规模训练里价值巨大因为一次实验可能就是几千块。如果你也想动手我的建议是先用默认配置跑通一遍感受一下 loss 曲线和生成效果然后逐个调整参数观察变化最后尝试换数据、换任务看看模型的边界在哪里。这个过程比读十篇论文都管用。最后分享一个小技巧训练时把日志同时输出到文件和控制台方便事后复盘。我习惯用tee命令python train_pretrain.py ... 21 | tee train.log这样即使终端关了日志也还在。踩过几次坑之后我现在所有训练脚本都这么写。

相关新闻

SQL注入绕过WAF的常见手法与防御实践

SQL注入绕过WAF的常见手法与防御实践

1. 为什么SQL注入与WAF的对抗一直没停过1.1 标题里的三层含义“SQL注入绕过WAF”这几个字,表面看是一次攻击技术的总结,实际上包含三个层面:SQL注入本身、WAF的检测逻辑、以及两者之间的对抗关系。很多人一看到“绕过”两个字,以为…

2026/10/16 4:50:26 阅读更多 →
性能测试实战指南:从指标设计到瓶颈定位与容量规划

性能测试实战指南:从指标设计到瓶颈定位与容量规划

做性能测试这几年,见过太多项目组把"压测"当成"跑脚本数TPS",结果上线后用户一多就血崩。性能测试从来不是工具操作,也不是出几份花哨报告,它本质上是一场针对系统极限能力的科学实验,是用可控的手…

2026/10/16 4:50:26 阅读更多 →
3块钱2小时从零训练64M参数大语言模型:全流程实操指南

3块钱2小时从零训练64M参数大语言模型:全流程实操指南

1. 项目缘起与核心价值拆解1.1 为什么“3块钱、2小时、64M参数”这三个数字值得认真对待第一次看到“3块钱、2小时、从零训练一个64M参数的大语言模型”这个描述时,我的第一反应是怀疑。在大模型动辄千亿参数、训练成本以百万美元计的当下,一个64M参数的…

2026/10/16 4:50:26 阅读更多 →

最新新闻

OpenPose实战避坑指南:多人姿态估计与骨骼角度计算

OpenPose实战避坑指南:多人姿态估计与骨骼角度计算

/* 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 5:28:35 阅读更多 →
两串电池被动均衡设计:MP2642GR-Z与STM32F302R8实践

两串电池被动均衡设计:MP2642GR-Z与STM32F302R8实践

/* 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 5:28:35 阅读更多 →
双串电池主动均衡系统设计:从硬件电路到固件策略

双串电池主动均衡系统设计:从硬件电路到固件策略

/* 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 5:28:35 阅读更多 →
雨课堂选择题结构化采集与教学题库构建实践

雨课堂选择题结构化采集与教学题库构建实践

/* 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 5:28:35 阅读更多 →
PLC与变频器Modbus RTU通讯实战:S7-200 SMART控制多台TECO N310

PLC与变频器Modbus RTU通讯实战:S7-200 SMART控制多台TECO N310

做设备改造这几年,PLC 和变频器之间的通讯是绕不开的活。前段时间接了一个某生产线的小改造,要求用一台西门子 S7-200 SMART 同时控制三台东元 TECO N310 变频器,远程给定频率、启停,还要把每台电机的运行频率、电流和故障状态实时…

2026/10/16 5:28:35 阅读更多 →
两节串联电池均衡方案:硬件自动均衡芯片与MCU协同实现

两节串联电池均衡方案:硬件自动均衡芯片与MCU协同实现

/* 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 5:27:35 阅读更多 →

日新闻

个人 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 阅读更多 →