Unsloth 3行代码微调:合成数据质量把控与实战指南
直接正文开始。1. 为什么要用合成数据微调以及为什么是Unsloth做微调这件事最大的成本往往不是机器而是数据。很多人一上来就到处找数据集或者手工标注几百条样本结果发现任务本身太垂直公开数据根本覆盖不到。这时候合成数据几乎是唯一可行的路径让模型自己生成样本再做一遍清洗和格式整理拿去做监督微调。但合成数据的样本量通常不会太小动辄几千条起步如果用传统方式微调显存和训练时间会变成一个很现实的门槛。Unsloth解决的正是这个问题。它在不改变训练结果的前提下对模型的内存布局和计算方式做了大量优化很多人第一次跑完都会惊讶于同样的数据量训练速度能比常规方式快出一截显存占用也能省下不少。这3行代码指的是Unsloth里最核心的调用链from unsloth import FastLanguageModel model, tokenizer FastLanguageModel.from_pretrained(...) model FastLanguageModel.get_peft_model(model, ...)后面再加上训练器的创建和训练循环整个流程就完整了。这篇文章的主角就是这3行代码背后的机制以及把它们落到合成数据微调任务里时你会遇到哪些坑、应该怎么处理。适合看这篇内容的是那些已经跑过几次开源模型推理、但还没系统做过微调的人。你不需要对Transformer内部机制了如指掌但最好知道loss、learning_rate这些基本概念。我会把每个关键选择背后的理由都讲清楚保证你合上文章之后能自己复现一遍完整流程。2. 整体思路拆解Unsloth为什么快合成数据凭什么能训出效果2.1 Unsloth的优化思路和传统微调的区别常规的LoRA微调流程是加载一个基础模型比如7B或更小的1.5B模型把权重冻结插入低秩适配器然后正常走前向和反向传播。这个流程本身没问题但在底层实现上存在大量可优化的空间。Unsloth的做法主要是重新改写了模型的内部结构让关键矩阵在训练过程中保持分块状态再配合奇异值分解等数学技巧降低内存和计算开销。这里讲的不是黑魔法而是实打实的工程优化。它不会神奇地提高模型精度它的价值在于让你以更低的门槛完成同样的训练。很多人在意的指标可能是“加速了多少倍”但实际使用中我觉得更值钱的是“省内存省到能跑更大模型”。这就好比原本你得开卡车拉货Unsloth帮你把货压缩打包小面包车也能跑同一趟了。2.2 合成数据在微调中的定位和价值合成数据不是让你凭空捏造任务。它的核心逻辑是根据你定义好的输入输出规则让一个能力较强的模型批量生成符合该规则的新样本。举个例子我想微调一个模型让它把“描述句子”转成“结构化的情感分析JSON”。我可以先手工写20条高质量示例然后把这些示例喂给生成模型让它照着这个风格再产出一批新的句子。关键是这里的输出不一定来自真实业务环境不追求完整覆盖只需要在格式、语义、难度分布上逼近真实情况即可。合成数据最大的好处是能快速扩量。微调模型即使只是想让它在某个格式的遵循能力上变好通常也需要数百到上千条样本。靠人工写到这个量级成本高且容易疲惫导致质量下降。用生成模型去扩展能在几小时内得到足够规模的数据池。但合成数据也会引入一个隐患噪声和不一致的格式会让训练过程变得不稳定。这一点非常关键后面会详细说明。2.3 3行代码的核心逻辑加载即优化回到Unsloth的3行代码。from unsloth import FastLanguageModel model, tokenizer FastLanguageModel.from_pretrained( model_nameQwen/Qwen2.5-7B-Instruct, max_seq_length2048, load_in_4bitTrue, )第一行代码完成了模型的加载并顺势完成了量化。load_in_4bitTrue表示用4bit精度加载模型这直接让显存占用大幅下降。第二行代码生成LoRA适配器model FastLanguageModel.get_peft_model( model, r16, target_modules[q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj], lora_alpha16, lora_dropout0, )target_modules列出了需要注入LoRA适配器的矩阵名称。为什么是这些模块简单说就是注意力层和FFN层是全模型参数的大头也是微调时最需要“松动”的地方。lora_dropout0是一个很多新手不太理解的选择常规写法都会设个0.05或0.1但Unsloth官方给出的建议和不少实战经验都表明零dropout在LoRA微调场景下往往效果更好因为LoRA本身的低秩结构已经具备正则化效果再加dropout反而扰乱了适配器的学习。第三行代码严格来说不是一行而是后续创建训练器时用到的数据整理步骤model FastLanguageModel.for_training(model)这一步是为了确保模型在训练模式下所有优化都被启用。就这样3行代码把“模型加载、参数准备、训练模式切换”全部做完接下来就可以直接处理数据和训练了。这种极简接口大大缩短了跑通流程的时间。3. 合成数据的关键细节质量比数量重要3.1 合成数据生成时的模板一致性合成数据不是乱生成就能用的。我给一条硬性经验模板一致性决定了你微调的成败。这一条怎么强调都不过分。所谓模板一致性指的是每一条训练数据的输入输出结构必须高度统一。比如你的任务是“从用户评论中提取实体和情感标签”那每一条样本都应该严格符合这种格式输入这家餐厅的宫保鸡丁很好吃但是上菜速度太慢。 输出{entities: [{name: 宫保鸡丁, sentiment: positive}, {name: 上菜速度, sentiment: negative}]}如果训练集里80%都是这种格式20%的样本输出变成了“这道菜很好但服务不行”模型在微调后的推理阶段就会表现得非常不稳定有时候严格按照JSON输出有时候又像普通对话一样说废话。所以拿到合成数据之后第一步不是直接开训而是做一次格式校验。最好写个小脚本把每一条样本的prompt和response都解析一下确认结构完整且无异常字符。这一步可能会筛掉5%到15%的数据是正常损耗不要心疼。3.2 生成数据的Prompt写法用生成模型来造数据时要给生成模型一个清晰的任务说明。我常用的做法是给它看几个 few-shot 示例。请模仿下面的格式生成新的训练样本。 要求1. 保持同样的JSON结构2. 每一条生成不同的场景3. 情感判断要符合常识。 示例1 输入手机屏幕碎了售后还要收钱气死我了。 输出{entities: [{name: 手机屏幕, sentiment: negative}, {name: 售后收费, sentiment: negative}]}这种few-shot方式比直接说“请生成数据集”要可靠得多。因为生成模型对结构的理解几乎完全依赖于示例示例写得好生成结果就稳定。生成合成数据的任务本身建议选择指令遵循能力较强的模型比如Qwen系列的Instruct版本就够用。它不要求你额外微调直接基座模型的默认模式即可。3.3 合成数据的数量与覆盖度控制到底需要多少条合成数据这要视任务复杂度而定。简单的分类或格式化任务300到500条就能看到明显效果。复杂的推理类任务可能需要2000条以上。但请注意盲目扩大数量不一定带来正面效果。我在实验中发现当数据量从500条加到3000条如果新增的数据分布没有明显变化模型效果提升非常有限但训练时间却线性增长了。更致命的是如果新增数据里有大量重复样例模型会开始“背答案”在验证集上表现很好一到真实场景就原形毕露。在生成合成数据的时候要求生成模型“覆盖更多场景”并且将已有样本做一遍去重。最简单的去重方式是对输入文本算哈希或者使用文本相似度匹配把相似度太高的样本直接剔除。这样做之后同等数量下训练效果会更好。4. 实操实录用Unsloth以3行代码为骨架跑通整个微调流程4.1 环境准备与依赖安装实操开始。环境方面建议使用Linux系统显卡显存最好不少于8GB。即使这样做我仍然建议使用4bit量化加载为可能的梯度占用预留空间。如果你的显卡显存只有6GB也可以跑但最大序列长度和batch size都要调小。安装Unsloth的方式很简单pip install unsloth如果遇到依赖冲突建议用conda建一个干净环境Python版本3.10以上。4.2 数据准备把合成数据组装成Alpaca格式无论你原来生成的数据结构是什么进入微调流程之前最好统一转换成类似这样的三列表格结构instruction、input、output。instruction是任务指令例如“提取输入中的实体和对应情感”。input是输入内容本身。output是期望模型输出的JSON。考虑到Unsloth与Hugging Face生态兼容我们采用Hugging Face的Dataset类来组织数据。from datasets import Dataset data [ {instruction: 从输入中提取实体和情感。, input: 这家餐厅的宫保鸡丁很好吃但是上菜速度太慢。, output: {entities: [{name: 宫保鸡丁, sentiment: positive}, {name: 上菜速度, sentiment: negative}]}}, # 这里就是你整理好的几百条合成数据 ] dataset Dataset.from_list(data)4.3 定义prompt模板整个微调中最容易出错的地方是对齐prompt模板。Qwen系列对对话格式有固定要求通常要用ChatML格式包含系统、用户、助手三个角色。我们需要在instruction和input前加上对话模板前缀。def format_prompt(example): messages [ {role: system, content: 你是一个数据标注助手严格按照说明输出JSON。}, {role: user, content: f{example[instruction]}\n{example[input]}}, {role: assistant, content: example[output]}, ] text tokenizer.apply_chat_template(messages, tokenizeFalse, add_generation_promptFalse) return {text: text}注意tokenizer.apply_chat_template是Hugging Face当前推荐的做法。不要自己手动拼接special token因为不同模型的模板风格并不一致一旦拼错训练时模型根本学不到正确的对话结构。4.4 加载模型并注入LoRA3行代码之一现在进入核心环节。先加载模型和分词器这里我选用Qwen/Qwen2.5-3B-Instruct作为基座模型原因是它在效果和资源占用之间取得了不错的平衡。from unsloth import FastLanguageModel model, tokenizer FastLanguageModel.from_pretrained( model_nameQwen/Qwen2.5-3B-Instruct, max_seq_length2048, load_in_4bitTrue, )这个步骤里max_seq_length不是越大越好。它直接决定了显存占用和训练速度。如果你的数据最长只有512个token那设置成1024就够了。设置过大的序列长度不仅浪费显存还可能因为padding过多导致训练效率下降。4.5 注入LoRA适配器3行代码之二接着调用get_peft_model。这步会为模型插入低秩适配器这也是LoRA微调的核心。model FastLanguageModel.get_peft_model( model, r16, lora_alpha16, lora_dropout0, target_modules[q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj], use_gradient_checkpointingunsloth, random_state3407, )use_gradient_checkpointingunsloth是另一个省显存的关键。启用之后前向传播过程中不保存所有激活值而是保存少量必要信息在反向传播时重新计算。这会让训练速度略微下降但能大幅减少显存占用。如果你的显存比较紧张务必开启如果显存充足也可以关掉换取更快的速度。r16是LoRA矩阵的秩。秩越大适配器学的参数越多模型调整能力越强但显存和过拟合风险也随之上升。对于常规任务r8到r16是比较稳的区间。lora_alpha则是LoRA缩放因子控制适配器对原模型的影响幅度。通常建议lora_alpha16配合r16即1:1的比例。它更重要的意义是作为学习率预算的调节器一般来说lora_alpha/r越大模型被微调的影响越明显。4.6 创建训练器3行代码之三前两行代码处理完了模型接下来第三行是训练器配置。在最新版本的Unsloth中训练器的使用方式和Hugging Face的SFTTrainer高度相似from trl import SFTTrainer from transformers import TrainingArguments from unsloth import is_bfloat16_supported trainer SFTTrainer( modelmodel, tokenizertokenizer, train_datasetdataset, dataset_text_fieldtext, max_seq_length2048, dataset_num_proc2, argsTrainingArguments( per_device_train_batch_size2, gradient_accumulation_steps4, warmup_ratio0.05, num_train_epochs3, learning_rate2e-4, fp16not is_bfloat16_supported(), bf16is_bfloat16_supported(), logging_steps1, optimadamw_8bit, weight_decay0.0, lr_scheduler_typelinear, seed3407, output_dirunsloth_finetune_output, report_tonone, save_strategyepoch, ), )per_device_train_batch_size和gradient_accumulation_steps合起来决定有效batch size。比如batch size为2梯度累积4步那有效batch size就是8。这个值影响训练的稳定性和收敛速度。有效batch size越小训练梯度噪声越大越容易发散有效batch size太大又容易让模型收敛到不够泛化的区域。learning_rate2e-4是LoRA训练常见的起点。如果是全量微调这个学习率通常太大但LoRA因为只训练少量参数可以用更高的学习率。实测下来1e-4到3e-4之间是甜点区。optimadamw_8bit是Unsloth默认推荐通过8bit优化器状态进一步降低显存占用。fp16/bf16的选择取决于硬件新的显卡建议用bf16数值稳定性更好老显卡则用fp16。4.7 启动训练与评估trainer_stats trainer.train()训练开始之后你可以观察loss曲线。如果loss在稳步下降说明训练过程正常。如果loss一开始就剧烈震荡大概率是学习率过高或数据格式乱。如果loss下降缓慢但最终收敛到比较低的值通常问题不大。训练结束后保存本地模型和合并权重model.save_pretrained(lora_model) tokenizer.save_pretrained(lora_model)如果你想把LoRA适配器合并回原模型生成一个完整的模型文件可以调用model model.merge_and_unload() model.save_pretrained(merged_model)这样之后加载merged_model就不需要再额外应用LoRA配置了部署起来更省心。5. 常见问题与排查技巧实录5.1 显存溢出OOMOOM是微调第一天就会遇到的坎。如果你是8GB显存的显卡训练3B模型并开启4bit量化之后仍然可能出现OOM。这时候优先检查两点一是max_seq_length是否设得过大二是per_device_train_batch_size是否超过2。还有一个不易察觉的原因如果训练数据里存在异常长的样本触发了显存尖峰单纯调小batch size也解决不了需要把数据按长度排序并做截断处理。我的建议是把max_seq_length设成比数据最大长度略大一点的值而不是一个“看起来很大”的值。你可以先对数据做一次token长度统计看看分布情况再设定。5.2 训练loss下降但推理效果差训练loss很漂亮测试效果拉胯这几乎是合成数据微调最经典的翻车场景。原因无非三种数据有泄露提示比如output里包含了残缺的输入片段模型直接背下来了。合成数据多样性不足模型只学到了几个固定套路。基座模型本身太小比如1.5B以下学不动复杂的结构化任务。针对第2点建议在生成合成数据时显式增加“负面样本”和“边界样本”也就是包含不符合预期输入的样本让模型学会守规矩而不是只看到规则内的样本。5.3 训练速度特别慢Unsloth已经做了不少优化但仍然有办法进一步提速。开启torch.compile通常能带来明显收益model FastLanguageModel.for_training(model, torch_compileTrue)需要说明的是torch.compile对模型进行编译优化首次运行会有较长的预热时间之后每个step会更快。如果你跑不到几十个step的小实验不建议开预热时间反而拖慢整体。另外数据侧的预处理也有影响。dataset_num_proc控制并行处理数据线程数调高一点可以减少数据准备阶段的等待。5.4 训练完后不会用Chat格式对话很多人把LoRA模型保存下来加载之后却发现模型输出变成了“规则式的文本”完全没有对话感。这是因为你微调过程中不仅用到了结构化指令还可能把整个人设对话都训练偏了。解决办法是在训练数据里适当混入一些正常对话样本比较推荐的比例是90%任务样本加10%通用对话样本。这能让模型保持在对话模式的同时学到你的任务逻辑。注意微调不是把模型饿变成一个只会输出JSON的机器。如果所有训练样本都是“输入直接对应JSON输出”模型会逐渐丢掉自然语言能力。哪怕只在训练数据里加几十条普通对话对保底效果都有明显帮助。6. 一些关于评估与落地的补充经验6.1 不要只看一个验证指标合成数据微调的过程中一定要预留一部分未参与训练的数据作为验证集。不要把全部数据都投进训练集。否则你无法判断模型是真的学到了泛化能力还是仅仅记住了训练样本。验证方法可以很简单挑10个与训练集不同场景的输入逐个喂给微调后的模型人工检查输出格式和语义是否正确。如果这10个测试样本全部符合预期基本可以判定模型学到了任务逻辑。6.2 基座模型的选择建议我建议优先尝试Qwen2.5-1.5B和Qwen2.5-3B这两个尺寸。它们在指令遵循和中文能力上表现稳定且资源消耗相对友好。1.5B模型适合demo验证3B适合正式落地。如果业务场景效果仍然不够再考虑7B或更大模型但显存和推理延迟成本都会上升。选定一个模型后不要频繁更换基座模型因为不同基座模型的对话模板、tokenizer行为不完全一致每次更换都会增加一轮数据验证成本。7. 收尾想说的几句话Unsloth这3行代码的价值不在于省掉了很多模板化代码而是把微调这件事从“系统工程”拉低到“普通脚本”的量级。但再好的工具也补不了数据的坑。合成数据微调真正考验人的地方是对数据格式、覆盖度和质量校验的把控。从我实操的情况来看合成数据微调80%的时间都花在数据准备上真正跑训练其实反而是最轻松的一步。如果你浮现出“3行代码就能跑通看起来好简单”的想法我建议你按这个流程走过一遍你会发现让你反复折腾的往往与代码无关而是那些不听话的JSON、跨行的文本、以及突然多出来的空格。最后分享一个小技巧在生成合成数据时固定随机种子确保每次生成的数据保持一致。这样后续如果模型效果出了问题你可以回溯到底是数据问题还是训练问题。小事但能省下大量排查时间。

相关新闻

掉地面包背后:烘焙食安全链条拆解与门店现场管理落地

掉地面包背后:烘焙食安全链条拆解与门店现场管理落地

一家开了五年的连锁面包店,因为一段“员工把掉在地上的面包捡起来放回货架”的视频,一夜之间登上热搜,总部电话被打爆,门店营业额当周腰斩。这类事这几年并不少见,每次出现都会让整个烘焙行业跟着紧张一次。你可能会觉…

2026/10/12 5:47:24 阅读更多 →
C语言联合体与枚举:从内存利用到类型安全的实战指南

C语言联合体与枚举:从内存利用到类型安全的实战指南

写之前先说实话,这个标题我一开始真以为是个什么网红食谱,结果点进去才发现是个C语言的自定义类型话题。“嘎嘎滴辣虾”这个开场相当有迷惑性,但顺着这个味儿,今天这篇就想跟大伙儿聊聊联合体(union)和枚举…

2026/10/12 5:47:24 阅读更多 →
C++肉鸽游戏开发:随机地图生成与回合制AI实战解析

C++肉鸽游戏开发:随机地图生成与回合制AI实战解析

简介:由C与EasyX图形库实现的肉鸽游戏Slime-Hunter,是作者22级技科专业课程设计作品。游戏内含角色控制、敌人攻击动画与基础关卡机制,虽为中期版本,但核心玩法已具备完整雏形,适合正在学习C游戏开发的初学者参考。资源…

2026/10/12 5:46:23 阅读更多 →

最新新闻

知识工作插件实战指南:选型逻辑、配置思路与工作流搭建

知识工作插件实战指南:选型逻辑、配置思路与工作流搭建

我一直觉得,“knowledge-work-plugins”这个组合词,比我们常说的“效率工具”更能概括知识工作者的真实处境。知识工作不是简单的打字和搜索,它的日常是找资料、读文章、提炼观点、组织素材、写稿,再到维护自己的知识库。这一整串…

2026/10/12 6:23:43 阅读更多 →
Spring Boot 3下Spring Security实战:从适配器到过滤器链

Spring Boot 3下Spring Security实战:从适配器到过滤器链

每次看到新项目里有人从网上抄了一段Spring Security配置,然后被各种报错折腾到怀疑人生,我是真的很想拍一拍他的肩膀,说一句:“兄弟,你大概率是把Spring Boot 2时代的写法,硬套到了Spring Boot 3上。”Spr…

2026/10/12 6:23:43 阅读更多 →
Python压缩包自动化处理:zipfile与tarfile办公实战指南

Python压缩包自动化处理:zipfile与tarfile办公实战指南

1. 办公场景下的压缩包处理需求拆解1.1 为什么压缩包操作值得单独拿出来讲日常办公里,压缩包几乎无处不在。财务部门每月要打包发票扫描件发给审计,运营团队要把活动素材整理成压缩包上传到共享盘,开发同学需要把日志文件压缩后归档。这些操作…

2026/10/12 6:23:43 阅读更多 →
自研rea工具:轻量级命令行日志分析,快速串读事件时间线

自研rea工具:轻量级命令行日志分析,快速串读事件时间线

最近接手一个让人头疼的小任务:凌晨收到告警,说资源水位异常,可当天的日志散在四五个文件里,光是把同一批事件的上下文串起来就花了大半夜。痛定思痛之后,我写了一个叫 rea 的小工具,全称 Resource Event A…

2026/10/12 6:23:43 阅读更多 →
TXT重复字查找与清理:Word正则Python实战指南

TXT重复字查找与清理:Word正则Python实战指南

1. 先分清四种“重复”,方案才不会用错前阵子我帮人整理一本网络小说TXT,全文上百万字,里面光是“的的”“了了”这种连续重复字就出现二百多处。用眼睛一行行看,看到凌晨也看不完。后来我写了个小脚本,把连续重复字、…

2026/10/12 6:23:43 阅读更多 →
千问    LeetCode 307.区域和检索 - 数组可修改 Java实现

千问 LeetCode 307.区域和检索 - 数组可修改 Java实现

LeetCode 307 题「区域和检索 - 数组可修改」是一道经典的数据结构设计题,要求实现一个类,支持单点更新和区间求和两种操作。 为什么不能用普通前缀和? 如果使用前缀和数组,sumRange 查询是 O(1),但 update 更新一个元…

2026/10/12 6:22:43 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器: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 阅读更多 →