AI对比:ChatGPT和文心一言的区别和差异

目录

一、ChatGPT和文心一言大模型的对比分析

1.1 二者训练的数据情况分析

1.2 训练大模型数据规模和参数对比

1.3 二者3.5版本大模型对比总结

二、ChatGPT和文心一言功能对比分析

2.1 二者产品提供的功能情况分析

2.2 测试一下各种功能的特性

2.2.1 文本创作能力

2.2.2 代码功能

2.2.3 画图功能

三、总结



前言:

       ChatGPT和文心一言都是基于大模型驱动的AIGC产品,由于两者训练的基础数据不同,造成了两者功能和性能上的差异。

       本文将分析两者大模型的区别,然后测试二者功能和性能上的差异。

一、ChatGPT和文心一言大模型的对比分析

       对于ChatGPT和文心一言,市场上免费的最高大模型版本都是3.5,想要对比二者的区别,就要从二者大模型训练的数据集和模型参数上分析。

1.1 二者训练的数据情况分析

我们来问一下两个产品训练数据来源?

ChatGpt的回答:

文心一言的回答:

1.2 训练大模型数据规模和参数对比

问一下训练数据量级和模型参数量级?

ChatGpt回答:

GPT3.5大模型几百亿的参数量级;用于训练数据规模大,具体未知。

文心一言回答:

文心一言3.5大模型参数没有在官网找到,推论不超过千亿;用于训练清洗好的数据集有数十亿。

1.3 二者3.5版本大模型对比总结

       这里我们问的是两者训练的数据量级;ChatGpt回答的是有数百亿的参数,文心一言回答的是原始数据量级;这里补充个概念B(十亿),表示用于大模型训练的参数量。

训练数据集:ChatGpt从论文、GitHub、模型、Facebook的对话数据集、SOTA38.5万个对话的高质量数据等作为训练数据,数据集很大,但具体详情数据未知;文心一言从网络、新闻、博客等清理出数十亿处理后的数据作为数据集;

模型参数:ChatGpt3.5大模型有数百亿的参数,几十B;文心一言大模型的参数没有说明,推论有几百亿的参数。

       两个3.5版本大模型,从训练数据量和数据参数大小问答没有具体的指标;能从数据来源知道ChatGPT的训练数据更丰富,模型参数上没有详细的数据指标对比。

二、ChatGPT和文心一言功能对比分析

两个产品面向应用市场,可以免费使用的最新功能和性能对比分析。

2.1 二者产品提供的功能情况分析

ChatGpt回答:

文心一言回答:

总结:两者都能提供问答交流、文本创作、学科知识等交流; ChatGpt能提供编程辅助,文心一言能提供图片生成功能;

2.2 测试一下各种功能的特性

2.2.1 文本创作能力

写一首描述人工智能的七言绝句:

ChatGpt回答:

第一次写:

在芯片雄伟展神威,智慧涌动若潮汐。

代码谱写奇迹歌,铸就未来数千纸。

第二次写:

电流流转翼智慧,机械心灵识未来。

代码舞动奇思妙,数算世间新秩序。

文心一言回答:

第一次写:

智能光芒照万方,人勤智慧是吾邦。

能描妙境超凡俗,画出未来入梦乡。

第二次写:

智能科技耀乾坤, 创新发展势如虹。

未来世界谁主宰, 只有人工智能通。

总结:对于ChatGpt和文心一言对于汉字的理解能力与生成能力;

ChatGpt要求的是写七言,但是第一次却出现了八个字的句子,第二次回答才合规,从文学的角度看,它对于语义理解和输出产生的内容,有较高的理解水准,深层次描写了因果关系;

文心一言两次在规范上都是符合,但是从文学角度看,它的理解力和输出内容的深度停留在描述层面,和chatGpt的交流深度有一定的差距。

2.2.2 代码功能

问一下:写一个Flink1.16版本,Kafka到ES的代码。

ChatGpt代码能力:

<!-- Flink Kafka Connector xml-->
<dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-kafka_2.12</artifactId><version>1.16.0</version> <!-- 使用适当的版本号 -->
</dependency><!-- Flink Elasticsearch Connector -->
<dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-elasticsearch7_2.12</artifactId><version>1.16.0</version> <!-- 使用适当的版本号 -->
</dependency>-----code-----
import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer;
import org.apache.flink.streaming.connectors.elasticsearch.ElasticsearchSinkFunction;
import org.apache.flink.streaming.connectors.elasticsearch7.ElasticsearchSink;
import org.apache.flink.util.Collector;
import org.apache.http.HttpHost;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.client.Requests;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;public class KafkaToESSinkExample {public static void main(String[] args) throws Exception {StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();Properties kafkaProps = new Properties();kafkaProps.setProperty("bootstrap.servers", "your_kafka_bootstrap_servers");kafkaProps.setProperty("group.id", "your_consumer_group_id");// 从 Kafka 读取数据DataStream<String> kafkaStream = env.addSource(new FlinkKafkaConsumer<>("your_kafka_topic", new SimpleStringSchema(), kafkaProps));// 解析 Kafka 数据,可以根据实际情况修改DataStream<Map<String, String>> parsedStream = kafkaStream.map(new KafkaDataParser());// 将数据写入 ElasticsearchList<HttpHost> httpHosts = new ArrayList<>();httpHosts.add(new HttpHost("your_elasticsearch_host", 9200, "http"));ElasticsearchSink.Builder<Map<String, String>> esSinkBuilder = new ElasticsearchSink.Builder<>(httpHosts,new ElasticsearchSinkFunction<Map<String, String>>() {public IndexRequest createIndexRequest(Map<String, String> element) {// 定义将要写入 Elasticsearch 的文档Map<String, String> json = new HashMap<>();json.put("field1", element.get("field1"));json.put("field2", element.get("field2"));// 添加更多字段...return Requests.indexRequest().index("your_elasticsearch_index").type("_doc").source(json);}@Overridepublic void process(Map<String, String> element, RuntimeContext ctx, RequestIndexer indexer) {indexer.add(createIndexRequest(element));}});// 设置批量写入选项esSinkBuilder.setBulkFlushMaxActions(1);// 添加 Elasticsearch SinkparsedStream.addSink(esSinkBuilder.build());env.execute("Kafka to Elasticsearch Sink Example");}// 解析 Kafka 数据的简单 MapFunction,可以根据实际情况修改public static class KafkaDataParser implements MapFunction<String, Map<String, String>> {@Overridepublic Map<String, String> map(String value) throws Exception {// 这里假设 Kafka 中的数据是 JSON 格式// 解析数据并返回一个 Map,其中包含需要写入 Elasticsearch 的字段// 根据实际情况修改解析逻辑// 示例:{"field1": "value1", "field2": "value2"}return parseJsonToMap(value);}private Map<String, String> parseJsonToMap(String json) {// 实现 JSON 到 Map 的解析逻辑// 这里简单演示,具体实现取决于实际数据格式和字段Map<String, String> result = new HashMap<>();// 示例:{"field1": "value1", "field2": "value2"}String[] keyValuePairs = json.replaceAll("[{}\"]", "").split(",");for (String pair : keyValuePairs) {String[] entry = pair.split(":");result.put(entry[0].trim(), entry[1].trim());}return result;}}
}

文心一言的代码能力:

-------xml----
<dependencies>  <!-- Flink dependencies -->  <dependency>  <groupId>org.apache.flink</groupId>  <artifactId>flink-java</artifactId>  <version>1.16.0</version>  </dependency>  <dependency>  <groupId>org.apache.flink</groupId>  <artifactId>flink-streaming-java_2.11</artifactId>  <version>1.16.0</version>  </dependency>  <!-- Elasticsearch dependencies -->  <dependency>  <groupId>org.elasticsearch.client</groupId>  <artifactId>elasticsearch-rest-high-level-client</artifactId>  <version>7.15.2</version>  </dependency>  <dependency>  <groupId>org.apache.flink</groupId>  <artifactId>flink-connector-elasticsearch7</artifactId>  <version>1.16.0</version>  </dependency>  
</dependencies>----------------code-------------------------------------
import org.apache.flink.api.common.restartstrategy.RestartStrategies;  
import org.apache.flink.streaming.api.datastream.DataStream;  
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;  
import org.apache.flink.streaming.connectors.kafka.*;  
import org.apache.flink.streaming.connectors.elasticsearch.*;  
import org.apache.flink.streaming.connectors.elasticsearch7.*;  
import org.apache.flink.util.Collector;  
import org.apache.flink.api.common.serialization.*;  
import org.apache.flink.api.java.*;  
import org.apache.flink.api.*;  
import org.apache.flink.*;  
import org.elasticsearch.*;  
import org.elasticsearch.action.*;  
import org.elasticsearch.client.*;  
import org.elasticsearch.client.indices.*;  
import org.elasticsearch.common.*;  
import org.elasticsearch.common.xcontent.*;  
import org.elasticsearch.rest.*;  
import org.elasticsearch.transport.*;  
import java.*;  
import java.util.*;  
import java.util.*;  
import javafx.*; // for Kafka consumer group ID generation (only required if you're on Java 8u20 or earlier)  public class KafkaToES {  public static void main(String[] args) throws Exception {  // Set up the execution environment and parameters  final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();  env.setRestartStrategy(RestartStrategies.fixedDelayRestart(3, 1000)); // Restart strategy for task failures and exceptions, delay between restarts in milliseconds, number of restart attempts before the job fails if exceptions occur in the tasks (optional)  env.setParallelism(1); // Set parallelism for the job (optional)  env.enableCheckpointing(60000); // Enable checkpointing for fault tolerance (optional) and set checkpoint interval in milliseconds (optional)  env.getCheckpointConfig().setCheckpointTimeout(10000); // Set checkpoint timeout in milliseconds (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) (optional) 256MB - 1GB per TaskManager JVM heap size recommended, depending on your workload and the available memory per TaskManager machine ("node") that Flink is deployed on ("slot configuration") - https://ci-files01-prod.s

结论:两者基础的代码能力都是拥有的,准确性没有验证,但是ChatGpt代码逻辑上的准确性和表达能力优于文心一言,文心一言在代码输出的时候没有写完。

2.2.3 画图功能

chatGpt的画图能力:

文心一言的画图能力:

结论:ChatGpt3.5大模型没有提供画图功能,文心一言3.5大模型跨模态提供了画图功能,拥有图片的AIGC能力。

三、总结

       ChatGpt和文心一言这两个产品,能免费使用的功能上:文本创作等语言理解深度和代码输出质量上,ChatGpt比文心一言更有优势;但是文心一言在AI作画上功能上是独有的;另外一个可用性上,文心一言是国内的产品,使用方便,ChatGPT需要VPN翻墙和申请ChatGPT账号,操作上麻烦点。以上是笔者分析出来的区别。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/641786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

婴儿洗衣机怎么选?热门品牌希亦、觉飞、由利详细测评

宝宝的衣物是不是要和大人的衣服分开洗呢&#xff1f;这是很多新手爸妈都会遇到的一个问题。有的人认为&#xff0c;宝宝的衣服要单独洗&#xff0c;以免被大人的衣服上的细菌污染&#xff1b;有的人认为&#xff0c;宝宝的衣服可以和大人的衣服一起洗&#xff0c;这样可以节省…

优先级队列(堆)

目录 1 概念 2 堆的概念 2.1小根堆 2.2大根堆 3堆的存储方式​​​​​​​ 4、堆的创建 4.1堆向下调整 5、时间复杂度 6、堆的插入&#xff08;向上调整&#xff09; 7、堆的删除 8、PriorityQueue的特性 9、堆排序 1 概念 我们知道的队列&#xff0c;队列是一…

leetcode---Z字形变换

题目&#xff1a; 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时&#xff0c;排列如下&#xff1a;之后&#xff0c;你的输出需要从左往右逐行读取&#xff0c;产生…

redis高可用之主从部署

文章目录 前言1. 同步以及命令传播1.1 同步1.2 命令传播 2. 解决从服务器断线重连2.1 解决方案 3. PSYNC命令4. 复制步骤1:设置主服务器的地址和端口步骤2:建立套接字连接 ——其实就是建立TCP连接步骤3:发送PING命令步骤4:身份验证步骤5:发送端口信息步骤6:同步步骤7:命令传播…

鸿蒙5.0发布时间已定!何处寻得移动开发加速器?

直接在百度上搜索「鸿蒙5.0发布时间」&#xff0c;出来的结果&#xff0c;那一个比一个焦虑~~ 百度的AI基于综合内容判断得出&#xff0c;鸿蒙5.0的发布时间在2023-04-17 百度知道推的答案是202年年4月中 但不管几月&#xff0c;“鸿蒙元年”似乎都是确定的&#xff0c;就是…

Linux切换jdk版本

参考文献&#xff1a;Linux 多个JDK的版本 脚本切换 - C小海 - 博客园 (cnblogs.com)

ZYNQ-7020 集成了运行NI Linux Real‑Time的实时处理器,支持FPGA二次开发

模拟和数字I/O&#xff0c;667 MHz双核CPU&#xff0c;512 MB DRAM&#xff0c;512 MB存储容量&#xff0c;Zynq-7020 FPGA CompactRIO Single-Board控制器 sbRIO‑9637是一款嵌入式控制器&#xff0c;在单块印刷电路板(PCB)上集成了运行NI Linux Real‑Time的实时处理器、用户…

RK3568 移植Ubuntu

使用ubuntu-base构建根文件系统 1、到ubuntu官网获取 ubuntu-base-18.04.5-base-arm64.tar.gz Ubuntu Base 18.04.5 LTS (Bionic Beaver) 2、将获取的文件拷贝到ubuntu虚拟机,新建目录,并解压 mkdir ubuntu_rootfs sudo tar -xpf u

解密高压开关柜内温度感知神器——无线测温传感器

具长期电网运行数据表明&#xff0c;电网电气设备故障大多是由于大电流运行、设备老化、绝缘水平下降等原因导致设备在高温条件下运行&#xff0c;从而引发燃烧&#xff0c;爆炸等严重事故。因此准确的掌握电气设备温度是预防此类问题的关键。 开关柜无源无线测温传感器采用CT取…

virtualenv虚拟环境的安装使用教程

让我们先思考这样一种情景&#xff1a;我们用python来开发一个项目&#xff0c;那么这个项目肯定会依赖很多的第三方库&#xff0c;这些第三方的库通过pip安装到全局区当中&#xff0c;而对于不同的项目使用到的库可能都有所不同&#xff0c;但是这些项目的库都安装到全局区当中…

【JavaEE进阶】MyBatis⼊⻔

文章目录 &#x1f332;什么是MyBatis?&#x1f333;准备⼯作&#x1f6a9;创建⼯程&#x1f6a9;数据准备&#x1f6a9;配置数据库连接字符串&#x1f6a9; 在项⽬中,创建持久层接⼝UserInfoMapper &#x1f343;单元测试&#x1f6a9;使⽤Idea⾃动⽣成测试类 &#x1f340;打…

6 时间序列(不同位置的装置如何建模): GRU+Embedding

很多算法比赛经常会遇到不同的物体产生同含义的时间序列信息&#xff0c;比如不同位置的时间序列信息&#xff0c;风力发电、充电桩用电。经常会遇到该如此场景&#xff0c;对所有数据做统一处理喂给模型&#xff0c;模型很难学到区分信息&#xff0c;因此设计如果对不同位置的…

芯课堂 | SWM34S系列驱动TFT-LCD显示模组应用基本注意事项

1、确认硬件的连接、包括电源、地、RGB 数据线、DCLK\DE\HSYNC\VSYNC 等&#xff0c;显示模组有 DISP、RESET、CS、SCL、SDA 等。 2、确认各电压的正常&#xff0c;包括电源&#xff0c;部分有 IOVCC、VGL、VGH、VCOM 等电压 3、如果应用的 TFT-LCD 模组非演示例程中已适配调…

动态血糖监测市场调研:预计2029年将达到13亿美元

血糖监测即是对于血糖值的定期检查。实施血糖监测可以更好的掌控糖尿病患者的血糖变化&#xff0c;对生活规律&#xff0c;活动&#xff0c;运动&#xff0c;饮食以及合理用药都具有重要的指导意义&#xff0c;并可以帮助患者随时发现问题&#xff0c;及时到医院就医。 动态血糖…

LinkedList源码

LinkedList源码 总结 LinkedList数据结构采用链表&#xff0c;内部封装了Node类&#xff0c;set方法先让Node的pre指针指向之前的last节点&#xff0c;然后判断头节点知否为空&#xff0c;如果为空则让first指针指向该节点&#xff0c;不过不为空则让尾节点的next指针指向该节…

Linux:动静态库的概念制作和底层工作原理

文章目录 动静态库基础认知动静态库基本概念静态库的制作库的概念包的概念 静态库的使用第三方库小结 动态库的制作动态库的使用动态库如何找到内容&#xff1f;小结 动态库加载库和程序都要加载可执行程序的地址问题地址问题逻辑地址和平坦模式绝对编址和相对编址与位置无关码…

vue2(Vuex)、vue3(Pinia)、react(Redux)状态管理

vue2状态管理Vuex Vuex 是一个专为 Vue.js应用程序开发的状态管理模式。它使用集中式存储管理应用的所有组件的状态&#xff0c;以及规则保证状态只能按照规定的方式进行修改。 State&#xff08;状态&#xff09;:Vuex 使用单一状态树&#xff0c;即一个对象包含全部的应用层…

高防IP如何保护服务器

首先我们要知道什么是高防IP~ 高防IP是指高防机房所提供的ip段&#xff0c;主要是针对互联网服务器遭受大流量DDoS攻击时进行的保护服务。高防IP是目前最常用的一种防御DDoS攻击的手段&#xff0c;用户可以通过配置DDoS高防IP&#xff0c;将攻击流量引流到高防IP&#xff0c;防…

[pytorch入门] 3. torchvision中的transforms

torchvision中的transforms 是transforms.py工具箱&#xff0c;含有totensor、resize等工具 用于将特定格式的图片转换为想要的图片的结果&#xff0c;即用于图片变换 用法 在transforms中选择一个类创建对象&#xff0c;使用这个对象选择相应方法进行处理 能够选择的类 列…

网络安全全栈培训笔记(57-服务攻防-应用协议RsyncSSHRDPFTP漏洞批量扫描口令拆解)

第57天 服务攻防-应用协议&Rsync&SSH&RDP&FTP&漏洞批量扫描&口令拆解 知识点&#xff1a; 1、服务攻防-远程控制&文件传输等 2、远程控制-RDP&RDP&弱口令&漏洞 3、文件传输-FTP&Rsyc&弱口令&漏洞 章节内容&#xff1a; …