跳到主要内容

图文理解

1. 什么是图文理解任务?

理解(Image-Text-to-Text)是一项利用大模型进行推理的任务,通过输入图像和相关文本提示(Prompt),生成与图像内容和文本提示相匹配的自然语言描述。该任务结合了图像感知与语言生成技术,广泛应用于创意内容生成、图像理解辅助、问答系统等多个场景。

2. 典型应用场景

  • 图像描述生成:针对输入的图片生成对其内容的详细文字描述,例如新闻配图说明、社交媒体发布内容。
  • 视觉问答:结合提示文本,回答与图像内容相关的问题,例如“图片中的动物是如何分布的?”。
  • 创意辅助:根据图片与文本关键词进行扩展性创意内容生成,例如为电影或广告创作相关的脚本或故事背景。
  • 图像超分辨解析:将复杂图像内容通过文本生成进行更细致的语义分析,例如科学研究中的数据标注辅助。

3. 影响推理效果的关键因素

playground

模型选择

不同模型在图像分析能力和语言生成能力上表现有所不同,应根据具体任务需求选择合适的模型。

参数调整

以下是影响图文转文本效果的重要参数:

温度(Temperature)

  • 控制生成文本的创造性程度。
    • 温度高(如 1.0):生成内容具有更多变化和丰富性,但可能失去严谨性。
    • 温度低(如 0.1):生成内容更加精准稳定,但可能较少创意。
  • 应用场景:适用于根据需要调整文本生成的自由度与精确度。

最大长度(Max Length)

  • 限制生成文本的长度,确保输出符合用户需求。例如,为短摘要设置较短的长度,为内容分析生成较长的文本。
  • 应用场景:控制图文描述的详细性和简洁性。

Top-K 采样

  • 限制模型在生成时只考虑概率最高的 K 个候选词。
    • 较小的 K 值:生成内容更正式、更准确,但可能降低创意性。
    • 较大的 K 值:能够生成更多样化和富有想象力的文本内容。
  • 应用场景
    • 强调严谨性:使用较小的 top_k 值。
    • 强调多样性:使用较大的 top_k 值。
    • 未设置时:代表不启用 top_k 采样。

Top-P 采样

  • 根据累计概率动态选择生成词汇。
    • top_p 值:生成内容较为丰富,具有多样性。
    • top_p 值:生成内容更严谨和聚焦于主要描述或回答。
  • 应用场景:设置为中间值时,可平衡随机性和稳健性。

重复惩罚(Repetition Penalty)

  • 降低模型重复生成短语或句子的可能性。较高的重复惩罚可以避免冗余信息,提升生成质量。
  • 应用场景:在生成对图像内容的描述时避免重复信息,使生成的文本更顺畅和连贯。

图像相关性(Image Context Bias)

  • 控制生成文本与输入图像的关联深度。
    • 高偏向程度:生成结果高度聚焦于图像内容本身。
    • 低偏向程度:生成结果结合图像内容和提示文本进行发散性创意。
  • 应用场景:根据任务重点调整结果的图像内容专注度.

4. 代码调用示例

import requests
url = "https://xxxxxxxxxxxx.space.opencsg.com/v1/chat/completions" #endpoint url
headers = {
'Content-Type': 'application/json'
}
data = {
"model": "xzgan001/InternVL2_5-1B",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": [
{"type":"image_url", "image_url":{"url":"https://opencsg.com/images/landing_boosting_models.png"}},
{"type":"text", "text":"Describe this image."}
]
}
],
"stream": True,
"temperature": 0.2,
"max_tokens": 200,
"top_k": 10,
"top_p": 0.9,
"repetition_penalty": 1
}
response = requests.post(url=url, json=data, headers=headers, stream=True)
response.raise_for_status()