本文学习如何在 Ollama 上运行 Qwen2:7B 大模型。
一、什么是 Qwen2-7B?Qwen2 是最新的大语言模型系列之一,提供从 5 亿到 720 亿参数的基础模型和指令调整版本,包括一个专家混合模型(Mixture-of-Experts model)。该模型最好的地方是它在 Hugging Face 上是开源的。
与 Qwen1.5 等其他开源模型相比,Qwen2 在包括语言理解、生成、多语言能力、编码、数学和推理在内的各种基准测试中普遍表现更佳。Qwen2 系列基于 Transformer 架构,具有 SwiGLU 激活、注意力 QKV 偏置、分组查询注意力等增强功能,以及一个适用于多种语言和代码的改进型分词器(tokenizer)。
此外,Qwen2-72B 据说在所有测试的基准测试中都以较大优势超过了 Meta 的 Llama3-70B。
Qwen2-72B 在不同领域的各种基准测试中进行了全面评估,如图下所示。该模型实现了增强能力和与人类价值观的一致性的平衡。此外,该模型在所有基准测试中都显著优于 Qwen1.5-72B-Chat,并与 Llama-3-70B-Instruct 相比表现出竞争力。即使是较小的 Qwen2 模型也超过了类似或更大尺寸的最先进模型。Qwen2-7B-Instruct 在基准测试中保持优势,特别是在编码(coding)和与中文相关的指标上表现突出。
二、可用模型Qwen2 训练于包含 29 种语言的数据集,包括英语和中文。它有五种参数大小:0.5B、1.5B、7B、57B 和 72B。7B 和 72B 模型的上下文长度已扩展到 128k Token。
Qwen2 系列包括五种不同大小的基础和指令调整模型:
三、Ollama 简介接下来展示使用 Ollama 运行 Qwen2 的最简单方法。Ollama 是一个开源项目,提供了一个用户友好的平台,用于在个人计算机上执行大语言模型。
Ollama 提供了对各种预训练模型的访问,提供了跨不同操作系统的轻松安装和设置,并公开了一个本地 API,以实现与应用程序和工作流程的无缝集成。用户可以自定义和微调 LLMs,通过硬件加速优化性能,并从交互式用户界面中获益,以实现直观的交互。
Ollama的下载安装比较简单,具体可以查阅官网。
~ % ollamaUsage: ollama [flags] ollama [command]Available Commands: serve Start ollama create Create a model from a Modelfile show Show information for a model run Run a model pull Pull a model from a registry push Push a model to a registry list List models ps List running models cp Copy a model rm Remove a model help Help about any commandFlags: -h, --help help for ollama -v, --version Show version informationUse "ollama [command] --help" for more information about a command.~ % ollama -vollama version is 0.2.5四、运行Qwen2 模型可以在 ollama 官网查询到qwen2模型信息:https://ollama.com/library/qwen2
输入以下命令并按回车以运行模型:
ollama run qwen2:7b
~ % ollama run qwen2:7b
pulling manifest
pulling 43f7a214e532... 100% ▕████████████████▏ 4.4 GB
pulling 62fbfd9ed093... 100% ▕████████████████▏ 182 B
pulling c156170b718e... 100% ▕████████████████▏ 11 KB
pulling f02dd72bb242... 100% ▕████████████████▏ 59 B
pulling 648f809ced2b... 100% ▕████████████████▏ 485 B
verifying sha256 digest
writing manifest
removing any unused layers
success
如果下载失败,可以重试几次。
注意:如果出现错误:无法连接到 ollama 应用,它是否在运行?尝试运行以下代码,这将帮助启动 ollama 服务,并在另一个终端中再次尝试该命令。
ollama serve
或者尝试通过运行以下命令手动启用 systemctl 服务。
sudo systemctl enable ollama
sudo systemctl start ollama
现在,我们可以运行模型进行推理。
请随时尝试其他模型版本,但 7B 是最新版本,并且可以与 Ollama 一起使用。
该模型在各个方面表现出色,与早期模型相比,整体性能与 GPT 相当。
用于评估的测试数据来自 Jailbreak 并被翻译成多种语言。值得注意的是,Llama-3 在多语言提示中表现不佳,因此被排除在比较之外。研究结果表明,Qwen2-72B-Instruct 模型实现了与 GPT-4 相当的安全水平,并根据显著性测试(P 值)显著优于 Mistral-8x22B 模型。
五、Ollama REST APIOllama有一个用于运行和管理模型的REST API。
(1)生成响应
curl http://localhost:11434/api/generate -d '{ "model": "qwen2:7b", "prompt": "为什么天空是蓝色的?", "stream": false}'(2)聊天模型
curl http://localhost:11434/api/chat -d '{ "model": "qwen2:7b", "messages": [ { "role": "user", "content": "为什么天空是蓝色的?" } ], "stream": false}'更多细节,可以访问 API 文档:https://github.com/ollama/ollama/blob/main/docs/api.md
六、小结总之,我们可以说 Qwen2-72B-Instruct 模型在各种基准测试中展示了其卓越的性能。特别是 Qwen2-72B-Instruct 超越了之前的迭代,如 Qwen1.5-72B-Chat,甚至与像 GPT-4 这样的最先进模型竞争,这由显著性测试结果证明。此外,它显著优于像 Mistral-8x22B 这样的模型,强调了其在确保多语言环境中安全方面的有效性。
展望未来,像 Qwen2 这样的大型语言模型的快速增长预示着一个未来,AI 驱动的应用和解决方案变得越来越复杂。这些模型有潜力革新包括自然语言理解、生成、多语言通信、编码、数学和推理在内的各个领域。随着这些模型的持续进步和改进,我们可以期待 AI 技术取得更大的进步,从而开发出更智能、更像人类的系统,更好地满足社会需求,同时遵守道德和安全标准。