开源大模型应该怎么选?


前言

在这里插入图片描述

在过去的一年里,人工智能领域不断涌现出各种大语言模型(LLMs),每个模型都在不断突破生成式人工智能的极限。这些模型支持的参数越来越多,训练集越来越庞大,实现的性能也越来越高。

然而,在面对这些优秀的LLMs时候,应该如何明智地进行选择?

除了对比基准测试的结果,还要综合考虑模型的质量、速度和成本。


为什么选择开源模型而不是商业模型?

在对比各个开源模型之前,先回答一个问题:为什么不选商业模型?

实际上,究竟是选择开源模型还是商业模型,需要根据自身的具体需求而定。不可否认的是,开源模型具有以下几个显著的优点:

  1. 可控性高:用户可以对开源模型进行精细控制和优化,从而满足特定需求,而商业模型可能无法做到这一点。
  2. 数据更安全:开源模型可以在本地运行,也可以在私有云中运行,因此能够更好地保障数据安全。而商业模型,可能存在数据隐私问题,因为数据通常需要发送到供应商的服务器进行处理。
  3. 成本更低:相比商业模型的API调用或token的成本,开源模型的累计使用成本更低。但是,不要忽略基础设施投入和维护的成本。
  4. 社区力量:得益于社区的集体智慧,开源模型可以快速进行改进、修复问题,以及开发新特性。
  5. 无供应商绑定:依赖开源模型,消除了对特定供应商的绑定,不依赖其路线图、价格变化,以及相关服务。

开源模型对比

Llama 2

在这里插入图片描述
Llama 2的发布标志着Meta AI在LLMs领域取得了重大突破。

Llama 2是一个预训练的文本生成模型,可提供70亿、130亿和700亿个参数。它可广泛用于各种任务,包括聊天机器人和各种自然语言生成应用程序。Meta AI还提供了定制化的Llama 2,如Llama Chat和Code Llama。

Llama 2的优点:

  • 性能更好:基于Meta AI的基准测试,在理解、推理和通用智能方面, Llama 2比其它开源模型的性能更好。
  • 支持微调:用户可以对它进行微调,以满足特定任务或行业的独特需求。经过微调的模型为开发人员节省了大量的时间和资源。
  • 安全性:它在拒绝不合理请求方面表现良好,是企业和面向公众的应用程序的理想选择。在Meta的评估中报告中,具有70亿、130亿和700亿参数的Llama 2的安全违反率(3%和4%)明显低于Falcon和ChatGPT(7%)。

Llama 2的缺点:

  • 编码能力:Llama 2在编码任务方面的能力不如Code Llama等一些专用模型先进,特别是对于复杂的编程任务而言。
  • 预防机制:Llama 2在安全方面比其它模型更为保守,对于内容生成场景来说,这可能过于严格,并且限制了动态交互性。
  • 多语言限制:Llama 2主要在英语数据上进行训练,在处理非英语语言任务方面能力有限,这可能会影响其在多语言环境中的使用。

Mixtral 8x7B

在这里插入图片描述

Mistral AI于2023年12月发布了Mixtral 8x7B,它在各种文本生成任务(包括代码生成)中展现出卓越的多功能性,同时它也为聊天应用程序提供了一个微调版本:Mixtral 8x7B Instruct。

Mixtral 8x7B的优点:

  • 最佳性能:在多项基础测试中,Mixtral 8x7B性能优于诸如Llama 2 70b和GPT-3.5等其它模型。
  • 长上下文窗口:Mixtral 8x7B拥有32k-token的下文窗口,显著增强了处理冗长对话和复杂文档的能力。这使得模型能够处理各种任务,从详细的内容创建到复杂的检索增强生成,使其在研究和商业应用中都具有很高的通用性。
  • 优化效率:尽管它的参数数量很大,但是它的推理成本能与更小的模型相媲美。
  • 通用语言支持:Mixtral 8x7B支持多种语言处理(法语、德语、西班牙语、意大利语和英语),成为全球性应用的理想选择。
    在这里插入图片描述

以上数据源自: https://mistral.ai/news/mixtral-of-experts/

Mixtral 8x7B的缺点:

  • 缺乏内置的审核机制:如果原生不支持审核,就可能生成不适当或有害的内容,特别是给模型输入敏感或有争议的提示时显得尤为明显。针对内容敏感场景,这一点需要格外注意。
  • 硬件要求:需要大量的RAM进行处理,无法在低端系统上使用。

Zephyr 7B

在这里插入图片描述

Zephyr 7B是在Mistral 7B的基础上建造的,为了更好地理解人类的意图而做了微调,在特定任务和基准测试中表现优异。在发布的时候,Zephyr-7B-β是MT-Bench和AlpacaEval基准测试中排名最高的7B聊天模型。

Zephyr 7B经过大量的语言模式和上下文的训练,能够理解复杂的查询,并生成连贯的、与上下文相关的文本,成为内容创建和客户支持等应用的理想选择。

Zephyr 7B的优点:

  • 效率和性能:与GPT-3.5或Llama-2-70B等巨人相比,Zephyr 7B的体积更小,却拥有相当或更好的性能,特别是在需要深入理解人类意图的任务中。
  • 多语言能力:Zephyr 7B支持跨多种语言的文本生成和理解,包括但不限于英语、西班牙语、法语、德语、意大利语、葡萄牙语、荷兰语、俄语、中文、日语和韩语。
  • 任务灵活性:Zephyr 7B在执行通用的语言相关任务方面表现出色,包括文本生成、摘要、翻译和情感分析,很好支撑跨用途场景。

Zephyr 7B的缺点:

  • 意图一致:虽然Zephyr 7B在理解人类意图方面取得了一些进展,但仍需要持续地评估和调整,才能确保输出符合特定用户需求的以及符合道德准则的结果。
  • 针对特定任务的适应性:为了实现特定应用场景下的最佳性能,Zephyr 7B需要进行额外的微调。

SOLAR 10.7B

在这里插入图片描述

SOLAR 10.7B是一个拥有107亿个参数的大型语言模型,采用简化的scaling 过程,无需复杂的训练或推理调整。

SOLAR 10.7B的优点:

  • 多功能性:支持微调版本,如SOLAR 10.7B-Instruct提供增强的指令处理能力,支持更广泛的应用场景。
  • 卓越的NLP性能:SOLAR 10.7B在NLP任务中表现出色,优于其它预训练模型,如Llama 2和Mistral 7B。
  • 微调:SOLAR 10.7B是一个能在稳固基线能力上进行微调的理想模型。

SOLAR 10.7B的缺点:

  • 资源需求:模型可能需要大量的计算资源来进行训练和微调。
  • 偏见问题:模型的输出可能并不总是合理或符合道德原则。

Code Llama

在这里插入图片描述

Code Llama是在Llama 2上做了微调,是一个专门针对编码任务的高级LLM。它旨在理解和生成几种流行的编程语言代码,包括Python、c++、Java、PHP、Typescript (Javascript)、c#和Bash,是开发人员的理想工具。

该模型有四种尺寸,分别是7B、13B、34B和70B参数。7B和13B模型的支持低延时实时生成代码,34B和70B模型提供了更全面的代码辅助功能。

Code Llama的优点:

  • 大型输入上下文:Code Llama可以处理多达100,000个tokens的输入,可以更好地理解和处理大型代码库。
  • 多样化的应用程序:它可以处理软件开发生命周期中的各种任务,例如代码生成、代码补全、调试,甚至代码讨论。
  • 性能:通过在大量数据集上进行训练(70B模型多达1万亿个tokens ),Code Llama可以提供更准确的代码建议。“Code Llama - Instruct 70B”在“HumanEval”测试中获得了67.8分,超过了GPT 4(67.0分)。

Code Llama的缺点:

  • 硬件需求:为实现最佳性能,这类较大的模型(34B和70B)可能需要大量的计算资源,这对于硬件条件有限的个人或组织来说不太友好。
  • 不一致的风险:虽然做了微调并增强了安全性,但如果没有适当的监督,总是存在生成不当或恶意代码的风险。
  • 不适合一般的自然语言任务:Code Llama针对编码任务进行了优化,因此不推荐将其用于更通用的自然语言处理应用程序。

专用 Vs. 通用

像Code Llama这样的专用的LLMs,在特定的专用场景下,可以提供更准确、更相关和更有用的输出。

相比之下,像Llama 2这样的通用LLMs是为处理通用任务而构建的。虽然在专用领域,它们无法与专用LLMs相媲美,但因为拥有广泛的知识基础和适应性,所以更适合多用途场景。

专用LLMs 和通用LLMs 之间的选择取决于具体需求。专用模型更适合高风险或小众的任务,精度更重要,而通用模型提供了更好的灵活性和实用性。


生产环境部署LLMs 的注意事项

在生产环境中部署LLMs 是一个微妙的过程。以下是一些可以考虑的策略:

  • 选择合适的模型大小:根据应用程序的延迟和吞吐量要求,选择大小合适的模型十分必要。较小的模型可以提供更快的响应和更低的计算成本,而较大的模型可以提供更准确和细致的输出。
  • 基础设施考虑事项:确保基础设施有足够的资源处理计算负载。使用支持GPU的云服务或使用相关优化技术可以帮助管理资源。对于没有基础设施专业知识的团队来说,具有自动伸缩功能的无服务器平台是一个不错的选择。
  • 可伸缩性:应该允许根据需求的变化,进行垂直或水平扩展。使用Docker等容器技术和Kubernetes等编排系统可以实现弹性部署。
  • 可观测性:完整地记录系统日志,利用观测性工具监视系统的健康状况,有助于快速诊断问题。
  • 使用API实现模块化:API可以抽象并管理复杂性,可以实现与现有系统集成,使得更新和维护更容易。
  • 考虑模型服务框架:像BentoML、TensorFlow、TorchServe或ONNX Runtime这样的框架可以简化部署,提供版本控制,并通过批处理提高效率。

如果喜欢这篇文章,请不要忘记关注、点赞和收藏哦!
您的鼓励将是我创作的最大动力!

  • 16
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师昌哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值