开源大模型太多怎么选?一文读懂,5个最好的开源大模型
Sherlock Xu 开智学堂
作者:Sherlock Xu 来源:公众号「活水智能」
在过去一年中,AI 领域因大语言模型(LLMs)的快速发布而充满活力,这些模型的创新推动了生成式 AI 的极限。最近,xAI 公司还发布了其名为 Grok 的语言模型,这是一款具有 314 亿参数的庞大模型,而且是在 Apache 2.0 许可下发布的。
这些模型借助于不断增加的参数数量和巨大的训练数据集,不仅提升了文本生成的效率,还能编写和理解复杂的代码。但是,面对众多选择,我们既感到兴奋又觉得无从下手。考虑到输出质量、处理速度和成本因素,如何做出明智的选择成了一个挑战。
正确的选择不仅要查看技术规格表或基准测试成绩,更需要全面了解每个模型的独特价值。在这篇文章中,我们精选了过去一年中引人注目的几款 LLMs,并试图回答一些常见问题。
Llama 2
Meta AI 在 LLMs 领域取得了突破,推出了 Llama 2 模型,这是一个预训练的文本生成模型,提供 7 亿、13 亿及 70 亿参数的版本。它广泛应用于各种任务,如聊天机器人和自然语言生成等。Meta 还针对特定场景优化了 Llama 2,推出了 Llama Chat 和 Code Llama 等变体。
选择 Llama 2 的理由:
1. 性能:根据 Meta AI 的基准测试,Llama 2 在理解、推理和通用智能方面表现优于其他开源模型。
2. 可微调性:Llama 2 的三种规模版本构成了广泛应用的理想基础。用户可以针对特定任务或行业需求进行微调(在 Hugging Face 模型中心,“Llama2”搜索结果超过 12,000 个),这些微调模型不仅节省了开发者大量时间和资源,还体现了 Llama 2 在定制化和性能提升方面的强大潜力。
3. 安全性:Llama 2 在生成安全响应方面的表现优于市面上大多数模型,非常适合企业和公共接口应用。在 Meta 的评估中,7 亿、13 亿和 70 亿参数的 Llama 2 模型的安全违规比例较低(3% 和 4%),明显优于 Falcon 和 ChatGPT(7%)。
Llama 2 面临的挑战:
1.编程能力:在复杂的编程任务中,Llama 2 的表现不如专为编码设计的模型,例如Code Llama。
2. 过度保守的内容生成:Llama 2 在内容生成上可能过于保守,这种保守态度有时可能限制了更自由的交互
3. 多语言处理能力有限:Llama 2 主要针对英语数据进行训练,处理非英语语言任务的能力有限,这可能影响其在多语言环境中的适用性。
Mixtral 8x7B
Mistral AI 在 2023 年 12 月推出的 Mixtral 8x7B 采用了稀疏专家混合体系结构,简单来说,它由多个小网络组成,每个网络专注于不同的任务。在处理任何特定任务时,只有少数“专家”参与,这使得整个过程更加高效,无需每次都动用全部模型能力,从而有效控制成本和响应时间。
Mixtral 8x7B 获得了 Apache 2.0 商业许可,无论是代码生成还是其他文本生成任务,都显示出卓越的多样性。此外,它还有一个为聊天应用优化的版本,名为 Mixtral 8x7B Instruct。
选择 Mixtral 8x7B 的理由:
1. 领先的性能:在多个基准测试中,Mixtral 8x7B 的表现超过了 Llama 2 70B 和 GPT-3.5。
来源:mistral.ai
2. 长上下文窗口:Mixtral 8x7B 能处理长达 32k-Token 的上下文,这显著增强了它处理长对话和复杂文件的能力,使其在从详细内容创作到复杂的检索增强生成等多种任务中展现出高度的通用性和实用性。
3. 效率优化:尽管参数众多,但 Mixtral 8x7B 提供了成本效益极高的推断性能,与许多较小的模型相当。
4. 多语种支持:Mixtral 8x7B 支持多种语言(包括法语、德语、西班牙语、意大利语和英语),非常适合全球性的应用场景。
来源:mistral.ai
Mixtral 8x7B 面临的挑战:
1. 缺乏内置的内容监控机制:由于缺乏内置的监控机制,使用 Mixtral 8x7B 可能存在生成不当或有害内容的风险,尤其是在模型遇到敏感或有争议的输入时。对于那些在内容控制和安全性非常重要的应用环境中计划部署此模型的企业来说,这一点尤为重要。
2. 对硬件的高要求:由于需要大量 RAM,Mixtral 8x7B 的运行可能受到硬件性能的制约,不适合配置较低的系统。
Zephyr 7B
Zephyr 7B 是基于 Mistral 7B 的进一步优化版本,通过精细调整更好地与人类意图对齐,在特定任务和基准测试中表现卓越。在其发布时,Zephyr-7B-β 是在 MT-Bench 和 AlpacaEval 基准测试中排名最高的 7B 级聊天模型。
Zephyr 7B 通过广泛接触多样的语言模式和上下文进行训练,这使其能够理解复杂的询问并生成连贯、与上下文相关的文本,成为一个多功能的工具,适用于内容创作、客户支持等多种场景。
选择 Zephyr 7B 的理由:
1. 高效的性能:尽管其规模相对较小,Zephyr 7B 在深入理解人类意图的任务中展现出了可比较甚至更优的性能,与像 GPT-3.5或 Llama 2 70B 这样的大型模型相媲美。
2. 多语言处理能力:Zephyr 7B 支持多种语言的文本生成和理解,包括但不限于英语、西班牙语、法语、德语、意大利语、葡萄牙语、荷兰语、俄语、中文、日语和韩语,得益于其训练时使用的多样化数据集。
3. 任务灵活性:Zephyr 7B 擅长执行从文本生成和总结到翻译和情感分析等广泛的语言相关任务,这使它成为适用于多种应用场景的高度适应性工具。
Zephyr 7B 面临的挑战:
1. 意图对齐的持续评估和调整:虽然 Zephyr 7B 已在与人类意图对齐方面取得进展,但为确保其输出符合用户的具体需求或道德准则,可能需要持续的评估和调整。
2. 专业任务的适应性调整:根据不同的应用需求,可能需要对 Zephyr 7B 进行额外的微调,以优化其在诸如推理、数学和编码等专门任务中的表现。
SOLAR 10.7B
SOLAR 10.7B 是一款具有 107 亿参数的大型语言模型,采用了一种称为深度升级(DUS)的简化扩展技术,这种技术无需复杂的训练或推理调整就能实现模型的放大。
SOLAR 10.7B 经历了两阶段的微调:指令调整和对齐调整。指令调整增强了模型按照指令执行任务的能力,而对齐调整进一步精细化模型,使其更加符合人类偏好或强 AI 输出的要求,这一过程利用了开放源数据集和专门的数学焦点对齐数据集。
选择 SOLAR 10.7B 的理由:
1. 多功能性:经过如 SOLAR 10.7B-Instruct 这样的微调,模型在遵循指令方面的能力得到增强,使其适用于广泛的应用场景。
2. 出色的 NLP 性能:在自然语言处理(NLP)任务中,SOLAR 10.7B 展现出的性能优于其他预训练模型,如 Llama 2 和 Mistral 7B,在评估结果中表现突出。
3. 微调的便利性:SOLAR 10.7B 作为微调的理想模型,具备坚实的基线能力,便于进一步优化以满足特定应用需求。
SOLAR 10.7B 面临的挑战:
1. 高资源需求:进行训练和微调时,SOLAR 10.7B 可能需要大量的计算资源。
2. 偏见问题的管理:在确保输出符合伦理或公平使用原则方面,模型可能面临挑战。
Code Llama
Code Llama 是在 Llama 2 的基础上针对编程任务进行微调的高级大语言模型,能够理解并生成 Python、C++、Java、PHP、Typescript(Javascript)、C# 及 Bash 等多种流行编程语言的代码,是开发人员的理想选择。
Code Llama 提供四种不同的规模(7B、13B、34B 和 70B 参数),可满足从低延迟应用(如 7B 和 13B 模型的实时代码完成)到更全面的代码辅助(34B 和 70B 模型)的不同需求。
选择 Code Llama 的理由:
1. 大型输入上下文的处理能力:Code Llama 能够处理高达 100,000 Token 的输入,这有助于更好地理解和操作大型代码库。
2. 广泛的应用范围:它被设计为支持代码生成、代码完成、调试以及代码讨论等多种应用,满足软件开发生命周期中的各种需求。
3. 卓越的性能:Code Llama 的模型是在广泛的数据集(70B 模型训练数据高达 1 万亿Token)上训练的,能够提供更准确、更具上下文相关性的代码建议。Code Llama - Instruct 70B 模型在 HumanEval 测试中的得分为 67.8,高于 GPT 4 的 67.0,显示了其高效的编码能力。
Code Llama 面临的挑战:
1. 对硬件的高要求:较大的模型(34B 和 70B)可能需要显著的计算资源才能达到最佳性能,这可能限制了个人或组织在硬件有限的情况下的使用。
2. 对齐潜在问题的管理:尽管已进行微调以改善安全性和与人类意图的对齐,但仍存在生成不当或恶意代码的风险,如果没有适当的监督。
3. 不适用于一般自然语言任务:Code Llama 主要针对编码任务进行优化,不推荐用于更广泛的自然语言处理应用。值得注意的是,只有 Code Llama Instruct 特别经过微调,以更好地响应自然语言提示。
选择开源模型与商业模型的考量
在这篇博客文章中,我们介绍的所有语言模型都是开源的。实际上,选择开源或商业模型通常取决于具体需求和考量,但开源模型在以下方面可能更有优势:
1. 更高的可控性:开源模型提供了高度的控制权,用户可以根据需要访问和微调模型,这种自定义和适应性是商业模型难以实现的。
2. 数据安全:开源模型可以在本地或私有云基础设施内运行,提供更多的数据安全控制。使用商业模型可能存在数据隐私问题,因为数据通常需要发送到服务提供商的服务器上处理。
3. 成本效益:使用开源模型可能更具成本效益,尤其是考虑到使用商业模型可能涉及的 API 调用或令牌费用。开源模型可以在无需这些持续成本的情况下部署,尽管可能需要对基础设施和维护进行投资。
4. 社区和协作的优势:开源模型受益于社区的集体智慧,快速改进、BUG 修复和新功能的引入往往是协作开发的结果。
5. 避免供应商锁定:依赖开源模型可以消除对特定供应商的路线图、价格变化或服务可用性的依赖。
专门 LLMs 与通用模型的对比
专门的 LLMs,如 Code Llama,提供了在其专业领域内的集中性能提升,被设计为在特定任务中表现出色,为那些应用提供更准确、更相关的输出。
与此同时,通用模型如 Llama 2 被构建以处理广泛的任务。虽然它们可能无法与专门模型在任务特定的精确度上匹配,但其广泛的知识基础和适应性使它们成为多种应用的有用工具。
选择专门或通用 LLMs 取决于任务的具体需求。在高风险或小众任务中,专门模型更适合,因为精确度更重要;而通用模型提供了更好的灵活性和广泛的实用性。
大规模部署 LLMs 的伦理考虑
LLMs 的伦理部署需要仔细考虑偏见、透明度、问责制以及潜在滥用等问题。确保 LLMs 不会延续其训练数据中存在的偏见是一个重要挑战,需要持续的警觉和训练方法的改进。在高风险应用中,透明公开 LLMs 的决策方式和训练数据对于建立信任和问责制至关重要。
生产中部署 LLMs 的策略
在生产中部署 LLMs 是一个复杂的过程,这里有一些策略可供考虑:
1. 选择合适的模型大小:平衡模型大小与应用的延迟和吞吐量需求非常重要。较小的模型可以提供更快的响应和降低计算成本,而较大的模型可能提供更准确和细致的输出。
2. 基础设施的考虑:确保您的基础设施能够处理计算负载。使用支持 GPU 的云服务或通过量化和修剪技术优化模型可以帮助管理资源需求。具有自动扩展功能的无服务器平台是没有基础设施专业知识的团队的好选择。
3. 计划可扩展性:您的部署策略应允许根据需求扩展或缩小。使用 Docker 等容器化技术和 Kubernetes 等编排技术可以支持可扩展的部署。
4. 建立健全的日志和可观察性:实施全面的日志和可观察性工具将有助于监控系统的健康状态并快速诊断问题。
5. 利用 API 实现模块化:API 可以简化模型托管、扩展和管理的复杂性,同时方便与现有系统的集成,允许更容易的更新和维护。
考虑模型服务框架:如 BentoML、TensorFlow Serving、TorchServe 或 ONNX Runtime 等框架可以简化部署,提供版本控制并处理请求批量以提高效率。
结语
在我们探索不断扩展的大语言模型宇宙时,很明显,这些模型的潜力仍然有待挖掘。该领域的快速创新预示着 AI 在未来可能在我们的工作和创造性活动中发挥更深远的影响。
展望未来,继续在开源社区推广 AI 模型、推动对所有人都有益的进步并确保负责任地使用这些强大工具至关重要。我们这样做,希望能找到正确的平衡,最大化 LLMs 对社会的好处,同时减轻其风险。■
原文链接: https://www.bentoml.com/blog/navigating-the-world-of-large-language-models