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.hqwc.cn/news/424496.html

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

相关文章

webssh 通过web使用终端命令

简介&#xff1a;通过web就能使用终端命令 一、安装环境 # 安装webssh pip3 install webssh # 找到程序 find ~/anaconda3/envs/py37 -name webssh # 进入找到的目录 cd ~/anaconda3/envs/py37/lib/python3.7/site-packages/webssh/ # 开启服务 python main.py

架构篇08:架构设计三原则

文章目录 合适原则简单原则演化原则小结 成为架构师是每个程序员的梦想&#xff0c;但并不意味着把编程做好就能够自然而然地成为一个架构师&#xff0c;优秀程序员和架构师之间还有一个明显的鸿沟需要跨越&#xff0c;这个鸿沟就是“不确定性”。 对于编程来说&#xff0c;本…

FluoroQuest PLUS-抗淬灭封片剂,可以保护和增强荧光信号

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;FluoroQues tPLUS Antifade Mounting Medium&#xff0c;FluoroQues tPLUS-Antifade Mounting Medium&#xff0c;FluoroQuest PLUS 抗淬灭封片剂&#xff0c;FluoroQuest PLUS-抗淬灭封片剂 一、基本信息 产品简介…

架构篇10:架构设计流程-识别复杂度

文章目录 架构设计第 1 步&#xff1a;识别复杂度识别复杂度实战识别复杂度心得小结 从今天开始&#xff0c;我们分4期&#xff0c;结合复杂度来源和架构设计原则&#xff0c;通过一个模拟的设计场景“前浪微博”&#xff0c;一起看看在实践中究竟如何进行架构设计。今天先来看…

精益生产咨询背后的秘密:企业如何实现价值最大化

精益生产&#xff0c;起源于丰田生产系统&#xff0c;是一种集中于削减浪费、优化流程、提升顾客价值的生产方法。它的核心在于确保每一步生产过程都能为顾客创造价值。以下是实现精益生产咨询的详细步骤&#xff1a; 1.确定客户价值 一切从顾客需求出发。企业需深入理解顾客…

宝塔FTP文件传输服务结合cpolar内网穿透实现远程连接本地服务

⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 文章目录 ⛳️ 推荐1. Linux安装Cpolar2. 创建FTP公网地址3. 宝塔FTP服务设置4. FTP服务远程连接小结 5. 固定FTP公网地址6. 固…

复合机器人颠覆传统上下料,实现高效精准生产

在追求高效、精准生产的现代制造业中&#xff0c;传统的上下料方式已经无法满足企业的需求。复合机器人的出现&#xff0c;为制造业带来了革命性的变革。它不仅提高了生产效率&#xff0c;降低了生产成本&#xff0c;还为企业创造了更大的竞争优势。复合机器人的广泛应用&#…

web系统服务器监控检查

一、检查操作系统是否存在增减文件&#xff0c;是否有shell被上传 要检查操作系统是否存在增减文件或是否有shell被上传&#xff0c;您可以按照以下步骤进行操作&#xff1a; 文件完整性检查&#xff1a; 使用文件系统的完整性检查工具&#xff0c;例如fsck&#xff08;对于ext…

js 粘贴功能

需求 项目中需要使用粘贴功能&#xff0c;将已复制的内容粘贴到输入框中。&#xff08;vue项目使用elementUI&#xff0c;该粘贴功能是浏览器自带功能&#xff0c;属于通用功能&#xff09; 效果 代码 html <template><div class"box"><el-input …

Python如何叠加两张图片

我这里有如下两张图片&#xff0c;需要把他们叠加在一起&#xff0c;进行查看。这两张图片的大小都是300 300。不拼接在一起就不方便查看。需要把左边的小图&#xff0c;放到右边大图的中间。 一、拼接两个图片的代码 要解决这个问题&#xff0c;你可以使用fromarray()方法将…

初识汇编指令

1. ARM汇编指令 目的 认识汇编, 从而更好的进行C语言编程 RAM指令格式: 了解 4字节宽度 地址4字节对齐 方便寻址 1.1 指令码组成部分 : condition: 高4bit[31:28] 条件码 0-15 &#xff08;16个值 &#xff09; 条件码: 用于指令的 条件执行 , ARM指定绝大部分 都可…

Java/Python/Go不同开发语言在进程、线程和协程的设计差异

Java/Python/Go不同开发语言在进程、线程和协程的设计差异 1. 进程、线程和协程上的差异1.1 进程、线程、协程的定义1.2 进程、线程、协程的差异1.3 进程、线程、协程的内存成本1.4 进程、线程、协程的切换成本 2. 线程、协程之间的通信和协作方式2.1 python如何实现线程通信&a…