在人工智能技术快速发展的今天,大语言模型(LLM)已经展现出惊人的能力。然而,让这些模型生成规范的结构化输出仍然是一个难以攻克的技术难题。不论是在开发自动化工具、构建特定领域的解决方案,还是在进行开发工具集成时,都迫切需要LLM能够产生格式严格、内容可靠的输出。

今天的这篇文章内容很简单,但用途却非常广泛,MTP(Meaning Typed Prompting)是一种新的提示词技术,它的主要目的是让AI生成更规范、更可靠的结构化输出,关键它还支持多模态输出!!!

在这里插入图片描述

MTP就像是一个"模板语言",告诉这个助手:"我要的答案必须是这个格式,每个部分都有特定的含义和规则。"使用MTP的好处是:输出格式统一,数据更容易处理,错误更少,AI更容易理解你的要求。使用MTP也很简单,第一步:定义你要什么;第二步,说明含义;第三步,要求输出格式。

01

结构化输出困境

当前业界普遍采用的解决方案主要依赖于零样本或少样本提示技术。开发人员需要提供JSON模板或Schema来定义期望的输出格式,然后通过后处理步骤来提取和验证生成的数据。这种方法存在多个严重的问题:

在这里插入图片描述

1. 过度依赖JSON Schema导致模型推理能力受限

2. 详细的Schema定义会大量增加token消耗

3. 难以保证语法的正确性,经常产生无效输出

4. 需要投入大量人力编写和维护提示模板

5. 系统适应性差,难以快速响应需求变化

6. 输出质量不稳定,需要频繁进行修正和验证

02

MTP技术原理深度解析

核心思想突破

含义类型化提示(Meaning Typed Prompting, MTP)技术的提出,标志着结构化输出生成领域的一次重要突破。它的核心思想可以概括为三个方面:

1. 类型系统的创新: 扩展传统的内置类型和自定义类型系统,引入自然语言表达的类型定义方式。这种创新让类型定义不再是冰冷的符号,而是具有丰富语义的描述。

2. 表示方式的改进: 摒弃繁琐的JSON Schema,转而采用更直观的Python类表示方式来请求结构化输出。这一改变大大降低了系统复杂度,提升了开发效率。

3. 语义信息的融入: 将语义信息直接嵌入到提示中,减少对外部抽象的依赖。这种方式让模型能够更好地理解任务要求,产生更精准的输出。

03

技术架构详解

MTP的提示分为两个部分,System Message 和 User Message

MTP的技术架构包含以下几个关键组件:

1. Python类表示系统

传统的JSON Schema方式:

{  
  "properties":{  
    "first_name":{"title": "First Name", "type": "string"},  
    "last_name":{"title": "Last Name", "type": "string"},  
    "yob":{"title": "Year of Birth", "type": "integer"},  
    "likes":{  
      "items":{"type": "string"},  
      "title": "Interests",  
      "type": "array"  
    }  
  },  
  "required":["first_name", "last_name", "yob", "likes"],  
  "title": "Person",  
  "type": "object"  
}

MTP的Python类表示方式:

Person (Class) -> Person(  
    first_name: str,  
    last_name: str,  
    yob: int,  
    likes: list[str]  
)

这种表示方式带来的优势包括:

- 代码量显著减少,提高了可读性

- 减少特殊字符使用,降低token消耗

- 更符合Python开发者的习惯

- 便于维护和修改

- 支持IDE的代码补全和类型检查

2. 表达性类型定义系统

MTP允许开发者使用自然语言来增强类型定义的语义表达:

Person (Class) -> Person(  
    first_name: str - "Given name of the person",  
    last_name: str - "Family name of the person",  
    yob: int - "Year of Birth (e.g., 1990)",  
    likes: list[str] - "List of favorite activities and interests",  
    location: Semantic[str, "City, Country format"] - "Current residence location",  
    status: Semantic[str, "Active | Inactive | Pending"] - "Account status"  
)

这种定义方式的优势:

1. 提供了清晰的语义上下文

2. 减少了理解歧义

3. 支持复杂的类型约束

4. 便于文档生成

5. 提高了代码的自解释性

3. 提示组件系统

MTP提示包含以下核心组件:

1. 目标声明:

@llm.enhance("Extract structured information from user profile")

2. 信息上下文:

Information(  
    examples=[  
        Person(first_name="John", last_name="Doe", ...),  
        Person(first_name="Jane", last_name="Smith", ...)  
    ],  
    context="Consider cultural variations in name formats"  
)

3. 输出类型定义:

Output[Person] _# 指定返回类型为Person对象_

4. 输入参数:

def extract_profile(  
    text: str - "Raw profile text",  
    language: str - "Profile language"  
) -> Person:  
    pass

04

Semantix框架实现细节

语义类型系统实现

Semantix框架实现了一个强大的语义类型系统:

class Semantic(Generic[T, S]):  
    def __init__(self, base_type: T, semantic: S):  
        self.base_type = base_type  
        self.semantic = semantic  
          
    def validate(self, value: Any) -> bool:  
        # 实现类型验证逻辑  
        pass

Semantix是一个Python库,可自动生成意义类型的提示。Semantix允许开发人员通过添加名为enhance的装饰器来将简单函数增强为增强功能。语义类型提示允许开发人员添加富有表现力的类型定义。上图Semantix将Types、Variables、Functions和Main Function合并为一个增强函数,该函数在运行时生成MTP。下图有详细的运行示例。

05

实验评估详细分析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1. 多标签分类任务

性能分析:

- Semantix在准确率上领先其他框架

- Token使用效率处于较好水平

- 具有极高的可靠性

2. 命名实体识别任务

性能分析:

- Semantix在Token效率上有明显优势

- 准确率与其他框架相当

- 整体性能表现均衡

3. 合成数据生成任务

性能分析:

- Semantix保持了极高的可靠性

- 数据多样性表现良好

- Token使用量最优

06

实际应用案例

**安装很简单,一条命令就搞定了:
**

**示例一:**还是用那道你已经很熟悉的题目,草莓strawberry这个单词里有几个"r"?

**示例二:**再找一张小票,能分析这张小票,也能分析一下Video:

**示例三:**食品分析案例利用多模态LLM通过CoT来识别拉面中的营养数据,包括卡路里、蛋白质、碳水化合物、脂肪、纤维和钠水平。

在这里插入图片描述

我运行的结果:

FoodAnalysis(nutrition_info=NutritionInformation(calories=650, protein=30, carbohydrates=75, fats=25, fiber=5, sodium=1500), ingredients=[‘wheat noodles’, ‘chicken or pork’, ‘soft-boiled eggs’, ‘shiitake mushrooms’, ‘broth’, ‘nori seaweed’, ‘leafy greens’], health_rating=‘Moderately Healthy - high protein and balanced nutrients but high in sodium’)

模型不一致,图片清晰度不一致,导致图片识别存在误差。

MTP技术的出现为LLM结构化输出生成提供了一个新的解决方案。通过将语义信息直接嵌入到类型定义中,它既保持了系统的简单性,又实现了更好的性能表现。对于正在开发AI应用的朋友们来说,MTP提供了一个强大而灵活的工具,有助于提高开发效率和输出质量,我用模型网页界面和代码分别向您展示了MTP技术的结果。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐