Coggle数据科学 | 科大讯飞AI大赛:画面指令策略游戏挑战赛 Baseline

本文来源公众号“Coggle数据科学”,仅用于学术分享,侵权删,干货满满。

原文链接:科大讯飞AI大赛:画面指令策略游戏挑战赛 Baseline

  • 赛题名称:画面指令策略游戏挑战赛

  • 赛题类型:多模态、大模型

  • 赛题任务:赛题需要结合游戏画面,推测未来1秒内角色运动的轨迹,以此来模拟玩家的行为。

https://challenge.xfyun.cn/topic/info?type=VisualCommand-GameStrategy&option=ssgy

赛题背景

传统的策略游戏(RTS、模拟经营等)依赖键盘、鼠标或触屏进行复杂的操作,如单位选择、路径规划、技能释放等。这种交互方式虽然成熟,但在特定场景下(如智能家居控制、教育娱乐、创新人机交互界面)可能存在局限。

图片

随着计算机视觉 (CV) 和大型多模态模型 (LMM) 的飞速发展,AI不仅能“看懂”图像,还能“理解”复杂的视觉语义和用户意图。这使得一种全新的游戏交互模式成为可能:玩家不再依赖传统的输入设备,而是通过展示特定的“画面指令”(如手绘草图、特定手势、或摆放实物)来直接控制游戏。这不仅仅是简单的图像识别,而是要求模型能够深度理解这些画面背后蕴含的玩家策略意图,并将其转化为游戏内的复杂操作。

赛题任务

赛题需要结合游戏画面,推测未来1秒内角色运动的轨迹,以此来模拟玩家的行为。

评审规则

赛题提供了游戏画面数据集,分为训练集和测试集。选手可以使用训练集来调整模型效果,并在测试集上进行推理。其中"image", "action"分别为游戏画面和对应的行为。

评审规则

字符级雅卡尔相似度(Character Jaccard Similarity)是一种基于集合相似度的评估指标,用于衡量模型生成的答案与标准答案之间的字符级别匹配程度。相似度越高,排名更加靠前。

赛题Baseline

加载VL模型

https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct

from transformers import Qwen2_5_VLForConditionalGeneration, AutoTokenizer, AutoProcessor
from qwen_vl_utils import process_vision_info

model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
    "Qwen/Qwen2.5-VL-7B-Instruct", torch_dtype="auto", device_map="auto"
)

processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct")

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
            },
            {"type": "text", "text": "Describe this image."},
        ],
    }
]

# Preparation for inference
text = processor.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
    text=[text],
    images=image_inputs,
    videos=video_inputs,
    padding=True,
    return_tensors="pt",
)
inputs = inputs.to("cuda")

# Inference: Generation of the output
generated_ids = model.generate(**inputs, max_new_tokens=128)
generated_ids_trimmed = [
    out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)

基础提示词

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "image": "test.jpg",
            },
            {"type": "text", "text": """你是一位顶级的游戏AI策略分析师,你的任务是分析并预测玩家在即时战略游戏中的下一步行动。
现在,你将看到一张游戏画面。请根据这张画面中的所有信息,包括但不限于角色位置、敌人分布、地图障碍物、以及游戏UI,预测角色在未来1秒内的运动轨迹。你的输出必须是精确描述轨迹的文本。

预测未来的运动轨迹:"""},
        ],
    }
]

进阶提示词

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "image": "test.jpg",
            },
            {"type": "text", "text": """请执行以下任务:
1. **分析输入图片**:这是一张即时战略游戏画面。识别并理解画面中的所有动态元素,尤其是玩家控制的角色和其周围环境。
2. **预测轨迹**:根据你对游戏画面的理解,预测玩家控制的角色在接下来1秒内可能执行的移动路径。
3. **生成输出**:你的输出必须是清晰、简洁的文本,准确描述预测的运动轨迹。避免任何多余的解释或对话。
4. **输出格式**:输出应直接为预测的轨迹描述文本。

请直接输出最终的预测结果:"""},
        ],
    }
]

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值