部署自己的 AI 聊天伙伴 — 使用 Hugging Face 指南部署 Qwen 聊天模型
好吧,你这个精通技术的人类,准备好踏上人工智能领域的惊险冒险之旅吧!我们在这里不只是试水;我们正在用 Qwen 聊天模型一头扎进深渊。议程是什么?建立一个比狐狸更聪明的聊天机器人,像顶级特工一样尊重隐私。好奇吗?你应该好奇!让我们从了解生成式人工智能和 LLM(大型语言模型)开始我们的旅程。
生成式人工智能
生成式人工智能是人工智能的一个分支,专注于创建新内容,无论是文本、图像、音乐还是其他形式的媒体。这种类型的人工智能利用机器学习模型(尤其是生成模型)来理解大型数据集中的模式、特征和关系,并生成新的、通常与人类创建的内容难以区分的输出。
生成模型的类型
- **生成对抗网络 (GAN):**一种神经网络架构,其中同时训练两个模型(生成器和鉴别器)。生成器创建新的数据实例,而鉴别器对其进行评估。该过程产生越来越令人信服的输出。
- **变分自动编码器 (VAE):**这些模型会生成与输入数据类似的新实例。它们通常用于图像生成。
- Transformers: Transformers 模型最初是为 NLP 任务而设计的,例如 GPT(生成式预训练 Transformer),可以生成连贯且上下文相关的文本。它们也正在被改编用于其他类型数据的生成任务。
应用
- **内容创作:**生成式人工智能可以创作原创艺术作品、撰写故事或文章、创作音乐以及为游戏和模拟创建虚拟环境。
- **数据增强:**它可以为机器学习模型生成额外的训练数据,有助于提高其准确性和鲁棒性。
- **个性化:**算法可以根据个人喜好定制内容,提高用户参与度。
- **药物发现:**生成模型可以为针对特定疾病有效的药物提出新的分子结构。
挑战
- **质量控制:**确保生成的内容符合质量标准,并且不存在训练数据中的偏见。
- **计算要求:**训练生成模型通常需要强大的计算能力和大量数据集。
- **可解释性:**理解这些模型如何做出决策并产生输出可能具有挑战性,这会影响信任和可靠性。
生成式人工智能继续快速发展,其能力正在扩展机器创造的边界,既带来令人兴奋的机遇,也带来需要负责任地管理的挑战。
法学硕士
什么是大型语言模型 (LLM)?它们是一种基于深度学习技术的人工智能,旨在理解、生成和处理人类语言。它们之所以被称为“大型”,是因为它们包含数百万甚至数十亿个参数,这使它们能够捕捉各种语言的细微差别和上下文。
LLM 经过大量文本数据训练,并使用 Transformer 神经网络等架构,这些架构可以处理数据序列(如句子),并在进行预测时关注序列的不同部分。这使得它们对于一系列自然语言处理 (NLP) 任务特别有效,例如:
- 文本生成:法学硕士可以根据给出的提示撰写论文、创作诗歌或生成代码。
- 翻译:他们能够高精度地在多种语言之间翻译文本。
- 问答:LLM 可以通过理解上下文和提取信息来提供问题的答案。
- 总结:他们可以将长篇文档浓缩为简洁的总结。
- 情感分析:LLM 可以确定文本背后的情感,例如识别评论是正面的还是负面的。
为什么选择 Qwen?简要介绍
您是否正在寻找一种能够聊天、创建内容、总结、编码等的人工智能,同时又能尊重您的隐私权?不用再找了,Qwen 聊天模型可以将您的数据中心转变为安全的人工智能交互堡垒。
Qwen 不是普通的聊天机器人。它建立在庞大的语言模型上,并接受了多达 3 万亿个多语言数据的训练。这个人工智能奇迹可以理解复杂的英语和中文,并且经过微调以实现类似人类的互动。
为什么要选择 Qwen 进行本地化?
在服务器上本地部署 Qwen 是为了掌控一切。这是为了确保您的对话、处理的数据和承诺的隐私仍在您的权限范围内。无论您是希望集成智能聊天系统的企业、热衷于 AI 研究的开发人员,还是渴望探索对话式 AI 界限的爱好者,Qwen 都是您的首选。
现在,你为什么要在本地托管这个法学硕士课程?三个词:控制、速度和隐私。你可以将数据保密,响应速度快如闪电,而且你可以放心,因为你的聊天机器人不会在公共服务中泄露你的秘密。
开源和社区驱动
开源社区增强了人工智能的创新精神。为了保持这一传统,Qwen 聊天模型的完整源代码可在 GitHub 上轻松获取,供任何有兴趣深入研究模型机制、为其开发做出贡献或仅将其用作学习资源的人使用。无论您是研究人员、开发人员还是人工智能爱好者,您都可以在Qwen上访问源代码。
开始之前:基本信息
在我们踏上这段科技之旅之前,让我们先确保你已经做好了一切准备:
- 配有 GPU 卡的 Linux 服务器 — 因为让我们面对现实吧,速度至关重要。
- Python 3.6 或更高版本 — 编程的魔杖。
- pip 或 Anaconda — 您方便的包管理器。
- Git (可选) — 适合那些喜欢从存储库获取最新代码的人。
- NVIDIA 驱动程序、CUDA 工具包和 cuDNN — GPU 加速的三位一体。
明白了吗?太棒了!让我们开始动手吧(当然是比喻)。
精心设计对话:在哪里运行你的 Python 代码
无论您是 Visual Studio Code 的忠实粉丝、PyCharm 爱好者,还是喜欢 Jupyter Notebooks 的交互风格的人士,与 Qwen 聊天的 Python 代码都是灵活且与 IDE 无关的。您所需要的只是一个支持 Python 的环境,您就可以让您的 AI 聊天伙伴栩栩如生。
以下是专业提示:如果您使用的是VSCode,请利用内置终端无缝运行 Python 脚本。只需打开命令面板 (Ctrl+Shift+P),在终端中输入 Python: Run Python File,然后让 VSCode 完成繁重的工作。您将在集成终端中看到 Qwen 的响应。
对于喜欢PyCharm的用户来说,运行代码同样顺畅。右键单击脚本并选择运行“script_name.py”,然后观察 IDE 如何执行与 Qwen 的对话。PyCharm 强大的工具和调试功能使其成为开发更复杂交互的绝佳选择。
不仅如此,还有大量的 IDE 和代码编辑器张开双臂欢迎 Python。选择最适合您工作流程的那个,然后开始聊天吧!
开店:环境
首先,让我们准备一下你的 Linux 服务器。确保你的软件包列表如清晨的微风般清新,并且 Python 和 pip 已准备好发挥它们的魔力:
sudo apt 更新更新
sudo apt install python3 python3 - pip
现在来看看秘密成分:虚拟环境。这就像拥有一个个人工作空间,你可以在那里把东西弄得乱七八糟,而不用有人大喊大叫让你收拾:
pip 安装--用户虚拟环境
虚拟环境 qwen_env
源qwen_env/bin/activate
工具箱:安装依赖项
在让 Qwen 栩栩如生之前,您需要一些工具。可以将其想象为收集米其林星级大餐的食材:
pip 安装 torch torchvision torchaudio
pip 安装 transformers
记得将 PyTorch 与您的 CUDA 版本相匹配——这就像将上等葡萄酒与合适的奶酪搭配一样。
觉醒Qwen:模型初始化
说同一种语言:Tokenizer
单词只是单词,直到 Qwen 赋予它们意义。这时,标记器就可以发挥作用,将您的思考转化为 Qwen 可以咀嚼的东西:
从transformers导入AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained( "Qwen/Qwen-7B-Chat" , trust_remote_code= True )
行动的核心:模型
Qwen 的头脑非常广阔,随时准备着与您进行对话。以下是如何唤醒这位沉睡的巨人:
从transformers导入AutoModelForCausalLM
模型 = AutoModelForCausalLM.from_pretrained( “Qwen/Qwen-7B-Chat” , device_map= “auto” , trust_remote_code= True ). eval ()
根据您的硬件,您可以选择不同的精度模式,如 BF16 或 FP16。这就像调整吉他以获得完美的音调一样。
与 Qwen 进行持续对话
现在到了激动人心的部分——是时候和 Qwen 聊天了!但在你沉迷于来回交谈之前,让我们先谈谈一件至关重要的事情:对话连续性的艺术。
下面让我们来预先看看你们将会看到什么样的妙语:
response, history = model.chat(tokenizer, "你好,Qwen!数字领域的生活怎么样?", history=None)history = model.chat(tokenizer, "你好,Qwen!数字领域的生活怎么样?" , history =None)
print ( "Qwen:" , response)
在我们的开场白中,我们向 Qwen 致意时没有任何附加条件 — 也就是说,没有对话历史记录。通过设置 history=None,我们告诉 Qwen,“这是我们聊天的开始。” Qwen 只会收到当前提示,并会以新的互动方式做出回应。
现在,让我们看看上下文的魔力是如何展现的:
response, history = model.chat(tokenizer, "对生命、宇宙和一切的意义有什么想法?", history=history)history = model.chat(tokenizer, "对生命、宇宙和一切的意义有什么想法?" , history = history )
print ( "Qwen:" , response)
在这一轮中,我们会传递上一次交流中得到的历史信息。这就像交给 Qwen 一本日记,记录我们迄今为止讨论过的所有事情。有了这个历史背景,Qwen 就可以构思出一个不仅风趣深刻而且与我们正在进行的对话相关的回答。这就是与了解你的聪明朋友聊天和向陌生人提问的区别。
- **为什么“历史”很重要:**将历史视为将我们对话中的珍珠串在一起的线。没有它,Qwen 的每一个回应都会是一颗孤立的珍珠,美丽而孤独。有了历史,每颗珍珠都会牢牢地打结,形成一条美丽而有凝聚力的对话之线。背景是对话中的王道,而历史是背景的载体。
- **保持对话流畅:**就像人类互动一样,提及过去的评论、笑话或故事可以引起有趣的玩笑。Qwen 掌握了对话历史,可以回忆和参考过去的交流,使聊天既连贯又引人入胜。
预备,开始,交谈!
现在您已经了解了使用历史参数来强调上下文的重要性,请启动演示脚本并准备与 Qwen 进行一次有趣的聊天。无论您是在讨论宇宙还是数字饼干的最佳配方,Qwen 都准备好以经验丰富的对话者的所有优雅风格跟随您的谈话。
此外,您还可以启动该脚本并开始对话。这就像打开潘多拉魔盒一样,但您得到的不是混乱,而是愉快的玩笑:
python qwen_chat.pypy
现在,我的朋友,你已经拥有了你自己的 AI 聊天伙伴,准备征服对话世界。
总结:盛大的结局
恭喜!您像一位经验丰富的船长一样驾驭了 AI 部署的危险水域。Qwen 现已稳稳地安装在您的服务器上,您的数据也安全无虞。
探索 Qwen 的功能,为其发展做出贡献,并加入一个由志同道合、热衷于推动 AI 对话发展的个人组成的社区。
[外链图片转存中…(img-8QQl3Hmp-1722336459194)]
总结:盛大的结局
恭喜!您像一位经验丰富的船长一样驾驭了 AI 部署的危险水域。Qwen 现已稳稳地安装在您的服务器上,您的数据也安全无虞。
探索 Qwen 的功能,为其发展做出贡献,并加入一个由志同道合、热衷于推动 AI 对话发展的个人组成的社区。
所以,继续和你闪亮的新 AI 伙伴进行史诗般的对话吧。谁知道呢?也许 Qwen 会用它的数字智慧或让你大笑的笑话让你大吃一惊。
博客原文:https://dz.closeai.cc/forum.php?mod=viewthread&tid=151