国内AI 通义千问,讯飞星火,文心一言 使用对比
刚看到,阿里云正式发布千亿级参数大模型通义千问2.0。宣传说,在10个权威测评中,通义千问2.0综合性能超过GPT-3.5,正在加速追赶GPT-4。当天,通义千问APP在各大手机应用市场正式上线,所有人都可通过APP直接体验最新模型能力。过去6个月,通义千问2.0在性能上取得巨大飞跃,相比4月发布的1.0版本,通义千问2.0在复杂指令理解、文学创作、通用数学、知识记忆、幻觉抵御等能力上均有显著提升。目前,通义千问的综合性能已经超过GPT-3.5,加速追赶GPT-4。
刚测试一下,通义千问, 再对比一下,讯飞星火,对比一下,各看官看看哪个好。
首先对比作画能力
画一幅画:中岩寺丹岩赤壁下,有绿水一泓,清澈怡人,池畔有一块怪石,形状奇特,宛如一条蛟龙跃出水面, 那块怪石上题刻:”唤鱼池“。
文言一心AI作画@谷动谷力
通义千问AI作画@谷动谷力
通义千问没有作画能力
再看看图写话能力
月亮@谷动谷力
请根据图片信息,创作一首以“月亮与筷子”为主题的现代诗。
文言一心看图写诗@谷动谷力
讯飞星火没有找到相关功能
通义千问看图写诗@谷动谷力
看看写程序能力
基于51单片机用C语言写一个4位7段数码管显示0~9999的数字,每1秒显示数字加1的程序
看看文言一心的程序
- #include <reg52.h> // 包含51单片机的头文件
- // 定义数码管编码(共阳极)
- unsigned char code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- unsigned char code weidu[]={0x77,0x7c,0x39,0x5e,0x79,0x71,0xf9,0x76}; // 显示0~9的位码
- unsigned char code weidu_unit[]={0x38,0x5f,0x7b,0x73}; // 显示个位的位码
- sbit d1=P2^0;
- sbit d2=P2^1;
- sbit d3=P2^2;
- sbit d4=P2^3;
- sbit d5=P2^4;
- sbit d6=P2^5;
- sbit d7=P2^6;
- unsigned int num=0; // 当前显示的数字
- void delay(unsigned int time) // 延时函数
- {
- while(time--);
- }
- void display(unsigned int num) // 显示数字函数
- {
- d1=0;d2=1;d3=1;d4=1;d5=1;d6=1;d7=1; // 关闭所有数码管段
- P0=smgduan[num/1000]; // 显示千位数字
- delay(5); // 短暂延时,以使数码管显示新的段码
- d1=1; // 打开对应的数码管a段
- delay(5); // 短暂延时,以使数码管显示新的段码
- P0=smgduan[num/100%10]; // 显示百位数字
- delay(5); // 短暂延时,以使数码管显示新的段码
- d2=1; // 打开对应的数码管b段
- delay(5); // 短暂延时,以使数码管显示新的段码
- P0=smgduan[num/10%10]; // 显示十位数字
- delay(5); // 短暂延时,以使数码管显示新的段码
- d3=1; // 打开对应的数码管c段
- delay(5); // 短暂延时,以使数码管显示新的段码
- P0=weidu[num%10]; // 显示个位数字
- delay(5); // 短暂延时,以使数码管显示新的段码
- }
- void main() // 主函数
- {
- while(1) // 无限循环,除非手动复位或断电
- {
- display(num); // 显示当前数字
- delay(1000); // 延时一秒,然后增加数字并重新开始循环(约等于每秒加一)
- num++; // 增加数字值,注意可能会溢出并回滚到0~999(取决于你的初始值)
- if (num > 9999) num = 0; // 如果数字大于9999,则重置为0(防止溢出)
- }
- }
复制代码
文言一心写程序@谷动谷力
我的评判:程序结构还可以,但7段数码管IO驱动,写法有问题
再看看讯飞星火的程序,我用讯飞的vsCode,这样非常方便
- #include <reg52.h> // 包含头文件,定义了51单片机的寄存器
- #include <intrins.h> // 包含_nop_()函数
- typedef unsigned char uchar; // 定义uchar为unsigned char类型
- typedef unsigned int uint; // 定义uint为unsigned int类型
- sbit LSA = P2^2; // 定义LSA为P2.2口
- sbit LSB = P2^3; // 定义LSB为P2.3口
- sbit LSC = P2^4; // 定义LSC为P2.4口
- uchar code smgduan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; // 定义数码管显示的编码
- void delay(uint z) // 延时函数
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void main() // 主函数
- {
- uchar i;
- while(1) // 无限循环
- {
- for(i=0;i<10000;i++) // 从0开始,每次加1,直到9999
- {
- P0 = smgduan[i/1000]; // 显示千位数
- LSA = 0;
- LSB = 0;
- LSC = 0;
- delay(1); // 延时1ms
- P0 = smgduan[i%1000/100]; // 显示百位数
- LSA = 1;
- LSB = 0;
- LSC = 0;
- delay(1); // 延时1ms
- P0 = smgduan[i%100/10]; // 显示十位数
- LSA = 0;
- LSB = 1;
- LSC = 0;
- delay(1); // 延时1ms
- P0 = smgduan[i%10]; // 显示个位数
- LSA = 1;
- LSB = 1;
- LSC = 0;
- delay(1); // 延时1ms
- }
- }
- }
复制代码
iFLYCode@谷动谷力
我的评判:程序结构差一点,但7段数码管IO驱动,写法好的一点,但有点错误,少一个,而且位选IO错了两个。
最后通义千问的写程序能力
- #include<reg52.h>
- #include "led.h"
- #define uchar unsigned char
- uchar code tab[16] = {0x3f,0x06,0x5b,0x4f,
- 0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71};
- void main(void) {
- uchar i;
- TMOD=0x01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- while(1){
- for(i=0;i<=9999;i++){
- display_7segment(i);
- delay_ms(1000); // 这里只是一个简单的延迟函数,你需要根据实际情况进行修改
- }
- }
- }
- void display_7segment(uchar num){
- uchar seg_num,bit;
- seg_num=num%10000/1000+48;
- P0=tab[seg_num];
- bit=num%10000%1000/100;
- switch(bit){
- case 1:
- P2|=0x01;break;
- case 2:
- P2|=0x02;break;
- case 3:
- P2|=0x04;break;
- case 4:
- P2|=0x08;break;
- case 5:
- P2|=0x10;break;
- case 6:
- P2|=0x20;break;
- case 7:
- P2|=0x40;break;
- case 8:
- P2|=0x80;break;
- default:
- break;
- }
- seg_num=num%10000%1000/100+48;
- P1=tab[seg_num];
- bit=num%10000%1000%100/10;
- switch(bit){
- case 1:
- P2&=0xfe;break;
- case 2:
- P2&=0xfd;break;
- case 3:
- P2&=0xfb;break;
- case 4:
- P2&=0xf7;break;
- case 5:
- P2&=0xef;break;
- case 6:
- P2&=0xdf;break;
- case 7:
- P2&=0xbf;break;
- case 8:
- P2&=0x7f;break;
- default:
- break;
- }
- seg_num=num%10000%1000%100%10+48;
- P3=tab[seg_num];
- }
复制代码
通义千问写程序@谷动谷力
我的评判:程序结构一般,但7段数码管IO驱动正确,但switch位多了,画蛇添足,但实际显示位,少2个。
3个AI没有一个全对的,看来,我们程序员,还是有饭吃的,还替代不了我们那么快。
总结
AI在作画写文字方面可以帮我们做很多工作,但在写程序方面,还得找有真才实料工程师。所以,我经常写文章是先AI,然后修改,这样效率高。
各位看官,你觉得呢。
#玩转AI摘要#
|