随着开源 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 知识库或推理过程中意想不到的弱点。
- 31793 是素数吗?
- Qwen 实际上没有直接答复,而是试图 “模拟” Python 解释器,写下一些代码,然后产生不正确的 “False” 输出。
- Deepseek 通过一长串测试逐个数字地查抄可整除性,答复错误,并说 31793 可以被 19 整除。
- Codestral 尝试编写一些 Python 代码来测试这个数字,但在响应的末尾给出了直接、正确的答案:“yes”。
- 编写一个 Python 函数来反转字符串,而无需利用内置的 reverse() 方法。
- Qwen 编写了一段功能代码,但它没有利用快捷方式 [::-1],而是反向循环遍历列表。它确实发起将快捷方式实现作为 “替换方案”。
- Deepseek 也生成了功能代码,但甚至不发起利用快捷方式 [::-1]。相反,它奇妙地遍历字符串并将每个字符附加到列表的前面,这是一种比 Qwen 更简洁的实现,但并不完善。
- Codestral 利用了 [::-1] 切片技巧并给出了简洁、正确的响应。
- 计算半径为 7.5 个单位的圆的面积。将您的答案四舍五入到小数点后两位。
- Qwen 准确地计算了面积,准确到第 100 位,即 176.71,并给出了不须要的冗长解释。
- Deepseek 给出了与 Qwen 险些相同的效果:解释很长,但正确答案为 176.71。
- Codestral 给出了简洁、准确的答案:176.71。
- 对二进制数 1010 和 1100 举行 XOR 运算的效果是什么?
- Qwen 答复错误,“0100”,并尝试编写无法运行的 Python 代码来解决问题。
- Deepseek 用不须要的冗长解释正确地答复了。
- 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 领域无异于令人奋发。
Llama3.3: 开源模子扛把子?
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 生态体系的承诺,为研究人员和开发人员提供强大的工具,推动人工智能技术的进步。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |