prompt 代码示例

5 篇文章 0 订阅

1. 定义任务

from openprompt.data_utils import InputExample
classes=[
    'negative',
    'positive'
]

dataset=[
    InputExample(
        guid = 0,
        text_a = "Albert Einstein was one of the greatest intellects of his time.",
    ),
    InputExample(
        guid = 1,
        text_a = "The film was badly made.",
    ),
]

2. 定义预训练语言模型

from openprompt.plms import load_plm
plm,tokenizer,model_config,WrapperClass=load_plm('bert',"bert-base-cased")

3. 定义prompt模板

from openprompt.prompts import ManualTemplate
promptTemplate=ManualTemplate(
    text='{"placeholder":"text_a"} It was {"mask"}',
    tokenizer=tokenizer,
)

4. 定义输出-label映射

from openprompt.prompts import ManualVerbalizer
promptVerbalizer=ManualVerbalizer(
    classes=classes,
    label_words={
        'negative':['bad'],
        'positive':['good','wonderful','great'],
    },
    tokenizer=tokenizer,
)

5. 组合构建为PromptModel类

from openprompt import PromptForClassification
promptModel=PromptForClassification(
    template=promptTemplate,
    plm=plm,
    verbalizer=promptVerbalizer,
)

6. 定义dataloader

from openprompt import PromptDataLoader
data_loader=PromptDataLoader(
    dataset=dataset,
    tokenizer=tokenizer,
    template=promptTemplate,
    tokenizer_wrapper_class=WrapperClass,
)

7. 开始训练、测试

# making zero-shot inference using pretrained MLM with prompt
promptModel.eval()
with torch.no_grad():
    for batch in data_loader:
        logits=promptModel(batch)
        preds=torch.argmax(logits,dim=-1)
        print(classes[preds])
        # predictions would be 1, 0 for classes 'positive', 'negative'

参考知乎

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值