ChatGLM实战 - 文本信息抽取

这篇具有很好参考价值的文章主要介绍了ChatGLM实战 - 文本信息抽取。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. ChatGLM介绍

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答,

ChatGLM实战 - 文本信息抽取

代码链接👇🏻


ChatGLM_实战_信息抽取

2. 场景说明

由于工作原因,需要对机器上的文本进行分类。其核心功能就是通过文件的文本内容,提取关键信息,判断文件类别 ,下文教程为通过ChatGLM模型进行信息提取的实战的一部分。

ChatGLM实战 - 文本信息抽取

任务可拆解为两步:

1.非结构化内容提取
2.命名实体识别,内容抽取

其中第二步为信息提取,输入输出如下

  • input -> 大段文本
  • output -> 识别&提取的结构化内容

因为应用场景,短时间无法获取高质量样本,优先使用预训练模型实现,后期积累样本做微调(fine-tuning)

3. 模型选择

由于业务场景主要为中文,而且识别的类型经常发生变化 ,传统的NER模型不一定使用 ,固直接选用清华开源的ChatGLM作为前置数据提取模块,后期积累高质量数据再进行微调、模型重构。

清华ChatGLM-6B

优点: 私有部署,低成本部署。

ChatGLM实战 - 文本信息抽取

默认情况下,模型以 FP16 精度加载,运行上述代码需要大概 13GB 显存。如果你的 GPU 显存有限,可以尝试以量化方式加载模型 ,INT4 量化后的模型仅需大概 5.2GB 的内存.

4. 模型部署

由于手头无16G显存的GPU,所以使用Google Colab进行验证。

4.1 GPU设置

ChatGLM实战 - 文本信息抽取

免费版只能用T4

ChatGLM实战 - 文本信息抽取

查看显存,16G也够用了

!nvidia-smi

ChatGLM实战 - 文本信息抽取

4.2 安装环境

代码拉取

!git clone https://github.com/THUDM/ChatGLM-6B.git

ChatGLM实战 - 文本信息抽取

环境安装

!pip install -r /content/ChatGLM-6B/requirements.txt

ChatGLM实战 - 文本信息抽取

模型下载,默认下载FP16, colab内存限制,目前只能直接加载FP4,下文直接加载FP4

from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b-int4",trust_remote_code=True).half().cuda()

ChatGLM实战 - 文本信息抽取

硬件要求参考

量化等级 最低 GPU 显存(推理) 最低 GPU 显存(高效参数微调)
FP16(无量化) 13 GB 14 GB
INT8 8 GB 9 GB
INT4 6 GB 7 GB

FP4模型加载完成

ChatGLM实战 - 文本信息抽取

查看系统资源消耗,FP4 模型加载后 ,显存使用4.6 G ,内测使用2.7G

ChatGLM实战 - 文本信息抽取

5. 模型预测

首次加载,约15s

ChatGLM实战 - 文本信息抽取

之后预测,耗时约1s

ChatGLM实战 - 文本信息抽取

上述仅单条测试时间,批量(batch)推理理论上更加高效 ,时长与输入的token长度有关。

6. 信息抽取

通过使用适当prompt可以让模型完成信息抽取任务,并且按指定的格式输出(json) ,以满足批处理,结构化输出的要求。

6.1 信息抽取任务

%%time
content="""ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,
基于 General Language Model (GLM) 架构,具有 62 亿参数。
手机号 18866666666
结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 
ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。
邮箱 550997728@qq.com
经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,
账号 root 密码 safhahuifbt
62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答,更多信息请参考我们的博客。
"""
prompt='从上文中,提取"信息"(keyword,content),包括:"手机号"、"邮箱"、"账号"、"密码"等类型的实体,输出json格式内容'
input ='{}\n\n{}'.format(content,prompt)
print(input)
response, history = model.chat(tokenizer, input, history=[])
print(response)

ChatGLM实战 - 文本信息抽取

6.2 输出校验

返回结果为合法json

import json
json.loads(response)

ChatGLM实战 - 文本信息抽取

7. 成本估算

7.1 单价计算

  • 腾讯云T4 GPU 公有云成本在2500/月, 1/4卡 975元/月
  • 测试400词,抽取耗时15s (批处理理论上会更快N倍) , 26.6 Token/s

ChatGLM实战 - 文本信息抽取

满载处理量= 30天x24小时x60分钟x60秒x26Token=6894w Token/月

Token成本=6894w/975元= 7w/元

按照6.9的汇率折算 , 487k Token/1美元 ,既 0.002$/1k Tokens

ChatGLM实战 - 文本信息抽取

7.2 ChatGPT价格对比

chatgpt3.5 ,gpt4相比, 价格与chatgpt 3.5持平 ,远低于gpt4 0.03$/1k token 的价格。

ChatGLM实战 - 文本信息抽取

此处使用粗略估算,理论上有5倍以上的能效优化空间,所以成本远应远低于gpt

8. 总结

上文仅对ChatGLM-6B模型进行简单尝试,稍许改造即能满足日常使用,另外上述成本估算仅供参考,以实际使用为准。目前得知,ChatGLM 1300 亿参数版本正在测试,命名为GLM-130B,相信在未来,将会在更多复杂场景上得到应用。

9. 参考

  1. https://huggingface.co/
  2. https://github.com/THUDM/ChatGLM-6B
  3. https://colab.research.google.com/notebooks/welcome.ipynb
  4. https://openai.com/pricing

欢迎关注 一起成长文章来源地址https://www.toymoban.com/news/detail-431859.html

到了这里,关于ChatGLM实战 - 文本信息抽取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • NLP信息抽取全解析:从命名实体到事件的PyTorch实战指南

    本文深入探讨了信息抽取的关键组成部分:命名实体识别、关系抽取和事件抽取,并提供了基于PyTorch的实现代码。 关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资

    2024年02月07日
    浏览(36)
  • chatgpt实现NLP基本任务(实体识别、关系抽取、属性抽取、事件抽取、文本分类)

    抽取文本: 驻港部队从1993年初开始组建,1996年1月28日组建完毕,1997年7月1日0时进驻香港,取代驻港英军接管香港防务,驻港军费均由中央人民政府负担。《中华人民共和国香港特别行政区驻军法》规定了驻香港部队的职责为防备和抵抗侵略,保卫香港特别行政区的安全以及

    2024年02月13日
    浏览(43)
  • 信息抽取命名实体识别和关系抽取)

    信息抽取的定义为:从自然语言文本中 抽取指定类型的实体,关系、事件等事实信息 。并形成结构化数据输出的文本处理技术。 信息抽取是从文本数据中抽取特定信息的一种技术,文本数据由医学具体的单位构成,例如, 句子、段落、篇章。本文信息正式由一些小的具体的

    2024年02月01日
    浏览(40)
  • ffmpeg学习(印对应的文件信息,抽取音频文件信息)

    目录 打印对应的文件信息 抽取音频文件信息 # 概念 多媒体文件是个容器,在容器中有很多流,使用(stream或者track)表示。每种不同的流不交叉,是由不同的编码器的编码的(音频和视频的不同编码形似),从流中读取的数据为包,包中包含一帧或多个帧压缩数据, ``` AV

    2024年02月16日
    浏览(58)
  • UIE: 信息抽取的大一统模型

    论文链接: https://arxiv.org/abs/2203.12277 最近由于业务需要,一直在关注信息抽取领域的一些文章,实验上尝试了BERT+Softmax、BERT+NER以及GlobalPointer等模型,效果都还可以,就是标数据有点费人。所以,想找一些few-shot效果比较好的模型,可以辅助标注。无意间,就发现了这篇论文,

    2024年02月10日
    浏览(40)
  • ChatIE(LLM大模型用于信息抽取)

    Zero-Shot Information Extraction via Chatting with ChatGPT paper:https://arxiv.org/abs/2302.10205 利用ChatGPT实现零样本信息抽取(Information Extraction,IE),看到零样本就能大概明白这篇文章将以ChatGPT作为一个基座然后补全前后端,来实现抽取任务。主要针对抽取中的三个重要任务: 对于句子:《

    2024年02月12日
    浏览(43)
  • linux搭建单机ES,集成ik分词器,文本抽取,Kibana可视化平台

    准备工作 第一项: 创建运行Elasticsearch和Kibana专用的普通用户,因为 elasticsearch 和 kibana 不允许使用 root用户启动,所以需要创建新用户启动。 linux用root权限创建一个用户赋权即可,注意权限要给足 第二项(启动没有报相关错误此项可以不做调整): 设置linux的虚拟内存 修改

    2024年02月04日
    浏览(41)
  • 自然语言处理 Paddle NLP - 信息抽取技术及应用

    基础 自然语言处理(NLP) 自然语言处理PaddleNLP-词向量应用展示 自然语言处理(NLP)-前预训练时代的自监督学习 自然语言处理PaddleNLP-预训练语言模型及应用 自然语言处理PaddleNLP-文本语义相似度计算(ERNIE-Gram) 自然语言处理PaddleNLP-词法分析技术及其应用 自然语言处理Pa

    2024年02月09日
    浏览(55)
  • 猿创征文|信息抽取(2)——pytorch实现Bert-BiLSTM-CRF、Bert-CRF模型进行实体抽取

    论文参考: 1 Neural Architectures for Named Entity Recognition 2 Attention is all you need 3 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 4 Bidirectional LSTM-CRF Models for Sequence Tagging 使用数据集: https://www.datafountain.cn/competitions/529/ranking Tips:文章可能存在一些漏洞,欢迎留言指出

    2024年02月01日
    浏览(38)
  • python之pdfminer:从PDF文档中抽取信息的工具

    pdfminer是一个用于从PDF文档中抽取信息的Python库。它提供了一系列的功能,使我们能够读取和解析PDF文件,并从中提取文本内容、元数据、页面布局和图片等。本文将详细介绍pdfminer库的使用示例,包括安装、解析文档、提取文本和图片等操作。 首先,我们需要安装pdfminer库。

    2024年02月11日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包