日期:2024-3-16
1.长文本摘要
使用大模型针对长文本进行摘要提取:支持短文本、长文本摘要提取。
- 单个文本摘要提取:summary
- 批量文本摘要提取:batch_summary
2.下载安装
pip install pylmkit -U
3.python实现
import os
from pylmkit.llms import ChatQianfan
from pylmkit.app import summary, batch_summary
# 百度
os.environ['qianfan_ak'] = ""
os.environ['qianfan_sk'] = ""
os.environ['model'] = ""
def worker(chunk):
return model.invoke(f"提取下面内容的摘要:\n\ncontent: {chunk}")
model = ChatQianfan()
text = """
对话机器人 ChatGLM(alpha 内测版:QAGLM),这是一个初具问答和对话功能的千亿中
英语言模型, 并针对中文进行了优化,现已开启邀请制内测,后续还会逐步扩大内测范围。
与此同时,继开源 GLM-130B 千亿基座模型之后,我们正式开源最新的中英双语对话 GLM 模
型: ChatGLM-6B,结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量
化级别下最低只需 6GB 显存)。经过约 1T 标识符的中英双语训练,辅以监督微调、 反馈自
助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 虽然规模不及千亿模型,但
大大降低了用户部署的门槛,并且已经能生成相当符合人类偏好的回答。
"""
# 单个文本摘要:支持短文本、长文本摘要提取
summary1 = summary(text,
worker,
max_chunk_size=1000, # 当大于最大长度时,将采用分段提取摘要,然后在汇总摘要
show_progress=True, # 进度条
max_summary_size=500, # 当汇总后的摘要长度大于最大长度时,将采用分段提取摘要,然后在汇总摘要
max_workers=5 # 最大线程数
)
print(summary1)
# 批量文本摘要:支持短文本、长文本摘要提取
summary2 = batch_summary(
texts=[text[:int(len(text)/2)], text[int(len(text)/2):]],
worker=worker,
max_chunk_size=1000, # 当大于最大长度时,将采用分段提取摘要,然后在汇总摘要
show_progress=True, # 进度条
max_summary_size=500, # 当汇总后的摘要长度大于最大长度时,将采用分段提取摘要,然后在汇总摘要
max_workers=5 # 最大线程数
)
print(summary2)
运行结果
extract summary ...: 100%|██████████| 1/1 [00:02<00:00, 2.80s/it]
对话机器人ChatGLM(内测版)是一款针对中文优化的千亿中英双语对话模型,现已开启邀请制内测,未来会扩大内测范围。该模型采用开源的ChatGLM-6B模型,可以在消费级的显卡上进行本地部署,采用量化技术降低了用户部署的门槛。该模型经过中英双语训练,采用多种技术加持,可以生成符合人类偏好的回答。
extract batch summary ...: 0%| | 0/2 [00:00<?, ?it/s]
extract summary ...: 0%| | 0/1 [00:00<?, ?it/s]
extract summary ...: 100%|██████████| 1/1 [00:01<00:00, 1.63s/it]
extract batch summary ...: 50%|█████ | 1/2 [00:02<00:02, 2.95s/it]
extract summary ...: 0%| | 0/1 [00:00<?, ?it/s]
extract summary ...: 100%|██████████| 1/1 [00:01<00:00, 1.75s/it]
['对话机器人 ChatGLM 已开启邀请制内测,具有问答和对话功能,针对中文进行了优化。该模型是一个千亿中英双语模型,已开源中英双语对话 GLM 模型 ChatGLM-6B,并已结合模型。后续会扩大内测范围。', '量化技术使得用户可以在消费级的显卡上进行本地部署,最低只需 6GB 显存。ChatGLM-6B 模型经过中英双语训练和监督微调、反馈自\n助、人类反馈强化学习等技术加持,规模虽不及千亿模型,但大大降低了用户部署的门槛,并且能够生成相当符合人类偏好的回答。该模型适用于本地部署,具有较低的资源要求。']
extract batch summary ...: 100%|██████████| 2/2 [00:07<00:00, 3.57s/it]