如何选择 AI 大模型(LLMs):开源与商业模型深度对比
过去一年里,大型语言模型(LLMs)在人工智能界飞速发展,纷纷以突破性的进步拓展生成式人工智能的可能性。新模型层出不穷,令人目不暇接。
本文深入分析了当前主流的大型语言模型(LLMs),包括 Llama 3、Mistral 8x7B、Zephyr 7B、SOLAR 10.7B 及 Code Llama。文章对比了开源模型与商业模型在可控性、数据安全、成本及生态方面的差异,探讨了专用模型与通用模型的选择策略。此外,还涵盖了生产环境部署的关键考量,如模型大小选择、基础设施规划、可伸缩性及伦理因素,并提供了基于 Transformers 库的本地部署代码示例,为技术团队进行 AI 技术选型和落地实施提供了详尽的参考指南。

过去一年里,大型语言模型(LLMs)在人工智能界飞速发展,纷纷以突破性的进步拓展生成式人工智能的可能性。新模型层出不穷,令人目不暇接。
这些模型依靠日益增长的参数数量和庞大的数据集进行训练,显著提升了我们生成文本和编写(以及理解)复杂代码的效率。在选择大模型时,如何权衡输出质量、速度和成本成为了一个重要问题。 答案不仅仅取决于参数规格表或基准测试分数,更在于对每个模型优势的整体理解。
本文将深入分析当前主流的开源大模型,解答关于大模型选择及应用的一些常见问题,并提供技术选型指南。
近期,Meta 发布了 Llama 3 系列模型,包括 8B 和 70B 版本,供外部开发者使用。Llama 3 是目前同体量下性能最好的开源模型之一。
LLaMA 无疑是开源模型的顶流,国内好多大模型都是基于它实现的! 它通过人类反馈的强化学习(RLHF)进行了微调。它是一种生成文本模型,可以用作聊天机器人,并且可以适应各种自然语言生成任务,包括编程任务。Meta 已经推出了 LLaMA 3、Llama Chat 和 Code Llama 的开放定制版本。
Mistral AI 于 2023 年发布的 Mixtral 8x7B 使用稀疏的专家混合架构(MoE)。简单地说,它使用许多小型网络,每个网络都专注于不同的事情。这些'专家'中只有少数人负责每项任务,使流程高效,而无需每次都使用整个模型的功率,从而控制成本和延迟。
Mixtral 8x7B 根据 Apache 2.0 许可获得商业用途许可,在各种文本生成任务(包括代码生成)中表现出卓越的多功能性,并具有针对聊天应用程序进行优化的微调变体 Mixtral 8x7B Instruct。
Zephyr 7B 建立在 Mistral 7B 的基础上,经过微调,可以更好地与人类的意图保持一致,在特定任务和基准测试中优于同类产品。在发布时,Zephyr-7B-β 是 MT-Bench 和 AlpacaEval 基准测试中排名最高的 7B 聊天模型。
Zephyr 7B 的训练包括通过接触大量的语言模式和上下文来完善其能力。这个过程使它能够理解复杂的查询并生成连贯的、与上下文相关的文本,使其成为内容创建、客户支持等的多功能工具。
SOLAR 10.7B 是一个具有 107 亿个参数的大型语言模型,使用一种称为深度升频(DUS)的升频技术。这简化了扩展过程,无需复杂的训练或推理调整。
SOLAR 10.7B 经历了两个微调阶段:指令调谐和对准调谐。指令调整增强了其遵循 QA 格式指令的能力。对齐调整进一步完善了模型,以更紧密地与人类偏好或强大的 AI 输出保持一致,同时利用开源数据集和以数学为重点的合成对齐数据集。
Code Llama 在 Llama 基础上进行了微调,是一款专门针对编码任务进行微调的高级 LLM 软件。它旨在理解和生成多种流行编程语言的代码,包括 Python、C++、Java、PHP、TypeScript、C# 和 Bash,使其成为开发人员的理想工具。
该模型有四种尺寸(7B、13B、34B 和 70B 参数),以适应各种用例,从低延迟应用程序(如 7B 和 13B 型号的实时代码完成)到 34B 和 70B 型号提供的更全面的代码帮助。
这篇博文中列出的所有语言模型都是开源的,所以这是第一个要回答的问题。事实上,开源模式和商业模式之间的选择往往取决于特定的需求和考虑,但前者在以下几个方面可能是更好的选择:
像 Code Llama 这样的专业 LLMs 在其专业领域提供集中的绩效提升。它们旨在在特定任务中表现出色,为这些特定应用程序提供更准确、更相关和更有用的输出。
相比之下,像 Llama 3 这样的通用模型是为了处理各种任务而构建的。虽然它们可能与专用模型的任务特定精度不匹配,但它们广泛的知识库和适应性使它们成为各种应用的有用工具。
专业和通用之间的选择取决于任务的具体要求。对于精度更重要的高风险或利基任务,专用模型更可取,而通用模型则提供更好的灵活性和广泛的实用性。
道德部署 LLMs 需要仔细检查偏见、透明度、问责制和滥用的可能性等问题。确保 LLMs 其训练数据中不存在的现有偏见是一项重大挑战,需要持续保持警惕并改进训练方法。关于如何 LLMs 做出决策以及他们接受培训的数据的透明度对于建立信任和问责制至关重要,尤其是在高风险应用程序中。
在生产环境中部署 LLMs 可能是一个微妙的过程。以下是一些需要考虑的策略和技术细节:
平衡模型大小与应用程序的延迟和吞吐量要求至关重要。较小的模型可以提供更快的响应并降低计算成本,而较大的模型可以提供更准确和细致的输出。
确保基础结构可以处理计算负载。使用支持 GPU 的云服务或使用量化和修剪技术优化模型有助于管理资源需求。对于没有基础架构专业知识的团队来说,具有自动缩放功能的无服务器平台可能是一个不错的选择。
部署策略应允许根据需要纵向扩展或缩减。使用 Docker 等技术进行容器化和 Kubernetes 编排可以支持可扩展的部署。
实施全面的日志记录和可观测性工具将有助于监控系统的运行状况,并在出现问题时快速诊断问题。
API 可以抽象化模型托管、扩展和管理的复杂性。它们还可以促进与现有系统的集成,并允许更轻松的更新和维护。
BentoML、TensorFlow Serving、TorchServe 或 ONNX Runtime 等框架可以简化部署、提供版本控制并处理请求批处理以提高效率。
为了演示如何在本地运行开源模型,以下是一个使用 Hugging Face transformers 库加载 Llama 3 的基本 Python 示例。
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_name = "meta-llama/Meta-Llama-3-8B"
# 加载分词器和模型
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16,
device_map="auto",
)
# 准备输入
prompt = "What is the capital of France?"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
# 生成输出
outputs = model.generate(**inputs, max_new_tokens=50)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
对于资源受限的环境,建议使用量化版本(如 GGUF 格式配合 llama.cpp),这可以将显存占用降低至原来的 1/4 甚至更低,同时保持大部分性能。
当我们在不断扩大的大型语言模型领域中航行时,很明显,它们的潜力才刚刚开始被挖掘。这一领域的快速创新预示着人工智能可以为我们的工作和创造性努力做出更深远的贡献。
展望未来,继续在开源社区中推广 AI 模型、推动造福所有人的进步并确保负责任地使用这些强大工具至关重要。当我们这样做时,希望我们能找到适当的平衡点,在降低风险的同时最大限度地让 LLMs 为社会带来利益。
选择合适的 AI 大模型需要综合考虑应用场景、预算、硬件资源和合规要求。开源模型如 Llama 3 和 Mistral 提供了极高的灵活性和控制权,适合追求数据安全和定制化能力的企业。而商业模型则在易用性和开箱即用的性能上具有优势。随着技术的演进,混合部署模式(结合开源微调与商业 API)将成为未来的主流趋势。开发者应根据具体业务需求,参考本文提供的对比维度进行科学选型。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online