2024 年,LLaMA Factory 横空出世,迅速在开源社区掀起波澜。短短一年左右,它就收获了超过 35K 的 star,在全球开发者中赢得了“微调神器”的名声。这个由北京航空航天大学研究者郑耀威主导的项目,彻底改变了大模型微调的方式——比以往任何时候都更简单、更高效。更重要的是,它借助开源的力量把全球开发者聚在了一起,催生出创新与协作。

郑耀威是一位年轻的开源爱好者与实践者,从大学时代起就深耕 AI。他见证了 AI 从实验室里的新奇事物走向主流的全过程。在开源社区中成长,他完成了从理论到实践、从代码到大规模协作的转变,对开源的力量有着深切的体会。如今,他正用 LLaMA Factory 为大模型微调翻开新的一页。

Open AGI Forum 是 GOSIM 与 CSDN 合作推出的旗舰系列,很荣幸在 GOSIM CHINA 2024 邀请到郑耀威。在这次独家对话中,这位北航研究者、LLaMA Factory 的作者分享了他的经历、思考,以及在大模型训练与开源开发上的一线经验。

郑耀威的核心观点:

  • 最初我对开源的理解相当理论化。但在真正维护和贡献项目之后,我亲眼看到了协作的力量——处理反馈、评审代码、与来自不同背景的贡献者交流,能极大加快问题的解决,也能激发创新。

  • 在构建和维护复杂系统时,开发者必须深入理解第三方库,才能保证稳定性与性能。有效管理这些依赖,是项目能否成功的关键因素之一。

  • AI 编程助手并不是 LLaMA Factory 主要的微调方向。对这类需求来说,多模型协同的方式往往更有效。

  • 微调不只是为了提升模型性能,它同样是理解模型局限与潜在问题的必经之路。

  • 我们经常训练多个各自专精于特定任务的小模型。这种面向任务的模块化方式,既提升了单个模型的表现,也改善了整个系统的效率。

  • 在实践中,可能 50% 的时间花在数据准备上,20% 在微调,30% 在评估。LLaMA Factory 的核心目标,就是让微调这一环变得更高效。


1. “我的开源之路和 AI 之路是并行的”

Echo Tang: 您最初是怎么走进人工智能领域的?

郑耀威: 2017 年我刚上大学时,AI 远没有今天这么热。来到北京之后,我有幸参加了各种与 AI 相关的会议和讲座——不只在北航,也包括清华和北大。那些活动让我接触到了前沿技术,激发了我对 AI 的浓厚兴趣。

大二那年,在兼顾课业的同时,我开始更深入地钻研 AI 技术。当时“大模型”这个概念还没出现,但我已经在学习神经网络、做一些基础实验了。这些早期经历为我对 AI 的理解和热情打下了基础。我也意识到导师的重要性,于是加入了学校的一个研究实验室,在老师的指导下继续探索 AI。

Echo Tang: 是哪位老师把您带进大模型和 AI 这个领域的?

郑耀威: 刚上大学不久,我听了一场对我影响很深的讲座,主讲人是一位从海外留学归来的校友。他分享了自己在机器学习与隐私保护方面的研究。除了在我们学校做出重要的学术贡献,他在美国也有丰富的教学经验。当时那些内容对我来说有点难,但它成了我学术道路上的一个转折点。

Echo Tang: 您是什么时候开始接触开源的?

郑耀威: 我的开源之路和 AI 之路是并行的。随着逐渐融入开源社区,我的思维方式和工作方式也开始改变。用户提出的大量 issue、开发者提交的 PR,以及实时的互动,都让这段体验变得非常迷人。

一开始,我对开源的理解相当理论化。但在真正投入维护和开发开源项目之后,我亲身感受到了协作的力量——问题能被多快地解决,来自不同背景的贡献者又能带来多少新想法。我逐渐意识到,开源社区极其多元,充满各种可能性。在做 LLaMA Factory 之前,我已经在 GitHub 上研究过一些优秀的开源项目了。

Echo Tang: LLaMA Factory 从第一天起就是开源的。开源对您意味着什么?为什么一开始就选择这条路?

郑耀威: 我目前在北航读博,在实验室里专注于大模型研究。去年四月,我们注意到 LLaMA 这类开源大模型正在崛起,预判“微调开源模型”会成为一大趋势。于是我们很早就开始搭建面向大模型的微调框架。经过持续的维护和改进,LLaMA Factory 如今已经成长为国内外社区广泛使用的微调工具。

有意思的是,LLaMA Factory 是我第一个真正意义上的开源项目。在那之前,我们也发布过用于复现的研究代码,但那算不上真正的开源——研究代码通常在论文发表之后就不再维护了。LLaMA Factory 不一样,它需要持续迭代和维护,才能支撑起一个不断增长的用户社区。


2. LLaMA Factory 的诞生与挑战

Echo Tang: LLaMA Factory 在短时间内就在开源社区获得了惊人的关注,GitHub Star 超过 35k。您是怎么把它推广开的?

郑耀威: 一个开源项目最吸引人的地方,往往是作者独特的想法。要在社区里获得关注,项目需要一个新颖而有说服力的点子。如果这个想法足够创新、足够稀缺,它就有可能迅速被认可。

LLaMA Factory 正是建立在这个理念之上。我们的目标是让大模型微调变得更触手可及,让任何人都能轻松地微调模型。LLaMA Factory 的一项核心使命,就是简化微调流程、降低入门门槛,让更多人能用上这项技术。我们希望把大模型微调的能力交到更广泛的人群手中。

Echo Tang: LLaMA Factory 团队现在有多大?

郑耀威: 我们的团队保持了相对小而高效的规模,这样管理和运作都比较顺畅。核心团队大约有 5 到 6 名研究生,都在专注于框架的维护和开发。除此之外,我们得到了开源社区的巨大支持,尤其是国内的贡献者,他们非常活跃。来自中国各地的开发者踊跃参与,为项目的成长注入了很强的动力。

Echo Tang: 开发 LLaMA Factory 的过程中遇到过哪些挑战?

郑耀威: 开源开发中最大的挑战之一,是应对第三方库引入的 bug——可能是库本身固有的问题,也可能是版本更新带来的兼容性问题。

LLaMA Factory 构建在几个知名的开源框架之上,包括 PyTorch、DeepSpeed 和 Transformers。现代 AI 系统,尤其是大模型,已经变得极其复杂和庞大,从零开始造轮子几乎不可能。为了保证开发顺畅、系统高效运行,我们必须依赖这些第三方基础设施与库。

这也意味着,大量底层功能是由这些库承担的。作为开发者,我们不仅要深入理解它们的机制,还要确保它们的稳定性,并做好持续维护的准备。事实上,理解和管理第三方依赖的能力,是项目能否成功的关键因素之一。

尽管这些库在不断更新,新的 bug 仍然不可避免。我们在开发中遇到过这类问题,也积极把修复贡献回了社区。比如在使用 Hugging Face 的 Transformers 时,我们提交了将近 10 个 PR 来帮助修复 bug。

Echo Tang: 您有没有关注过类似的开源或闭源项目?主要区别在哪里?

郑耀威: 在国际项目中,Hugging Face 的 AutoTrain 相当完整,集成了多种微调算法。但我认为最大的差异在于用户体验。

许多国外开发者——尤其是技术功底很深的那批人——更关注前沿创新,有时对易用性的重视程度相对没那么高。相比之下,我们庞大的社区基础促使我们在用户体验上投入更多,包括安装、易用性、部署和 bug 修复等方方面面。通过优先考虑可获得性和友好度,我们希望把 LLaMA Factory 做成一个直观而高效的大模型微调工具。


3. 微调神器:LLaMA Factory 的核心是效率

Echo Tang: LLaMA Factory 最近在微调流程上有哪些新变化?

郑耀威: 新模态的引入为微调领域打开了新的机会。过去我们只能微调纯文本的 LLM,让它生成文本。但随着 AI 的发展——尤其是 GPT-4o 的发布和开源社区多模态模型的涌现——我们现在可以把视觉和音频任务纳入微调流程,从而打开新的创新空间。

在真实世界的数据集中,并不是所有数据都是纯文本的。很多数据包含丰富的视觉信息,比如摄像头采集的数据、科学观测记录等等,这些数据源往往高度依赖视觉输入。借助多模态大模型,我们可以探索更广泛的应用,拓展 AI 在不同领域的潜力。

Echo Tang: LLaMA Factory 如何支持如此多样的模型微调?从技术角度看,你们怎么保证处理不同模型时的可扩展性,又怎么应对其复杂度?

郑耀威: 支持多种模型是一个不小的挑战,因为每个模型都有各自的数据要求和流程约束。为此,我们采用了模块化的思路,把数据管线与模型本身解耦。

我们的目标是为模型推理提供统一的接口。如果能保证模型推理顺畅运行,那么微调就会简单很多——因为它主要涉及调整模型参数和执行相关操作。把数据管线与模型训练解耦之后,我们就更容易接入各种模型架构,也更容易保证不同微调任务之间的兼容性。

Echo Tang: 微调在一些特定的技术场景中特别有用。能不能举一个具体的代码例子,讲讲如何用 LLaMA Factory 微调模型?

郑耀威: 在实践中,与代码相关的应用可能相当复杂,也分不同类型。如果只是想让模型生成基础函数(比如实现一个快速排序算法),那其实不需要微调——一个训练良好的 LLM 开箱即可胜任。但如果需要模型生成项目特定的代码,比如为一个大型软件项目写测试用例,或者实现定制化的功能,微调就变得必不可少。这时我们必须准备一个能反映该项目架构与功能需求的数据集,让模型学到其中的模式。

举个例子,在处理 CUDA kernel 时,我们可以微调一个模型来优化 CUDA 算子的性能。这需要精心构建一个高质量的 CUDA 代码与 kernel 实现数据集。微调后的模型会学到项目特定的上下文,从而生成高效且经过优化的计算 kernel。

比起试图一次性教会模型所有东西,我们更倾向于专精——让模型掌握某个特定领域,而不是做一个通才。

话虽如此,AI 编程助手并不是 LLaMA Factory 的主要方向。与其微调单个模型去处理所有编程任务,多模型协同往往更有效。把一组各自在特定领域微调过的专用模型组装成系统,就能构成一个混合专家式的体系,每个模型贡献自己的专长,协同解决复杂问题。

Echo Tang: 对一家想要引入微调的公司来说,是否需要自建算法团队?

郑耀威: 我认为大模型微调不应该只属于少数专家,它应该是一件更多人都能参与的事。通过亲手做微调,团队才能更深入地理解大模型是如何运作的。

大模型虽然能力强大,但并非万能——它们本质上是神经网络,表现高度依赖数据质量。微调能帮助我们发现那些可能导致异常行为的边界情况和失败场景。通过分析这些案例,我们既能改进模型表现,也能获得关于模型如何响应不同类型数据的宝贵洞察。

让微调变得更普惠,就能让更多人参与到评估、理解和改进 AI 模型的过程中来。这种集体的努力可以加速整个领域的进展,推动 AI 开发持续创新。


4. LLaMA Factory:用户与市场潜力

Echo Tang: LLaMA Factory 的贡献者目前是怎么分布的?国内和海外各占多少?整体用户群是什么样子?

郑耀威: LLaMA Factory 已经拥有全球用户,但就活跃贡献者而言,中国开发者占了很大比例。这在很大程度上得益于我们积极的社区运营——我们维护着一个开放而活跃的开发者社区,吸引了许多国内贡献者参与讨论,并为框架贡献改进。

我们的贡献者中,很多来自企业和高校,尤其是深度参与研究的研究生。此外,一些早期创业公司也在项目中大量使用 LLaMA Factory,并在围绕它构建业务的过程中贡献了新功能和改进。

Echo Tang: 看起来 LLaMA Factory 主要应用在企业的具体场景中。它是如何与真实业务场景结合的?

郑耀威: 模型微调天然需要适配特定的垂直领域场景。如果目标只是实现通用问答,那就不需要微调,直接用原始模型即可。但如果希望模型学习新知识,通常就需要微调。比如在医疗、法律这类专业领域,以及航空、消防等更细分的领域,都需要通过微调来贴合特定的需求和知识体系。

Echo Tang: 能否分享一个 LLaMA Factory 成功落地的具体行业案例?

郑耀威: 由于 LLaMA Factory 是开源框架,我们并不总能追踪到用户如何使用它。不过有些公司主动向我们分享过他们的成功案例。

一个值得一提的例子是筷子科技,他们用 LLaMA Factory 为短视频应用微调模型。他们的 AI 视频平台在微调之后取得了显著效果,视频相关任务的表现大幅提升。

有意思的是,他们发现微调之后,一个 7B 参数的模型表现超过了体量大得多但未经微调的模型。这体现了针对性微调的威力——在特定领域的任务上,一个优化得当的小模型完全可能胜过一个未经调整的大模型。

这个案例印证了 LLaMA Factory 的有效性与灵活性,也凸显了微调在各类真实 AI 应用中的巨大潜力。


5. 未来趋势:小模型还是大模型?

Echo Tang: 用小模型去完成更复杂的任务,会成为未来大模型发展的一个方向吗?

郑耀威: 这是个值得探讨的问题。从我个人的经历来看,早在 ChatGPT 出现之前,AI 圈就已经卷入了“把模型做得越来越大”的浪潮。随着 GPT 系列的发布,这个趋势达到了顶峰——大模型因其强大的泛化能力和广阔的应用潜力而备受追捧。

然而,随着技术的推进和真实应用需求的演变,人们开始意识到小模型独有的优势。在资源受限的环境中,比如特定垂直领域、端侧设备和边缘计算场景,小模型因高效和低功耗而受到青睐。很多人希望能用通用的小模型来处理各种任务,有点像编程里“一次编写,到处运行”的理念。

我们可以观察到一种趋势的转移——从对大模型的痴迷,转向对小模型更多的关注。这种转移并不否定大模型的价值,而是反映出 AI 社区正在努力为不同的应用场景平衡不同规模的模型。

Echo Tang: 面对这样的起伏,我很好奇这些变化背后的底层逻辑,以及它们对 AI 未来意味着什么。您怎么看?

郑耀威: 和 2020 年相比,最明显的差别是小模型在 2023 年获得了显著的关注度。比如 Meta 和 Mistral 昨天刚发布了小模型,进一步印证了这个趋势。国内像月之暗面这样的公司,也一直在发力端侧模型。这说明尽管大模型依然重要,小模型正因其在各类应用场景中的独特优势而获得更多关注和发展机会。

Echo Tang: 在真实的行业应用中,我们常发现大模型未必能有效解决具体问题。您在实践中遇到过类似的挑战吗?是怎么应对的?

郑耀威: 其实我们都亲身经历过。大模型在所有任务上大概能达到 70% 左右的准确率,但那只是在广泛任务上的平均表现。相比之下,如果用小模型,我们会看到它在特定任务上的准确率可以超过 90%。

现在设想一下,我们有多个小模型,每个都在各自的任务上达到 90% 以上——它们合在一起的表现,会大幅超过单个大模型。

所以在实践中,我们经常训练多个小模型协同工作,每个专精于一个特定任务,而不是依赖单个大模型包打天下。这种做法不仅提升了单项任务的表现,也优化了整个工程系统的效率与效果。它让我们能更精准地应对多样的任务需求,得到更高效的解决方案。

Echo Tang: 以 LLaMA Factory 目前的进展,您有没有考虑过创业?

郑耀威: 创业是一件高风险的事。我们需要找到用户,解决他们本地部署的问题,而这非常消耗资源。现阶段我认为优先级应该是把开源项目做大,让软件触达更广的用户群。只有做到这一点之后,才谈得上进一步的扩张与发展。

过去一年我们一直在深入思考一个问题:是否真的存在一个通用方案,能够处理所有任务。仔细想过之后我们意识到,当前的软件工具,比如 LLaMA Factory 和推理框架,其实在大模型部署过程中扮演的是中间件的角色——它们只是整个工作流的一部分。

真实的大模型应用中,一大挑战在于部署链路的复杂性,从数据准备一直到模型评估。虽然现有的工具和框架提供了一定支持,但成功部署大模型仍然需要在多个环节之间无缝衔接,包括数据处理、模型训练和性能评估。眼下我们还在等待一个更完整、更通用的方案,能够真正打通从开发到应用的全流程。

这意味着,尽管当前的工具为大模型应用提供了部分支持,我们仍需继续探索和打磨,去构建一个端到端的系统——覆盖从数据准备到最终部署的一切——才能真正实现大规模落地。

Echo Tang: 您预计未来模型会发生什么样的变化?

郑耀威: 未来两年,我特别关注大模型如何更深地融入日常生活,提供真正的实用价值,而不只是充当聊天助手或者高端用户的应用。我希望看到大模型在更基础的层面被采用,比如协助日常生活管理、充当家庭助手。我相信在接下来的几年里,我们会在这个方向上看到显著的进展。

Echo Tang: 关于开源项目和微调,您有什么经验或建议想分享给开发者吗?

郑耀威: 从开源的角度看,我认为最重要的是有一个扎实的、紧贴真实需求的想法。它应该源自你切身的痛点,而不是脱离你的日常生活或工作。比如我们的项目,最初就是为了解决实验室里的具体需求——聚焦大模型的低资源、低成本微调。一个好的开源项目应该实用,并且容易上手。

至于创新,最初的想法不必惊天动地。随着项目推进,我们可以基于社区反馈不断打磨、引入创新。这些创新中的很多都来自用户在真实场景中遇到的问题。通过解决这些问题,我们逐步完善了 LLaMA Factory 框架,让它变得更实用。

微调大模型固然关键,但数据准备和评估同样重要。在实践中,我们可能把 50% 的时间花在数据构建上,20% 在微调,30% 在评估。我们这个工具的目标,就是让微调这一环更高效——把它压缩到只占 20% 的时间——从而把更多精力放在数据构建和评估体系的优化上。

Echo Tang: 感谢郑博士的分享,也谢谢大家的关注,我们下期再见!


作者 | 何苗
采访 | 唐小引 Echo Tang
出品 | GOSIM 开源创新汇