
2026 首个真实厨房数据烹饪AI基础模型发布模型背后需要哪些数据点击此处注册新用户注册可领免费 50 积分橡鹿机器人在 WRC 发布了 CookingMuse 厨启官方口径称其为全球首个基于真实厨房数据训练的多模态烹饪 AI 基础模型同期还发布了 3K 视觉 AI 炒菜机器人与具身烹饪机器人现炒方舟。这类模型要理解烹饪而非识别菜谱训练数据的构成直接决定了它能不能真正学会做菜。文章目录2026 首个真实厨房数据烹饪AI基础模型发布模型背后需要哪些数据一、烹饪 AI 训练需要哪些数据二、这些数据从哪来三、教学视频为什么用实时采集四、视频采集接口约定五、单条视频采集最小可运行示例六、状态码处理与零成本退避重试七、批量拉取一组烹饪教学视频八、常见坑与排错九、总结一、烹饪 AI 训练需要哪些数据一个会做菜的多模态模型训练时要覆盖三类数据缺一路模型对烹饪的理解就有短板真实厨房操作数据第一人称视角下的完整操作序列——手怎么拿铲、火候怎么调、食材怎么下锅是模型学动作因果的核心也是最稀缺的一类。成体系的烹饪教学语料大量公开的烹饪教学视频画面对应动作、音频对应讲解、字幕对应步骤文本正好是图像、音视频、文本三类模态的天然对齐样本用于补齐菜系覆盖与步骤多样性。菜谱与食材文本结构化的菜谱、食材、步骤文本作为语言侧的知识底座。二、这些数据从哪来上面三类数据获取方式不一样——一部分可以直接用成品数据集一部分得靠实时采集补真实厨房操作数据第一人称、带动作的操作序列最稀缺用成品数据集打底最省事。菜谱与食材文本结构化的语言侧知识用成品数据集直接补位。烹饪教学视频公开、量大但长尾、时效性强成品数据集难以穷尽需要实时采集补充。Dataify 相关成品数据集EGO 数据第一人称视角覆盖手怎么拿铲、食材怎么下锅这类操作样本UMI 数据手持夹爪操作数据用于抓取与操作动作的模仿学习多模态成品数据集覆盖图像、音视频、文本、对话四类模态可补菜谱与步骤语料也就是说真实操作数据与文本语料用现成数据集打底剩下烹饪教学视频这块缺口靠实时采集来补。三、教学视频为什么用实时采集教学视频这类素材不适合用固定数据集穷尽更适合按需实时采集原因有二长尾且时效性强分散在各视频平台菜系、语言、时长各异还在不断更新固定数据集很难一次性覆盖全。自建采集成本高单个平台页面结构和取数方式各异视频的画面 / 音频 / 字幕 / 元数据往往要分头获取再对齐批量拉取还得处理失败重试与增量补料。比较省事的做法是用一个已经把多分辨率画面 音频 多语言字幕 元数据打包返回的采集接口一次调用拿齐三路对齐素材把精力留给后续清洗与对齐。下面就用 Dataify 视频数据采集 API 演示这一步。四、视频采集接口约定批量拉取 YouTube 视频数据走 Dataify 的/builder端点用spider_name指定目标平台、spider_id指定采集类型、spider_parameters传具体参数。三个关键入参参数说明spider_name目标平台如youtube.comspider_id采集器类型如youtube_video-post_by-url按视频 URL 取单条spider_parametersJSON 字符串形如[{url:...,num_of_posts:5}]spider_parameters本身是一段 JSON 文本requests用data传即可会自动完成表单编码。五、单条视频采集最小可运行示例importjsonimportrequests TOKENYOUR_DATAIFY_TOKENBUILDER_ENDPOINThttps://scraperapi.dataify.com/builderdeffetch_video(video_url:str)-dict:按视频 URL 采集单条 YouTube 视频同步取回音频/字幕/元数据。headers{Authorization:fBearer{TOKEN},Content-Type:application/x-www-form-urlencoded,}spider_parametersjson.dumps([{url:video_url}])payload{spider_name:youtube.com,spider_id:youtube_video-post_by-url,spider_parameters:spider_parameters,}resprequests.post(BUILDER_ENDPOINT,headersheaders,datapayload,timeout60)ifresp.status_code!200:raiseRuntimeError(fHTTP{resp.status_code}:{resp.text[:200]})dataresp.json()ifdata.get(code)!200:raiseRuntimeError(f业务错误 code{data.get(code)}:{data})returndata/builder通道遵循与其它接口一致的响应码规则HTTP 200 且业务code为 200 才算成功。这里先拦 HTTP 层非 200再拦响应体信封里的业务code两层都过了才往下取数据避免把错误信封当正常结果解析。返回体的分辨率、音频、字幕字段名以实际返回结构为准。视频数据采集 API 支持 720P 至 4K 多分辨率字幕覆盖 100 语言元数据与音视频一并返回可直接作为多模态语料的三路对齐来源# 字段路径按返回实际结构解析以下为占位示意defextract_multimodal(data:dict)-dict:itemdata.get(data)or{}return{title:item.get(title),url:item.get(url),# 音频、字幕、分辨率字段名按返回实际结构改写subtitles:item.get(subtitles),audio:item.get(audio),metadata:item.get(metadata),}六、状态码处理与零成本退避重试退避重试要区分值得重试和重试无意义。这是本接口计费与容错的一个实打实的点仅 200 计费429 / 500 / 504 不计费属临时性错误可零成本指数退避重试300 / 400 / 401 不计费但重试逻辑上无意义参数错、鉴权错、重定向应直接抛错不要浪费轮次。importtime RETRYABLE{429,500,504}FATAL{300,400,401,403,404}deffetch_video_with_retry(video_url:str,max_retries:int4)-dict:headers{Authorization:fBearer{TOKEN},Content-Type:application/x-www-form-urlencoded,}payload{spider_name:youtube.com,spider_id:youtube_video-post_by-url,spider_parameters:json.dumps([{url:video_url}]),}forattemptinrange(max_retries):resprequests.post(BUILDER_ENDPOINT,headersheaders,datapayload,timeout60)ifresp.status_code200:dataresp.json()codedata.get(code)ifcode200:returndataifcodeinFATAL:raiseRuntimeError(f业务码{code}无重试意义:{data})ifcodeinRETRYABLE:time.sleep(2**attempt)continueraiseRuntimeError(f未预期业务码{code}:{data})ifresp.status_codeinFATAL:raiseRuntimeError(fHTTP{resp.status_code}无重试意义)ifresp.status_codeinRETRYABLE:time.sleep(2**attempt)continueraiseRuntimeError(f未预期 HTTP{resp.status_code}:{resp.text[:200]})raiseRuntimeError(f重试{max_retries}次仍失败:{video_url})time.sleep(2 ** attempt)是指数退避间隔按 1、2、4、8 秒递增避免在对端临时压力大时高频重打。由于 429/500/504 不计费这类重试不产生额外成本。七、批量拉取一组烹饪教学视频补充烹饪语料时通常一次要处理一批 URL。可对一组视频 URL 顺序调用带重试的采集函数逐条落盘为 JSONL方便后续做画面-字幕-音频的多模态对齐defbatch_collect(video_urls:list[str],out_path:strcooking_corpus.jsonl)-None:withopen(out_path,a,encodingutf-8)asf:forurlinvideo_urls:try:datafetch_video_with_retry(url)recordextract_multimodal(data)exceptRuntimeErrorase:print(f[SKIP]{url}-{e})continuef.write(json.dumps(record,ensure_asciiFalse)\n)print(f[OK]{url})if__name____main__:urls[https://www.youtube.com/watch?vVIDEO_ID_1,https://www.youtube.com/watch?vVIDEO_ID_2,]batch_collect(urls)单条失败只跳过该条、不中断整批失败 URL 打印出来另行补采。JSONL 每行一条与后续训练管线的读取方式天然契合。若要定时增量补料把batch_collect挂到调度器如 cron 或 APScheduler按天运行并在连续失败达到阈值时触发告警即可。八、常见坑与排错照着上面跑几个大概率会卡住的地方对应现象与解法spider_parameters直接传了 list报 400 或参数解析失败这个字段要传的是JSON 字符串不是 Python list。必须json.dumps([{...}])序列化后再放进data直接传[{...}]会被表单编码成错误格式。HTTP 是 200但拿到的却是错误、往下解析全是空/builder出错时 HTTP 状态码可能仍是 200真实错误码在响应体code字段里。只判resp.status_code 200不够必须再判data.get(code) 200否则会把错误信封当正常数据解析落库一堆空值。解析视频字段全部取到None示例里的subtitles/audio/metadata是占位字段名真实返回结构未必同名。先把一条原始返回print出来看清实际层级和字段名再按实际结构取值——不要照抄占位名。本地跑一直失败、返回不支持地区类错误/builder面向海外公开平台需从海外出口环境请求用大陆本地 IP 直连大概率失败。放到海外服务器 / 海外出口再跑。批量跑到一半整个中断确认batch_collect里对单条失败是continue跳过而非抛出。单条超时或个别视频异常不应让整批停摆失败 URL 记录下来另行补采即可。九、总结CookingMuse 这类多模态烹饪模型的训练数据可以按用现成数据集打底、用实时采集补缺来组织数据集打底最稀缺的真实厨房操作数据用 Dataify 的 EGO 第一人称视角数据、UMI 手持夹爪操作数据现成补齐还可依托自有采集工厂按场景定制菜谱、步骤等语言侧语料用多模态成品数据集补位。这部分是训练底座的主体。采集补缺现成数据集难以穷尽的公开烹饪教学视频用 Dataify 视频数据采集 API 实时批量补位——一次调用同步拿回音频、字幕与元数据直接构成图像、音视频、文本三路对齐素材。采集环节的两个工程要点两层响应校验HTTP 状态码 业务code信封以及按错误类型区分的退避重试——可重试的临时错误零成本退避参数/鉴权类错误直接抛错。