导读
闭源大模型之间竞争比较激烈, OpenAI和Anthropic很多时候效果不相上下,而开源也追赶的非常快。下文就对 开源llama3和GPT-4o, Claude 3.5 Sonnet进行对比
在这篇文章中,我们将深入探讨一些具有竞争力的大模型里,如 Llama 3.1 405B、GPT-4o 和 Claude 3.5 Sonnet 的最新AI发展
Llama 3.1 405B 是第一个在通用知识、可操纵性、数学、工具使用和多语言翻译等方面与领先的专有闭源AI模型相媲美的开源模型。
Meta宣布推出了Llama 3.1,这是迄今为止最大的开源AI模型,并且在多个基准测试中超过了OpenAI的GPT-4o和Anthropic的Claude 3.5 Sonnet!
在这部分,将介绍Llama 3.1 405B是什么,如何在本地使用Llama 3.1 405B,以及为什么Llama 3.1 405B比GPT-4o和Claude 3.5 Sonnet好。
什么是 Llama 3.1 40 5B?
Llama 3.1 405B 是 Meta 公司最大的模型,经过超过 15 万亿个标记的训练。为此,Meta 优化了整个训练堆栈,并在超过 16,000 个 H100 GPU 上进行了训练,使其成为第一个以这种规模进行训练的 Llama 模型。
根据 Meta发布的信息,这个原始模型的版本(Llama 1 和 Llama 2)具有 128K 的上下文长度,改进了推理和编码能力。Meta 还升级了多语言 8B 和 70B 模型。
Llama 3.1 40 5B 的主要特点
Llama 3.1 带有一系列功能和能力,吸引了用户,例如:
-
RAG & 工具使用:可以使用 Llama 系统组件来使用“zero-shot 工具使用”来扩展模型,并使用 RAG 构建代理行为。
-
多语言支持 :Llama 3 自然支持多语言处理。预训练数据包括约 50% 的多语言tokens,并且可以处理和理解多种语言。
-
编程和推理:Llama 3 具有强大的编程能力,能够生成具有对语法和逻辑的深刻理解的高质量代码。它可以创建复杂的代码结构,并在各种编程任务中表现良好。Llama 3 擅长逻辑推理、问题解决、分析和推理。它处理复杂的逻辑任务,并有效地解决复杂的问题。
-
多模态模型:已经开发了支持图像识别、视频识别和语音理解能力的多模态模型,但这些模型仍在开发中,尚未广泛发布。
基准测试结果
Meta将Llama 3.1 405B模型与GPT-4、GPT-4o和Claude 3.5 sonnet等模型进行了比较。
结果显示,Llama 3.1在数学推理、复杂推理和多语言支持等测试数据集上表现优于GPT-4o和Claude 3.5 sonnet,并且其长文本处理能力也非常出色,在零滚动质量上获得了95.2分。
但在工具利用能力(BFCL、Nexus)方面与Claude 3.5 sonnet相比稍显不足。
尽管在多任务语言理解、人工评估和数学等测试数据集上的性能略逊于闭源模型,但得分差异并不大。
此外,手动评估结果显示,Llama 3.1 405B模型的输出性能与GPT-4和Claude 3.5 Sonnet相当,并略逊于GPT-4o。
单从这个基准分数来看,似乎很有前途。
基准测试结果显示,Llama 3.1 405B是一个具有强大语言建模能力、数学推理能力、复杂推理能力和长文本处理能力的优秀语言模型。然而,在工具利用能力和多语言支持方面仍有改进空间。
现在我已经介绍了基准分数,我将尝试使用它们并查看它们的表现。
如何在本地使用 Llama 3.1 40 5B?
Ollama 是快速启动本地语言模型的最佳方式。我们建议尝试 Llama 3.1 8b,尺寸小而性能出色,适用于大多数硬件。
-
在这里下载 Ollama(它会引导您完成其余步骤)
-
打开终端并运行 ollama run llama3.1-8b
Groq 现在托管 Llama 3.1 模型,包括 70B 和 8B 模型。此前,他们提供了最大的 405B 模型,但由于高流量和服务器问题,暂时将其移除。
与此同时,Llama 3.1 70B 和 8B 模型仍然可用,并且可以以每秒 250 个标记的惊人速度生成响应。
前往groq.com并使用免费帐户登录。然后,从下拉菜单中选择 llama 3.1 模型。
Llama 3.1 405B vs Claude 3.5 Sonnet
让我们比较 Claude 3.5 Sonnet 和 GPT-4o 并验证 Llama 3.1 405B 的性能
将验证以下项目。
编码
我去了 LeetCode 平台,并选择了一个与排序算法相关的中等难度问题。这个问题,题名为“前 K 个高频元素”问题,涉及查找给定数据集中的 K 个最高频元素。
给定一个整数数组 nums 和一个整数 k,返回数组中前 k 个高频元素。你可以按任意顺序返回答案。
示例 1` `输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 或 [2,1]` ` ``示例 2` `输入: nums = [1], k = 1 输出: [1]` ` ``约束条件` ` ``1 <= nums.length <= 105` `-104 <= nums[i] <= 104
Llama 3.1 405B
import heapq` `from collections import Counter` ` ``def topKFrequent(nums, k): `` """ `` 返回给定数组中前 k 个高频元素。`` ` `Args:`` nums (list): 输入整数数组。` `k (int): 要返回的前 k 个高频元素的数量。`` ` `Returns:`` list: 任意顺序的前 k 个高频元素。` `"""`` # 计算每个元素的频率 ``count = Counter(nums)` ` ` `# 使用堆查找前 k 个高频元素`` return heapq.nlargest(k, count.keys(), key=count.get)
这是代码的解释: 1. 我们使用 `collections` 模块的 `Counter` 类来计算输入数组 `nums` 中每个元素的频率。这给了我们一个字典 `count`,其中键是 `nums` 中的唯一元素,值是它们的频率。 2. 我们使用 `heapq.nlargest` 函数来查找前 k 个高频元素。我们将 `k` 作为第一个参数,`count.keys()` 作为第二个参数(它给了我们一个 `nums` 中唯一元素的可迭代对象),`key=count.get` 作为第三个参数(告诉 `heapq.nlargest` 使用每个元素的频率作为比较的键)。 3. `heapq.nlargest` 函数以任意顺序返回前 k 个高频元素的列表。 示例用法:
print(topKFrequent([1,1,1,2,2,3], 2)) # [1, 2] 或 [2, 1]` `print(topKFrequent([1], 1)) # [1]
请注意,这个解决方案的时间复杂度为 O(n log k),其中 n 是输入数组的长度,因为我们使用堆来查找前 k 个高频元素。这对于大型输入是有效的,因为堆操作在堆的大小上是对数的。
GPT-4o 为了解决在整数数组中查找前 k 个高频元素的问题,你可以使用字典来计数和堆来跟踪前 k 个元素的组合。下面是一个逐步的方法: 计数频率:使用字典来计算数组中每个元素的频率。 使用堆来跟踪前 k 个元素:使用最小堆来根据它们的频率跟踪前 k 个元素。Python 的 heapq 库对此很有用。 从堆中提取元素:处理数组后,堆将包含前 k 个高频元素。 下面是上述逻辑的实现:
import heapq` `from collections import Counter` ` ``def topKFrequent(nums, k): `` # 步骤 1:计算每个元素的频率 ``count = Counter(nums)` ` ` `# 步骤 2:使用堆来跟踪前 k 个元素``heap = []` ` ` `for num, freq in count.items():`` heapq.heappush(heap, (freq, num)) `` if len(heap) > k: ``heapq.heappop(heap)` ` ` `# 步骤 3:从堆中提取元素`` return [num for freq, num in heap]
输出:
例子 1
nums1 = [1, 1, 1, 2, 2, 3]` `k1 = 2` `print(topKFrequent(nums1, k1)) # 输出: [1, 2] 或 [2, 1]``from collections import Counter` `import heapq` ` ``def topKFrequent(nums, k): `` # 计算每个数字的频率 ``count = Counter(nums)` ` ` `# 使用最小堆来跟踪最频繁的 k 个元素`` heap = [] `` for num, freq in count.items(): `` iflen(heap) < k: `` heapq.heappush(heap, (freq, num)) `` elif freq > heap[0][0]: `` heapq.heappop(heap) ``heapq.heappush(heap, (freq, num))` ` ` `# 从堆中提取数字`` return [num for freq, num in heap]
Output:
测试该函数
print(topKFrequent([1,1,1,2,2,3], 2)) # 预期输出:[1, 2]` `print(topKFrequent([1], 1)) # 预期输出:[1]
这三个解决方案在我在Visual Studio代码上运行代码时都是正确的。然而,Llama3的解决方案最为简洁,因为它直接使用了`heapq.nlargest`。 相比之下,GPT-4和Claude 3.5 Sonnet手动管理了堆。Llama3的解决方案可能会更有效率和直接,因为它直接使用了Python的堆函数。 总的来说,每个解决方案都正确地解决了问题,但Llama3的方法因其简洁性和直接使用Python的堆函数而脱颖而出。
结论
Llama 3.1 的发布,特别是 405B 参数模型的强劲性能和知识蒸馏的引入,极大地改善了开源语言模型。
近年来,开源语言模型的性能首次非常接近闭源商业模型。这表明在未来,Meta 的 Llama 系列模型很可能仍然是开发开源语言模型的首选
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。