Generative AI for Beginners 第 16 课解读:开源模型全景解析与选型实战
【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners
开源 LLM 生态正在快速演进,理解"开源模型/开放模型"的定义边界、核心优势与典型代表,是构建生成式 AI 应用时做出正确技术决策的前提。本文以《generative-ai-for-beginners》课程第 16 课(对应仓库 translations/fr/16-open-source-models/README.md 与 16-open-source-models/README.md)为骨架,结合仓库内第 20 课 Mistral、第 21 课 Meta 家族等后继实战内容,为你厘清从"开放模型是什么"到"面对 Llama、Mistral、Falcon 该选谁"的完整决策链路。
本课定位:课程体系中的"开放模型选型"一站
第 16 课是课程中专注于**开放模型(open models)**的独立章节。它的直接上下文是课程中另外两讲:
- 若你需要了解专有模型(proprietary)与开放模型的整体差异、如何按任务类型横向对比各类 LLM,请先回到 02-exploring-and-comparing-different-llms/README.md;
- 本课会提及模型的微调(fine-tuning),但更完整的微调机制、成本收益分析与实践教程,见 18-fine-tuning/README.md。
本课覆盖三个核心学习目标:理解什么是开源模型;理解使用开放模型的价值;学会在 Hugging Face 与模型目录中探索可用的开放模型。
什么是开源模型:从软件开源到"模型开源"的定义辨析
开源软件在推动技术发展上作用巨大。开源促进会(Open Source Initiative,OSI)定义了十条软件开源判据,其要义是:源码必须在 OSI 批准的许可证下公开共享。但 LLM 的开发过程与常规软件并不完全相同,社区因此对"LLM 语境下的开源"展开了大量讨论。
要符合传统意义上的"开源"定义,一个模型通常要求下列信息全部公开:
- 用于训练模型的数据集;
- 训练过程中的完整模型权重;
- 评估代码(evaluation code);
- 微调代码(fine-tuning code);
- 完整模型权重与训练指标(training metrics)。
截至本课撰写时,真正完全满足上述标准的模型屈指可数,例如 Allen 人工智能研究所(AllenAI)发布的OLMo(如 OLMo-7B)即属于这一类。因为大多数模型尚未完全满足传统开源定义,本课统一使用更稳妥的称谓:"开放模型"(open models)。
这一概念辨析并非咬文嚼字:它直接影响你后续对许可证条款、可定制范围、可复现程度的判断。仓库第 02 课在对比开放权重(open-weight)、开源与专有模型时也提醒团队,在投入生产前必须审查许可证条款、服务成本、维护与安全更新、评估质量等因素,这一点与第 16 课"严谨称呼开放模型"的思路一脉相承。
开放模型的三大核心优势
高度可定制(Highly Customizable)
开放模型发布时往往附带详细的训练信息,研究者与开发者能够修改模型内部组件,产出面向特定任务或研究领域的高专业化模型。本课列举的典型垂直领域包括:代码生成、数学运算与生物学。例如下一节将看到的 BioMistral(医学)、OpenMath Mistral(数学)等微调版本,正是"基于开放权重二次定制"的直接产物。
成本(Cost)
使用与部署开放模型的每 token 成本通常低于专有模型。在构建生成式 AI 应用时,针对你的用例评估模型的"性能/价格"比是必要环节。下图给出按每百万 token 价格(USD)排列的模型对比,纵轴越低代表越便宜:
图片来源:Artificial Analysis(本图取自 16-open-source-models/images/model-price.png)
从仓库后继课程可以印证这一成本优势的实际形态:第 20 课 20-mistral/README.md 在介绍 Mistral Small 时即指出其相比 Mistral Large、NeMo 等大模型可带来显著成本节约,且延迟更低——这正是把"开放/低成本模型用于高频请求场景"的工程化示例。
灵活性(Flexibility)
开放模型允许你在不同模型之间自由切换甚至组合使用。一个典型例子是 HuggingChat Assistants:用户可以在界面中直接切换当前使用的模型。仓库中 16-open-source-models/images/choose-model.png 展示了这种设置界面:
这种"可插拔"能力让团队可以低成本进行多模型 A/B 对比,而不必被单一供应商锁定。
典型开放模型巡礼:Llama、Mistral、Falcon
Llama 2:面向对话优化的 Meta 开放模型
Llama 2 由 Meta 开发,是一个针对聊天类应用优化过的开放模型。其微调方法引入了大量对话数据与人类反馈,使模型输出更符合人类预期、用户体验更佳。
社区衍生的微调版本示例包括:
- Japanese Llama(ELYZA 的 Japanese-Llama-2-7b):专注于日语场景;
- Llama Pro(TencentARC 的 LLaMA-Pro-8B):在基础模型之上的增强版本。
在本仓库的课程演进中,Meta 家族模型是持续深入的主题。第 21 课 21-meta/README.md 系统介绍了 Llama 3.1 与 Llama 3.2 两个后续代际:
- Llama 3.1(含 70B Instruct、405B Instruct 等变体)在原 Llama 3 基础上扩大了上下文窗口(最高 128k tokens)、提升多语言能力,并支持**原生函数调用(native function calling)**与内置的 Brave Search、Wolfram Alpha 工具,便于构建 RAG 与工具集成型应用;
- Llama 3.2(11B/90B Vision Instruct,另有 1B/3B 文本版)首次在 Llama 家族引入多模态输入(同时接受文本与图像),并通过小尺寸变体支持边缘/移动端低延迟部署。
在 21-meta/python/githubmodels-assignment.ipynb 中,你可以直接看到用Meta-Llama-3.1-405B-Instruct触发工具调用、用Llama-3.2-90B-Vision-Instruct描述图片的可运行代码。
Mistral:主打高性能与高效率的开放模型
Mistral 系列开放模型以高性能和高效率著称,其突出特点是采用Mixture-of-Experts(专家混合,MoE)架构:把一组各有所长的专家模型组合为单一系统,根据输入内容只激活部分专家,因此计算只发生在模型最擅长的输入上,显著提升推理效率。
社区微调版本示例包括:
- BioMistral(BioMistral-7B):聚焦医学领域;
- OpenMath Mistral(NVIDIA 的 OpenMath-Mistral-7B):擅长数学计算。
仓库中的第 20 课 20-mistral/README.md 是本主题的直接续篇,覆盖了 Mistral Large 2、Mistral Small 与 Mistral NeMo 三个模型族系:
- Mistral Large 2:旗舰级企业模型,上下文窗口达 128k,具备原生函数调用与更强的代码生成能力;
- Mistral Small:定位小语言模型(SLM),成本低、延迟低、部署灵活;
- Mistral NeMo:采用更高效的 Tekken 分词器并原生支持函数调用,是首批具备该能力的开源模型之一;基础权重开放微调,灵活性更高。
20-mistral/python/githubmodels-assignment.ipynb 提供了基于Mistral-large、Mistral-small、open-mistral-nemo的完整对比实验,包括同一提示词下的大小模型延迟差异,以及 NeMo 与 Large 的分词 token 数对比。此外,19-slm/README.md 在对比 LLM 与 SLM 时也提及 Mistral 7B 采用滑动窗口注意力(sliding window attention)的 decoder-only 架构,可作为理解 Mistral 效率取向的补充注脚。
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):相比基础模型提供更高性能。
如何选择开放模型:一条可操作的决策路径
本课明确指出:不存在唯一正确答案。但你可以遵循以下组合策略逐步收敛:
- 按任务过滤:使用模型目录的"按任务筛选(filter by task)"功能,了解每个模型是为何种任务而训练的,这是很好的起点。课程体系内各课反复出现的 Microsoft Foundry 模型目录(第 20 课、第 21 课 中均有说明)即可按此方式检索本节讨论的模型。
- 借助公开排行榜:Hugging Face 维护有 LLM Leaderboard,可基于特定指标查看表现领先的模型。
- 横向对比质量与价格:跨类型比较 LLM 时,Artificial Analysis 提供了质量与成本两个维度的可视化对比,例如下方的模型质量指数(Quality Index,越高越好):
图片来源:Artificial Analysis(取自 16-open-source-models/images/model-quality.png)
综合本课给出的"成本更低但专长不同"的两张图,可以看到:Llama 2 Chat 70B、Mixtral 8x7B 等在成本端具备明显优势,而质量指数则随模型与任务不同而分化——这正是"性能/价格比需要按自身用例评估"的直观论据。
- 面向垂直领域搜索微调版:如果你的场景足够具体,直接搜索聚焦该领域的微调版本往往更有效,如医疗(BioMistral)、数学(OpenMath Mistral)、日语(Japanese Llama)等前述案例。
- 亲自动手做实验:同时尝试多个开放模型,观察它们在你的数据与用户预期下的真实表现,再决定取舍。
进阶:从"用开放模型"到"定制开放模型"
第 16 课提到微调主题并指向第 18 课。若你选定了一个开放模型但需要领域化提升,微调(fine-tuning)是对模型本身进行再训练的技术路线。正如 18-fine-tuning/README.md 所说明的,提示工程与 RAG 通过修改"输入"提升质量,而微调通过新增训练数据"重训模型"。
对于开放模型,微调在仓库中也有现实生态佐证:第 18 课在开放生态层面列举了通过 Hugging Face transformers 与 TRL 微调开放 LLM(如 CodeLlama 7B)、基于 AutoTrain 无代码微调、以及 Unsloth 等框架的路径。需要留意的是,本课与第 18 课都强调:微调是高级技术,必须先明确用例、尝试过提示工程与 RAG 基线、核算数据/算力/部署成本后再启动,若操作不当反而可能损害目标域表现。
上手实践建议
开放模型最大的优点之一就是上手极快。你可以从以下仓库内资源开始:
- 阅读本课的英文原版 16-open-source-models/README.md 与法语版 translations/fr/16-open-source-models/README.md 获取完整对比与图注;
- 如需在专有/开放之间先建立整体认知,先学 02-exploring-and-comparing-different-llms/README.md;
- 选定 Llama 后,运行 21-meta/python/githubmodels-assignment.ipynb 体验函数调用与多模态推理;
- 选定 Mistral 后,运行 20-mistral/python/githubmodels-assignment.ipynb 做延迟与分词对比实验;
- 需要微调定制时,回到 18-fine-tuning/README.md 及其微调教程清单。
小结
开放模型的世界充满活力且持续演化。理解"传统开源判据"与"现实中的开放模型"之间的差距,把握其高可定制、低成本、高灵活三大价值,并借助模型目录的任务过滤、社区排行榜与质量/价格可视化资源进行选型,你就具备了构建生成式 AI 应用的第一手武器。而当你需要更强垂直能力时,开放权重还为你保留了通往微调与自主部署的完整通路——这正是开放模型生态最值得深入探索之处。
【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考