好问题。
我个人同时使用已经几个月了ChatGPT-4o、文心-4、kimi。下附充钱证明。
我真充钱,而且真在用。
<hr/>先说结论,我个人的体验是在我的使用中,文心-4在中文能力上确实完全不输给ChatGPT-4o,有时候甚至超越。ChatGPT-4或者说ChatGPT-4o在最近一个月变懒了,经常答非所问。反而是文心-4或者文心-4工具版更能直接完成我的任务。
我让他们完成的任务大概就是一些写代码、阅读代码、询问某个知识点、询问一些Linux的指令、debug、做一些文档整理的工作。很杂,大概就是一个CS 博士生日常科研的一切疑难杂症都交给他们解决了。
文心的回答很多时候更加完善,比如我让他回答一个单选题,他可能会把每个选项都分析一下原因,为什么对为什么错,而GPT-4o只会对正确选项进行分析——这也是我说他变懒的原因。
另一个让我选择文心的原因是,文心不需要魔法。GPT-4o是要魔法的,而且一直弹讨厌的验证框,基本回答2个问题就要弹验证框,比如下图。
文心就痛快多了,直接上,速度也挺快。
你可以说GPT-4o用中文本身就是一种对GPT-4能力的削弱,但是我觉得对于中文用户来说,中文能力始终是最重要的。即使我懂英语,我完全可以用英语对GPT-4o提问,但是这不累的慌吗?我可以用中文解决,肯定优先选择中文。等到文心都回答不了的时候,我再考虑用英语向GPT-4o提问也不迟。
特别是文心-4的工具箱版本,这个我觉得挺好用,会很智能地调用代码解释器、计算器解决计算问题。而GPT-4o虽然也内置了类似的功能,但是调用的概率没有像文心那样大。甚至在我刚刚的“随堂测试”中还弄错了方程..
嗯,提醒了一下GPT-4o方程错了之后,两个都是算对了。
所以说,就事论事是一件很重要的事情。
GPT-4o还有一个很重要的能力是英语(毫无疑问),在英语上,比如论文润色、中翻英、英译中,文心是完全没法比的。GPT-4o的多模态能力也是远强于文心。
<hr/>Kimi完全就是一个读paper的大模型,处理杂活上完全不行,可能在知识点询问的时候会有不错的效果。
但是读paper上,Kimi比文心和GPT-4o都要好用。
似乎Kimi在阅读、检索上做了很多工作。基本上我想要知道论文的什么要素,他们就能检索的很好。
<hr/>qwen我真没用过,但是听说是好用的。我刚刚尝试了一下,把一个今天下午刚刚遇到的问题交给他解决,计算的是像模像样,但是算错了(没调用工具,纯生成)。
而文心是直接调用代码解释器,把这个题算出来了。
GPT-4o则是直接算,算对了。
这个结果过几天再放出来。最近这个题还有保密的必要。
没有代码解释器可能是qwen一个很大的缺点(也可能是我没探索到)
<hr/>我的最终评价是,什么样的模型就应该去干什么样的活。
百度确实是一家恶心的公司,但是他们的文心确实有点东西,只不过这点东西也就是局限在中文领域。
btw 文心3.5也是一坨,没什么意义。
<hr/>从这里开始将会是更多的文心-4、GPT-4o和通义-2.5的对比。
注意:GPT-4o在英文环境下能力可能更强,但之后的测试均为中文环境。
选出的任务是我日常调用时不涉及科研内容的任务,不会挑选任务而造成对任何一个模型的偏袒。
目前任务、任务类型及其结论:
1、代码日常
Prompt:帮我写一个python代码,作用是检查Ubuntu系统中硬盘的温度,如果大于50度,则通过QQ邮箱发邮件提示我。我一共有6块机械硬盘,分别是/dev/sda, /dev/sdb, /dev/sdc.../dev/sdf,我需要事实检测他们的问题。
结果如下:
写的都差不多。但是文心有一个细节做得很好,帮我自动添加了无限循环While True和一个time.sleep()操作。我的本意是想时刻监察硬盘温度,而不是一次性的,但是我将“实时”错打成了“事实”,文心理解到了这一层“手误打错”。如果要用“写代码”来实现温度监察,一般都是长期性质的,在这次任务当中,文心-4>GPT-4o=通义-2.5
2、高中数学题(数学联赛一试/高考压轴难度)
Prompt: 已知cos(x-y)=cosx-cosy,求cos(x-y)的最大值
结果如下:
都做错了。但是错的程度还是有区别的。GPT-4o只利用了三角函数的基本取值范围。文心-4(工具版)给出了一个非常关键的恒等式:和差化积;并且这个公式给的是正确的;但是这个式子之后的利用方式有问题。通义-2.5点出了“和差化积”的公式,但是却写了“cos的两角和差公式”,自然后面也错了。
这个题的标准解法是先和差化积,然后将和差化积的sin((x+y)/2)放缩成1或者-1,然后再换元解。所以点出“和差化积”很重要。在这一题上文心-4(工具版)>通义-2.5>GPT-4o
3、概念题
Prompt: ZFS是什么存储系统
结果如下:
回答都差不多。个人偏向通义的结果,因为他提供了RAID-Z的解释。所以
<hr/>Prompt:帮我写一个python代码,作用是检查Ubuntu系统中硬盘的温度,如果大于50度,则通过QQ邮箱发邮件提示我。我一共有6块机械硬盘,分别是/dev/sda, /dev/sdb, /dev/sdc.../dev/sdf,我需要事实检测他们的问题。
结果如下:
写的都差不多。但是文心有一个细节做得很好,帮我自动添加了无限循环While True和一个time.sleep()操作。我的本意是想时刻监察硬盘温度,而不是一次性的,但是我将“实时”错打成了“事实”,文心理解到了这一层“手误打错”。如果要用“写代码”来实现温度监察,一般都是长期性质的,在这次任务当中,文心-4>GPT-4o=通义-2.5
GPT-4o:- import os
- import smtplib
- from email.mime.text import MIMEText
- from email.mime.multipart import MIMEMultipart
- from email.header import Header
- def get_disk_temperature(disk):
- try:
- result = os.popen(f&#39;sudo smartctl -A {disk} | grep -i &#34;Temperature&#34;&#39;).read()
- if result:
- temp_str = result.split()[-1]
- return int(temp_str)
- except Exception as e:
- print(f&#34;Error getting temperature for {disk}: {e}&#34;)
- return None
- def send_email(subject, body):
- # QQ邮箱的SMTP服务器地址
- smtp_server = &#39;smtp.qq.com&#39;
- smtp_port = 587
- # 你的QQ邮箱账号和授权码
- sender_email = &#39;your_email@qq.com&#39;
- sender_password = &#39;your_email_password&#39;
- receiver_email = &#39;your_email@qq.com&#39;
- msg = MIMEMultipart()
- msg[&#39;From&#39;] = Header(&#34;Temperature Monitor&#34;, &#39;utf-8&#39;)
- msg[&#39;To&#39;] = Header(&#34;Me&#34;, &#39;utf-8&#39;)
- msg[&#39;Subject&#39;] = Header(subject, &#39;utf-8&#39;)
- msg.attach(MIMEText(body, &#39;plain&#39;, &#39;utf-8&#39;))
- try:
- with smtplib.SMTP(smtp_server, smtp_port) as server:
- server.starttls()
- server.login(sender_email, sender_password)
- server.sendmail(sender_email, receiver_email, msg.as_string())
- print(&#34;Email sent successfully.&#34;)
- except Exception as e:
- print(f&#34;Failed to send email: {e}&#34;)
- def check_temperatures():
- disks = [&#39;/dev/sda&#39;, &#39;/dev/sdb&#39;, &#39;/dev/sdc&#39;, &#39;/dev/sdd&#39;, &#39;/dev/sde&#39;, &#39;/dev/sdf&#39;]
- for disk in disks:
- temp = get_disk_temperature(disk)
- if temp and temp > 50:
- subject = f&#34;Warning: High Temperature on {disk}&#34;
- body = f&#34;The temperature of {disk} has reached {temp}°C, which is above the safe limit.&#34;
- send_email(subject, body)
- if __name__ == &#34;__main__&#34;:
- check_temperatures()
复制代码 文心-4:- import os
- import smtplib
- from email.mime.text import MIMEText
- import subprocess
-
- # 邮箱配置
- SMTP_SERVER = &#39;smtp.qq.com&#39;
- SMTP_PORT = 587
- MY_EMAIL = &#39;your_email@qq.com&#39;
- MY_PASSWORD = &#39;your_password&#39;
- TARGET_EMAIL = &#39;recipient_email@example.com&#39;
-
- def check_drive_temperature(device):
- cmd = f&#39;smartctl -a /dev/{device} | grep &#34;Temperature_Celsius&#34;&#39;
- result = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, universal_newlines=True)
- if result.returncode == 0:
- output = result.stdout
- temp_str = output.split()[9] # 假设温度值始终在相同的位置,可能需要调整
- try:
- temperature = int(temp_str)
- return temperature
- except ValueError:
- return None
- return None
-
- def send_email(subject, content):
- msg = MIMEText(content)
- msg[&#39;Subject&#39;] = subject
- msg[&#39;From&#39;] = MY_EMAIL
- msg[&#39;To&#39;] = TARGET_EMAIL
-
- try:
- server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
- server.starttls()
- server.login(MY_EMAIL, MY_PASSWORD)
- server.sendmail(MY_EMAIL, TARGET_EMAIL, msg.as_string())
- server.quit()
- print(&#34;Email sent successfully!&#34;)
- except Exception as e:
- print(f&#34;Failed to send email: {e}&#34;)
-
- def monitor_drives():
- drives = [&#39;sda&#39;, &#39;sdb&#39;, &#39;sdc&#39;, &#39;sdd&#39;, &#39;sde&#39;, &#39;sdf&#39;]
- while True:
- for drive in drives:
- temperature = check_drive_temperature(drive)
- if temperature is not None and temperature > 50:
- subject = f&#34;Warning: Hard Drive {drive} Temperature Alert!&#34;
- content = f&#34;The temperature of hard drive {drive} is {temperature}°C!&#34;
- send_email(subject, content)
- # 等待一段时间再次检查,例如5分钟
- time.sleep(300)
-
- if __name__ == &#39;__main__&#39;:
- import time # 需要导入time模块
- monitor_drives()
复制代码 通义-2.5:- import subprocess
- import smtplib
- from email.mime.text import MIMEText
- from email.header import Header
- # 邮件配置
- smtp_server = &#39;smtp.qq.com&#39; # SMTP服务器地址
- smtp_port = 465 # 端口号
- smtp_user = &#39;your_email@qq.com&#39; # 发送方邮箱
- smtp_password = &#39;your_smtp_password&#39; # 授权码,不是登录密码
- receiver_email = &#39;receiver_email@example.com&#39; # 接收方邮箱
- # 监控的硬盘列表
- disks = [&#39;/dev/sda&#39;, &#39;/dev/sdb&#39;, &#39;/dev/sdc&#39;, &#39;/dev/sdd&#39;, &#39;/dev/sde&#39;, &#39;/dev/sdf&#39;]
- def get_disk_temperature(disk):
- try:
- # 使用smartctl工具获取硬盘温度
- cmd = f&#39;smartctl -A {disk} | grep &#34;194 Temperature_Celsius&#34;&#39;
- output = subprocess.check_output(cmd, shell=True, text=True)
- temp_line = output.strip().split()
- temp = int(temp_line[9].replace(&#39;,&#39;, &#39;&#39;))
- return temp
- except Exception as e:
- print(f&#34;Error getting temperature for {disk}: {e}&#34;)
- return None
- def send_email(subject, message):
- msg = MIMEText(message, &#39;plain&#39;, &#39;utf-8&#39;)
- msg[&#39;From&#39;] = Header(smtp_user, &#39;utf-8&#39;)
- msg[&#39;To&#39;] = Header(receiver_email, &#39;utf-8&#39;)
- msg[&#39;Subject&#39;] = Header(subject, &#39;utf-8&#39;)
- try:
- server = smtplib.SMTP_SSL(smtp_server, smtp_port)
- server.login(smtp_user, smtp_password)
- server.sendmail(smtp_user, [receiver_email], msg.as_string())
- server.quit()
- print(&#34;Email sent successfully&#34;)
- except Exception as e:
- print(f&#34;Failed to send email: {e}&#34;)
- def check_disks():
- for disk in disks:
- temp = get_disk_temperature(disk)
- if temp is not None and temp > 50:
- subject = f&#34;Warning: Disk Temperature High&#34;
- message = f&#34;The temperature of disk {disk} is {temp} degrees Celsius.&#34;
- send_email(subject, message)
- if __name__ == &#34;__main__&#34;:
- check_disks()
复制代码 <hr/>Prompt: 已知cos(x-y)=cosx-cosy,求cos(x-y)的最大值
结果如下:
都做错了。但是错的程度还是有区别的。GPT-4o只利用了三角函数的基本取值范围。文心-4(工具版)给出了一个非常关键的恒等式:和差化积;并且这个公式给的是正确的;但是这个式子之后的利用方式有问题。通义-2.5点出了“和差化积”的公式,但是却写了“cos的两角和差公式”,自然后面也错了。
这个题的标准解法是先和差化积,然后将和差化积的sin((x+y)/2)放缩成1或者-1,然后再换元解。所以点出“和差化积”很重要。在这一题上文心-4(工具版)>通义-2.5>GPT-4
GPT-4o:
文心-4(工具版):
通义-2.5:
<hr/>Prompt: ZFS是什么存储系统
结果如下:
回答都差不多。个人偏向通义的结果,因为他提供了RAID-Z的解释。所以
GPT-4:
文心-4
通义-2.5
|
|