别只盯着模型参数了:聊聊多模态时代最容易被忽视的一件事——训练数据准备

举报
Echo_Wish 发表于 2026/03/06 20:55:03 2026/03/06
【摘要】 别只盯着模型参数了:聊聊多模态时代最容易被忽视的一件事——训练数据准备

别只盯着模型参数了:聊聊多模态时代最容易被忽视的一件事——训练数据准备

很多人一聊 AI 多模态,第一反应就是:
“模型多大?”
“参数多少?”
“是不是用了 Transformer + Diffusion + RLHF?”

但说句大实话:

模型只是厨师,数据才是食材。

如果食材本身不新鲜,再厉害的厨师也做不出米其林。

这几年我做大数据和 AI 项目,最大的感触其实就一句话:

多模态 AI 的核心不是模型,而是数据工程。

尤其是 文本 + 图像 + 音频 三种数据混合的时候,真正难的其实不是训练,而是 数据准备(Data Preparation)

今天咱就聊聊:
多模态训练数据到底是怎么准备出来的。

尽量不装学术,咱用工程视角聊点实在的。


一、多模态训练的本质:让不同数据“说同一种语言”

先看一个典型训练样本:

图片: 一只猫坐在键盘上
文本: "A cat sitting on a keyboard"
音频: "a_cat_on_keyboard.wav"

对于模型来说,这三样东西其实是:

image -> tensor
text -> token
audio -> spectrogram

但关键问题来了:

如何保证这三样数据描述的是同一个东西?

这就是多模态数据工程的核心:

跨模态对齐(Cross-modal Alignment)

也就是:

文本 <-> 图像 <-> 音频

必须是 语义一致 的。

否则模型学到的就是:

-> 猫
猫 -> 飞机
飞机 -> 苹果

模型就彻底疯了。


二、多模态数据准备的第一步:统一数据结构

在真实工程里,我们一般先做 统一数据Schema

比如:

{
  "id": "sample_001",
  "text": "a dog barking",
  "image_path": "images/dog_001.jpg",
  "audio_path": "audio/dog_bark.wav",
  "source": "web_dataset"
}

这样做有两个好处:

1️⃣ 数据可扩展
2️⃣ 数据可追溯

接下来我们用 Python 做个简单数据读取器。

import json

def load_dataset(path):
    dataset = []

    with open(path, "r", encoding="utf-8") as f:
        for line in f:
            sample = json.loads(line)
            dataset.append(sample)

    return dataset


data = load_dataset("multimodal_dataset.jsonl")

print("dataset size:", len(data))
print(data[0])

工程里一般用:

  • JSONL
  • Parquet
  • TFRecord

大规模数据一般都会转 Parquet,因为列式存储更适合大数据分析。


三、文本数据清洗:AI 世界的“扫地阿姨”

文本数据其实最脏。

互联网文本通常长这样:

Buy cheap shoes now!!!
CLICK HERE!!!
www.xxxx.com

如果这些数据进了训练集:

恭喜你,你的 AI 可能学会 疯狂打广告

所以必须清洗。

示例代码:

import re

def clean_text(text):

    # 去URL
    text = re.sub(r"http\S+", "", text)

    # 去HTML
    text = re.sub(r"<.*?>", "", text)

    # 去多余空格
    text = re.sub(r"\s+", " ", text)

    return text.strip()


text = "Buy cheap shoes now!!! http://spam.com"

print(clean_text(text))

真实工程里还会做:

  • 语言检测
  • 去重
  • toxic 内容过滤
  • 低质量文本过滤

比如:

重复率 > 0.9
句子长度 < 3

这些都要过滤。


四、图像数据准备:不只是 resize

很多人以为图像处理就是:

resize -> normalize

其实远不止。

我们一般会做:

  • 图像质量检测
  • 去重
  • NSFW 过滤
  • OCR 检测

举个例子:

用 Python 批量 resize 图像。

from PIL import Image
import os

def resize_image(path, size=(224,224)):

    img = Image.open(path)
    img = img.resize(size)

    return img


img = resize_image("dog.jpg")
img.save("dog_resized.jpg")

但真正的大规模图像处理一般用:

  • Spark
  • Ray
  • Dask

比如:

10亿张图像

单机跑根本不现实。


五、音频数据处理:把声音变成可学习的数据

音频数据通常要转成:

Mel Spectrogram

因为神经网络更擅长处理图像型结构。

示例代码:

import librosa
import numpy as np

def audio_to_mel(path):

    y, sr = librosa.load(path, sr=16000)

    mel = librosa.feature.melspectrogram(
        y=y,
        sr=sr,
        n_mels=128
    )

    return mel


mel = audio_to_mel("dog_bark.wav")

print(mel.shape)

这样:

audio -> spectrogram

就变成了类似图像的二维矩阵。

模型就能学了。


六、多模态数据的真正难点:对齐

最麻烦的其实是 数据对齐

比如:

image: dog.jpg
text: "a dog running"
audio: "dog_bark.wav"

如果配错:

image: dog
text: "a plane"
audio: baby crying

模型就会崩。

所以大厂都会做:

自动对齐 + 人工校验

一个简单例子:

用 CLIP 做相似度过滤。

import torch
import clip
from PIL import Image

model, preprocess = clip.load("ViT-B/32")

def check_alignment(image_path, text):

    image = preprocess(Image.open(image_path)).unsqueeze(0)

    text_tokens = clip.tokenize([text])

    with torch.no_grad():
        image_features = model.encode_image(image)
        text_features = model.encode_text(text_tokens)

    similarity = torch.cosine_similarity(
        image_features,
        text_features
    )

    return similarity.item()


score = check_alignment("dog.jpg", "a dog running")

print("similarity:", score)

如果相似度低:

score < 0.2

我们就可以 自动过滤


七、大模型时代:数据工程师越来越重要

很多人觉得:

未来 AI 世界是 模型工程师的天下

但我越来越觉得:

真正的核心岗位,其实是数据工程师。

为什么?

因为:

模型 -> 开源越来越多
数据 -> 永远是稀缺资源

真正的护城河其实是:

高质量数据管道

包括:

  • 数据采集
  • 数据清洗
  • 数据标注
  • 数据对齐
  • 数据版本管理

这些东西看起来不起眼。

但没有它们:

再强的模型也没用。


最后聊点我的真实感受

这些年做 AI 项目,我越来越有一个感触:

很多团队把 90%精力放在模型

但真正决定效果的往往是:

数据质量

就像种地。

大家都在研究:

拖拉机多先进

但真正决定收成的其实是:

土壤

数据工程师,其实就是 AI 世界里的 农民

没有他们:

再牛的算法,都是空中楼阁。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。