这个系列写到现在前面几篇聊的都是模型架构、训练流程、参数量这些“看得见摸得着”的东西但我后台收到最多的一个问题反而特别朴素不做数据能做深度学习吗乍一听这问题有点反常识毕竟所有人都说“数据是燃料”没燃料车怎么跑但问的人多了我就发现大家真正想问的是另一件事我没有几十万条标注数据也没有预算去外包清洗现在大模型这么火我到底能不能蹭上这波深度学习的红利这期就把这件事彻底聊透。我会先拆清楚“数据”在深度学习里的真实角色再讲清楚为什么近两年大模型时代出现了一个微妙的转折——你完全可以不做传统意义上的数据处理照样把深度学习用起来。三条路、一个真实项目复盘、一份避坑清单全部给你。1. 先把问题拆清楚深度学习里的“数据”到底指什么很多争论到最后发现是定义打架。说“深度学习必须有数据”的人和说“我不用数据也能跑”的人说的可能根本不是同一件事。所以第一步我们把概念拆开。1.1 没有数据的深度学习本质上是个伪命题从算法原理上讲深度学习的所有能力都来自于从数据中提取统计规律。神经网络里有成千上万个参数训练的过程就是不断调整这些参数让模型在给定输入时输出我们想要的答案。凭什么调整凭的是数据和标签之间的对应关系更直白一点凭的是损失函数算出来的梯度。没有数据就没有损失没有损失就没有梯度没有梯度参数就永远停在随机初始化的状态。这一步一旦断了后面全是空的。所以如果有人跟你说他“完全不用数据做深度学习”要么他是把深度学习的定义偷换成别的东西了要么就是有一套我没见过的外星技术。但注意我特意说的是“传统意义上的训练”。因为过去五年里深度学习的实践方式发生了很大的变化传统训练只是众多路径中的一条。1.2 大多数人说的“不用数据”其实是“不用自己准备数据”这个区分特别重要。我们平时说的“做深度学习”其实可以拆成三个环节你仔细品一下环节数据角色数据来源预训练模型学习通用知识互联网海量文本/图片别人已经做好了微调/适配模型学习你的业务逻辑你的业务数据通常需要自己整理推理/使用输入待处理内容运行时现场给不是训练数据绝大多数人口中的“我没数据”是说“我没有第三个环节之外的数据”尤其是指“我没有标注过的业务数据”。但深度学习真正吃数据的大头在第一个环节——预训练而这个环节数据集是现成的开源的已经被别人打包好了。换句话说你捡了一块别人烤好的面包现在你纠结的是“我不会揉面”。巧了这年代真的不需要你揉面。1.3 预训练模型本质上是一座“数据压缩库”这里要说一个被低估的事实一个训练好的大模型它内部存储的不是代码逻辑而是海量训练数据压缩后的统计规律。你在模型里看到的每一个参数都可以理解成对某些数据特征的编码。所以当你加载一个开源模型时你并不是“没有数据”你是继承了一个庞大的数据集只不过是间接的、压缩的、分布式的继承。你只是不用再去收集、清洗、标注原始数据因为有人替你把这些事干完了。理解了这一点整个逻辑就顺了——不用自己做数据不等于没有数据可用。2. 完全“用别人的数据”做深度学习的三条路如果你接受了上面的设定接下来的问题就变成预训练数据已经被别人做完了我该怎么利用这座压缩知识库我总结了三套实际可走的方案复杂度从低到高排列。2.1 直接用预训练模型做推理零样本的“白嫖”玩法这是门槛最低的一种。你把模型下载下来或者调API直接拿它处理你的输入不做任何额外训练。现在主流的开源大模型、视觉模型都具备很强的零样本能力让它分类、让它总结、让它翻译、让它画图它都能干个七八分。举个例子我去年帮一个朋友处理淘宝商品评论的分类需求几千条评论要他人工打标是不可能的。我直接加载了一个开源的文本分类模型告诉它“帮我把这些评论分成质量问题、物流问题、客服问题、好评四类”它咣咣咣就分完了。准确率大概在85%左右已经够业务用了。这里的关键认知是模型的“常识”来自别人的数据你的“任务”只需要一条自然语言指令。指令不是训练数据它只是唤醒了模型内部已经存储的能力。这跟传统深度学习完全不同传统模式是你得告诉模型“张三是负例、李四是正例”现在你说人话就行。2.2 提示词与上下文学习连指令都不用精心设计零样本之上还有一层叫上下文学习英文叫In-Context Learning。这条路径更有意思你在输入里塞两三个例子模型就能照着例子做类似的事情而这个过程中模型的参数一丁点都没动过。原理上解释大模型在预训练阶段见过太多“照猫画虎”的样本模式了。你给它看“苹果→水果土豆→蔬菜玫瑰→”它就能顺着写“植物”或者“花”。你把这种逻辑推广到复杂的任务上就是上下文学习。它不需要你准备大规模训练数据只需要你准备两三个高质量示例当“药引子”。我实际测试过基于上下文学习的文本纠错给它3个“错误→正确”的配对让它改第4个效果比不给他例子的零样本模式高了差不多15个点。代价为零收益显著这就是大模型时代最划算的买卖之一。2.3 检索增强生成RAG严格说不是训练但你也能“用数据”第三条路叫RAG全称是检索增强生成。严格来说它仍然是深度学习应用但传统深度学习里的“训练数据”在这里变成了“检索数据”这是两码事。做法很简单你把自己手头有限的资料哪怕只有几十篇文档拆成小片段做向量化存到数据库里。大模型回答问题时先去数据库里找出最相关的几段内容再结合这些内容生成答案。整个过程没有训练不需要你标注数据你只需要把现有材料切一切、存一存。我见过很多团队用这个方案做企业内部的私有知识问答。他们没有任何标注数据只有一堆产品说明书和售后记录照样把一个问答系统跑起来了。传统微调像是让模型“背熟”你的资料RAG则是让模型“随手翻书”。对于大多数知识型业务翻书比背书实用得多。3. “几乎不用新数据”的深度学习微调到底在调什么如果你觉得零样本和RAG的效果还不够想要让模型更“懂你”一些那就得进入微调环节。这个环节经常被误解为“还是要大量数据”实际上近几年微调的数据需求已经被压缩到了很小的规模。3.1 微调不是从零学而是“基于已有知识做适配”传统深度学习的训练是随机初始化参数从一张白纸开始。而微调是拿一个已经学会通用知识的模型在它的基础上做局部调整。你不需要教它认识中文、不需要教它语言逻辑、不需要教它常识这些东西它早就会了。你要做的只是让它了解你的业务格式、你的表达习惯、你的判断标准。举个例子如果你要微调一个模型做法律文书分类模型不需要重新学法律知识——它读过足够多的百科和文章基本概念都有。你只需要给它看几百条“客户起诉状”和“律师函”的样例让它把“原来这就是你说的那种文书”给对上号。这里有个经验值对于大部分文本分类、抽取类任务几百条高质量样本就够了对于复杂的指令遵循任务几千条也差不多能跑。相比预训练动辄几十亿条数据这个量级几乎可以忽略不计。3.2 LoRA这种高效微调方法为什么几百条数据就能跑但这里有个隐患传统全量微调要更新的参数太多了几百条数据很容易过拟合。就好比一个学生只有三套练习题却要调整他的全部知识结构最后大概率是背答案而不是学思路。所以现在业界几乎全民转向了参数高效微调最流行的就是LoRALow-Rank Adaptation。它的思路特别巧妙冻结原模型的所有参数不动在旁边加两个小矩阵。这两个小矩阵的维数很低参数量只有原来的千分之一甚至万分之一训练的时候只更新它们。这带来两个直接好处一是显存和算力需求大幅降低消费级显卡也能跑二是由于可调整的参数变少了就相当于给模型加了一层“正则化”不容易过拟合。所以LoRA成了“小数据微调”的最佳搭档。我自己的经验是用LoRA做300条数据的小样本微调效果和全量微调几千条数据的差不多但成本差了十倍。3.3 实在连几百条都没有那就“无中生有”造数据还有一个终极手段合成数据。你没有真实数据但你可以用大模型自己造数据。这个方法在业内已经非常普遍尤其是GPT系列模型出来之后很多SFT监督微调数据集就是这么造出来的。具体操作分两类。一是纯生成直接问大模型“帮我想20个关于退货政策的用户问题”它哗哗给你写出来二是扰动扩充你有10条原始样本让大模型用同义替换、句式改写、扩写缩写的方式给你膨胀成200条。我试过把50条种子样本扩成500条然后用扩出来的数据微调一个小模型最终在真实测试集上的效果还挺能打。不过这条路有一个著名的坑我放到下一节仔细讲。4. 从“模型有数据”到“你有业务”千万别踩的三个坑前面讲的都是怎么做成这节讲怎么做“不砸锅”。我见过太多人看到“不用数据也能用大模型”就激动地冲进去结果翻在坑里所以这节务必看完。4.1 预训练数据里的“坏毛病”会原封不动带进你的应用先说一个很多人忽视的事实你虽然没准备数据但模型脑子里有一套来自原始数据的隐含偏见。这套偏见可能是性别歧视、可能是地域刻板印象、可能是对某些话题的过度美化。它不是模型自己“想出来”的是真实存在于训练数据里的统计规律。你直接拿来用的时候这套偏见就会不偏不倚地输出到你的业务里。我遇到过最典型的场景用通用模型做简历初筛模型对女性候选人的评分系统性地低于男性因为在它读过的历史样本里技术岗位的文本多是男性主导的。这时候你嘴上说“我没准备数据”实际上你正在被动使用一份你从没审核过的数据。所以用零样本模型之前一定要先在你自己业务的一小撮样本上做一次偏见冒烟测试。发现问题了要么换模型要么花点小钱做微调对冲掉。4.2 “跑通”和“好用”是两码事别拿基线当最终效果零样本模型的输出效果好的时候确实惊艳但你一定要做一次量化评估。很多人被几个漂亮的样例迷惑觉得模型“什么都会”结果一上线就翻车。因为样例是你精心挑的真实输入是随机的。我的建议是无论多赶留出100条左右的真实业务输入用规则或者人工给它们标上标准答案然后跑一遍模型看准确率。这100条样本不是用来训练的是用来当照妖镜的。如果准确率达标那就直接用不达标再上微调、RAG这些进阶手段。我自己踩过的坑是第一次做客服意图识别零样本模式在10个精挑细选的测试例子上全对我以为稳了结果业务上线第二天就被用户骂了。后来测了一百条真实评论才发现准确率只有72%。这30个点的差距不量化你根本看不见。4.3 合成数据用多了会“近亲繁殖”模型会退化合成数据不是不可以但必须控制比例。如果模型的训练数据全部由另一个模型生成就会出现一个行业里叫“模型坍缩”的现象新模型的输出会变得越来越单一越来越缺少多样性最终退化成一个复读机。原理不复杂。原始数据是从复杂真实世界中采样的多样性极高而大模型生成的样本往往落在概率分布的“热门地区”尾巴上的小众特征会被系统性地丢干净。用这种数据一代一代训练下去每一代都会进一步丢失多样性最后模型只能在几个固定套路里打转。我亲测过只用合成数据微调文本生成模型第一代效果还行用第一代模型再生成数据、再训第二代明显感觉输出变得“模板化”了。这个坑的解法也很简单合成数据和真实数据按比例混合我习惯控制在七三甚至八二真实数据再少也必须有。另外每次用完合成数据最好人工抽样看一眼质量别当甩手掌柜。5. 一次真实项目复盘在“零数据集”约束下跑通深度学习前面讲了很多理念这节给大家还原一个我实际做过的项目完整走一遍“没有数据怎么做深度学习”的流程。这个项目我做下来花了不到一周供你参考。5.1 项目背景与当时的限制条件起因是一家做电商SaaS的公司找到我。他们的客户有一个共同需求需要自动把工单内容分为“退换货”“发票问题”“物流查询”“使用指导”四类方便客服分流。客户自己从来没积累过带标签的工单现有工单全是自由文本而且出于隐私顾虑不能大批量外采数据。预算也不高租不起昂贵的训练集群。这就是一个非常典型的“想用深度学习、但没有数据、成本还低”的局。我给他们定的技术路线是零样本基线打底 少量种子数据 合成扩充 LoRA微调 规则兜底。5.2 我实际采用的方案与效果记录首先是零样本基线测试。我拿了一个开源的7B模型直接写提示词让它给工单分类在人工抽样的50条工单上准确率大约在76%。这已经能跑但不够稳。第二步我从历史工单里手工挑了120条样本覆盖四个类别每条都是我觉得“比较典型”的。这120条没有做任何复杂标注就是简单的归类。然后我写了个脚本调大模型把这120条每条扩写成5条同义变体变成了600条训练样本。这里要说明一下合成扩写的时候我不会让大模型放飞自我而是强制要求它保留原标签不变、只改表达方式。这样生成的样本不至于太离谱质量可控。扩写完我抽样翻了50条发现大约八成是能用的剩下的有明显错误直接删掉了。第三步用扩出来的这批数据做LoRA微调。模型选的是同一个7B底座把前面零样本测试时用的底座冻结只练LoRA参数。训练大约花了一个半小时用的是单张消费级显卡。微调完成后同批次100条新工单的准确率从76%升到了92%提升幅度相当可观。5.3 复盘后的“避坑清单”和可迁移步骤这个流程跑下来我总结了一套可以复用到其他任务上的步骤在这里公开给大家照着做就行。先明确任务类型。分类、抽取、生成三种任务的“够用数据量”不一样分类最少生成最多。建一个50到100条的“评估集”只用于测效果绝不用来训练。零样本跑一遍评估集记下基线准确率。手工挑100到200条种子样本记住要覆盖所有类别保证类别均衡。用大模型做合成扩写扩3到5倍强制保留标签。人工抽样检查合成数据删除明显错误的。用LoRA微调小模型先把学习率调低一点1e-4到2e-4是比较安全的区间。用评估集复测如果提升不明显检查种子数据和评估集是否有冲突。这套流程最大的价值是你在拥有正式“数据集”之前就已经通过少量人工标注模型辅助打通了全流程。等项目验证有真实用户反馈了再慢慢攒真实数据迭代属于典型的低成本快速试错方案。6. 常见问题速查关于“数据不够”的十个疑问这节整理一下我在社区里被问得最多的问题每个都给直接答案方便你后续查阅。问题直接答案没有数据能用BERT吗能。直接用预训练好的BERT做特征提取或零样本分类不用自己训练。微调至少需要多少条数据分类任务300条以上比较稳抽取任务500条左右生成任务越多越好。合成数据到底能替代多少真实数据建议最多占70%且需人工抽样检查。RAG和微调怎么选知识型任务选RAG能力型任务选微调混合效果更佳。数据太少会不会过拟合会。用LoRA等参数高效微调能显著降低过拟合风险。零样本和微调后的效果差多少常见任务上大约差10到20个点但零样本普遍够用。数据集必须和业务完全对口吗不对口也能跑但最好在业务样本上做小规模适配。买数据划算吗多数场景不划算合成数据小批人工标注通常更省。没有GPU能上手吗能用小型模型或API凑合跑通但微调最好还是有一张显卡。数据隐私问题怎么处理优先选本地可部署的开源模型敏感数据不出内网。最后再分享一个很个人的体会。我见过很多人一听到“深度学习要数据”就直接劝退但我做这行越久越觉得真正的门槛从来不是“有没有数据”而是“有没有把已有条件组合起来的思路”。你手头哪怕只有一百条工单、几十页文档、甚至只有一段任务描述都能在大模型时代找到一个可用的落地方案。别在门口犹豫太久先跑起来再说。