当前位置: 首页 > news >正文

多模态模型在做选择题时,如何设置Prompt,如何精准定位我们需要的选项

我们这里以Qwen2-VL-7B-instruct为例:

假设我们需要分析一张图片的情绪(从现有的情绪中进行选择),并且我们需要它以思维链的形式展现出来,我们可以这样设置prompt:

emotion6_CoT = """
Analyze the given image and determine the emotion it represents.
Emotional options :(A) anger (B) disgust (C) fear (D) joy (E) sadness (F) surprise (G) neutral
Your output should follow this format strictly:
# analyze 
Your analyze here
# answer
Choice index, one of A-G
"""

这样设计的好处是,最终的answer中一定会有 # analyze 和 # answer 我们就可以利用正则表达式去进行准确提取:假设我们要提取其中的选项,我们可以这样写:

def remove_words(s):
    # 定义需要删除的词汇列表
    words_to_remove = ['Choice', 'index', 'one', 'of', 'A-G']

    # 使用正则表达式删除这些词
    for word in words_to_remove:
        s = re.sub(r'\b' + word + r'\b', '', s)

    # 去除多余的空格
    s = re.sub(r'\s+', ' ', s).strip()

    return s

#ouput为输出列表,我们需要将里面的字符串进行提取,所以为output_text[0]。

option = re.search(r'[A-H]', remove_words(output_text[0].split("# answer")[1]))

最终,我们可以借用字典去匹配对应情绪即可。

注意:在一些推理能力不强的模型中(例如 Qwen2-base-7B),可能会遇到输出依然不遵循prompt的回答,这是正常的。

http://www.dtcms.com/a/54956.html

相关文章:

  • 【Kubernetes 指南】基础入门——Kubernetes 基本概念(四)
  • Python在DevOps中的应用:自动化CI/CD管道的实现
  • 【电控笔记z29】扰动估测器DOB估测惯量J-摩擦系数B
  • 私有云基础架构与运维(一)
  • Mybatis中的设计模式
  • SpringBoot+Vue 多模块(子父工程)项目的注册登录及增删改查
  • 软件工程画图题
  • leetcode202 快乐数 哈希结构 集合
  • Ubuntu 安装docker docker-compose
  • 颠覆传统软件测试!Browser Use WebUI+DeepSeek:软件测试行业的革命性突破
  • 深入剖析Android Service:原理、生命周期与实战应用
  • Python中判断静态方法的六种方式
  • 物联网系统搭建
  • 【橘子golang】从golang来谈闭包
  • 【五.LangChain技术与应用】【29.LangChain Agent小案例1:智能代理的实战应用】
  • 6. 机器人实现远程遥控(具身智能机器人套件)
  • 【JAVA架构师成长之路】【持久层】第5集:PreparedStatement防SQL注入
  • 计算机数据库三级刷题总结(博主89分已过,总结的内容分享)
  • Linux 开发工具
  • 学习使用ESP8266进行MQTT通信并在网页上可视化显示
  • VEC系列-RabbitMQ 入门笔记
  • 三款好用远程终端软件
  • FPGA时序约束的几种方法
  • MAVEN手动配置(阿里云)全教程
  • 【Linux———信号精讲】
  • DELETE/ UPDATE/ INSERT 语句会自动加锁
  • HarmonyOS:基于hmrouter实现Page的生命周期监听
  • 【监督学习】支持向量机步骤及matlab实现
  • Ruby爬虫如何控制并发数量:爬取京东电子产品
  • 在 Docker 中,无法直接将外部多个端口映射到容器内部的同一个端口