编程AI深度实战:大模型哪个好? Mistral vs Qwen vs Deepseek vs Llama

​​

系列文章:

编程AI深度实战:私有模型deep seek r1,必会ollama-CSDN博客

编程AI深度实战:自己的AI,必会LangChain-CSDN博客

编程AI深度实战:给vim装上AI-CSDN博客

编程AI深度实战:火的编程AI,都在用语法树(AST)-CSDN博客

编程AI深度实战:让verilog不再是 AI 的小众语言-CSDN博客

随着开源 LLM 空间的发展,越来越多的模型变得专业化,“代码”LLM 变得非常流行。这些 LLM 旨在比其 “常识” 对应物更小,但旨在超越更大的通用模型的编码性能。

这些模型以极低的成本提供大型模型的功能,进一步使本地 LLM 空间民主化。特别是,在较小的编码 LLM 领域中,有三个模型在竞争中脱颖而出:Codestral 22B、DeepSeek Coder V2 Lite 14B 和 Qwen 2.5 Coder 7B。

Codestral 22B 于 5 月 29 日发布,这是 Mistral 发布的第一款特定代码模型。据说它精通 80 多种编程语言,具有 Fill-in-the-Middle 能力,可以与开发人员一起充当助手。

Qwen 2.5 Coder 7B 已于 2024 年 9 月 19 日由阿里云发布。它是 Qwen 系列的一部分,模型参数范围从 1.5B 到 32B 不等,针对更接近闭源模型的性能。

DeepSeek V2 Coder 由 DeepSeek AI 于 2024 年 6 月发布。该模型是 DeepSeek V1 的改进版本,使用 1.17 万亿个代码相关标记进行训练,它专注于增强的代码生成和数学功能,还支持 Fill-in-the-Middle。除了具有 2360 亿个参数的 “基础” 模型外,他们还发布了具有 160 亿个参数的较小 “精简” 版本。

 

比较数字

这三种型号在各自的参数类别中都拥有最先进的性能,而且数字相当可观。我们来看看模型在最流行的编程基准测试 HumanEval 上的性能。

Codestral 得分为 81.1%,DeepSeek Coder v2 Lite 得分为 81.1%,而 Qwen 2.5 Coder 7B 在基准测试中得分为 88.4%,超过了比自身大得多的两个模型。作为参考,OpenAI 的闭源 GPT-4 得分仅为 87.1%,而改进的 GPT-4o 得分仅比 Qwen 2.5 Coder 高出 2 个百分点,为 90.2%。

另一个值得注意的基准是 Spider,它包含 10,000 多个问题,与 5,000 多个复杂的跨域 SQL 查询相匹配。此基准测试对于将 LLM 集成到数据库中至关重要。这一次,Qwen 2.5 Coder 以更大的优势领先,为 82.0%,而 Codestral 的得分仅为 76.6%。

下表比较了所有三种模型的基准,侧面为 GPT-4o 作为参考:

 

 

 

添加图片注释,不超过 140 字(可选)

 

注意:Codestral 的基准测试数据取自 DeepSeek Coder 与 Codestral 的比较,高于 Mistral 的“官方”报告数据

我们从数字上看到,Qwen 2.5 Coder 7B 的性能绝对优于其他所有模型,在某些情况下,几乎与 GPT-4o 的性能相当。

当然,数字永远不能说明全部情况。我们需要在实际场景中测试这些模型,以了解它们如何 “执行” 或 “作”。

在下面的实验中,我将在具有 24GB 统一内存的 M2 MacBook Air 上本地运行所有模型,使用 ollama,llama.cpp 在引擎盖下运行。在模型优化方面,我将对所有模型使用 Q6_K 量化,它保留了原始模型的合理性能,同时允许所有模型都适合我的 24GB 机器。

为了了解模型大小和速度的差异,以下是它们在我的笔记本电脑上运行的 GGUF 文件大小以及它们的每秒令牌数 (t/s):

  • 代码 22B - 18GB~ (3.31t/s)

  • Deepseek Coder v2 Lite 16B - 14GB~ (8.35t/s)

  • Qwen 2.5 编码器 7B - 6.3GB~ (10.31t/s)

 

经典游戏

以下是您文章的编辑版本,其中包含对语法、拼写和尴尬措辞的更正:

让我们从 HTML、CSS 和 JavaScript 中的经典贪吃蛇游戏开始。我想在一次性编码任务中看到 LLM 的能力。对于没有任何编程经验来指导 LLM 或调试其输出的人来说,它能很好地创建有用的东西吗?以下是我在所有 LLM 上使用的提示:

在一个文件中用 HTML、CSS 和 JavaScript 编写一个基本的功能性贪吃蛇游戏。玩家将使用箭头键控制蛇。

Qwen Coder 生成代码完全没有问题,完美地完成了任务。我什至多次尝试了提示的变体,以确保这不是侥幸,但 Qwen 每次都交付了。

 

 

 

 

添加图片注释,不超过 140 字(可选)

Qwen 实现上的 Snake 游戏

另一方面,Codestral 确实成功地制作了一款有效的游戏,但它并非没有自己的怪癖和错误。碰撞检测并不完全完美,蛇的速度太慢了,蛇的生长几乎不明显。

 

 

 

添加图片注释,不超过 140 字(可选)

Codestral 实现上的 Snake 游戏

Deepseek 的性能令人失望。尽管进行了多次对话,但它无法产生一个简单的贪吃蛇游戏的有效实现。Deepseek 使用 “addEventListener” 方法来监听按键,但由于移动代码中的错误,该按键从未在其任何实现中注册。

我还尝试使用其他更复杂的游戏(如 2048、Minesweeper 和 Tetris)来提示 LLM。几乎所有的 LLM 都在这些更“复杂”的提示符中失败,提供的代码几乎无法正常工作,除了 Qwen 7B Coder,它是所有代码中最小的。

在我的测试中,Qwen 在 2048 和俄罗斯方块等复杂游戏中遇到了困难,但生成的代码通常是半功能性的,例如 2048 年移动的一半有效,或者俄罗斯方块中掉落的块有效,但其他什么都没有。

然而,对于 Minesweeper,Qwen 能够始终如一地产生近乎完美的实现。以下是我在美学上更好的实现之一和(加速的)游戏。

 

 

 

 

添加图片注释,不超过 140 字(可选)

Qwen 实现上的 Minesweeper 游戏玩法

以下是结果摘要:

 

 

 

添加图片注释,不超过 140 字(可选)

 

 

 

Qwen 2.5 版本

Qwen 2.5 Coder 7B 开局强劲。它的 five_crop 功能运行完美,但重建功能存在一些问题。尽管进行了多次修改,但 Qwen 似乎对裁剪面具的确切内容感到困惑。

reconstruct 函数的输入(即 five_crop 函数生成的输出)是包含裁剪图像的张量。第一维中的每个 b 图像都表示不同的裁剪,从第一个图像的左上角开始,然后是第二个图像的左上角部分,依此类推。虽然 Qwen 似乎掌握了图像重建背后的逻辑,但尽管反复提示和修改,用于提取作物的索引仍然存在问题。

 

 

添加图片注释,不超过 140 字(可选)

 

Qwen 的实现

 

DeepSeek 精简版

Deepseek 也解决了five_crop但它的实现要繁琐得多,也不太清晰。我更喜欢 Qwen 2.5 实现。对于 reconstruct 函数,代码运行没有错误,但图像远非重建,很像一个解错的拼图游戏。额外的提示和微移没有提供任何改进。

 

 

添加图片注释,不超过 140 字(可选)

 

Deepseek Lite 的实现

 

代码

Codestral 的 five_crop 函数完美无缺,可读性超过了 Qwen,它使用 torchvision 的 crop 函数裁剪出每个区域,而不是 Qwen 使用的凌乱索引。与其他模型类似,它在重建功能方面存在一些困难,但在澄清了裁剪图像的前导维度包含的内容后,Codestral 在第一次尝试时给出了完美的实现。

 

 

 

添加图片注释,不超过 140 字(可选)

 

Codestral 的最终实现

 

“基本”知识

除了更长、更复杂的编码任务外,我还向 LLM 提出了一些关于数学和 Python 知识的基本简短问题。这些问题测试基本概念并评估 LLM 提供精确、准确答案的能力,而无需不必要的阐述,这是完成更复杂请求的基石。此外,它们可以揭示 LLM 知识库或推理过程中意想不到的弱点。

  1. 31793 是素数吗?

  2. Qwen 实际上没有直接回答,而是试图 “模拟” Python 解释器,写下一些代码,然后产生不正确的 “False” 输出。

  3. Deepseek 通过一长串测试逐个数字地检查可整除性,回答错误,并说 31793 可以被 19 整除。

  4. Codestral 尝试编写一些 Python 代码来测试这个数字,但在响应的末尾给出了直接、正确的答案:“yes”。

  5. 编写一个 Python 函数来反转字符串,而无需使用内置的 reverse() 方法。

  6. Qwen 编写了一段功能代码,但它没有使用快捷方式 [::-1],而是反向循环遍历列表。它确实建议将快捷方式实现作为 “替代方案”。

  7. Deepseek 也生成了功能代码,但甚至不建议使用快捷方式 [::-1]。相反,它巧妙地遍历字符串并将每个字符附加到列表的前面,这是一种比 Qwen 更简洁的实现,但并不完美。

  8. Codestral 使用了 [::-1] 切片技巧并给出了简洁、正确的响应。

  9. 计算半径为 7.5 个单位的圆的面积。将您的答案四舍五入到小数点后两位。

  10. Qwen 准确地计算了面积,精确到第 100 位,即 176.71,并给出了不必要的冗长解释。

  11. Deepseek 给出了与 Qwen 几乎相同的结果:解释很长,但正确答案为 176.71。

  12. Codestral 给出了简洁、准确的答案:176.71。

  13. 对二进制数 1010 和 1100 进行 XOR 运算的结果是什么?

  14. Qwen 回答错误,“0100”,并尝试编写无法运行的 Python 代码来解决问题。

  15. Deepseek 用不必要的冗长解释正确地回答了。

  16. Codestral 以适长的解释正确回答。

结论

总体而言,看起来较大的模型稍微更“智能”。增加的参数大小使它们具有更“原始”的能力来回忆知识和理解上下文。最小的模型 Qwen 经常编写和假装运行 Python 代码,而不是直接回答问题。Deepseek 和 Codestral 都更擅长仅在需要时编写代码。令人惊讶的是,只有 Codestral 给出了最简洁和广泛采用的反转字符串的实现。

以下是本文中对三个模型完成的所有测试的摘要结果:

 

 

 

添加图片注释,不超过 140 字(可选)

 

 

您应该选择哪一个?

在不考虑计算成本的情况下,我建议为 python 任务选择 Codestral,为其他语言选择 Qwen。

尽管 Codestral 在浏览器游戏的测试中并不出色,但它更大的参数数量只是让对话感觉“更流畅”,因为它比较小的模型更能理解语言。与 Codestral 交谈感觉更像是与 ChatGPT 的对话,而 Qwen 和 Deepseek 都感觉他们只知道如何用“代码”说话。

如果内存限制和速度是一个限制因素,那么 Qwen 是不费吹灰之力的。在某些情况下,它比 Codestral 更智能,并且与 Codestral 相比需要的内存不到一半,q6 量化仅为 6.3 GB。它可以以不错的速度在大多数 GPU 和所有 Apple Silicon Mac 上轻松运行。

当然,这可能不会持续太久,因为 Qwen 背后的公司阿里巴巴计划发布 32B 版本的编码器,旨在匹配最先进的闭源性能。较低数量的 32B 模型将适合可以运行 Codestral 的机器。开源编码 LLM 领域无异于令人振奋。

 

还有哪些开源模型?

Llama 3 到 Llama 3.1、Llama 3.2、Llama 3.3 系列模型在参数规模、上下文长度和性能上不断突破壁垒,Llama 3.1 405B 版本成为最大的开源大型语言模型之一。

 

llama 3.2 1B/3B/11B/90B

发布日期:9月 26, 2024

型号变体:llama 3.2 1B、llama 3.2 3B、llama 3.2 11B 和llama 3.2 90B

详细信息: Llama 3.2 发布了中小型视觉 LLM(11B 和 90B),以及适用于边缘和移动设备的轻量级纯文本模型(1B 和 3B),包括预训练和指令调整版本。这些模型支持 128K 上下文长度,并针对 Arm 处理器进行了优化,适用于本地摘要、指令跟踪和重写任务。

 

llama 3.3 70B

发布日期:12月 7, 2024

型号变体:llama 3.3 70B

详细信息: Llama 3.3 是 Llama 系列的最新版本,进一步提高了模型效率和性能。Llama 3.3 在多语言功能、代码生成和复杂数学问题解决方面取得了重大进步,参数规模达到 405B,接近或超过市场上其他领先模型的性能。

这些开源模型版本反映了 Meta 对开放 AI 生态系统的承诺,为研究人员和开发人员提供强大的工具,推动人工智能技术的进步。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/894663.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

neo4j-community-5.26.0 install in window10

在住处电脑重新配置一下neo4j, 1.先至官方下载 Neo4j Desktop Download | Free Graph Database Download Neo4j Deployment Center - Graph Database & Analytics 2.配置java jdk jdk 21 官网下载 Java Downloads | Oracle 中国 path: 4.查看java -version 版本 5.n…

网络原理(5)—— 数据链路层详解

目录 一. 以太网 1.1 认识以太网 1.2 网卡与以太网 1.3 以太网帧格式 二. 认识MAC地址 三. MAC地址 与 IP地址 的区别 4.1 定义 4.2 分配方式 4.3 工作层次 4.4 地址格式 4.5 寻址方式 四. ARP协议 4.1 引入 4.2 ARP的概念 4.3 ARP工作原理 五. MTU 与 MSS …

【从零开始的LeetCode-算法】922. 按奇偶排序数组 II

给定一个非负整数数组 nums, nums 中一半整数是 奇数 ,一半整数是 偶数 。 对数组进行排序,以便当 nums[i] 为奇数时,i 也是 奇数 ;当 nums[i] 为偶数时, i 也是 偶数 。 你可以返回 任何满足上述条件的…

H264原始码流格式分析

1.H264码流结构组成 H.264裸码流(Raw Bitstream)数据主要由一系列的NALU(网络抽象层单元)组成。每个NALU包含一个NAL头和一个RBSP(原始字节序列载荷)。 1.1 H.264码流层次 H.264码流的结构可以分为两个层…

AI大模型(二)基于Deepseek搭建本地可视化交互UI

AI大模型(二)基于Deepseek搭建本地可视化交互UI DeepSeek开源大模型在榜单上以黑马之姿横扫多项评测,其社区热度指数暴涨、一跃成为近期内影响力最高的话题,这个来自中国团队的模型向世界证明:让每个普通人都能拥有媲…

图的基本术语——非八股文

我之前只看到了数据结构与算法的冰山一角,感觉这些术语只会让知识越来越难理解,现在来看,他们完美抽象一些概念和知识,非常重要。 本篇概念肯定总结不全,只有遇到的会写上,持续更新,之前文章已经…

oracle: 表分区>>范围分区,列表分区,散列分区/哈希分区,间隔分区,参考分区,组合分区,子分区/复合分区/组合分区

分区表 是将一个逻辑上的大表按照特定的规则划分为多个物理上的子表,这些子表称为分区。 分区可以基于不同的维度,如时间、数值范围、字符串值等,将数据分散存储在不同的分区 中,以提高数据管理的效率和查询性能,同时…

本地快速部署DeepSeek-R1模型——2025新年贺岁

一晃年初六了,春节长假余额马上归零了。今天下午在我的电脑上成功部署了DeepSeek-R1模型,抽个时间和大家简单分享一下过程: 概述 DeepSeek模型 是一家由中国知名量化私募巨头幻方量化创立的人工智能公司,致力于开发高效、高性能…

C++11详解(一) -- 列表初始化,右值引用和移动语义

文章目录 1.列表初始化1.1 C98传统的{}1.2 C11中的{}1.3 C11中的std::initializer_list 2.右值引用和移动语义2.1左值和右值2.2左值引用和右值引用2.3 引用延长生命周期2.4左值和右值的参数匹配问题2.5右值引用和移动语义的使用场景2.5.1左值引用主要使用场景2.5.2移动构造和移…

手写MVVM框架-构建虚拟dom树

MVVM的核心之一就是虚拟dom树,我们这一章节就先构建一个虚拟dom树 首先我们需要创建一个VNode的类 // 当前类的位置是src/vnode/index.js export default class VNode{constructor(tag, // 标签名称(英文大写)ele, // 对应真实节点children,…

【大数据技术】教程03:本机PyCharm远程连接虚拟机Python

本机PyCharm远程连接虚拟机Python 注意:本文需要使用PyCharm专业版。 pycharm-professional-2024.1.4VMware Workstation Pro 16CentOS-Stream-10-latest-x86_64-dvd1.iso写在前面 本文主要介绍如何使用本地PyCharm远程连接虚拟机,运行Python脚本,提高编程效率。 注意: …

pytorch实现门控循环单元 (GRU)

人工智能例子汇总:AI常见的算法和例子-CSDN博客 特性GRULSTM计算效率更快,参数更少相对较慢,参数更多结构复杂度只有两个门(更新门和重置门)三个门(输入门、遗忘门、输出门)处理长时依赖一般适…

PAT甲级1032、sharing

题目 To store English words, one method is to use linked lists and store a word letter by letter. To save some space, we may let the words share the same sublist if they share the same suffix. For example, loading and being are stored as showed in Figure …

最小生成树kruskal算法

文章目录 kruskal算法的思想模板 kruskal算法的思想 模板 #include <bits/stdc.h> #define lowbit(x) ((x)&(-x)) #define int long long #define endl \n #define PII pair<int,int> #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); using na…

为何在Kubernetes容器中以root身份运行存在风险?

作者&#xff1a;马辛瓦西奥内克&#xff08;Marcin Wasiucionek&#xff09; 引言 在Kubernetes安全领域&#xff0c;一个常见的建议是让容器以非root用户身份运行。但是&#xff0c;在容器中以root身份运行&#xff0c;实际会带来哪些安全隐患呢&#xff1f;在Docker镜像和…

ConcurrentHashMap线程安全:分段锁 到 synchronized + CAS

专栏系列文章地址&#xff1a;https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标&#xff1a; 理解ConcurrentHashMap为什么线程安全&#xff1b;ConcurrentHashMap的具体细节还需要进一步研究 目录 ConcurrentHashMap介绍JDK7的分段锁实现JDK8的synchr…

[ESP32:Vscode+PlatformIO]新建工程 常用配置与设置

2025-1-29 一、新建工程 选择一个要创建工程文件夹的地方&#xff0c;在空白处鼠标右键选择通过Code打开 打开Vscode&#xff0c;点击platformIO图标&#xff0c;选择PIO Home下的open&#xff0c;最后点击new project 按照下图进行设置 第一个是工程文件夹的名称 第二个是…

述评:如果抗拒特朗普的“普征关税”

题 记 美国总统特朗普宣布对美国三大贸易夥伴——中国、墨西哥和加拿大&#xff0c;分别征收10%、25%的关税。 他威胁说&#xff0c;如果这三个国家不解决他对非法移民和毒品走私的担忧&#xff0c;他就要征收进口税。 去年&#xff0c;中国、墨西哥和加拿大这三个国家&#…

九. Redis 持久化-AOF(详细讲解说明,一个配置一个说明分析,步步讲解到位 2)

九. Redis 持久化-AOF(详细讲解说明&#xff0c;一个配置一个说明分析&#xff0c;步步讲解到位 2) 文章目录 九. Redis 持久化-AOF(详细讲解说明&#xff0c;一个配置一个说明分析&#xff0c;步步讲解到位 2)1. Redis 持久化 AOF 概述2. AOF 持久化流程3. AOF 的配置4. AOF 启…

基于Springboot框架的学术期刊遴选服务-项目演示

项目介绍 本课程演示的是一款 基于Javaweb的水果超市管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.该项目附…