Qwen
阿里云开源大语言模型家族,1.8B到72B多规格可选,支持本地部署、Gradio WebUI 和 O
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
阿里云开源大语言模型家族,1.8B到72B多规格可选,支持本地部署、Gradio WebUI 和 O
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Qwen(通义千问)官方标识
2023年夏天,如果你问一个中国程序员「现在最火的国产大模型是什么」,十个人里有八个会提到通义千问——来自阿里云的大语言模型项目。从最初的对标GPT-3.5,到如今成为全球开源大模型的重要力量,Qwen系列走过了一条令人瞩目的演进之路。
通义千问(Qwen)的正式亮相,始于2023年8月阿里云的开源发布。彼时,开源大模型领域还是LLaMA、MPT、Falcon的天下,中文开源模型的选择非常有限。Qwen-7B的出现打破了这一局面——它是首个在同等参数量级下全面对标GPT-3.5的开源中文大模型,且以Apache-2.0许可证完全开源,允许商业使用。
从技术报告来看,Qwen-7B基于超过2.2万亿token的高质量数据进行预训练,覆盖中文、英文在内的多语言文本。在MMLU、HellaSwag、TruthfulQA等多项权威评测中,Qwen-7B的表现不仅优于同类开源模型,甚至可以与参数量更大的模型同台竞技。
这个项目的意义不仅在于模型本身,更在于阿里云选择了一条开放路线:不仅开源模型权重,还开源训练代码、推理代码、微调工具链,以及完整的部署方案。这在当时的国内大厂中极为罕见。
图2:Qwen-7B在多项基准评测中的表现,与GPT-3.5及同类开源模型对比
Qwen基于标准的Transformer解码器架构构建,采用了多项现代化训练技术来提升模型能力与训练效率。
Tokenizer自定义分词器:Qwen使用基于BPE的自研tokenizer,与GPT-4一样针对代码和中文进行了特殊优化。对于中文文本,一个中文字符通常只需1-2个token,分词效率远高于传统方案。
Flash Attention加速:项目集成了Flash Attention机制,通过IO-aware的注意力计算显著降低显存占用,7B模型在A100上开启后显存占用可降低约30%。
NTK感知的动态上下文扩展:Qwen通过NTK感知插值和LogN注意力近似技术,实现了无需额外训练的上下文扩展,开发者在config.json中设置相关参数即可处理更长上下文。
多精度量化支持:Qwen提供了完整的Int4和Int8量化推理方案,基于AutoGPTQ实现。量化后的72B模型可以在单张A100(80GB)上运行,而原版需要2×80GB的显存。
作为最基础的能力,Qwen-Chat模型在对话场景中表现出色。无论是日常闲聊、专业知识问答、文本润色,还是创意写作,Qwen都能给出连贯且有价值的回应。项目仓库中提供了web_demo.py(Gradio Web界面)和cli_demo.py(命令行交互),让用户可以零门槛地体验模型能力。
图3:Qwen命令行交互界面,支持流式输出
Qwen最令人兴奋的能力之一,是它内置的Agent工具调用框架。Qwen-Chat支持三种主流Agent范式:
HuggingFace Tools Agent:Qwen可以自动调用HuggingFace上的模型、dataset和space,将自身扩展为一个可动态使用外部AI能力的智能体。用户只需给出一段自然语言指令,Qwen就能自主决定是否需要调用外部工具、调用哪个工具,以及如何整合工具返回的结果。
图4-5:Qwen作为HuggingFace Agent,理解用户意图后自主调用外部AI工具并整合结果
ReAct推理模式:Qwen内置了ReAct(Reasoning + Acting)推理链,模型在执行任务时会显式地交替进行「思考→行动→观察」,形成可解释的任务执行轨迹,特别适合需要多步推理的复杂任务。
Code Interpreter代码解释器:Qwen支持沙箱化的Python代码执行。用户让Qwen「帮我分析这组销售数据并画图」,模型会生成并执行Python代码,直接返回可视化的分析结果。这是当前最接近GPT-4 Code Interpreter的开源实现之一。
图6:Qwen Code Interpreter功能,可自动生成并执行Python代码完成数据分析任务
Qwen对System Prompt有良好的支持,用户可以通过设置来定制模型的角色、语言风格、行为模式等。项目仓库中提供了丰富的示例,覆盖角色扮演、语言风格切换、任务指令设定等多种场景。
图7:Qwen支持通过System Prompt灵活设定模型行为模式
Qwen系列覆盖了从1.8B到72B的完整参数量级,用户可以根据自身硬件条件选择合适的版本:
| 规格 | 显存需求(FP16) | 适用场景 |
|---|---|---|
| 1.8B | ~4GB | 移动端/嵌入式 |
| 7B | ~16GB | 个人开发者/研究 |
| 14B | ~30GB | 中等规模团队 |
| 72B | ~160GB(2×80GB) | 企业级/研究 |
这种完整产品线策略,使Qwen能够服务于从个人开发者到大型企业的全层级用户群体。特别是Int4量化后的72B模型,仅需单张80GB A100即可运行。
图8:Qwen-14B在多项能力维度上的雷达图
对于有定制需求的用户,Qwen提供了完整的微调工具链。SFT(有监督微调)支持全参数微调、LoRA和Q-LoRA三种模式。Q-LoRA是当前最低成本的高效微调方案——在单张RTX 3090(24GB)上就能对7B模型进行微调,使得学术机构和中小企业也能拥有自己的定制大模型。
作为本地部署方案,Qwen所有推理和微调都在用户自己的服务器上进行,数据不会离开本地环境,满足金融、医疗等高合规要求行业的需求。项目还提供了完整的评估脚本(eval/目录),帮助用户在标准基准上量化模型效果。
Qwen推荐以下硬件配置:NVIDIA GPU(Hopper/Ampere/Ada/Turing架构),最低16GB显存(7B模型);72B模型全精度运行需要2×80GB,Int4量化后可降至单卡80GB;推荐64GB以上内存;模型权重约150GB,建议使用SSD;软件需要CUDA 11.7+、Python 3.8+、Git + Git LFS。
项目提供了完整的多阶段Dockerfile,构建后即可获得包含所有依赖的运行环境。也可以直接用pip安装依赖后运行Gradio界面(python web_demo.py),或启动OpenAI兼容的API服务(openai_api.py),通过OpenAI SDK风格的代码调用Qwen,实现几乎零代码迁移。
⚠️ 已停止主要更新:Qwen(QwenLM/Qwen)仓库已停止主要维护,2024年阿里云发布了全新一代的Qwen2系列,代码和用法与Qwen有较大差异,存放于独立仓库(QwenLM/Qwen2)。如果计划基于Qwen开发新项目,强烈建议迁移到Qwen2。
显存门槛仍是最大障碍:对于个人开发者而言,72B全精度模型需要约160GB显存,是一笔不小的投入。尽管Int4量化可以降到单卡80GB,但量化精度损失对某些任务仍有影响。
Qwen的出现打破了「大厂不开源」的刻板印象,阿里云选择以Apache-2.0许可证开源完整大模型,这在当时的中国科技大厂中是破天荒的举动。Qwen的开放策略催生了大量基于Qwen的微调模型——从数学专精的Qwen-Math到代码专精的CodeQwen,形成了丰富的开源模型矩阵。
展望未来,随着Qwen2及后续版本的发布,阿里通义系列正在成为全球开源大模型版图中不可或缺的一极。对于开发者而言,无论是直接使用Qwen做应用,还是基于Qwen进行微调研究,抑或从中学习大模型训练与部署的最佳实践,这个仓库都是值得深入研究的宝贵资源。