首页
/ generative-ai-for-beginners 开源模型实战:Open Models 的定义边界、核心优势与 Llama、Mistral、Falcon 选型方法

generative-ai-for-beginners 开源模型实战:Open Models 的定义边界、核心优势与 Llama、Mistral、Falcon 选型方法

2026-09-06 19:11:30作者:董斯意

本文是微软开源课程《generative-ai-for-beginners》第 16 课(16-open-source-models/README.md)的深度技术解读。开源大模型(Open Models)世界日新月异,本课将系统回答三个核心问题:什么才算"真正的开源"大模型?为什么越来越多团队选择开放模型而非闭源模型?面对 Llama、Mistral、Falcon 等庞大家族,你该如何为业务场景做出理性选择。读完本文,你将掌握开源/开放模型的定义判定标准、三类典型开放模型的架构特点与代表微调变体,并获得结合仓库内可运行示例的上手路径。

引言:为什么需要专门学习"开放模型"

《generative-ai-for-beginners》是一门面向零基础开发者的 21 课实战课程,而"开源模型"这一课在全课程中起着承上启下的作用:

  • 若你关心闭源模型(proprietary models)与开源模型的对比,课程建议先学习第 2 课 02-exploring-and-comparing-different-llms/README.md("探索与比较不同 LLM"),该课系统区分了 open-weight/open-source 与 proprietary 模型的差异;
  • 本课会触及模型微调(fine-tuning)话题,但完整的方法论与实验教程在 18-fine-tuning/README.md 中展开。

也就是说,本课的核心目标是把"开源模型"这个生态讲透:它的定义、优势、主流选手和选型思路,为后续基于 Llama、Mistral 等模型构建应用(见第 20、21 课)打下认知基础。

学习目标

  • 理解什么是 open source models(开源模型);
  • 理解使用开放模型的核心收益;
  • 探索 Hugging Face 与 Microsoft Foundry(微软 Foundry 模型目录)中可用的 open models。

什么是"开源模型":从 OSI 十项标准到 LLM 语境的重定义

开源软件(Open Source Software)在人类技术的多个领域演进中扮演了关键角色。开源促进会(Open Source Initiative,OSI)为此专门定义了软件被归类为"开源"所需满足的 10 项标准,其核心要求是:源代码必须在 OSI 批准的许可证下开放共享。

但大语言模型的开发虽然与软件工程有相似要素,其过程却并不完全相同——这引发了社区围绕"LLM 语境下开源的定义"的大量讨论。按照传统开源的严格口径,一个模型要被称为"真开源",以下信息应当全部公开可用:

必须公开的信息 说明
训练数据集(Datasets) 用于训练模型的数据集本身
完整模型权重(Full model weights) 作为训练产物的完整模型权重
评估代码(Evaluation code) 对模型进行评估的完整代码
微调代码(Fine-tuning code) 用于对模型进行微调的代码
完整权重与训练指标(Weights and training metrics) 完整权重及配套训练指标

目前只有极少数模型完全满足上述标准。 课程给出的典型代表是艾伦人工智能研究所(AllenAI)发布的 OLMo 模型(OLMo-7B)。由于本课写作时,多数流行的开放权重模型尚无法同时满足"公开训练数据 + 公开完整训练代码"等全部条件,课程在后续论述中统一使用 "open models(开放模型)" 这一更严谨的称呼——这也是阅读本课时需要首先建立的概念敏感度:开放权重 ≠ 严格意义的开源,两者之间的差异体现在许可证、训练数据与训练代码的开放程度上。

这一点在仓库中同样有印证:第 2 课在分类 LLM 时明确区分了 Open-Weight/Open-SourceProprietary 两类,并指出部分"开放模型其实是带有使用限制的开放权重模型",团队在生产前仍需审视许可证条款、托管成本、维护、安全更新与评估质量(见 02-exploring-and-comparing-different-llms/README.md)。

开放模型(Open Models)的三大核心优势

高度可定制(Highly Customizable)

由于开放模型随附详细的训练信息,研究者和开发者可以修改模型的内部结构(internals),从而打造面向特定任务或研究领域高度专门化的模型。文档中列举的典型方向包括:

  • 代码生成(code generation);
  • 数学运算(mathematical operations);
  • 生物学(biology)等垂直领域。

这正是微调(fine-tuning)技术的价值所在:以预训练模型为"地基"(base model),注入领域数据继续训练,得到定制化的新模型。仓库第 18 课对"何时微调"给出了严谨的决策框架——先用 prompt engineering 与 RAG 建立基线,只有当收益明确大于成本(调优能力、数据准备工作量、算力、部署)时才值得微调(18-fine-tuning/README.md)。

成本优势(Cost)

开放模型在使用与部署时的每 token 成本通常低于闭源模型。构建生成式 AI 应用时,应当针对自己的使用场景认真权衡"性能 vs 价格"(performance vs price)——这正是课程中成本对比图的核心启示:

开放模型与闭源模型的成本对比(每 token 成本随模型规模与质量变化)

图中反映了开放模型生态的普遍规律:开放权重模型可以被自托管或通过低成本的托管端点运行,因而在规模化推理场景下具备价格竞争力(图片来源标注为 Artificial Analysis)。

灵活性(Flexibility)

使用开放模型让你可以灵活地选用不同模型,或将多个模型组合使用。文档给出的经典案例是 HuggingChat Assistants:用户可以直接在界面中选择当前对话背后使用的模型,无需切换任何应用或代码:

在 HuggingChat 界面中直接切换/选择开放模型的交互示意

从仓库结构也能看出课程的这种"多模型灵活切换"设计:同一类练习往往同时提供 oai(OpenAI)、aoai(Azure OpenAI)与 githubmodels(Microsoft Foundry Models)三种标签,例如第 20、21 课的练习 20-mistral/python/githubmodels-assignment.ipynb21-meta/python/githubmodels-assignment.ipynb,均使用统一的推理端点驱动开放模型(配置方式见 00-course-setup/03-providers.md)。

主流开放模型纵览:Llama、Mistral、Falcon

课程逐一介绍了三个最具代表性的开放模型家族,并给出了各自的微调生态样例。

Llama:面向对话优化的 Meta 家族

Llama 2 由 Meta 开发,是面向聊天应用深度优化的开放模型。其关键在其微调方法:训练中纳入了大规模对话数据与人类反馈。这种方法使模型输出更能对齐人类期望,从而显著提升对话类场景的用户体验。

典型微调变体包括:

  • Japanese Llama(ELYZA-japanese-Llama-2-7b):专精于日语场景;
  • Llama Pro(TencentARC/LLaMA-Pro-8B):对基础模型的增强版本。

仓库纵深延伸:这一家族在仓库第 21 课 21-meta/README.md 中得到了完整实战化——该课讲解 Llama 3.1(70B / 405B Instruct)与 Llama 3.2(11B / 90B Vision Instruct,另有 1B/3B 纯文本端侧变体)。相对 Llama 2,Llama 3.1 将上下文窗口扩展至 128k token、最大输出 token 提升至 4096,并带来 Native Function Calling(内置 brave_search、wolfram_alpha 两个可识别工具)与更强的多语言支持;Llama 3.2 则首次在开源家族中加入**多模态(文本 + 图像)**能力。这些都印证了本课"开放模型高度可定制、可快速演进"的论断。

Mistral:以 MoE 追求高性能与高效率

Mistral 是一个把高性能与高效率作为核心目标的开放模型。它采用 Mixture-of-Experts(混合专家,MoE) 方法:把一组专门化的"专家"子模型组合进一个系统,推理时根据输入动态选择启用哪些专家。这样,模型只处理自己擅长的输入类型,计算资源利用更高效——这是 Mistral 在同样算力下取得高性价比表现的关键架构原因。

典型微调变体包括:

  • BioMistral(BioMistral-7B):聚焦医疗/生物医学领域;
  • OpenMath Mistral(nvidia/OpenMath-Mistral-7B-v0.1-hf):专长数学计算。

仓库纵深延伸:仓库第 20 课 20-mistral/README.md 将该家族细化到三个成员——面向企业旗舰的 Mistral Large 2(上下文窗口 128k,数学/编码平均准确率约 76.9%,原生函数调用,适合 RAG 与代码生成)、主打成本与低延迟的 Mistral Small(比 Mistral 大型模型价格下降约 80%,属小型语言模型 SLM)、以及唯一采用 Apache 2.0 许可证免费Mistral NeMo。后者使用比 tiktoken 更高效的 Tekken 分词器、开放可微调的基础权重,并因原生函数调用而成为首批原生支持工具调用的开放模型之一。

Falcon:TII 打造的高效推理架构

Falcon 由阿联酋技术创新研究院(Technology Innovation Institute,TII)创建。Falcon-40B 拥有约 400 亿参数,据课程所述,它能在更小的计算预算下取得优于 GPT-3 的表现。其秘诀在于架构层面的创新:

  • FlashAttention 算法:显著压缩注意力计算的内存占用;
  • multiquery attention(多查询注意力):进一步降低推理期的显存需求。

由于推理时间显著缩短,Falcon-40B 非常适合对话类应用。

典型微调变体包括:

  • OpenAssistant(falcon-40b-sft-top1-560):完全基于开放模型构建的对话助手;
  • GPT4ALL(nomic-ai/gpt4all-falcon):宣称在基础模型之上提供更高性能。

如何选择开放模型:没有银弹,只有方法论

面对日益庞大的开放模型生态,课程直言:不存在"唯一正确"的开放模型答案,但有四条经过验证的选型路径:

  1. 按任务筛选(filter by task):从 Microsoft Foundry 模型目录的"按任务筛选"功能入手。模型卡片会标注该模型针对哪些任务做过训练,这是快速理解"它能做什么"最直接的入口。第 2 课对该工作流有更完整的图解——在 02-exploring-and-comparing-different-llms/README.md 中可以看到目录中按任务过滤、阅读模型卡(Model Card)、跨模型比对基准(Model Benchmarks)再到微调与部署的完整闭环。
  2. 参考社区榜单:Hugging Face 维护了 LLM 排行榜(LLM Leaderboard),可以按特定指标查看表现最好的模型;
  3. 跨类型对比工具:当需要在不同类型 LLM 间横向对比时,课程推荐参考 Artificial Analysis——其"模型质量"对比视图展示了开放模型在质量维度上的真实分布,避免只看参数规模或营销口径:

不同类型开放模型在质量维度上的横向对比视图(来源:Artificial Analysis)

  1. 围绕领域找微调版 + 亲自实验:如果你在做某个具体垂直用例,直接搜索聚焦同一领域的微调变体往往事半功倍(例如医学领域找 BioMistral、数学找 OpenMath Mistral)。此外,用多个开放模型同时跑你的真实 prompt、对比你与用户的期望差距,是最朴素的迭代实践。

课程内的实践提醒:模型目录的命名演进

需要说明的是,本课写作于课程生态仍在演进期间,相关命名在不同版本略有差异:

  • 课程较新版本将其称为 Microsoft Foundry Models 模型目录ai.azure.com/catalog/models),并注明 GitHub Models 将于 2026 年 7 月底停止服务,由微软 Foundry 提供统一的"单端点 + 单 API Key 访问多个模型提供商"体验;
  • 早期版本文本中的"Azure AI Studio / Azure AI Foundry 模型目录"即同一概念的前身。

这些命名沿革在仓库的课程设置文档 00-course-setup/03-providers.md 中有明确说明,该文档也列出了一份非常实用的"供应商速查表"(OpenAI、Azure OpenAI、Microsoft Foundry Models、Hugging Face、本地运行方案 Foundry Local / Ollama),并给出了 .env 环境变量的配置方法(如 AZURE_INFERENCE_ENDPOINTAZURE_INFERENCE_CREDENTIAL 对应 Microsoft Foundry Models 的端点与密钥)。

快速上手:从"选型"到"跑通第一段代码"

本课在"下一步"中强调:开放模型最大的魅力在于可以非常迅速地开始使用。Microsoft Foundry 模型目录中提供了一个专门的 Hugging Face 模型集合,其中就包含本课讨论的 Llama、Mistral 等模型。

仓库为此配套了可直接运行的真实示例。以 Meta 家族为例,21-meta/README.md 演示了如何通过 azure.ai.inference SDK、用 Meta-Llama-3.1-405B-Instruct 触发一次原生函数调用——关键调用模式如下:

import os
from azure.ai.inference import ChatCompletionsClient
from azure.ai.inference.models import SystemMessage, UserMessage
from azure.core.credentials import AzureKeyCredential

# 从 Microsoft Foundry 项目的 "Overview" 页面获取
token = os.environ["AZURE_INFERENCE_CREDENTIAL"]
endpoint = os.environ["AZURE_INFERENCE_ENDPOINT"]
model_name = "Meta-Llama-3.1-405B-Instruct"

client = ChatCompletionsClient(
    endpoint=endpoint,
    credential=AzureKeyCredential(token),
)

# 在 system prompt 中声明可用工具(brave_search, wolfram_alpha)与环境上下文
tool_prompt = """<|begin_of_text|><|start_header_id|>system<|end_header_id|>
Environment: ipython
Tools: brave_search, wolfram_alpha
...
You are a helpful assistant<|eot_id|>"""

messages = [
    SystemMessage(content=tool_prompt),
    UserMessage(content="What is the weather in Stockholm?"),
]

response = client.complete(messages=messages, model=model_name)
print(response.choices[0].message.content)

运行前提非常简单:按 00-course-setup/03-providers.md 创建 Microsoft Foundry 项目、从模型目录选中模型并复制端点与密钥写入环境变量即可。若你希望完全离线、零云订阅地体验开放模型,课程也提供了两条路径:Foundry Local(本地运行、自动选择 NPU/GPU/CPU 执行后端、暴露 OpenAI 兼容端点)与 Ollama(本地运行 Llama、Phi、Mistral、Gemma 等),实操示例集中在 19-slm/README.md

小结

本节(第 16 课)完整回答了三件事:其一,用 OSI 十项标准与"训练数据、完整权重、评估代码、微调代码、训练指标"五要素重新校准了对 LLM 语境下"开源"的认知,强调多数开放权重模型应严谨地称为 open models;其二,论证了开放模型在可定制性、成本与灵活性三方面的结构性优势;其三,以 Llama 2、Mistral、Falcon 为代表梳理了开放模型的技术特点、架构创新与其微调生态,并给出了"任务筛选 → 榜单对比 → 领域微调版 → 亲自实验"的务实选型路径。

若要继续深入,推荐按顺序研读仓库内如下章节:

登录后查看全文
热门项目推荐
相关项目推荐