大模型技术细节——大模型之文本生成与文档总结 原创
“ 大模型就是一个黑盒,盒子外面的人一直在雾里看花”
我们一直在说大模型大模型,但大部分人都没深入研究过大模型的具体实现以及隐藏在大模型这个黑盒下的技术细节。
思考个问题,根据要求让大模型生成一段文字和给大模型一个PDF文本,让它总结文本内容,这两种方式是同一种大模型吗?
文本生成大模型和文档总结大模型
很多人都简单的认为,生成文本的模型和进行文档总结的模型是一回事,都属于文本处理模型。
因为从使用者的角度来说,只需要告诉它需求或者仍给它一个文档它就能很好的完成任务;所以说从使用者的角度来说,产生上面的认知也不能说错。
但事实上,大部分人都被大模型的黑盒给欺骗了,大模型远远没有想的那么简单。
文本生成模型和文档总结模型有很多相似之处,但它们的目的和具体的实现方式不尽相同。
文本生成模型
定义
文本生成模型是通过学习数据的分布生成新的文本内容。它们通常用于生成自然语言文本,如文章、对话、故事等。
目标
生成连贯,符合语法和语义的新文本段落。
常见类型
- 自回归模型
- 自回归模型典型的有GPT(Generative Pre-trained Transformer),也就是生成式预训练模型,通过逐步预测下一个词生成文本。
from transformers import GPT2LMHeadModel, GPT2Tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
input_text = "Once upon a time"
input_ids = tokenizer.encode(input_text, return_tensors='pt')
output = model.generate(input_ids, max_length=50)
print(tokenizer.decode(output[0], skip_special_tokens=True))
- 自编码模型
- 自编码模型典型的有BERT(Bidirectional Encoder Representation from Transformers),常用于理解和生成上下文相关文本。
from transformers import BertModel, BertTokenizer
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
model = BertModel.from_pretrained("bert-base-uncased")
input_text = "Hello, my dog is cute"
input_ids = tokenizer.encode(input_text, return_tensors='pt')
outputs = model(input_ids)
print(outputs)
应用场景
- 生成文章,故事,对话
- 自动写作和创作
- 自然语言对话系统
文档总结模型
定义
文档总结模型是通过提取和抽取技术生成简洁的文档摘要,它们常用于从长文本中提取关键信息,并生成简明扼要的摘要。
目标
生成文档的简要概述,提炼出关键信息
常见类型
- 抽取式摘要模型(Extractive Summarization Models)
- 常见的抽取式摘要模型BERTSUM,基于BERT的抽取式文档总结模型,通过选择原文中的重要句子生成摘要。
# 从huggingface中加载模型
from transformers import BertTokenizer, BertForSequenceClassification
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
model = BertForSequenceClassification.from_pretrained("bert-base-uncased")
input_text = "Your long document text here."
input_ids = tokenizer.encode(input_text, return_tensors='pt')
outputs = model(input_ids)
print(outputs)
- 生成式摘要模型(Abstractive Summarization Models)
- T5(Text-to-Text Transfer Transformer),通过生成新的句子来总结文档。
from transformers import T5Tokenizer, T5ForConditionalGeneration
tokenizer = T5Tokenizer.from_pretrained("t5-small")
model = T5ForConditionalGeneration.from_pretrained("t5-small")
input_text = "summarize: Your long document text here."
input_ids = tokenizer.encode(input_text, return_tensors='pt')
outputs = model.generate(input_ids, max_length=50)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
应用场景
- 新闻摘要
- 科研论文摘要
- 法律文档摘要
- 长文章的概述
区别与联系
目的
文本生成模型:生成连贯的新文本内容
文档总结模型:生成文档的简明摘要,提取关键信息
方法
文本生成模型:使用语言模型(如GPT)根据上下文逐词生成文本。
文档总结模型:使用抽取式或生成式方法从文档中提取或生成摘要
输入输出
文本生成模型:
输入:起始文本或上下文提示
输出:生成新的文本段落
文档总结模型:
输入:完整的文档或长文本
输出:简明的文档摘要
总结
尽管文本生成模型和文档总结模型在技术上有一些重叠,但它们的目的和具体应用场景不同。
文本生成模型用于生成新的文本,而文档总结模型则用于提炼和总结现有文档的内容。
学习大模型技术,不能只浮于表面,要深入理解其内部实现;这样我们才能真正了解大模型能做什么,不能做什么。
也就是常说的,知其然也要知其所以然。
本文转载自公众号AI探索时代 作者:DFires
原文链接:https://mp.weixin.qq.com/s/tdhkqUKgG4nOW5Ss3bv1pQ