与 Qwen2 进行交互¶
使用 Qwen2 最简单的方法就是利用 transformers
库与之对话。在本文档中,我们将展示如何在 流式 模式或 非流式 模式下与 Qwen2-7B-Instruct 进行对话。
1. 基本使用¶
你只需借助 transformers
库编写几行代码,就能与 Qwen2-Instruct 进行对话。实质上,我们通过 from_pretrained
方法构建 tokenizer
和模型,然后利用 generate
方法,在tokenizer.apply_chat_template
的辅助下进行对话。
Qwen2-7B-Instruct 使用示例
1. 默认情况下,如果没有指定系统提示,Qwen2 直接使用 `You are a helpful assistant.` 作为系统提示。
2. 用于在输入中添加生成提示,该提示指向 `<|im_start|>assistant\n`。
3. `max_new_tokens` 参数用于设置响应的最大长度。
4. 使用 `tokenizer.batch_decode` 对响应进行解码。
model.chat 方法已经废弃
请注意,原 Qwen 仓库中的旧方法 model.chat
现在已被 model.generate
方法替代。这里使用了 tokenizer.apply_chat_template
函数将消息转换为模型能够理解的格式。
2. 流式输出¶
针对流式输出模式,Qwen2 提供了 TextStreamer
和 TextIteratorStreamer
两种方式,TextStreamer
我们先前介绍过,而 TextIteratorStreamer
是将可打印的文本存储在一个队列中,以便下游应用程序作为迭代器来使用。