SenseNova-U1 交错生成评测复现指南:BabyVision / OpenING / Unimmmu / RealUnify 全流程实战
人工智能大模型多模态计算机视觉媒体生成预训练【免费下载链接】SenseNova-U1SenseNova-U series: Native Unified Paradigm with NEO-unify from the First Principles项目地址https://gitcode.com/gh_mirrors/se/SenseNova-U1点击查看免费下载本文是 SenseNova-U1NEO-unify 统一范式模型在交错生成Interleaved Generation基准上的评测复现实战指南。你将掌握仓库evaluation/interleave/下四条评测管线的完整用法面向/generateAPI 的 BabyVision 理解评测以及基于本地transformers加载模型的 OpenING、Unimmmu、RealUnifyGEU / UEG三套交错生成评测涵盖推理、断点续跑、多卡并行、分片合并、LLM 裁判打分与结果汇总的全部命令与底层原理。读完即可按本指南在自有数据与模型上复现并扩展这些评测流程。评测套件总览四条管线、两类后端evaluation/interleave/下的四条评测管线分别面向不同评测任务但共享同一个「先推理、后评分」的两段式结构┌──────────────────────┐ │ evaluation/interleave│ └──────────┬───────────┘ │ ├── BabyVision ── API inference ── extract / judge ── aggregate score ├── OpenING ── local inference ─ GPT judge ── summarize ├── Unimmmu ── local inference ─ external scorer └── RealUnify ── local inference ─ rule / judge scoringBenchmark推理后端评测后端主要产出BabyVisionHTTP/generateAPI答案抽取 LLM 裁判babyvision_model.jsonl、*_eval.jsonlOpenING本地模型GPT 裁判 CSV 汇总逐样本 JSON、生成图片、裁判 JSONUnimmmu本地模型外部打分器unimmmu_results.jsonl、生成图片RealUnify (GEU)本地模型规则打分器realunify_results.jsonl、分数 JSONRealUnify (UEG)本地模型用户自供裁判封装ueg_results.json[l]四条管线遵循三条通用约定复现前请先对齐BabyVision向一个或多个/generate端点发请求将预测结果写入 JSONLOpenING、Unimmmu、RealUnify均通过transformers本地加载模型AutoModel.from_pretrained(..., torch_dtypetorch.bfloat16, trust_remote_codeTrue)见 Unimmmu 推理入口部分基准在推理之后还有独立的裁判/分数聚合步骤大部分脚本支持基于已有产物的续跑--resume、自动跳过已完成样本或分片合并。所有命令默认在仓库的评测目录下执行cd evaluation/interleave注意本地模型类基准的数据路径必须显式传入真实路径不要依赖脚本中的占位默认值如DATA_ROOT/...否则会直接报「文件不存在」。BabyVisionAPI 驱动的多模态理解评测BabyVision 是本套件中唯一纯 API 驱动的基准推理脚本把图片与问题封装成/generate请求发给模型服务评测脚本再用 LLM 裁判做答案抽取与判分最后聚合出整体与分项准确率。典型流程是「先推理 → 再抽取判分 → 后聚合分数」。推理并发请求 断点续跑参考推理命令python3 BabyVision/infer_babyvision.py \ --model-name local-model \ --data-path /path/to/meta_data.jsonl \ --image-root /path/to/babyvision_images \ --output-dir ./output/babyvision_understand \ --generate-urls http://127.0.0.1:8000/generate \ --workers 32 \ --max-retries 3 \ --backend-max-retries 20 \ --request-timeout 600 \ --max-new-tokens 32768 \ --no-do-sample \ --temperature 0 \ --top-p 0.95 \ --repetition-penalty 1.05 \ --min-pixels 262144 \ --max-pixels 4194304参数含义--data-pathmeta_data.jsonl的路径。--image-root用于解析样本图片路径的根目录。--generate-urls一个或多个/generate端点逗号分隔。--workers并发请求的线程数。--max-retries、--backend-max-retries样本侧与后端请求侧的重试预算。--request-timeout单请求超时秒数。--min-pixels、--max-pixels图片预处理像素上下界。结合 infer_babyvision.py 源码可以确认几个关键实现细节环境变量默认值--generate-urls、--model-name、--data-path、--image-root、--output-dir、--workers等参数均可通过BABYVISION_GENERATE_URLS、BABYVISION_MODEL_NAME、BABYVISION_DATA_PATH、BABYVISION_IMAGE_ROOT、BABYVISION_OUTPUT_DIR、BABYVISION_WORKERS等环境变量覆盖脚本 L27-L47请求载荷图片先做原生分辨率动态缩放dynamic_preprocess_native_resolution尺寸按 32 对齐、像素数落在min_pixels与max_pixels之间再 base64 编码与build_generation_parameters()生成的采样参数max_new_tokens、do_sample、stop_sequences、temperature、top_p、repetition_penalty一起组装成{inputs, parameters, multimodal_params}载荷L412-L429重试策略call_vllm_with_retry每次随机挑选一个端点失败按 1.5 倍退避重试最长 60sHTTP 400 视为致命错误直接返回L432-L488断点续跑输出文件babyvision_model_name.jsonl模型名中的/会被替换为--已存在的样本会按taskId自动跳过无需手动删文件。评测答案抽取 LLM 判分参考评测命令python3 BabyVision/eval_babyvision.py \ --input ./output/babyvision_understand/babyvision_local-model.jsonl \ --output ./output/babyvision_understand/babyvision_local-model_eval.jsonl \ --endpoint https://your-judge-endpoint \ --api-key your_api_key \ --model gpt-4.1 \ --force \ --workers 16 \ --retries 3eval_babyvision.py同时完成答案抽取与裁判判分。--endpoint与--api-key也可来自环境变量BABYVISION_JUDGE_ENDPOINT/AZURE_OPENAI_ENDPOINT与BABYVISION_JUDGE_API_KEY/AZURE_OPENAI_API_KEY。--force强制重算已有记录--judge-only只对已有extracted_answer的记录判分、绝不重新抽取。源码中的实现要点eval_babyvision.py两级抽取默认--extractor rule_then_llm先用规则正则answer.../answer、\boxed{...}、final answer:/the answer is等 5 组模式抽取抽不到再交给 LLM另有llm与rule_only两种模式可选L64-L73、L86-L91裁判输出要求裁判仅返回 JSON{extracted_answer: ..., is_correct: bool}或精简的{is_correct: bool}并写入每条记录的LLMJudgeResult字段端点兼容自动识别 Azure 端点路径含/openai或.openai.azure.com并切换请求头与 URL 组装方式L118-L154限流退避对 429 / too many requests 采用 5 秒递增退避其他错误按 1.5 次幂退避。分数聚合整体 Type Subtype参考分数命令python3 BabyVision/compute_score.py \ ./output/babyvision_understand/babyvision_local-model_eval.jsonlcompute_score.py 读取裁判结果后输出整体准确率并按TypeFine-grained Discrimination、Visual Tracking、Spatial Perception、Visual Pattern Recognition 等与Subtype分别汇总正确数、总数与准确率还支持一次传入多个结果文件计算多次运行的「平均 ± 标准差」。OpenING本地交错生成 GPT 裁判打分OpenING 用本地模型做交错生成一条回复里同时产出文本与图片再用 GPT 裁判按多维指标打分。这是四套管线中唯一带完整「推理 裁判 汇总」三段流水线的基准。单卡推理参考单卡推理命令python3 OpenING/infer_opening.py \ --mode opening \ --model_path /path/to/model \ --save_dir ./output/opening_interleave/opening_output \ --meta-path /path/to/OpenING-benchmark \ --data-file-name test_data.jsonl \ --think_mode think \ --cfg_scale 4.0 \ --img_cfg_scale 1.0 \ --timestep_shift 3.0 \ --cfg_interval 0 1.0 \ --num_steps 50 \ --max_new_tokens 4096 \ --max_generation_pixels 4194304 \ --oom_retry_max_pixels 1048576 \ --image_width 1920 \ --image_height 1088 \ --opening_step_prompt_style can_be \ --retry_short_outputs 0 \ --seed 428 分片单机并行mkdir -p logs for LOCAL_RANK in 0 1 2 3 4 5 6 7; do echo Starting shard ${LOCAL_RANK} on GPU ${LOCAL_RANK} CUDA_VISIBLE_DEVICES${LOCAL_RANK} python3 OpenING/infer_opening.py \ --mode opening \ --model_path /path/to/model \ --save_dir ./output/opening_interleave/opening_output \ --meta-path /path/to/OpenING-benchmark \ --data-file-name test_data.jsonl \ --think_mode think \ --num_shards 8 \ --shard_index ${LOCAL_RANK} \ --cfg_scale 4.0 \ --img_cfg_scale 1.0 \ --timestep_shift 3.0 \ --cfg_interval 0 1.0 \ --num_steps 50 \ --max_new_tokens 4096 \ --max_generation_pixels 4194304 \ --oom_retry_max_pixels 1048576 \ --image_width 1920 \ --image_height 1088 \ --opening_step_prompt_style can_be \ --retry_short_outputs 0 \ --seed 42 \ logs/opening_shard${LOCAL_RANK}.log 21 done wait参数含义--model_path本地模型路径。--meta-path数据集根目录。--data-file-name基准根目录下的数据集 JSONL 文件名。--save_dir逐样本 JSON 与图片的输出目录。--think_modethink、no_think或两者都跑。--cfg_interval、--max_generation_pixels、--oom_retry_max_pixels主要生成控制与 OOM 降分辨率重试控制。--num_shards、--shard_index多进程运行的手动分片。infer_opening.py 源码中有几个值得注意的机制双模式--mode支持auto默认、opening与annotation_config其中opening即本指南覆盖的基准评测模式--think_mode列表模式意味着同一个样本可以同时产出 think 与 no_think 两套结果输出目录按模式拆分如xxx_think_output/xxx_no_think_outputL554-L562步数提示风格--opening_step_prompt_style有none/can_be/must_exact三档can_be会在 prompt 前追加 The number of generated text-image pairs can be {N}:must_exact则强制要求恰好生成 N 对L303-L320OOM 降分辨率重试默认生成像素上限约 2048×2048若触发 CUDA OOM 且--oom_retry_max_pixels小于上限会自动清显存并以更低分辨率重试--image_width/--image_height提供固定输出尺寸非 32 倍数会向下对齐并支持保存时再缩放保持纵横比居中贴黑边短输出重试--retry_short_outputs控制当生成步数少于基准期望步数时的额外重试次数候选结果按「文本步数 图片数」的覆盖率打分择优保留输出格式每个样本保存为save_dir/total_uid.json保留原conversations结构并写入生成结果通过临时文件 os.replace原子写盘生成图片命名为save_dir/total_uid-o-0.jpg等完整性续跑get_saved_ids只把「JSON 中输出步数齐全且对应图片文件存在」的样本视为已完成避免半截结果被误跳过。GPT 裁判打分export OPENING_JUDGE_BASE_URLhttp://127.0.0.1:8000 export OPENING_JUDGE_API_KEYyour_api_key python3 OpenING/eval_opening.py \ --mode output_dir \ --opening_root /path/to/OpenING \ --output_dir ./output/opening_interleave/opening_output \ --output_file /path/to/OpenING/gpt-score_results_opening_output.json \ --workers 4 \ --save_every 10eval_opening.py同时支持「单个模型输出目录」与「包含多个输出的父目录」两种输入方式--mode output_dir与目录遍历模式。裁判结果默认复用已存在的记录--retry_invalid_scores只重试格式非法的分数记录。脚本运行时会自动定位基准目录下的test_data.jsonl与裁判 prompt 文件并校验OPENING_JUDGE_BASE_URL与OPENING_JUDGE_API_KEY也支持--api_base_url、--api_key、--judge_model显式指定默认裁判模型为gpt-4o见 eval_opening.py。裁判覆盖 7 项指标Correctness、Image-Text Coherency、Multi-step Consistency、Content Quality、Human Preference Alignment、Completeness、Content Richness。结果汇总为 CSVpython3 OpenING/summarize_GPT_scores.py \ --input_json /path/to/OpenING/Interleaved_Arena/gpt-score_results_opening_output.json \ --output_csv /path/to/OpenING/Interleaved_Arena/model_score_summaries.csv \ --filtered_json /path/to/OpenING/Interleaved_Arena/gpt-score_results_filtered.json这一步把原始裁判结果转换为便于横向对比的 CSV并可选择性输出剔除无效分数的过滤版 JSON。Unimmmu交错生成 外部基准打分Unimmmu 脚本支持「纯理解i2t」与「交错生成interleave」两条路径本指南聚焦交错生成模式。模型通过transformers加载交错推理调用的是model.interleave_gen(...)inference_unimmmu.py支持think模式的 KV Cache 清理与生成后的显存显式回收。单卡推理python3 Unimmmu/inference_unimmmu.py \ --model_path /path/to/model \ --data_path /path/to/unimmmu_direct.jsonl \ --output_dir ./output/unimmmu_interleave \ --inference_mode interleave \ --cfg_scale 4.0 \ --img_cfg_scale 1.0 \ --num_steps 50多卡torchruntorchrun --nproc_per_node2 --master_port29503 Unimmmu/inference_unimmmu.py \ --model_path /path/to/model \ --data_path /path/to/unimmmu_direct.jsonl \ --output_dir ./output/unimmmu_interleave \ --inference_mode interleave \ --cfg_scale 4.0 \ --img_cfg_scale 1.0 \ --num_steps 50单进程多卡device_mappython3 Unimmmu/inference_unimmmu.py \ --model_path /path/to/model \ --data_path /path/to/unimmmu_direct.jsonl \ --output_dir ./output/unimmmu_interleave \ --inference_mode interleave \ --device_map auto \ --max_memory_per_gpu_gb 60 \ --cfg_scale 4.0 \ --num_steps 50分片合并python3 Unimmmu/merge_shards.py \ --data_path /path/to/unimmmu_direct.jsonl \ --shard_dir ./output/unimmmu_interleave/shards \ --output_file ./output/unimmmu_interleave/unimmmu_results.jsonl参数含义--inference_mode本基准使用interleave。--data_path基准 JSONL 路径。--output_dirJSONL 结果与生成图片的根目录。--resume跳过已完成hash_uid。--num_shards、--shard_rank手动数据分片。--device_map auto通过 Hugging Face 单进程多卡加载。主要输出文件是unimmmu_results.jsonl交错生成的图片写入output_dir/images/task/文件名{hash_uid}_gen_{idx}.png并保留full_generated_text含think块与去掉推理过程的model_response两个字段。数据加载支持 OpenAI 风格的messages结构textimage_url混合 content解析L467-L504。已知注意点当前实现中--resume先于分片选择执行因此单独重跑某个分片最稳妥的方式是先删除该分片输出再不带--resume重跑。外部打分python3 Unimmmu/calculate_score.py \ --input_file ./output/unimmmu_interleave/unimmmu_results.jsonl \ --output_dir ./output/unimmmu_interleave/scores \ --benchmark_path /path/to/image_text_agentcalculate_score.py本身不实现打分逻辑而是把实际评分委托给--benchmark_path指向的外部基准评测仓库。RealUnifyGEU 与 UEG 两条评测路线GEU交错生成 规则打分GEU 脚本同时支持step与interleave两种模式其中交错路径是 SenseNova-U1 评测的主路径interleave 模式下输入图片与编辑指令同时进入model.interleave_gen与 Unimmmu 共用同一套交错推理引擎代码。参考推理命令python3 Realunify/inference_realunify.py \ --model_path /path/to/model \ --data_path /path/to/GEU_step_processed.jsonl \ --output_dir ./output/realunify_interleave \ --inference_mode interleave \ --cfg_scale 4.0 \ --img_cfg_scale 1.0 \ --num_steps 50多卡版本torchrun --nproc_per_node2 --master_port29501 Realunify/inference_realunify.py \ --model_path /path/to/model \ --data_path /path/to/GEU_step_processed.jsonl \ --output_dir ./output/realunify_interleave \ --inference_mode interleave \ --cfg_scale 4.0 \ --img_cfg_scale 1.0 \ --num_steps 50device_map 版本python3 Realunify/inference_realunify.py \ --model_path /path/to/model \ --data_path /path/to/GEU_step_processed.jsonl \ --output_dir ./output/realunify_interleave \ --inference_mode interleave \ --device_map auto \ --max_memory_per_gpu_gb 60 \ --cfg_scale 4.0 \ --num_steps 50分片合并python3 Realunify/merge_shards.py \ --data_path /path/to/GEU_step_processed.jsonl \ --shard_dir ./output/realunify_interleave/shards \ --output_file ./output/realunify_interleave/realunify_results.jsonl主要结果文件为realunify_results.jsonl。字段约定step模式下generated_image存[input_image, edited_image]interleave模式下生成序列存于generated_images。与 Unimmmu 相同resume当前先于手动分片选择执行。若希望输出图片为固定尺寸加--target_image_size 1024接受1024或1024x1024两种写法非正方形会报错见 inference_realunify.py。规则打分python3 Realunify/calculate_score.py \ --input_file ./output/realunify_interleave/realunify_results.jsonl \ --output_file ./output/realunify_interleave/realunify_scores.jsoncalculate_score.py 是纯规则打分优先从answer.../answer标签抽取答案抽不到则回退到model_response中第一个A/B/C/D字母大小写不敏感再与 ground truth 比对结果按task_type分项统计正确数/总数/准确率并输出 Overall 汇总L16-L42、L65-L132。UEG三种推理模式 用户自供裁判UEG 脚本暴露understand_t2i、interleave、t2i三种推理模式覆盖「读图作答」「图文交错推理」「文本生图」三类任务。understand_t2i模式python3 Realunify/inference_realunify_ueg.py \ --model_path /path/to/model \ --data_path /path/to/UEG_step.json \ --output_dir ./output/ueg_understand_t2i \ --inference_mode understand_t2i \ --cfg_scale 4.0 \ --num_steps 50interleave模式python3 Realunify/inference_realunify_ueg.py \ --model_path /path/to/model \ --data_path /path/to/UEG_step.json \ --output_dir ./output/ueg_interleave \ --inference_mode interleave \ --cfg_scale 4.0 \ --timestep_shift 3.0 \ --num_steps 50t2i模式python3 Realunify/inference_realunify_ueg.py \ --model_path /path/to/model \ --data_path /path/to/UEG_step.json \ --output_dir ./output/ueg_t2i \ --inference_mode t2i \ --cfg_scale 4.0 \ --num_steps 50与 GEU 脚本不同UEG 脚本不暴露手动--num_shards/--shard_rank多进程切分依赖torchrun提供的分布式 rank。输出保留生成图片路径与后续question_list的对应关系。打分命令python3 Realunify/calculate_score_ueg.py \ --input_file ./output/ueg_interleave/ueg_results.json注意calculate_score_ueg.py 当前仓库中只是脚手架——它期待用户提供实现了generate_text(prompt, image_paths, temperature)方法的GeminiAPI裁判封装并在入口处直接raise NotImplementedError。打分逻辑本身已定义清楚对每个样本的question_list逐题让裁判看图回答 yes/no与 ground truth 比对任一体不符则该样本记 0 分最终按 6 类任务world_knowledge、commonsense_reasoning、logical_reasoning、mathematical_reasoning、scientific_reasoning、code_to_image分项输出准确率L73-L176。补上GeminiAPI实现即可跑通。一键编排并行运行全部本地基准RealUnify (GEU)、RealUnify (UEG)与Unimmmu相互独立可并行执行BabyVision与OpenING则各自走前述「推理 评测」流水线。典型本地评测流程如下MODEL_PATH/path/to/hf_model torchrun --nproc_per_node2 --master_port29501 Realunify/inference_realunify.py \ --model_path ${MODEL_PATH} \ --data_path /path/to/GEU_step_processed.jsonl \ --output_dir ./output/realunify_interleave \ --inference_mode interleave \ --cfg_scale 4.0 \ --img_cfg_scale 1.0 \ --num_steps 50 python3 Realunify/inference_realunify_ueg.py \ --model_path ${MODEL_PATH} \ --data_path /path/to/UEG_step.json \ --output_dir ./output/ueg_understand_t2i \ --inference_mode understand_t2i \ --cfg_scale 4.0 \ --num_steps 50 torchrun --nproc_per_node2 --master_port29503 Unimmmu/inference_unimmmu.py \ --model_path ${MODEL_PATH} \ --data_path /path/to/unimmmu_direct.jsonl \ --output_dir ./output/unimmmu_interleave \ --inference_mode interleave \ --cfg_scale 4.0 \ --img_cfg_scale 1.0 \ --num_steps 50排错指南现象处理方式数据集文件找不到检查--data_pathOpenING 场景检查--meta-path与--data-file-name的组合。路径里仍含DATA_ROOT脚本在使用占位默认值请显式传入真实路径。样本被意外跳过输出已存在导致检查--resume、--overwrite或分片输出。单独重跑某个分片行为异常对Unimmmu与RealUnify (GEU)先删除该分片输出再不带--resume重跑。UEG 打分立即失败calculate_score_ueg.py需要用户自供的GeminiAPI封装先补齐再运行。其他可参照的工程细节所有本地推理脚本均以set_random_seeds固定随机种子默认 42并将cudnn.deterministicTrue、benchmarkFalse保证多分片、多进程间结果可复现交错推理每完成一个样本都会gc.collect()torch.cuda.empty_cache()显式回收显存防止长序列评测中的显存累积。各评测管线的评分实现与输入输出格式约定可继续在 evaluation/interleave/BabyVision、evaluation/interleave/OpenING、evaluation/interleave/Unimmmu、evaluation/interleave/Realunify 目录下对照源码逐一核实。赞分享人工智能大模型多模态计算机视觉媒体生成预训练【免费下载链接】SenseNova-U1SenseNova-U series: Native Unified Paradigm with NEO-unify from the First Principles项目地址https://gitcode.com/gh_mirrors/se/SenseNova-U1点击查看免费下载相关推荐PaddleNLP 实战ChineseBERT 融合字形与拼音信息的汉语预训练模型微调指南PaddleNLP 实战ChineseBERT 融合字形与拼音信息的汉语预训练模型微调指南 导读 本文围绕 PaddleNLP 仓库中 ChineseBERT人工智能大模型多模态计算机视觉媒体生成预训练isomorphic-git 的 git.fetch 全解析从远程仓库拉取提交的 API 参数、返回值与底层实现isomorphic git 的 git.fetch 全解析从远程仓库拉取提交的 API 参数、返回值与底层实现 导读 本文以 isomorphic git人工智能大模型多模态计算机视觉媒体生成预训练SenseNova-U1 视觉理解基准评测实战指南LightLLM EASI/VLMEvalKit 全流程部署与评测SenseNova U1 视觉理解基准评测实战指南LightLLM EASI/VLMEvalKit 全流程部署与评测 本文是 evaluation/eas人工智能大模型多模态计算机视觉媒体生成预训练上一篇ioredis连接池管理高效资源利用与连接复用下一篇LiteFlow自定义数据生成组件化流程引擎的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考