谷动谷力

 找回密码
 立即注册
查看: 2529|回复: 0
打印 上一主题 下一主题
收起左侧

国内AI 通义千问,讯飞星火,文心一言 使用对比

[复制链接]
跳转到指定楼层
楼主
发表于 2023-10-31 23:21:55 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
国内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的程序


看看文言一心的程序
  1. #include <reg52.h> // 包含51单片机的头文件

  2. // 定义数码管编码(共阳极)

  3. unsigned char code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

  4. unsigned char code weidu[]={0x77,0x7c,0x39,0x5e,0x79,0x71,0xf9,0x76}; // 显示0~9的位码

  5. unsigned char code weidu_unit[]={0x38,0x5f,0x7b,0x73}; // 显示个位的位码

  6. sbit d1=P2^0;

  7. sbit d2=P2^1;

  8. sbit d3=P2^2;

  9. sbit d4=P2^3;

  10. sbit d5=P2^4;

  11. sbit d6=P2^5;

  12. sbit d7=P2^6;

  13. unsigned int num=0; // 当前显示的数字

  14. void delay(unsigned int time) // 延时函数

  15. {

  16. while(time--);

  17. }

  18. void display(unsigned int num) // 显示数字函数

  19. {

  20. d1=0;d2=1;d3=1;d4=1;d5=1;d6=1;d7=1; // 关闭所有数码管段

  21. P0=smgduan[num/1000]; // 显示千位数字

  22. delay(5); // 短暂延时,以使数码管显示新的段码

  23. d1=1; // 打开对应的数码管a段

  24. delay(5); // 短暂延时,以使数码管显示新的段码

  25. P0=smgduan[num/100%10]; // 显示百位数字

  26. delay(5); // 短暂延时,以使数码管显示新的段码

  27. d2=1; // 打开对应的数码管b段

  28. delay(5); // 短暂延时,以使数码管显示新的段码

  29. P0=smgduan[num/10%10]; // 显示十位数字

  30. delay(5); // 短暂延时,以使数码管显示新的段码

  31. d3=1; // 打开对应的数码管c段

  32. delay(5); // 短暂延时,以使数码管显示新的段码

  33. P0=weidu[num%10]; // 显示个位数字

  34. delay(5); // 短暂延时,以使数码管显示新的段码

  35. }

  36. void main() // 主函数

  37. {

  38. while(1) // 无限循环,除非手动复位或断电

  39. {

  40. display(num); // 显示当前数字

  41. delay(1000); // 延时一秒,然后增加数字并重新开始循环(约等于每秒加一)

  42. num++; // 增加数字值,注意可能会溢出并回滚到0~999(取决于你的初始值)

  43. if (num > 9999) num = 0; // 如果数字大于9999,则重置为0(防止溢出)

  44. }

  45. }
复制代码


文言一心写程序@谷动谷力

我的评判:程序结构还可以,但7段数码管IO驱动,写法有问题


再看看讯飞星火的程序,我用讯飞的vsCode,这样非常方便
  1. #include <reg52.h> // 包含头文件,定义了51单片机的寄存器

  2. #include <intrins.h> // 包含_nop_()函数



  3. typedef unsigned char uchar; // 定义uchar为unsigned char类型

  4. typedef unsigned int uint; // 定义uint为unsigned int类型



  5. sbit LSA = P2^2; // 定义LSA为P2.2口

  6. sbit LSB = P2^3; // 定义LSB为P2.3口

  7. sbit LSC = P2^4; // 定义LSC为P2.4口



  8. uchar code smgduan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; // 定义数码管显示的编码



  9. void delay(uint z) // 延时函数

  10. {

  11. uint x,y;

  12. for(x=z;x>0;x--)

  13. for(y=110;y>0;y--);

  14. }



  15. void main() // 主函数

  16. {

  17. uchar i;

  18. while(1) // 无限循环

  19. {

  20. for(i=0;i<10000;i++) // 从0开始,每次加1,直到9999

  21. {

  22. P0 = smgduan[i/1000]; // 显示千位数

  23. LSA = 0;

  24. LSB = 0;

  25. LSC = 0;

  26. delay(1); // 延时1ms

  27. P0 = smgduan[i%1000/100]; // 显示百位数

  28. LSA = 1;

  29. LSB = 0;

  30. LSC = 0;

  31. delay(1); // 延时1ms

  32. P0 = smgduan[i%100/10]; // 显示十位数

  33. LSA = 0;

  34. LSB = 1;

  35. LSC = 0;

  36. delay(1); // 延时1ms

  37. P0 = smgduan[i%10]; // 显示个位数

  38. LSA = 1;

  39. LSB = 1;

  40. LSC = 0;

  41. delay(1); // 延时1ms

  42. }

  43. }

  44. }
复制代码


iFLYCode@谷动谷力

我的评判:程序结构差一点,但7段数码管IO驱动,写法好的一点,但有点错误,少一个,而且位选IO错了两个。


最后通义千问的写程序能力
  1. #include<reg52.h>

  2. #include "led.h"



  3. #define uchar unsigned char

  4. uchar code tab[16] = {0x3f,0x06,0x5b,0x4f,

  5. 0x66,0x6d,0x7d,0x07,

  6. 0x7f,0x6f,0x77,0x7c,

  7. 0x39,0x5e,0x79,0x71};



  8. void main(void) {

  9. uchar i;

  10. TMOD=0x01;

  11. TH0=(65536-50000)/256;

  12. TL0=(65536-50000)%256;

  13. EA=1;

  14. ET0=1;

  15. TR0=1;



  16. while(1){

  17. for(i=0;i<=9999;i++){

  18. display_7segment(i);

  19. delay_ms(1000); // 这里只是一个简单的延迟函数,你需要根据实际情况进行修改

  20. }

  21. }

  22. }



  23. void display_7segment(uchar num){

  24. uchar seg_num,bit;

  25. seg_num=num%10000/1000+48;

  26. P0=tab[seg_num];

  27. bit=num%10000%1000/100;

  28. switch(bit){

  29. case 1:

  30. P2|=0x01;break;

  31. case 2:

  32. P2|=0x02;break;

  33. case 3:

  34. P2|=0x04;break;

  35. case 4:

  36. P2|=0x08;break;

  37. case 5:

  38. P2|=0x10;break;

  39. case 6:

  40. P2|=0x20;break;

  41. case 7:

  42. P2|=0x40;break;

  43. case 8:

  44. P2|=0x80;break;

  45. default:

  46. break;

  47. }


  48. seg_num=num%10000%1000/100+48;

  49. P1=tab[seg_num];

  50. bit=num%10000%1000%100/10;

  51. switch(bit){

  52. case 1:

  53. P2&=0xfe;break;

  54. case 2:

  55. P2&=0xfd;break;

  56. case 3:

  57. P2&=0xfb;break;

  58. case 4:

  59. P2&=0xf7;break;

  60. case 5:

  61. P2&=0xef;break;

  62. case 6:

  63. P2&=0xdf;break;

  64. case 7:

  65. P2&=0xbf;break;

  66. case 8:

  67. P2&=0x7f;break;

  68. default:

  69. break;

  70. }



  71. seg_num=num%10000%1000%100%10+48;

  72. P3=tab[seg_num];

  73. }
复制代码


通义千问写程序@谷动谷力

我的评判:程序结构一般,但7段数码管IO驱动正确,但switch位多了,画蛇添足,但实际显示位,少2个。


3个AI没有一个全对的,看来,我们程序员,还是有饭吃的,还替代不了我们那么快。


总结

AI在作画写文字方面可以帮我们做很多工作,但在写程序方面,还得找有真才实料工程师。所以,我经常写文章是先AI,然后修改,这样效率高。


各位看官,你觉得呢。


#玩转AI摘要#

+10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-11-24 20:58 , Processed in 0.337326 second(s), 44 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表