创建由通义千问驱动的轻量级个人助理

Creating a Lightweight Personal Assistant Powered by a Qwen Language Model

创建由 Qwen 驱动的轻量级个人助理
图片来源:编辑 | Midjourney

引言

Qwen 系列语言模型 为各种自然语言处理任务提供了强大且开源的大型语言模型。

本文将向您展示如何使用 Qwen 模型——特别是 Qwen1.5-7B-Chat 模型——来设置和运行一个 Python 驱动的个人助理应用程序。Qwen1.5-7B-Chat 是一个高效且相对轻量级的 70 亿参数聊天模型,针对对话用例进行了优化。代码已准备好在 Google Colab 等 Python Notebook 中使用,但如果需要,也可以轻松地适配在本地运行。

编码解决方案

由于构建 Qwen 驱动的助理需要安装多个依赖项和库,我们将首先安装它们并验证安装版本,以尽可能确保版本之间兼容。

我们还设置了 GPU 使用(如果可用),以确保更快的模型推理,这是它在执行期间首次被调用时的情况。

初始设置步骤如下方代码所示

现在是时候加载和配置模型

  • 我们使用 Qwen/Qwen1.5-7B-Chat,它允许比 Qwen2.5-Omni 等更重的模型更快地进行首次推理,后者虽然功能强大,但不如该系列的其他版本轻量。
  • 和往常一样,在加载预训练语言模型时,我们需要一个分词器,它能将文本输入转换为模型可读的格式。幸运的是,HuggingFace 的 Transformers 库中的 AutoTokenizer 使这个过程更加顺畅。
  • 为了提高效率,我们尝试配置 4 位量化,以优化内存使用。

在构建我们自己的对话式助手时,通常的做法是准备一个默认提示,它会伴随每个特定的请求,以根据我们的需求调整模型的行为和生成的响应。这里有一个特定的默认提示:

system_prompt = """你是一个乐于助人、尊重和诚实的助手。总是尽可能提供帮助,同时保持安全。你的回答应该引人入胜且有趣。
如果一个问题毫无意义,或者在事实层面不连贯,请解释原因,而不是回答不正确的内容。如果你不知道问题的答案,请不要分享虚假信息。"""

我们将定义的以下函数封装了执行流程中最繁重的一部分,因为这是模型获取用户输入并被调用以执行推理和生成响应的地方。重要的是,我们将运行一个对话,我们可以连续提出多个请求,因此,妥善管理聊天历史并将其作为每个新请求的一部分是很重要的。

在定义了生成响应的关键函数后,我们可以构建一个简单的用户界面来运行和与助手进行交互。

该界面将包含一个输出显示区域,用于显示对话;一个输入文本框,用户可以在其中提问;以及两个按钮,用于发送请求和清除聊天。请注意这里使用了 widgets 库来创建这些元素。

或者,我们也可以为聊天工作流设置命令行界面(CLI)的选项。

几乎完成了。我们将定义最后两个函数。

  1. 一个是用于进行快速测试,以确保模型和依赖项都已正确设置。
  2. 一个是用于运行整个对话式助手应用程序的总体函数。在这里,用户可以选择要使用的界面类型(UI 或 CLI)。

试用

如果一切顺利,现在是时候享受并与我们新构建的助手进行交互了。以下是对话工作流程的示例摘录。

正在运行快速测试...
测试问题: 你能帮我做什么?
响应: 1. 常识:我可以提供关于广泛主题的信息,从历史、科学到流行文化、时事等等。
2. 解决问题:需要解决数学问题、弄清楚如何做某事或排除故障?我将指导您。
3. 研究:如果您有特定的主题或问题,我可以帮助您找到可靠的来源并为您总结信息。
4. 语言帮助:需要写作、语法、拼写或翻译方面的帮助?我可以协助您。
5. 有趣的事实和冷知识:想用有趣的事实给您的朋友留下深刻印象,还是只是想找点乐子?我都能满足您!
6. 时间管理和组织:帮助您跟上任务和项目的策略。
7. 个人发展:关于学习新技能、设定目标或管理情绪的技巧。

只需告诉我您需要什么,我将尽力为您提供帮助!请记住,我并不总是能给出所有答案,但我一定会努力使过程尽可能愉快和信息丰富。
生成时间: 18.04 秒

选择界面(1 为 UI,2 为 CLI)

以下是通过 UI 进行实时交互的示例。

Qwen-based conversational assistant's UI

基于 Qwen 的对话式助手的 UI
作者提供图片

结论

在本文中,我们演示了如何构建一个由轻量级但功能强大的 Qwen 语言模型驱动的简单对话式助手应用程序。此应用程序旨在在 GPU 环境(如 Google Colab 笔记本环境提供的)中高效运行和试用。

暂无评论。

发表评论

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。