杂记 | Langchain中few-shot提示词模板的使用(给提示词添加示例)

这篇具有很好参考价值的文章主要介绍了杂记 | Langchain中few-shot提示词模板的使用(给提示词添加示例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


Langchain是一个集成多个大语言模型的开源框架,可以使用它来快速开发大语言模型应用。

本文的代码使用到的模块:

from typing import List, Dict
from langchain import PromptTemplate, FewShotPromptTemplate, LLMChain, OpenAI

01 普通的提示词模板

先来看看普通的提示词模板如何使用,效果如何:

# 创建大语言模型对象 这里使用gpt-3.5最新的指令模型
llm = OpenAI(model="gpt-3.5-turbo-instruct", temperature=0)

# 设置提示词模板 其中的{input}为等待用户填充问题的插槽
template = "我会给你一种物品名称的输入,你需要输出该类物品的一种具体事物,且使用量词开头。\nInput: {input}"

# 提示词模板对象 指定接收参数的参数名为input 也就是上述插槽中的内容
prompt = PromptTemplate(input_variables=["input"], template=template)

# 大语言模型 + 提示词模板对象 -> 生成一个chian
chain = LLMChain(llm=llm, prompt=prompt)

# 执行chain并查看结果
print(chain.run(input="手机"))

在这个示例中,对大模型的输入为:

我会给你一种物品名称的输入,你需要输出该类物品的一种具体事物,且使用量词开头。
Input: 手机

大模型的输出为:

Output: 一部手机

可以看到输出并不能很好地满足我们的需求,因为我希望输出的是该类物品的一件具体的事物,例如:一部华为手机,而它只是简单的给我添加了个量词就完事了。而且它还自己添加了output前缀。

02 few-shot提示词模板

下面使用few-shot提示词模板试试:

# 创建大语言模型
llm = OpenAI(model="gpt-3.5-turbo-instruct", temperature=0)

# 创建一个实例列表
examples: List[Dict[str, str]] = [
    {"input": "水果", "output": "一个苹果"},
    {"input": "宠物", "output": "一只猫"},
    {"input": "家电", "output": "一台冰箱"}
]

# 创建提示词模板对象 该对象中的template部分插槽需要与示例中的键对应
example_prompt = PromptTemplate(input_variables=["input", "output"], template="Input: {input}\n{output}")

# 合成few-shot提示词模板对象
prompt = FewShotPromptTemplate(
    prefix="我会给你一种物品名称的输入,你需要输出该类物品的一种具体事物,且使用量词开头。",  # 示例提示词之前添加的内容
    examples=examples,  # 示例列表
    example_prompt=example_prompt,  # 容纳示例的提示词模板对象
    suffix="Input: {input}",  #  示例提示词之后添加的内容
    input_variables=["input"]  # 等待用户输入的参数插槽
)

# 创建一个chain
chain = LLMChain(llm=llm, prompt=prompt)

# 执行chain并查看结果
print(chain.run(input="手机"))

使用few-shot提示词模板后,对大模型的输入为:

我会给你一种物品名称的输入,你需要输出该类物品的一种具体事物,且使用量词开头。

Input: 水果
一个苹果

Input: 宠物
一只猫

Input: 家电
一台冰箱

Input: 手机

大模型的输出为:

一部iPhone

比起无示例版本,输出结果有了明显改观。文章来源地址https://www.toymoban.com/news/detail-724266.html

到了这里,关于杂记 | Langchain中few-shot提示词模板的使用(给提示词添加示例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • few-shot / one shot / zero shot object counting论文汇总

    code: https://paperswithcode.com/paper/class-agnostic-counting 摘要:几乎所有现有的计数方法都是为一个特定的对象类而设计的。然而,我们的工作旨在创建一个能够计数任何类对象的计数模型。为了实现这一目标,我们将计数表述为一个匹配问题,使我们能够利用对象计数问题中自然存

    2024年02月09日
    浏览(44)
  • T5模型:打破Few-shot Learning的次元壁垒

    ❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈 (封面图由ERNIE-ViLG AI 作画大模型生成) 自然语言处理(NLP)是一种用于理

    2024年03月17日
    浏览(45)
  • 【计算机视觉】Zero-shot, One-shot和Few-shot的理解

    机器学习任务按照对 样本量 的需求可以分为:传统监督式学习、Few-shot Learning、One-shot Learning、Zero-shot Learning。 传统learning,炼丹模式。传统深度学习的学习速度慢,往往需要学习海量数据和反复训练后才能使网络模型具备不错的泛化能力,传统learning可以总结为:海量数据

    2024年02月04日
    浏览(51)
  • 【论文阅读】 Few-shot object detection via Feature Reweighting

    Few-shot object detection的开山之作之一 ~~ 属于Metric-based Methods 特征学习器使用来自具有足够样本的基本类的训练数据来 提取 可推广以检测新对象类的meta features。The reweighting module将新类别中的一些support examples转换为全局向量,该全局向量indicates meta features对于检测相应物体的重

    2023年04月09日
    浏览(41)
  • 【论文阅读】Language Models are Few-Shot Learners(GPT-3)

    本文简要介绍了GPT-3的背景,模型架构,训练数据以及训练方式部分。具体训练细节,实验结果很多,可以在用到的时候再看 本文剖析了pretrain-finetune架构存在的问题: 对于每个新的任务,都需要大量的标注数据 将表达能力更强的模型(预训练阶段要求用大模型)在比较窄的

    2024年02月14日
    浏览(50)
  • (GPT3)Language Models are Few-Shot Learners论文阅读

    论文地址:https://arxiv.org/pdf/2005.14165v4.pdf         最近的工作表明, 通过对大量文本语料库进行预训练,然后对特定任务进行微调,许多 NLP 任务和基准测试取得了实质性进展 。 虽然在体系结构中通常与任务无关,但此方法仍然需要特定于任务的微调数据集,其中包含数

    2024年02月08日
    浏览(60)
  • 论文笔记|CVPR2023:Semantic Prompt for Few-Shot Image Recognition

    论文地址:https://arxiv.org/pdf/2303.14123.pdf 这是一篇2023年发表在CVPR上的论文,论文题目是Semantic Prompt for Few-Shot Image Recognitio,即用于小样本图像识别的语义提示。 第一,最近几项研究利用 语义信息 来进行小样本学习的研究。 一方面因为通过少量样本去识别新类别很难,就想使

    2024年02月04日
    浏览(49)
  • 论文阅读---Albert :Few-shot Learning with Retrieval Augmented Language Models

    增强语言模型 Augmented Language Models https://arxiv.org/abs/2208.03299 提前知识: BERT (Bidirectional Encoder Representations from Transformers)是一种预训练语言模型,它通过在大规模文本数据上进行预训练,学习文本的双向表示,并在多种NLP任务中展现出卓越的性能。BERT的双向性意味着它能够

    2024年04月23日
    浏览(38)
  • 【论文精读】CONTAINER: Few-Shot Named Entity Recognition via Contrastive Learning

    一篇来自ACL2022的文章,采用对比学习的方法提高模型的性能,在实现方法上和实验论证部分很值得借鉴,至于和大模型性能的对比,还需要进一步的调研~ 低资源场景NER不可或缺,但现有的方法仅从源域学习特定的语义特征和中间表示,这会影响对目标域的泛化能力,降低性

    2024年02月05日
    浏览(54)
  • 论文笔记|CVPR2023:Supervised Masked Knowledge Distillation for Few-Shot Transformers

    这篇论文的题目是 用于小样本Transformers的监督遮掩知识蒸馏 论文接收: CVPR 2023 论文地址: https://arxiv.org/pdf/2303.15466.pdf 代码链接: https://github.com/HL-hanlin/SMKD 1.ViT在小样本学习(只有少量标记数据的小型数据集)中往往会 过拟合,并且由于缺乏 归纳偏置 而导致性能较差;

    2024年02月06日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包