← 全部极客知识库

大模型通识 / 大模型技术演进

7. 2023—2024:模型可以下载和改造,开放生态扩大开发选择

原文备份 · 第 8 / 26 篇 · 查看极客时间原知识库 ↗

本篇目录 · 7 节

来源:大模型技术演进

2023 年 7 月 18 日,微软的 Inspire 大会上出现了一次值得记住的合作:Meta 与微软共同宣布推出 Llama 2。开发者可以取得模型权重和配套代码,在许可条件下用于研究和商业项目;Azure、AWS、Hugging Face 也参与提供访问和部署渠道。几个月前,许多人还在争取一个聊天产品或模型 API 的使用资格,现在,一条不同的道路正在拓宽:把模型拿到自己手里,决定在哪里运行、怎样改造,再把它接进自己的产品。Llama 2 发布公告

这件事改变了开发者在大模型产业里的位置。除了等待厂商升级服务,人们可以围绕同一份模型分头工作:研究者尝试新的训练方法,工具作者想办法让它在更小的设备上运行,应用开发者选择适合自己任务的版本。模型发布后的创新,不再全部集中于发布模型的那家公司。

前几篇谈到的 RAG、定制助手和工作流,依然成立。本篇往它们下面再看一层:应用所调用的模型,开始有了更丰富的来源和运行方式。

从使用一个服务,到取得模型权重

先把“下载模型”说清楚。

调用在线 API 时,你把输入发给服务商,由它运行模型,再把结果返回。取得模型权重,则是拿到模型在训练中学到的大量数值参数。把这些参数交给相应的推理程序,程序才能根据你的输入计算并生成回答。

这里的“推理”,指模型运行并产生结果,不专指后面会介绍的复杂逻辑推理。即使只是让模型补完一句话,也属于推理过程。

权重不是一份能够直接阅读的知识百科,也不是完整的聊天应用。模型结构配置、把文本转换为 token 的分词器,以及负责计算的运行程序,都需要配合起来。聊天界面、会话记录、文件读取和搜索,则通常由外面的应用提供。下载到模型,不等于下载到了某个在线产品的全部能力。

2023 年 2 月 24 日发布的初代 LLaMA,是这段历史的重要起点之一。Meta 提供了 7B、13B、33B、65B 等规模,目标是让没有庞大基础设施的研究者也能开展实验。不过,当时采用的是面向研究的非商业许可,访问需要申请。不能把后来 Llama 2 的商业使用范围,倒写到初代 LLaMA 身上。初代 LLaMA 公告

模型名称里的 B 是 billion,也就是十亿;7B 大约表示 70 亿个参数。它帮助我们粗略判断模型规模和运行资源需求,却不能单独代表能力。训练数据、训练方法、模型结构,以及它是否针对指令和任务做过优化,同样重要。

这也解释了为什么模型经常同时提供 Base 与 Chat 或 Instruct 版本。Base 是基础版本,主要学会了语言及相关模式;Chat、Instruct 版本又经过面向对话或指令的训练。做聊天助手时,通常更需要后者。模型“会续写文本”与“能按用户要求回答”,并不是同一项能力。

开放模型的竞争,开始有了不同方向

Llama 2 之后,开放生态没有沿着“只有更大的模型才值得发布”这一条路发展。

2023 年 9 月 27 日,Mistral AI 发布 Mistral 7B,采用 Apache 2.0 许可,同时提供指令版本。它的重要性在于展示了一种紧凑模型的路线:在相对较小的参数规模下,通过训练和结构设计争取更好的能力与运行效率。官方发布时给出了与更大模型的基准比较;这些结果有具体测试条件,不能直接推导为它在所有任务里都胜过大模型。Mistral 7B 发布公告

对个人开发者而言,这种路线非常实际。一个综合能力更强、但自己的设备根本装不下的模型,未必适合手头项目;一个能够运行、在目标任务上足够好的模型,反而可以变成每天使用的工具。

中国团队也在扩展这种选择。2023 年 8 月 3 日,通义千问发布 Qwen-7B 和 Qwen-7B-Chat,在魔搭 ModelScope 与 Hugging Face 提供模型。后续又增加量化版本、微调支持和更多参数规模。对于需要处理中文资料的开发者,这意味着可以直接围绕中文能力较受重视的模型开展实验,而不必把所有希望寄托在给其他模型追加中文提示词上。Qwen 官方仓库历史记录

DeepSeek 同样应放进这一时期的开放模型版图。其 2024 年 1 月公开的 DeepSeek LLM 技术报告,介绍了 7B、67B 规模及基础、对话版本;官方仓库提供模型与使用方法,训练语料覆盖中文和英文。它后来在效率和推理上的突破并非凭空出现,而是在持续训练、评测和开放模型的路线中发展出来的。这里先记住这条起点,后面的文章再讨论 V2、V3 和 R1。DeepSeek LLM 技术报告、官方模型仓库

到了 2024 年,模型更新进一步把选择拉开。4 月 18 日发布的 Llama 3 提供 8B、70B 的预训练与指令微调版本;9 月 19 日发布的 Qwen2.5,则将通用模型扩展到从 0.5B 到 72B 的多个规模,并发布代码、数学等方向的专门模型。开发者面对的逐渐成为一组能力、资源需求和任务侧重点不同的选项。Llama 3 公告、Qwen2.5 公告

这些发布共同说明:开放生态既在提高能力上限,也在扩大能够实际参与开发的人群。小模型、中文模型、代码模型和通用模型,可以分别找到适合自己的使用位置。

模型开放以后,还需要有人把它变得好用

假设你下载了一份权重,接下来仍然会遇到一连串问题:配套文件在哪里?代码能否识别这个模型?设备内存够不够?怎样让自己的应用调用它?

2023—2024 年围绕这些问题成长起来的工具,与模型本身一样值得理解。

Hugging Face 把模型分享与开发工具连接起来。 它的 Hub 承载模型文件、模型说明和许可证;Transformers 库提供加载和使用不同模型的共同工具。以 Llama 2 为例,Hugging Face 在发布当天就提供了模型托管、Transformers 集成、微调示例和推理服务支持。模型不再只是公告里的名字,而是其他开发者可以继续加工的材料。Hugging Face 的 Llama 2 发布支持

这会产生一种累积效应:原作者发布基础模型,其他人可以在许可范围内提供微调版本、量化版本和应用示例,后来者沿着这些成果继续尝试。但同名模型的不同版本也可能有不同来源与效果,所以模型卡中记录的基础模型、用途和限制,会成为理解下载内容的重要入口。

llama.cpp 把运行门槛往个人设备方向推。 它围绕高效的本地推理展开工作。查看 2023 年 6 月的项目路线图,可以看到维护者和贡献者已经在讨论 CPU 性能、苹果 Metal 加速、不同量化格式与模型支持。这里呈现的不是“再训练一个更聪明的模型”,而是让已有模型更充分地利用手边硬件。llama.cpp 的 2023 年 6 月路线图

其中,量化是一个关键概念。可以先把它理解成:用更少的位数表示模型中的数值,以减少存储和内存占用。作为一个只计算权重的简化例子,70 亿个参数若每个占 2 字节,大约需要 14 GB;若平均压到每个 4 位,理想化计算约为 3.5 GB。实际文件还包括额外信息,运行时也要占用额外内存,所以这个算式不能直接当成电脑配置要求。

量化带来的是资源占用与精度之间的取舍。选对方法,有些任务受到的影响很小;压缩过度或任务敏感时,质量可能下降。它也没有消除模型原有的能力限制。

Ollama 进一步简化了本地模型的使用入口。 其 2023 年 10 月的公告已经展示了命令行和供应用调用的 REST API,并介绍了 Mac 本地运行及 Linux 容器运行方式。对开发者来说,这让“在自己机器上启动模型,再让程序向它发请求”的路径更容易理解。Ollama 2023 年公告

注意这里的层次:Qwen、Llama 是模型家族,llama.cpp 是推理工具,Ollama 提供模型运行和调用入口。它们可以互相配合,不是几个名称不同的同类聊天机器人。今天的产品可能已经扩展出更多功能,本篇讨论的是它们在当时降低开发门槛的作用。

从自己能用,到能够服务更多人

个人电脑上每次生成一段文字,与让几十个用户同时使用一个应用,是两种不同的运行压力。

即使模型权重装得进显存,生成过程也需要额外空间。例如,模型会缓存此前 token 的部分计算结果,以减少后续生成时的重复计算,这类数据通常称为 KV cache。请求越多、上下文越长,缓存的管理就越重要。

2023 年 6 月,vLLM 发布时重点解决的就是高效推理服务问题。它引入 PagedAttention,把这些缓存分块管理,减少浪费,使有限显存可以容纳更多并行请求。它改善的是运行同一模型时的资源利用和服务吞吐量——单位时间能够处理多少工作,而不是直接提高模型的知识或推理能力。vLLM 首发文章

这条线解释了开放生态为何会催生专门的推理基础设施:权重能够取得,只解决了“能不能自己运行”;运行成本、并发能力和稳定性,决定了“能不能把它做成持续提供的服务”。后面讨论 2024 年成本变化时,我们还会回到这些问题。

LoRA 与 QLoRA:改造模型,也开始有了较轻的办法

部署解决运行地点,微调解决模型怎样适应任务,两者需要分开。

假设你在做一个个人阅读助手,希望它总能把笔记转换为自己习惯的“核心观点、支持证据、待核实问题”格式。你可以先用提示词给规则和示例。如果需要处理大量同类内容,而提示词调整仍不够稳定,才可能进一步考虑用经过整理的样本进行微调,让模型学习这种任务模式。

完整地更新模型全部参数,往往需要很多训练资源。2021 年提出的 LoRA,采用另一种办法:固定原有权重,训练少量附加参数来学习调整。第 3 篇谈到它在图像生成中的应用;它最初就是围绕语言模型适配提出的。较少的可训练参数,使保存和分享任务适配结果也更轻便。LoRA 论文

2023 年 5 月提出的 QLoRA,进一步把量化与 LoRA 结合:以量化形式保存冻结的基础模型,再训练 LoRA 参数,降低微调所需的显存。它为更多研究者和小团队开展模型适配创造了条件。QLoRA 论文

这两项工作扩大的,是“在已有模型上继续改造”的机会。它们没有把从零训练基础模型的成本一并消除,也没有让数据质量变得无关紧要。如果训练示例本身错误、单一或与目标任务不符,微调可能教给模型错误习惯,甚至损伤原有能力。

把它和前面几篇连起来,便可以看到三种不同的干预位置:

需求 可以先理解为哪类工作 改变了什么
让模型按本次要求回答 提示词与上下文设计 这一次收到的指令和材料
让模型参考经常更新的私人资料 RAG 回答前检索出来的依据
让模型更稳定地适应一类任务或表达方式 微调,包括 LoRA 等方法 模型的参数或附加适配参数

这不是严格排他的分工,三者也可以组合使用。对初学者而言,最有用的判断是:“模型不知道我的最新笔记”,通常不能直接等同于“我必须训练一个模型”。 先辨认缺的是资料、指令还是任务适配,才能理解为什么开放生态需要多种工具。

能够下载,不等于没有使用条件

“开源大模型”是当时非常常见的说法,但做开发时需要再细分一步。

模型权重开放,说明你有机会取得训练后的参数;代码开放,说明相关软件实现可供查看和使用。训练数据是否公开、训练过程能否复现、权重允许怎样修改和再分发,则是另外的问题。它们不一定同时开放。

许可证也不能只按公司记忆。Llama 2 使用自己的社区许可,附有相关使用条件;Mistral 7B 使用 Apache 2.0。即便同一个模型家族,不同版本也可能不同:Qwen2.5 发布公告明确指出,通用 Qwen2.5 系列中的 3B、72B 版本不采用该系列其余版本使用的 Apache 2.0 许可。Llama 2 原始许可、Qwen2.5 许可说明

因此,本篇用“开放生态”描述这些共同推动模型获取和再利用的工作,不把所有发布方式视为同一种开源程度。具体做项目时,应看选中那个模型版本的说明,而不是只看新闻标题里的“开源”二字。

个人开发者真正增加了哪些选择

回到上一章的个人复习助手。假设它需要读取笔记、生成题目、检查回答,现在至少有几种合理组合。

你可以继续调用托管 API,把时间集中于复习流程;也可以在自己的电脑上运行一个适合中文任务的小模型,把笔记处理留在本地;如果后来需要更强的设备或让多人使用,还可以把开放模型部署到自己租用的服务器上。模型开放与本地运行并不画等号:开放模型同样可以通过云端 API 提供服务。

这些方案的成本构成不同。托管 API 按服务计费,通常省去自行维护模型运行环境的工作;自己部署减少了对单一模型服务接口的依赖,却要承担设备、内存、运行维护和故障处理。权重可以免费取得,并不能推出每次使用的总成本必然更低。

本地处理也要看完整流程。如果模型在本地,但文档解析、嵌入计算或其他工具仍调用远程服务,整个应用就还没有完全留在本地。这是应用各部分如何组合的问题。

对这一阶段的意义,可以作出这样的理解:基础模型仍需要大量资源来训练,但围绕它进行实验和开发的门槛已经分成了多个层次。有人能够改模型,有人能够优化运行,有人只需把一个现成模型接到小应用里。开放权重、分发平台、推理工具和轻量微调方法一起,让更多人有了可以动手的位置。

不过,能选择模型、能把它运行起来之后,还有一个很直观的限制:一整本书、一组研究材料或一个项目的代码,常常无法一次交给模型处理。下一篇将讨论长上下文如何扩展这道边界,以及它为什么又会改变 RAG 和资料类应用的设计。


本文属于第 0 部分“大模型发展史”,重点回顾 2023—2024 年的阶段变化;全系列观察截止日期为 2026 年 10 月 3 日。文中的复习助手、阅读助手和内存计算均为解释原理的示例,不是实测结果或设备选购建议。


上一篇:06|2023—2024:一次调用不够用,定制助手与工作流发展起来

下一篇:08|2024:上下文变长,AI 开始处理成套资料

返回:第 0 部分大纲