在 Hugging Face 的 transformers 库中,GPT(Generative Pre-trained Transformer)类的模型有两个常用的生成文本的方法:
文章目录
-
- 1. generate 方法
- 2. chat 方法
- 通俗易懂讲解大模型系列
1. generate 方法
-
generate 方法是模型的原生方法,用于生成文本。 -
通常用于批量生成文本数据,可以根据特定的输入和条件生成一组文本。
-
使用时需要传递一些参数,如
max_length (生成文本的最大长度)、num_beams (束搜索的数量,用于增强生成的多样性)等。
from transformers import GPT2LMHeadModel, GPT2Tokenizer model_name = "gpt2" model = GPT2LMHeadModel.from_pretrained(model_name) tokenizer = GPT2Tokenizer.from_pretrained(model_name) input_text = "Once upon a time," generated_text = model.generate(tokenizer.encode(input_text, return_tensors="pt"), max_length=50, num_beams=5)[0] print(tokenizer.decode(generated_text, skip_special_tokens=True))
2. chat 方法
-
chat 方法是一个高级的便捷方法,通常用于模拟对话。 -
提供了更简单的用户交互方式,以模拟对话流程,尤其在聊天式应用中更为方便。
-
它内部调用了
generate 方法,但提供了更加简化的输入输出接口。
from transformers import GPT2LMHeadModel, GPT2Tokenizer model_name = "gpt2" model = GPT2LMHeadModel.from_pretrained(model_name) tokenizer = GPT2Tokenizer.from_pretrained(model_name) chat_history = [ {'role':'system', 'content':'You are a helpful assistant.'}, {'role':'user', 'content':'Who won the world series in 2020?'}, {'role':'assistant', 'content':'The Los Angeles Dodgers won the World Series in 2020.'}, ] user_input = "Who won the Super Bowl in 2021?" chat_history.append({'role':'user', 'content':user_input}) # 使用 chat 方法进行对话 response = model.chat(chat_history) print(response)
总体来说,
通俗易懂讲解大模型系列
-
做大模型也有1年多了,聊聊这段时间的感悟!
-
用通俗易懂的方式讲解:大模型算法工程师最全面试题汇总
-
用通俗易懂的方式讲解:我的大模型岗位面试总结:共24家,9个offer
-
用通俗易懂的方式讲解:大模型 RAG 在 LangChain 中的应用实战
-
用通俗易懂的方式讲解:一文讲清大模型 RAG 技术全流程
-
用通俗易懂的方式讲解:如何提升大模型 Agent 的能力?
-
用通俗易懂的方式讲解:ChatGPT 开放的多模态的DALL-E 3功能,好玩到停不下来!
-
用通俗易懂的方式讲解:基于扩散模型(Diffusion),文生图 AnyText 的效果太棒了
-
用通俗易懂的方式讲解:在 CPU 服务器上部署 ChatGLM3-6B 模型
-
用通俗易懂的方式讲解:使用 LangChain 和大模型生成海报文案
-
用通俗易懂的方式讲解:ChatGLM3-6B 部署指南
-
用通俗易懂的方式讲解:使用 LangChain 封装自定义的 LLM,太棒了
-
用通俗易懂的方式讲解:基于 Langchain 和 ChatChat 部署本地知识库问答系统
-
用通俗易懂的方式讲解:在 Ubuntu 22 上安装 CUDA、Nvidia 显卡驱动、PyTorch等大模型基础环境
-
用通俗易懂的方式讲解:Llama2 部署讲解及试用方式
-
用通俗易懂的方式讲解:基于 LangChain 和 ChatGLM2 打造自有知识库问答系统
-
用通俗易懂的方式讲解:一份保姆级的 Stable Diffusion 部署教程,开启你的炼丹之路
-
用通俗易懂的方式讲解:对 embedding 模型进行微调,我的大模型召回效果提升了太多了
-
用通俗易懂的方式讲解:LlamaIndex 官方发布高清大图,纵览高级 RAG技术
-
用通俗易懂的方式讲解:使用 LlamaIndex 和 Eleasticsearch 进行大模型 RAG 检索增强生成