浅尝prompt咒语设计:one-shot微调chatglm-6b实践信息抽取

这篇具有很好参考价值的文章主要介绍了浅尝prompt咒语设计:one-shot微调chatglm-6b实践信息抽取。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

近期以chatgpt等文生成LLMS爆火,国内也逐渐开源了中文版的chatgpt,本文以清华大学开源的6b的chatglm为例,实践one-shot微调,设计prompt咒语在信息抽取领域的实验效果。

1、场景描述

给定一个JD的职位要求,需要从描述中抽取出相应的实体。

例如:

'职位要求:1、硕士以上学历。2、计算机相关专业。3、3年以上工作经验。4、熟练掌握python或者c++语言。5、有自然语言处理获奖经历优先'

相应的schema的实体为:

'学历要求': ['硕士'],
'专业要求': ['计算机'],
'工作年限要求': ['3年以上'],
'编程语言': ['python', 'c++'],
'加分项': ['自然语言处理获奖经历'],

2、prompt咒语设计

prompt设计主要点:

  • 告知llms什么是信息抽取任务,以职位要求信息抽取为例:需要告知模型你需要抽取的实体类型有哪些
  • 告知模型输出格式要求,例如:json格式

3、实现

#!/usr/bin/env python
# _*_coding:utf-8_*_
# Author   :    Junhui Yu

import re
import json
from transformers import AutoTokenizer, AutoModel

# 根据需求补充
schema = {
    'JD岗位要求': ['学历要求', '专业要求', '工作年限要求', '编程语言', '加分项']
}

IE_PATTERN = "{}\n\n提取上述句子中{}类型的实体,输出JSON格式,上述句子中不存在的信息用['该JD未要求']来表示,多个值之间用','分隔。"

ie_examples = {
    'JD岗位要求':
        {
            'sentence': '职位要求:1、硕士以上学历。2、计算机相关专业。3、3年以上工作经验。4、熟练掌握python或者c++语言。5、有自然语言处理获奖经历优先',
            'answers': {
                '学历要求': ['硕士'],
                '专业要求': ['计算机'],
                '工作年限要求': ['3年以上'],
                '编程语言': ['python', 'c++'],
                '加分项': ['自然语言处理获奖经历'],
            }
        }
}


def init_prompts():
    ie_prefix = [
        (
            "需要你协助完成信息抽取任务,当我给你一个JD职位要求时,帮我抽取出句子中三元组,并按照JSON的格式输出,上述句子中没有的信息用['该JD未要求']来表示,多个值之间用','分隔。",
            '请输入JD职位描述。'
        )
    ]
    properties_str = ', '.join(schema['JD岗位要求'])
    schema_str_list = f'“JD岗位要求”({properties_str})'
    sentence = ie_examples['JD岗位要求']['sentence']
    sentence_with_prompt = IE_PATTERN.format(sentence, schema_str_list)
    ie_prefix.append((
        f'{sentence_with_prompt}',
        f"{json.dumps(ie_examples['JD岗位要求']['answers'], ensure_ascii=False)}"
    ))

    return {'ie_prefix': ie_prefix}


def format_output(response: str):
    if '```json' in response:
        res = re.findall(r'```json(.*?)```', response)
        if len(res) and res[0]:
            response = res[0]
        response.replace('、', ',')
    try:
        return json.loads(response)
    except:
        return response


def inference(sentences: list, custom_settings: dict):
    for sentence in sentences:
        properties_str = ', '.join(schema['JD岗位要求'])
        schema_str_list = f'“JD岗位要求”({properties_str})'
        sentence_with_ie_prompt = IE_PATTERN.format(sentence, schema_str_list)
        result, _ = model.chat(tokenizer, sentence_with_ie_prompt, history=custom_settings['ie_prefix'])
        result = format_output(result)
        print(sentence)
        print(result)


if __name__ == '__main__':
    tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
    model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()

    sentences = [
        '职位要求:1、本科以上学历。2、电子信息或软件工程专业。3、1-3年工作经验。4、熟练掌握java或者c++语言。5、有相关项目经验优先',
    ]

    custom_settings = init_prompts()
    inference(sentences,
        custom_settings
    )

输出结果:

{
    '学历要求': ['本科以上学历'],
    '专业要求': ['电子信息或软件工程专业'],
    '工作年限要求': ['1-3年'],
    '编程语言': ['熟练掌握java或者c++语言'],
    '加分项': ['有相关项目经验优先']
}

总结

本文通过one-shot微调chatglm-6b在信息抽取领域上的实验,输出效果还可以,当然如果有资源微调更大参数量的LLMS。文章来源地址https://www.toymoban.com/news/detail-505748.html

到了这里,关于浅尝prompt咒语设计:one-shot微调chatglm-6b实践信息抽取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • tune a video:one-shot tuning of image diffusion models for text-to-video generation

    【Diffusion Models】新加坡国立大学、腾讯强强联手Tune-A-Video:One-Shot微调图像扩散模型用于文本到图像的生成!_哔哩哔哩_bilibili 【Diffusion Models】新加坡国立大学、腾讯强强联手Tune-A-Video:One-Shot微调图像扩散模型用于文本到图像的生成!共计2条视频,包括:[论文代码阅读]T

    2023年04月11日
    浏览(48)
  • 【ChatGLM_02】LangChain知识库+Lora微调chatglm2-6b模型+提示词Prompt的使用原则

    运行langchain-ChatGLM-master下面的webui.py文件 (1) 配置知识库 新建知识库 向知识库当中添加文件 支持上传的数据格式:word、pdf、excel、csv、txt、文件夹等。但是此处我试了一下 (2) 文档数据测试 word文档测试: (3) 知识库测试模式 知识库测试只会返回输入内容在当前知识库当中的

    2024年02月14日
    浏览(40)
  • 【本地大模型部署与微调】ChatGLM3-6b、m3e、one-api、Fastgpt、LLaMA-Factory

    本文档详细介绍了使用ChatGLM3-6b大模型、m3e向量模型、one-api接口管理以及Fastgpt的知识库,成功的在本地搭建了一个大模型。此外,还利用LLaMA-Factory进行了大模型的微调。 1.ChatGLM3-6b 2.m3e 3.One-API 4.Fastgpt 5.LLaMA-Factory 1.1创建腾讯云服务器 注意: ChatGLM3-6b的大模型40多个G,购买腾讯

    2024年03月22日
    浏览(45)
  • AI绘图设计师Stable Diffusion 关键词/咒语/提示词词缀使用指南(Prompt)

    基本知识 : 安装及其问题解决参考:《Windows安装Stable Diffusion WebUI及问题解决记录》; 运行使用时问题《Windows使用Stable Diffusion时遇到的各种问题整理》; 模型运用及参数《Stable Diffusion 个人推荐的各种模型及设置参数、扩展应用等合集》; 提示词生图咒语《AI绘图提示词

    2023年04月20日
    浏览(197)
  • AI绘图设计师Stable Diffusion提示词/咒语/词缀/关键词使用指南(Prompt)

    基本知识 : 安装及其问题解决参考:《Windows安装Stable Diffusion WebUI及问题解决记录》; 运行使用时问题《Windows使用Stable Diffusion时遇到的各种问题整理》; 模型运用及参数《Stable Diffusion 个人推荐的各种模型及设置参数、扩展应用等合集》; 提示词生图咒语《AI绘图提示词

    2023年04月22日
    浏览(182)
  • AI绘图提示词/咒语/词缀/关键词使用指南(Stable Diffusion Prompt 设计师操作手册)

    基本知识 : 安装及其问题解决参考:《Windows安装Stable Diffusion WebUI及问题解决记录》; 运行使用时问题《Windows使用Stable Diffusion时遇到的各种问题整理》; 模型运用及参数《Stable Diffusion 个人推荐的各种模型及设置参数、扩展应用等合集》; 提示词生图咒语《AI绘图提示词

    2024年02月01日
    浏览(71)
  • Prompt-“设计提示模板:用更少数据实现预训练模型的卓越表现,助力Few-Shot和Zero-Shot任务”

    通过设计提示(prompt)模板,实现使用更少量的数据在预训练模型(Pretrained Model)上得到更好的效果,多用于:Few-Shot,Zero-Shot 等任务。 prompt 是当前 NLP 中研究小样本学习方向上非常重要的一个方向。举例来讲,今天如果有这样两句评论: 什么苹果啊,都没有苹果味,怪怪

    2024年02月11日
    浏览(44)
  • Prompt设计与大语言模型微调

    本文主要介绍了Prompt设计、大语言模型SFT和LLM在手机天猫AI导购助理项目应用。 ChatGPT基本原理 “会说话的AI”,“智能体” 简单概括成以下几个步骤: 预处理文本:ChatGPT的输入文本需要进行预处理。 输入编码:ChatGPT将经过预处理的文本输入到神经网络中进行编码处理,使

    2024年02月08日
    浏览(35)
  • few-shot / one shot / zero shot object counting论文汇总

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

    2024年02月09日
    浏览(44)
  • 论文浅尝 | ChatKBQA:基于微调大语言模型的知识图谱问答框架

    第一作者:罗浩然,北京邮电大学博士研究生,研究方向为知识图谱与大语言模型协同推理 OpenKG地址:http://openkg.cn/tool/bupt-chatkbqa GitHub地址:https://github.com/LHRLAB/ChatKBQA 论文链接:https://arxiv.org/abs/2310.08975 动机 随着ChatGPT 的问世,属于大模型的时代就此开始。无可否认,大型

    2024年02月05日
    浏览(59)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包