AI的学习之路_3_关于提示词的简单理解

什么是提示词

提示词就是你给 AI 的清晰指令,决定 AI 输出的内容和质量。

怎么利用提示词提高ai的生成效率

  1. 详细的描述
  2. 让模型充当某个角色
  3. 使用分隔符去分割不同的输入部分
  4. 对任务指定步骤
  5. 提供例子
  6. 通过参考模型让ai回答

Zero-shot

Zero-shot学习(Zero-shotLearning)是指在训练阶段不存在与测试阶段完全相同的类别,但是模型可以使用训练过的知识来推广到测试集中的新类别上。
这种能力被称为“零样本”学习,因为模型在训练时从未见过测试集中的新类别,在模型训练和提示词优化中均有体现。“无样本学习”
在提示词优化中:
· Zero-shot思想用于基于已训练的能力,不提供任何示例,仅通过语言去描述任务的要求、目标和约束,让模型直接生成结果。
简单来说就是“用语言定义任务,解放(信任)模型的预训练知识”
比如:
请判断””包围的用户评论中的情感倾向,输出正面或负面。”这款代餐鸡胸肉饱腹感很强,吃起来也不柴,很推荐!”

Few-shot

Few-shot学习(Few-shotLearning)是指少样本学习,当模型在学习了一定类别的大量数据后,对于新的类别,只需要少量的样本就能快速学习
对应的有one-shotlearning,单样本学习,也算样本少到为一的情况下的一种few-shot learning。
在提示词优化中:
·Few-shot主要用于基于少量示例,让模型参考示例回答。
简单来说就是“用示例定义任务,在模型的预训练知识的基础上,提升模型回答的对齐精度(比如参考示例的格式)”
比如:
请抽取产品名称和核心卖点2个字段,格式为Json,我提供2个示例。
示例1:MacBookPro高效节能,性能强大,适合牛马工作使用输出:{“产品名称”:“MacBookPro”,“产品卖点”:“高效节能,性能强大”}
示例2:联想笔记本拥有RTX4060独立显卡,畅玩游戏,丝滑流畅输出:{“产品名称”:“联想笔记本”,“产品卖点”:“畅玩游戏,丝滑流畅”}请处理:华为MatepadPro,高清大屏,长效续航,你的好帮手。

举个简单的例子

from openai import OpenAI

client = OpenAI(
    # base_url= "https://dashscope.aliyuncs.com/compatible-mode/v1"
    base_url = "http://localhost:11434/v1"
)

examples_data={
    "正面评价": "这款手机续航超棒,充一次电用一整天,拍照效果也特别清晰,性价比绝了!",
    "负面评价": "快递太慢了,等了5天才到,而且商品有划痕,联系客服也没人回应,太失望了。",
    "中性评价": "收到的商品和描述一致,没有特别惊喜的地方,也没什么不满意的。",
    "无意义评价": "666,路过打卡,随便写写"
}

examples_types=["正面评价", "负面评价", "中性评价", "无意义评价"]

questions = [
    "鞋子尺码很准,上脚特别舒服,走路一点不累,推荐购买!",
    "衣服洗了一次就缩水了,面料也很粗糙,完全不值这个价。",
    "收到货了,包装完好,暂时还没使用,后续追评。",
    "哈哈哈,随便评一下",
    "这个杯子颜值很高,但保温效果一般,只能保温2小时"
]

messages=[
    {"role": "system", "content": "你是电商评论分析专家,将文本分类为[‘正面评价’,‘负面评价’,‘中性评价’,‘无意义评价’],不清楚的分类为'不清楚类别’下面有示例:"}
]

# 这里给ai提供问答模版 以历史对话的形式进行拼装
for key, value in examples_data.items():
    messages.append({"role": "user", "content": value})
    messages.append({"role": "assistant", "content": key})

# 遍历 将问题一个一个的频道对话记录中进行回复
for q in questions:
    resource = client.chat.completions.create(
        model="qwen2.5:3b-instruct-q4_0",
        messages=messages + [{"role": "user", "content": f"按照示例回答这段文本的分类{q}"}]
    )

    print(resource.choices[0].message.content)

image

做一个对比

resource = client.chat.completions.create(
    model="qwen2.5:3b-instruct-q4_0",
    messages=[
        {"role": "user", "content": "衣服洗了一次就缩水了,面料也很粗糙,完全不值这个价,的评价是正面的还是负面的"}
    ]
)

print(resource.choices[0].message.content)

image
明显就啰嗦许多

JSON文本提取

from openai import OpenAI
import json

client = OpenAI(
    #base_url= "https://dashscope.aliyuncs.com/compatible-mode/v1"
    base_url = "http://localhost:11434/v1"
)

# 替换后的抽取字段:电商订单核心信息
schema=["订单号", "下单时间", "商品名称", "购买数量", "支付金额"]

examples_data = [   # 替换后的示例数据(电商订单)
    {
        "content": "用户于2025-03-15 14:30提交订单,订单号为DD20250315001,购买了2件纯棉短袖T恤,通过微信支付完成付款,支付金额为198元。",
        "answers": {
            "订单号": "DD20250315001",
            "下单时间": "2025-03-15 14:30",
            "商品名称": "纯棉短袖T恤",
            "购买数量": "2件",
            "支付金额": "198元"
        }
    },
    {
        "content": "2025-03-16 09:15生成的订单DD20250316008中,用户购买了1台家用空气净化器,支付金额599元,已完成发货。",
        "answers": {
            "订单号": "DD20250316008",
            "下单时间": "2025-03-16 09:15",
            "商品名称": "家用空气净化器",
            "购买数量": "1台",
            "支付金额": "599元"
        }
    }
]

questions = [   # 替换后的待抽取文本
    "2025-03-17 20:05用户下单,订单号DD20250317012,购买3双防滑运动鞋,支付金额459元,预计次日送达。",
    "2025-03-18 11:20生成订单DD20250318005,用户购买了1个智能保温杯,暂未支付。"
]

messages=[
    {"role": "system", "content": f"你帮我完成信息抽取,我给你句子,你抽取{schema}信息,按JSON字符串输出,如果某些信息不存在,用“原文未提及”表示,请参考如下示例:"},
]

for example in examples_data:
    messages.append(
        {"role": "user", "content": example["content"]}
    )

	# 这里需要将列表里字典中的内容转换成字符串,用到了json的函数
    messages.append(
        {"role": "assistant", "content": json.dumps(example["answers"], ensure_ascii=False)}
    )

for q in questions:
    response = client.chat.completions.create(
        # model="qwen2.5-vl-3b-instruct",
        model="qwen2.5:3b-instruct-q4_0",
        messages=messages + [{"role": "user", "content": f"按照上述的例子抽取这个句子里面的信息:{q}"}]
    )
    print(response.choices[0].message.content)

image
结果也是不负众望,这些文本基本就是按照JSON文件的格式进行输出的

posted @ 2026-03-21 18:25  灵垚克府  阅读(0)  评论(0)    收藏  举报