Llama3.370B超越GPT-4o和Claude3.5 Sonnet

ops/2024/12/27 8:35:40/

AI领域日新月异,最近AI 领域发生了太多事情,本文就语言大模型Llama 3.3 70B、GPT-4o 和 Claude 3.5 Sonnet进行对比。
12月7日,Meta今年的最终AI模型将要来了。Meta12月6日发布了Llama 3.3,拥有700亿个参数,但其性能与拥有4050亿个参数的Llama 3.1相当。

Meta强调,Llama 3.3型号效率更高、成本更低,可在标准工作站上运行,在提供高质量文本AI解决方案的同时降低运营成本。

  • Llama 3.3机型优化了多语言支持,支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语、泰语八种语言。
  • Llama 3.3 的上下文长度为 128K,支持多种工具格式,可以与外部工具和服务集成,扩展模型的功能。

在本文指南中,我们将介绍什么是 Llama 3.3、如何在本地使用 Llama 3.3 以及为什么 Llama 3.3 比 GPT-4o 和 Claude 3.5 Sonnet 强大。

什么是 Llama 3.3

Llama 3.3 是 Meta AI 推出的拥有 70B 参数的大型多语言预训练语言模型。该模型在性能上与 405B 参数的 Llama 3.1 相当,并针对多语言对话进行了优化,支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。
Llama 3.3 具有更长的上下文窗口、多语言输入输出功能以及与第三方工具集成以扩展其功能的能力,使其适合商业和研究用途。

Llama 3.3 的主要功能

  • 效率与成本:Llama 3.3模型效率更高、成本更低,可运行在标准工作站上,在提供高质量文本AI解决方案的同时,降低运营成本。
  • 多语言支持:支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语等8种语言,并能处理这些语言的输入和输出。
  • 长上下文窗口:模型支持128K的上下文长度。
  • 集成第三方工具:与第三方工具和服务集成,扩展功能和应用场景。

Llama 3.3 与 Llama 3.2 之间的比较

与Llama 3.2 相比,Llama 3.3 实现了显着的性能提升,尤其是在基于文本的任务方面。 Llama 3.2 专注于提供适合部署在边缘设备上的轻量级模型(1B 和3B 参数)和多模态模型(11B Vision 和90B Vision)。相比之下,Llama 3.3 将参数范围缩小到70B,并专注于提高文本生成的质量。

调用3.3

Llama 3.3 使用 Meta 定制开发的训练库、定制的 GPU 集群和生产基础设施进行预训练。微调、注释和评估都在同一生产基础设施上进行。在 H100–80GB(TDP 700W)硬件上,训练累计耗费 39.3M GPU,即 700 万个 GPU 小时。

如何在本地使用 Llama 3.3?

Llama 3.3 使用与 Llama 3.1 相同的提示格式。因此,为 Llama 3.1 创建的提示将在 Llama 3.3 中保持不变。这对于从 Llama 3.1 迁移的用户来说是一个很大的优势。Llama 3.3 支持与 Llama 3.1 相同的代码解释器和工具调用功能。这些功能允许您的模型利用外部工具和信息。
Ollama 是启动和运行本地语言模型的最快方法我们建议尝试 Llama 3.3 70B,它的大小令人印象深刻,并且在大多数硬件上都能表现良好。
1.从 此处 下载 Ollama(它将引导您完成其余步骤)2.打开终端并运行ollama run llama3.3
在这里插入图片描述

Llama 3.3 70B vs Claude 3.5 Sonnet vs GPT-4o

现在来比较一下 Claude 3.5 Sonnet 和GPT-4o ,并验证 Llama 3.3 70B 的性能如何。
本次将核实以下几项内容:

编码能力

在过去的两年里,我广泛使用 Python 作为我的主要编程语言。我解决了一些受现实问题启发的棘手 Python 问题。

给定一个由正整数组成的数组nums 。从score = 0开始,
应用以下算法:选择数组中未标记的最小整数。如果存在平局,则选择索引最小的整数。将所选整数的值添加到score 中。标记所选元素及其两个相邻元素(如果存在)。重复此操作,直到所有数组元素都被标记。返回应用上述算法后获得的分数。
示例1 :
输入: nums = [ 2 , 1 , 3 , 4 , 5 , 2 ]
输出:7
解释:对元素进行如下标记:- 1是最小的未标记元素,因此我们标记它和它的两个相邻元素: [ 2 , 1 , 3 , 4 , 5 , 2 ]。- 2是最小的未标记元素,因此我们标记它和其左相邻元素: [ 2 ,1 ,3 ,4 ,5 ,2 ]。- 4是唯一剩余的未标记元素,因此我们标记它: [ 2 ,1 ,3 ,4 ,5 ,2 ]。我们的分数是1 + 2 + 4 = 7
LLama 3.3
def find_score(nums):"""Calculate the score by applying the given algorithm.Args:nums (list): A list of positive integers.Returns:int: The calculated score."""score = 0marked = [False] * len(nums)while False in marked:min_val = float('inf')min_idx = -1# Find the smallest unmarked integerfor i, num in enumerate(nums):if not marked[i] and num < min_val:min_val = nummin_idx = i# Add the value of the chosen integer to scorescore += min_val# Mark the chosen element and its two adjacent elements if they existfor i in range(max(0, min_idx - 1), min(len(nums), min_idx + 2)):marked[i] = Truereturn score# Example usage
nums = [2, 1, 3, 4, 5, 2]
print(find_score(nums))  # Output: 7
GPT-4o
def get_score(nums):n = len(nums)marked = [False] * n  # Array to track marked elementsscore = 0while True:# Find the smallest unmarked elementsmallest_value = float('inf')smallest_index = -1for i in range(n):if not marked[i] and nums[i] < smallest_value:smallest_value = nums[i]smallest_index = iif smallest_index == -1:  # If no unmarked elements are left, breakbreak# Add the value of the chosen element to the scorescore += nums[smallest_index]# Mark the chosen element and its two adjacent elementsmarked[smallest_index] = Trueif smallest_index > 0:marked[smallest_index - 1] = Trueif smallest_index < n - 1:marked[smallest_index + 1] = Truereturn score
# Example usage
nums = [2, 1, 3, 4, 5, 2]
print(get_score(nums))
Claude 3.5 Sonnet
def markElements(nums):# Create a copy of the input array to track marked elementsmarked = [False] * len(nums)score = 0while not all(marked):# Find the smallest unmarked elementmin_val = float('inf')min_index = -1# Find the smallest unmarked element with the smallest indexfor i in range(len(nums)):if not marked[i] and nums[i] < min_val:min_val = nums[i]min_index = i# Add the chosen element's value to scorescore += nums[min_index]# Mark the chosen elementmarked[min_index] = True# Mark left adjacent element if it existsif min_index > 0:marked[min_index - 1] = True# Mark right adjacent element if it existsif min_index < len(nums) - 1:marked[min_index + 1] = Truereturn score
# Test cases
test_cases = [[2,1,3,4,5,2],  # Example from the problem statement[1,2,3,4,5],    # Consecutive increasing numbers[5,4,3,2,1]     # Consecutive decreasing numbers
]
for nums in test_cases:print(f"Input: {nums}")print(f"Output: {markElements(nums)}\n")

在 Visual Studio Code 上运行代码时,这三个解决方案都是正确的。但是,LLama 3.3 的代码很清晰,但使用了循环while False in marked,这不如直观while not all(marked)。它还重复了查找最小未标记元素的逻辑,而没有使用辅助函数,这使得它更难维护。

GPT-4o 具有最易读的while True循环和明确的中断条件、简洁的注释和清晰的逻辑,避免了冗余,使其成为可读性和可维护性的可靠选择。

Claude 3.5 Sonnet 也很清晰并且使用了not all(marked)循环条件,但是它的冗长的风格和额外的测试用例虽然有帮助,但却使其不如 GPT-4o 版本那么集中。

总体而言,GPT-4o 的版本是最好的,因为它的结构清晰,注释运用良好,设计直观,有效地平衡了可读性、功能性和可维护性。

数学能力

比较并验证数学能力,我们会让参与者回答概率问题,很多人害怕进入数据科学,因为他们害怕高中和大学的代数、矩阵和组合学。

5次抛硬币中正好出现两次反面的概率
LLama3.3
步骤 1:定义样本空间样本空间包含抛 5 枚硬币的所有可能结果。每枚硬币落地的方式有两种:正面(H)或反面(T)。因此,样本空间有 2^5 = 32 种可能的结果。步骤 2:确定有利结果我们想要找到恰好出现 2 次反面的概率。这意味着我们需要计算出 2 次反面和 3 次正面的结果的数量。我们可以使用二项式系数来计算:
从 5 次抛掷中选择 2 次反面的方式数 = C(5, 2) = 5 / (2 × 3!) = 10
因此,恰好出现 2 次反面的有利结果共有 10 个。步骤 3:计算概率恰好得到 2 个反面的概率是有利结果的数量除以可能结果的总数:
P(恰好 2 个反面)= 有利结果的数量 / 结果总数
= 10 / 32 
= 5/16
答案在 5 枚硬币抛掷中恰好得到 2 个反面的概率为 5/16 或大约 0.3125 (31.25%)。
用数学符号来说,这可以表示为:
P ( X = 2= (5选2 ) × (1 / 2 )^ 2 × (1 / 2 )^ 3 = 10 / 32 = 5 / 16 ,
其中X是表示反面数量的随机变量,(5选2)是表示在5次抛掷中选择2次反面的方法数量的二项式系数。
GPT-4o

在这里插入图片描述

Claude 3.5 Sonnet

在这里插入图片描述
在这里插入图片描述

所有三个模型都正确识别出概率为 5/16。

  • ** LLama3.3 ** 由于其方法和缺乏简化而不太直观。
  • ** Claude 3.5 Sonnet **很清晰,但增加了额外的细节,例如正面和反面的概率,这对于这个问题来说可能是不必要的。
  • ** GPT-4o **因其清晰、结构化的基于公式的方法而脱颖而出,它直接应用二项式系数并简化术语以提高清晰度。这种方法简单易懂,避免了不必要的复杂性。

结论

Llama 3.3是Llama系列中最强大的版本,开源且功能强大,可利用开源特性进行改进,以适应各公司的需求。


http://www.ppmy.cn/ops/145329.html

相关文章

MicroDiffusion——采用新的掩码方法和改进的 Transformer 架构,实现了低预算的扩散模型

介绍 论文地址&#xff1a;https://arxiv.org/abs/2407.15811 现代图像生成模型擅长创建自然、高质量的内容&#xff0c;每年生成的图像超过十亿幅。然而&#xff0c;从头开始训练这些模型极其昂贵和耗时。文本到图像&#xff08;T2I&#xff09;扩散模型降低了部分计算成本&a…

每天40分玩转Django:Django部署概述

一、Django部署概述 在开发阶段,我们通常使用Django内置的轻量级开发服务器runserver。但在生产环境中,为了应对大量并发请求,需要使用高性能的WSGI服务器,如Gunicorn、uWSGI等。同时还要配置Nginx等Web服务器作为反向代理,实现负载均衡、静态文件处理等。下面是Django部署的整…

Java数组深入解析:定义、操作、常见问题与高频练习

一、数组的定义 1. 什么是数组 数组是一个容器&#xff0c;用来存储多个相同类型的数据。它属于引用数据类型&#xff0c;可以存储基本数据类型&#xff08;如int、char&#xff09;或者引用数据类型&#xff08;如String、对象&#xff09;。 2. 数组的定义方式 a. 动态初…

windows11家庭版安装docker无法识别基于wsl2的Ubuntu

软件环境&#xff1a;windows11家庭版安装WSL2,Ubuntu22.04&#xff0c;docker4.34.2 问题描述&#xff1a;安装docker时&#xff0c;设置阶段无法识别Ubuntu22.04. 原因&#xff1a;windows11家庭版本默认没有Hyper-V 解决方案&#xff1a;将下述代码保存在新建记事本中&am…

python+reportlab创建PDF文件

目录 字体导入 画布写入 创建画布对象 写入文本内容 写入图片内容 新增页 画线 表格 保存 模板写入 创建模板对象 段落及样式 表格及样式 画框 图片 页眉页脚 添加图形 构建pdf文件 reportlab库支持创建包含文本、图像、图形和表格的复杂PDF文档。 安装&…

JWT认证机制在Node.js中的详细阐述

一、概念 JWT&#xff08;JSON Web Token&#xff09;是一种基于Token的认证机制&#xff0c;它允许服务器无状态地验证用户身份。JWT是一个开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种简洁的、自包含的用于各方之间安全传输信息的JSON对象。JWT通常被…

论文研读:AnimateDiff—通过微调SD,用图片生成动画

1.概述 AnimateDiff 设计了3个模块来微调通用的文生图Stable Diffusion预训练模型, 以较低的消耗实现图片到动画生成。 论文名&#xff1a;AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning 三大模块&#xff1a; 视频域适应…

vue前端项目中实现电子签名功能(附完整源码)

文章目录 一、具体思路二、所需依赖三、添加签名面板2.1 canvas 转base642.2 电子签名等比例缩小 四、html转cavas&#xff08;原始文档&#xff09;五、合成图片六、效果测试七、完整源码 一、具体思路 在vue项目中使用以下步骤思路去实现&#xff1a; 起初的原始文档的格式都…