大陆时间 2024 年 11 月 12 日凌晨 3 点左右,阿里千问团队发布 Qwen2.5-Coder 系列模型

ae3106d0db2a0151bdd50f65403ecb20.jpeg

模型特色

新模型主打强大多样实用三大特点。

强大

Qwen2.5-Coder-32B-Instruct 成为目前 SOTA 的开源代码模型,代码能力追平 GPT-4o,展现出强大且全面的代码能力,同时具备良好的通用和数学能力

1fdf55e74b5312995e383a8af90817d2.png

多样

10 月开源了 1.5B7B 两个尺寸,本次又带来 0.5B、3B、14B、32B 四个尺寸。

截至目前, Qwen2.5-Coder 已经覆盖了主流的 6 个模型尺寸,以满足不同开发者的需要。

不同尺寸 Instruct 模型的表现:

4c88d5bf7bcb14672d58e396079d241b.png

实用

官方探索了 Qwen2.5-Coder 在代码助手Artifacts 两种场景下的实用性,并用一些样例来展示 Qwen2.5-Coder 在实际场景中的应用潜力。

模型许可

  1. Qwen2.5-Coder 0.5B/1.5B/7B/14B/32B 模型均采用 Apache 2.0 许可证

  2. 3B 模型使用 Research Only 许可

实测

笔者从 官方博客演示视频 中抽取了提示词,在 本地 ChatNio 分别进行了测试。

15c2d95f1f9e5b91360cb9723d2fd6c6.jpeg

官网 demo:三体模拟

模型:qwen2.5-coder:14b

提示词:

Create a complete HTML page using Canvas and JavaScript to simulate a three-body effect.

Using the following planet resources:
1. https://img.alicdn.com/imgextra/i4/O1CN01R6wlzD1lhhMlBcGLg_!!6000000000925-2-tps-800-800.png
2. https://img.alicdn.com/imgextra/i4/O1CN01Ad5SeB20tv1nfRoA2_!!6000000006908-2-tps-800-800.png
3. https://img.alicdn.com/imgextra/i1/O1CN01OlZAk81OVEHJ0pazq_!!6000000001710-2-tps-800-800.png

Requirements:
1. set size of images as 100px * 100px
2. add "Start" and "Reset" button
3. When it is not started, allow drag to place the planets, and "start" to simulate
4. "Reset" place the three planets to the default location

Draw both acceleration and velocity vectors on each planet, assume all the planets are stationary at the beginning.
1. Add a slider to control the update speed.
2. Set largely different mass to make the movement obvious, set G constant large enough to make the animation obvious too.
Write the entire code in a single HTML

使用 14B coder 模型生成的单网页应用,有基本的轮廓,但是点击开始后,模拟过程并不流畅,和官网 demo 中的效果有差距。

换 32B coder 模型,生成的代码有 bug,有 2 个变量重复声明了,改好后可以运行。

官网 demo:Lissajous Curve(利萨茹曲线)

模型:qwen2.5-coder:14b

提示词:

Use HTML to draw Lissajous diagrams, provide sliders to control the ratio, and make delta change automatically to make the graph rotate like 3D. All codes are written in one file. Requirements: Make sure the starting point of the curve is at a reasonable position, draw enough phases to ensure the curve is closed, and the slider only handles integers

这个生成的效果是最好的,和官方 demo 基本一致,可以正确模拟出曲线,并且能调整曲线参数,实时生效。

官网 demo:表情雨

模型:qwen2.5-coder:14b

提示词:

Write code in a single HTML file:
capture the "click" event, drop random numbers of random emojis on the click point, initially flying to random directions, add gravity and collision effect on each emoji, add this picture to emoji list, take care of this picture size: https://qianwen-res.oss-cn-bejing.aliyuncs.com/Qwen2.5/Qwen2.5-Coder/logo.png, using caching method to avoid massive load of this

这个生成的效果也很好,和官方 demo 基本一致。

个人 demo:俄罗斯方块

模型:qwen2.5-coder:14b

提示词:

生成一个网页版俄罗斯方块游戏,提供暂停按钮,提供上、下、左、右四个方向键控制方向,提供一个按钮用来旋转方块。全部代码放在一个 html 文件中。
909cb2de7550e28795c5fcdfc6c7de26.jpeg

效果不好,有 bug,无法正常运行,可能是我的提示词不够清晰、明确,而且我的提示词是中文,英文提示词效果估计更好。

个人 demo:贪吃蛇

模型:qwen2.5-coder:14b

提示词:

Use HTML to draw Lissajous diagrams, provide sliders to control the ratio, and make delta change automatically to make the graph rotate like 3D. All codes are written in one file. Requirements: Make sure the starting point of the curve is at a reasonable position, draw enough phases to ensure the curve is closed, and the slider only handles integers

效果不好,有 bug,无法正常运行。

个人 demo:生成 golang 测试代码

模型:qwen2.5-coder:32b

提示词:

为下面的 golang 代码生成测试:

```golang
func formatQuoteKeys(keys []string) []string {
	res := make([]string, 0, len(keys))
	for _, key := range keys {
		var newKey string
		if strings.HasPrefix(key, "hk") {
			reg := regexp.MustCompile("^hk")
			tmp := reg.ReplaceAllString(key, "")
			newKey = "rt_hk" + strings.ToUpper(tmp)
		} else if strings.HasPrefix(key, "$") {
			newKey = strings.ReplaceAll(key, "$", "gb_")
		} else {
			newKey = strings.ToLower(key)
		}
		res = append(res, newKey)
	}

	return res
}
```

生成的效果有点超出个人预期了,毕竟前面 2 个都有 bug。

这里生成了完整的代码,测试样例很丰富,覆盖面广,并对代码进行了解释,可以更好的理解代码。

实际运行代码,也能运行通过。

功耗

qwen2.5-coder:32b 在推理时功耗还是很大的,下面是nvidia-smi 命令的数据,笔者 RTX 2080Ti 22G的显卡,基本是满功耗 (248W/250W) 在运行了。

而且 32B 模型在 RTX 2080Ti 22G 的显存占用在 19G 左右。

$ nvidia-smi
Tue Nov 12 09:02:14 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 555.42.06              Driver Version: 555.42.06      CUDA Version: 12.5     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 2080 Ti     Off |   00000000:01:00.0 Off |                  N/A |
| 55%   64C    P2            248W /  250W |   19527MiB /  22528MiB |     96%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A      1235      G   /usr/lib/xorg/Xorg                              4MiB |
|    0   N/A  N/A    973908      C   ...unners/cuda_v12/ollama_llama_server          0MiB |
+-----------------------------------------------------------------------------------------+

总结

使用官方 Demo 中的提示词,生成的网页基本能够正确运行。

但是用自己的提示词,生成的俄罗斯方块、贪吃蛇游戏,都存在 bug,无法正确运行。可能是笔者自己的提示词水平需要提高,同时笔者发现生成代码方面模型对英文提示词效果更好一些

在开发辅助方面,比如生成测试样例,使用 qwen-coder 还是可以的。

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐