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());

        // 将数据写入 Elasticsearch
        List<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);
                }

                @Override
                public void process(Map<String, String> element, RuntimeContext ctx, RequestIndexer indexer) {
                    indexer.add(createIndexRequest(element));
                }
            });

        // 设置批量写入选项
        esSinkBuilder.setBulkFlushMaxActions(1);

        // 添加 Elasticsearch Sink
        parsedStream.addSink(esSinkBuilder.build());

        env.execute("Kafka to Elasticsearch Sink Example");
    }

    // 解析 Kafka 数据的简单 MapFunction,可以根据实际情况修改
    public static class KafkaDataParser implements MapFunction<String, Map<String, String>> {
        @Override
        public 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.mfbz.cn/a/342485.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分布式一致性算法---Raft初探

读Raft论文也有一段时间了&#xff0c;但是自己总是以目前并没有完全掌握为由拖着这篇博客。今天先以目前的理解程度&#xff08;做了6.824的lab2A和lab2B&#xff09;对这篇论文做一个初步总结&#xff0c;之后有了更深入的理解之后再进行迭代&#xff0c;关于本文有任何疑问欢…

【数据结构和算法】--- 二叉树(3)--二叉树链式结构的实现(1)

目录 一、二叉树的创建(伪)二、二叉树的遍历2.1 前序遍历2.2 中序遍历2.3 后序遍历 三、二叉树节点个数及高度3.1 二叉树节点个数3.2 二叉树叶子节点个数3.3二叉树第k层节点个数3.4 二叉树查找值为x的节点 四、二叉树的创建(真) 一、二叉树的创建(伪) 在学习二叉树的基本操作前…

vertica10.0.0单点安装_ubuntu18.04

ubuntu的软件包格式为deb&#xff0c;而rpm格式的包归属于红帽子Red Hat。 由于项目一直用的vertica-9.3.1-4.x86_64.RHEL6.rpm&#xff0c;未进行其他版本适配&#xff0c;而官网又下载不到vertica-9.3.1-4.x86_64.deb&#xff0c;尝试通过alian命令将rpm转成deb&#xff0c;但…

【GitHub项目推荐--Git 教程】【转载】

本开源项目是 Will 保哥在 2013 第 6 界 IT 邦帮忙铁人赛年度大奖的得奖著作。这是一个 Git 教程&#xff0c;这个开源教程用 30 天的时间&#xff0c;带领大家详细了解使用 Git 。 重点介绍了 Git 的一些常用操作&#xff0c;以及日常工作中实际应用场景讲解&#xff0c;下图…

让二叉树无处可逃

志不立&#xff0c;天下无可成之事。 ——王阳明 二叉树 1、树&#xff1f;什么是树1、1、基本概念1、2、树的相关概念1、3、树的表示方式1、4、树的实际运用 2、二叉树&#xff1f;只有两个分支吗&#xff1f;2、1、基本概念2、2、二叉树的相关定义2、3、二叉树的相关性质2、4…

Dockerfile-xxxx

1、Dockerfile-server FROM openjdk:8-jdk-alpine WORKDIR /app COPY . . CMD java -Xms1536M -Xmx1536M -XX:UseG1GC -jar -Dlog4j2.formatMsgNoLookupstrue -Dloader.pathresources,lib -Duser.timezoneGMT-05 /app/server-main-1.0.0.jar 2、Dockerfile-bgd #FROM openjdk…

一站式社交媒体管理:揭秘HubSpot的全面解决方案

在当今数字化时代&#xff0c;社交媒体已经成为企业推广和品牌塑造的关键渠道。而HubSpot作为一站式市场营销平台&#xff0c;不仅致力于协助企业实现综合市场目标&#xff0c;更在社交媒体管理领域提供了全面解决方案。今天运营坛将深入探讨HubSpot如何成为一站式社交媒体管理…

DAY08_SpringBoot—整合Mybatis-Plus

目录 1 MybatisPlus1.1 MP介绍1.2 MP的特点1.3 MybatisPlus入门案例1.3.1 导入jar包1.3.2 编辑POJO对象1.3.3 编辑Mapper接口1.3.4 编译YML配置文件1.3.5 编辑测试案例 1.4 MP核心原理1.4.1 需求1.4.2 原理说明1.4.3 对象转化Sql原理 1.5 MP常规操作1.5.1 添加日志打印1.5.2 测…

哪个牌子的洗地机质量好?值得入手的洗地机

在家庭清洁方面&#xff0c;洗地机绝不是被认为的智商税。实际上&#xff0c;洗地机是一种非常实用的清洁工具&#xff0c;其最大的优点在于能够高效地协助我们清理家居环境&#xff0c;不论是在何种场景下&#xff0c;都能有效提升卫生水平。然而&#xff0c;由于市场上存在众…

seata1.8 + nacos,store.mode=db

吐槽一下&#xff0c;官方文档是真少&#xff0c;而且更新很不及时。。 官网地址&#xff1a;直接部署 | Apache Seata 上述地址也包含了下载链接&#xff0c;我用的1.8版本&#xff0c;挑一些关键配置说一下 1、服务器上&#xff0c;seata/conf/application.yml&#xff0c;将…

【数据结构】从顺序表到ArrayList类

文章目录 1.线性表1.1线性表的概念2.顺序表2.1顺序表的概念2.2顺序表的实现2.3接口的实现(对数组增删查改操作)3.ArrayList简介4. ArrayList使用 4.1ArrayList的构造4.2 ArrayList的方法4.3 ArrayList的遍历 1.线性表 1.1线性表的概念 线性表&#xff08;linear list&#xf…

HCIP-10

交换机的作用&#xff1a; 区别集线器&#xff08;HUB&#xff09;&#xff0c;HUB为物理层设备&#xff0c;只能直接转发发电流&#xff1b; 交换机为数据链路层设备&#xff0c;可以将电流与二进制转换&#xff0c;实现了以下功能&#xff1a; 无限的传输距离彻底解决了冲突…

条件概率、全概率和贝叶斯公式

目录 1. 条件概率 1.1 条件概率说明 1.2 举例说明 1.3 条件概率公式 2. 全概率公式 2.1 条件概率公式 2.2 一个特例公式 2.3 全概率公式的意义 3. 贝叶斯公式 3.1 贝叶斯公式的推导 3.2 贝叶斯公式一个特例 ​​​​​​​3.3 贝叶斯公式的意义 4. 先验概率 &…

6.1 实现微服务:匹配系统(上中下)

WebSocketConfig。ja&#xff08;onOpen建立连接时自动调用onClose关闭链接时自动调用&#xff08;user还存在就在线程移除&#xff09;onMessageServer从Client接收消息时触发&#xff09; status&#xff1a;match来切换界面是不是匹配还是比赛的 解析token&#xff0c;如果…

Elastic Observability 8.12:AI 助手、SLO 和移动 APM 支持的正式发布

作者&#xff1a;来自 Elastic Tom Grabowski, Akhilesh Pokhariyal Elastic Observability 8.12 宣布 AI Assistant 全面上市 (正式发布)、服务级别目标 (SLO) 和移动 APM 支持&#xff1a; 服务级别目标 (service level objective - SLO)&#xff1a;现在正式发布版允许 SRE…

python:socket基础操作(2)-《udp发送信息》

基础发送udp信息 1.导入socket模块 2.使用udp模块 3.发送内容 4.关闭套接字 很简单的4步就可以实现udp的消息发送 import socket # 导入模块udp_socket socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # 使用ipv4 udp协议udp_socket.sendto(b"hello world",(&…

即插即用篇 | UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大卷积神经网络 | DRepConv

大卷积神经网络(ConvNets)近来受到了广泛研究关注,但存在两个未解决且需要进一步研究的关键问题。1)现有大卷积神经网络的架构主要遵循传统ConvNets或变压器的设计原则,而针对大卷积神经网络的架构设计仍未得到解决。2)随着变压器在多个领域的主导地位,有待研究ConvNets…

精品基于Uniapp+springboot智慧校园管理系统App课程选课成绩

《[含文档PPT源码等]精品基于Uniappspringboot智慧校园管理系统App》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;Java 后台框架&#xff1a;springboot、ssm …

ffmpeg使用及java操作

1.文档 官网: FFmpeg 官方使用文档: ffmpeg Documentation 中文简介: https://www.cnblogs.com/leisure_chn/p/10297002.html 函数及时间: ffmpeg日记1011-过滤器-语法高阶&#xff0c;逻辑&#xff0c;函数使用_ffmpeg gte(t,2)-CSDN博客 java集成ffmpeg: SpringBoot集成f…

【网络安全】-基本工具msf

secure 1、有此漏洞的目标主机2、无此漏洞的目标主机&#xff08;常用&#xff09; ps.本着兴趣爱好&#xff0c;加强电脑的安全防护能力&#xff0c;并严格遵守法律和道德规范。msf&#xff08;metasploit framework&#xff09;是一个开源的渗透测试框架&#xff0c;用于开发…
最新文章