大模型技術細節——大模型之文本生成與文檔總結 原創
“ 大模型就是一個黑盒,盒子外面的人一直在霧里看花”
我們一直在說大模型大模型,但大部分人都沒深入研究過大模型的具體實現以及隱藏在大模型這個黑盒下的技術細節。
思考個問題,根據要求讓大模型生成一段文字和給大模型一個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??
