今天我们来聊一聊:“好的数据”对于 LLM 到底有什么用?
大家都知道数据是大模型的基础,质量决定效果。但随着 AI 卷得越来越厉害,算法同学的作用似乎越来越大,反观我们做数据的,作用好像慢慢被弱化了。
现在的痛点很真实:Java/SQL 写不过 AI,业务理解干不过数分。那我们数据人还能干什么呢?
其实 AI 跑得再快,现在也慢慢碰到“数据天花板”了。很多企业现在的瓶颈不再是“算力不够”,而是“数据供不上”。
1. 现有的 Data for AI 到底出了什么问题?
看上去企业数据资产不少,但真正能直接拿来训练、推理的比例并不高,主要是因为这几个坑:
- 数据类型对不上:现在企业大部分数据是二维表格,适合做报表。但模型更需要向量(表达语义)、图结构(表达关系)、时间序列(表达变化)。本质上,现有数据的组织方式和模型的需求“不兼容”。
- 维度不够:传统指标讲究“少而精”,字段得能解释。但模型往往靠大量稠密特征,很多特征单看没意义,组合起来才是宝。
- 时效性太差:传统数据按天、按周更新,复盘够了,但推荐、风控这种实时决策,模型需要的是“现在”的数据,而不是“昨天”的。
- 工具没用好:数据圈有很多成熟的实时处理、任务调度工具,但现在还没跟 AI 流程很好地合体。
2. 具体的解决方案
第一,从存储角度: 得搞湖仓一体。在能存下多模态数据(图片、文档等)的基础上,增加快速调用的功能,别让数据躺在里面睡觉。
第二,从推理角度:
现在的方案太长:
数据库读 Page → 序列化发网络包 → 应用层反序列化 → 转为 Tensor → 最后才交给 GPU。
这就好比你在书架上找一本书,为了读它,你得先复印一份,装进快递盒寄回家,拆开后再翻译成母语,最后才开始读。
我们更希望的是:
- 零拷贝(Zero-Copy)思想:数据在数据库内存(Buffer Pool)里刚解开,别封装了,原地直接通过内置算子变向量。
- 内存直接交付:Embedding 后的张量(Tensor)通过内存地址指针,直接甩给旁路挂载的推理引擎。
核心就是把计算向存储前移,能少搬数据就少搬。
3. 我们可以利用哪些数据库的“老本行”优势?
- 索引能力 做数据的都知道,索引能救命。如果没有索引,匹配问题就得全量扫描。 举个例子: 如果提示词(Prompt)太长,模型每次都要重复计算 KV 矩阵,开销极大。但如果我们把这些值存入磁盘/内存,并建立索引,下次就能直接命中之前的推理状态,从中间状态直接开跑。
- 并行调度能力 虽然并行是 GPU 的强项,但 GPU 必须从内存拉数据,搬运时间太长。数据库可以直接在内存里并行计算。而且如果把计算都看作“算子”,就能利用数据库成熟的任务调度和优先级管理,谁先跑谁后跑,管得明明白白。
- 数据一致性(ACID) 这是数据库的拿手好戏。如果直接在库内读向量做推理,只要数据库里的数据一变,模型拿到的结果立刻跟着变,业务响应极快,不用担心模型读到的是旧数据。
- 硬约束(纠正幻觉) 利用强 Schema 和约束。比如通过内置的图数据库算子,给推理加个“紧箍咒”。 例子: 模型想推理“A 公司的 CEO 是谁”,向量检索可能搜到一堆八卦,但数据库会先查内部的关系图谱(确定的事实),如果是 B,就强制模型按这个输出。用“确定性”去纠正 AI 的“概率性”。
总结
以后我们得解决这几个关键问题:
- 怎么利用索引快速定位有效数据?
- 怎么利用数据库的大规模计算和贴近内存的特点,给训练和存储加速?
- 怎么利用事务能力,保证模型快速响应业务?
- 怎么利用数据库的“确定性”去纠偏?
作为数据人的一份子,我很希望看到 AI 消费数据、理解数据,而数据反过来塑造 AI。
不过说真的,如果这些都实现了,数据人是不是真的得去找新工作了?