当前位置: 首页 > news >正文

ChatGPT⼊门到精通(3):ChatGPT 原理

OpenAI在2022年11⽉份发布ChatGPT,强⼤的⽂字对话、创意写作能⼒,全球掀起了⼀
波AI浪潮。本⽂对ChatGPT的技术原理、厉害之处、可能的落地⽅向等⽅⾯进⾏了全⾯
的解析,看完后会对ChatGPT有更深⼊的了解。

⼀、前⾔

2022年11⽉30⽇,ChatGPT发布,5天内涌⼊100W⽤户。
他拥有持续的上下⽂对话能⼒,同时⽀持⽂章写作、诗词⽣成、代码⽣成等能⼒。
如果⽤旧技术去理解他,我们通常会认为他的背后是由复合Agent组合起来⽀撑的。
复合Agent是什么意思呢?即有若⼲个术业有专攻的Agent:有⼀个负责聊天对话的,⼀
个负责诗词⽣成的,⼀个负责代码⽣成的, ⼀个负责写营销⽂案的等等等等。
每个Agent只擅⻓做⾃⼰的那部分事情,⽽在⽤户使⽤的过程中,系统会先判定⽤户的意
图是什么,应该是哪个Agent,然后再将⽤户的命令分发给对应的agent去解决并提供答
案。
因此看起来是很厉害的机器⼈,背后其实是若⼲个术业有专攻的机器⼈。事实上Siri、⼩
爱、⼩度,⼩冰甚⾄包括各个平台的客服机器⼈都是这种模式。这样当你要上线⼀个新能
⼒(例如写古诗),你只需要新增训练⼀个Agent,然后将这个Agent接⼊到总控的分类
意图器下就⾏。
这也是当前时代的⼀个缩影,不管外⾏⼈如何看待你从事的⾏业,不管媒体是如何⼀次次
⼈云亦云地说警惕AI取代⼈类,你⼀直都知道,你在做的只是训练出⼀个术业有专攻的机
器⼈⽽已,离真正的⼈⼯智能⼗万⼋千⾥。
但ChatGPT的能⼒不再是这种模式了,他所采⽤的模式是⼤语⾔模型+Prompting。所有
的能⼒通过⼀个模型实现,背后只有⼀个什么都会的机器⼈(即⼤语⾔模型),并⽀持⽤
户借助⽂字下达命令(即Prompting,提⽰/指⽰)。
虽然这种能⼒的表现还不算完美,但是他开启了⼀条⼀种通向“通⽤型⼈⼯智能”的道路,
曾经科幻故事⾥的Jarvis,moss好像真的有了那么⼀点可能。⽽这才是7年前,我踏⼊这
个⾏业所憧憬的东⻄啊。
可能你对我的震撼有点⽆法理解,我接下来会讲明⽩他的技术原理,带你慢慢感知这项技
术的厉害之处。

⼆、ChatGPT原理

⾸先,我们要弄明⽩,NLP任务(⾃然语⾔处理,AI的⼀个技术领域,即⽂本类的AI任
务)的核⼼逻辑是⼀个“猜概率”的游戏。
⽐如说,“我今天被我⽼板___”,经过⼤量的数据训练后,AI预测空格出会出现的最⾼概
率的词是“CPU了”,那么CPU就会被填到这个空格中,从⽽答案产⽣——“我今天被我⽼
板CPU了”。
虽然⾮常不可思议,但事实就是这样,现阶段所有的NLP任务,都不意味着机器真正理解
这个世界,他只是在玩⽂字游戏,进⾏⼀次⼜⼀次的概率解谜,本质上和我们玩报纸上的
填字游戏是⼀个逻辑。只是我们靠知识和智慧,AI靠概率计算。
⽽在⽬前的“猜概率”游戏环境下,基于⼤型语⾔模型(LLM,Large Language Model)演
进出了最主流的两个⽅向,即Bert和GPT。
其中BERT是之前最流⾏的⽅向,⼏乎统治了所有NLP领域,并在⾃然语⾔理解类任务中
发挥出⾊(例如⽂本分类,情感倾向判断等)。
⽽GPT⽅向则较为薄弱,最知名的玩家就是OpenAI了,事实上在GPT3.0发布前,GPT⽅
向⼀直是弱于BERT的(GPT3.0是ChatGPT背后模型GPT3.5的前⾝)。
接下来我们详细说说BERT和GPT两者之间的差别。
BERT:双向 预训练语⾔模型+fine-tuning(微调)
GPT:⾃回归 预训练语⾔模型+Prompting(指⽰/提⽰)
每个字都认识,连到⼀起就不认识了是吗哈哈。没关系,接下来我们把这些术语逐个拆解
⼀遍就懂了。
1、什么是“预训练模型”?
我们通常认知⾥的AI,是针对具体任务进⾏训练。例如⼀个能分辨猫品种的Agent,需要
你提供A-缅因猫,B-豹猫这样的数据集给他,让它学习不同品种之间的特征差异,从⽽学
会分辨猫品种这项能⼒。
但⼤语⾔模型不是这样运作的,他是通过⼀个⼤⼀统模型先来认识这个世界。再带着对这
个世界的认知对具体领域进⾏降维打击。
在这⾥让我们先从从NLP领域的中间任务说起。像中⽂分词,词性标注,NER,句法分
析等NLP任务。他们本⾝⽆法直接应⽤,不产⽣⽤户价值,但这些任务⼜是NLP所依赖
的,所以称之为中间任务。
在以前,这些中间任务都是NLP领域必不可少的。但是随着⼤型语⾔模型的出现,这些中
间任务事实上已经逐步消亡。⽽⼤型语⾔模型其实就是标题中的“语⾔预训练模型”。
他的实现⽅式是将海量的⽂本语料,直接喂给模型进⾏学习,在这其中模型对词性、句法
的学习⾃然⽽然会沉淀在模型的参数当中。我们看到媒体对ChatGPT铺天盖地的宣传⾥
总是离不开这样⼀句话——在拥有3000亿单词的语料基础上预训练出的拥有1750亿参数
的模型。
这⾥⾯3000亿单词就是训练数据。⽽1750亿参数就是沉淀下来的AI对这个世界的理解,
其中⼀部分沉淀了Agent(代理、中间⼈)对各类语法、句法的学习(例如应该是两个馒
头,⽽不是⼆个馒头,这也是中间任务为什么消亡的原因)。⽽另外⼀部分参数参数则储
存了AI对于事实的认知(例如美国总统是拜登)。
也就是经过预训练出⼀个这样的⼤语⾔模型后,AI理解了⼈类对语⾔的使⽤技巧(句法、
语法、词性等),也理解了各种事实知识,甚⾄还懂得了代码编程,并最终在这样的⼀个
⼤语⾔模型的基础上,直接降维作⽤于垂直领域的应⽤(例如闲聊对话,代码⽣成,⽂章
⽣成等)。
⽽BERT和GPT两者都是基于⼤语⾔模型的,他们在这⼀点上是相同的。他们的不同在于
双向/⾃回归,fine-tuning/Prompting这两个维度,我们接下来会重点弄明⽩这四个术语。
2、猜字谜的两种⽅式,BERT、GPT
BERT 和 GPT 都是基于 Transformer ⽹络架构和预训练语⾔模型的思想⽽提出的。
它们都可以在不同语⾔任务上达到最先进的⽔平。BERT 和 GPT 展⽰了预训练语⾔模型
对于⾃然语⾔理解和⽣成任务的巨⼤潜⼒,在诸多任务中取得了突破性进展。
BERT,全称为 Bidirectional Encoder Representations from Transformers,是由 Google
AI Language 团队在 2018 年提出的预训练语⾔模型。它主要⽤于⾃然语⾔理解,具体应
⽤如下:问答系统、句⼦相似度⽐较、⽂本分类、情感分析、命名实体识别等。BERT 的
训练过程分为预训练和微调两部分。预训练是 BERT 模型的基础部分,它包括使⽤⼤量
的⽂本来训练语⾔模型。微调过程是在预训练模型的基础上,使⽤更⼩的标记数据来调整
模型参数。
BERT是“双向”预训练法,是指这个模型在“猜概率的时候”,他是两个⽅向的信息利⽤起
来同时猜测。例如“我__20号回家”,他在预测的时候,是同时利⽤“我”+“20号回家”两端的
信息来预测空格中的词可能为“打算”。有点像我们做英⽂的完形填空,通常都是结合空格
两端的信息来猜测空格内应该是哪个单词。
GPT(Generative Pre-trained Transformer)则是由 OpenAI 研究团队在 2018 年提出的
⼀种语⾔模型。它能够完成各种⾃然语⾔处理任务,在⽂本⽣成⽅⾯表现尤为优秀,可以
⽣成各种类型的⽂本,如⽂章、诗歌、对话等。其主要具体应⽤如下:⽂本⽣成、⽂本⾃
动完成、语⾔翻译、对话⽣成、摘要⽣成等。
⽽GPT使⽤的是“⾃回归”预训练法,就是猜概率的时候从左往右做预测,不会利⽤⽂本中
右侧的内容,和BERT相反。这就有点像我们写作⽂的时候,我们肯定是⼀边写⼀边想。
BERT 和 GPT 的主要区别在于它们所采⽤的预训练⽅法不同。BERT 是使⽤双向的预训
练⽅法,即同时预测⽂本中的上下⽂信息,⽽ GPT 是使⽤单向的⾃回归预训练⽅法,即
从前到后⽣成下⼀个单词或句⼦。这意味着 BERT 可以更好地处理需要理解整个句⼦或
段落的任务,⽽ GPT 则更适合⽣成下⼀个单词或句⼦,两者基本理念的区别导致BERT
在之前更擅⻓⾃然语⾔理解类任务,⽽GPT更擅⻓⾃然语⾔⽣成类任务(例如聊天、写
作⽂)。——注意,我说的是之前,后⾯的章节我会介绍现在的情况发⽣了什么变化。
BERT和GPT各⾃优缺点:
BERT优点:性能优越,⼴泛应⽤于NLP下游任务。缺点:⽆法直接⽣成⻓⽂本。
GPT优点:语⾔⽣成和理解能⼒强,可⽣成⻓连贯⽂本。缺点:性能不及BERT,表现不太稳
定。
BER Trepresents语义信息更加丰富,是⽬前最优秀的语⾔表⽰模型。但⽣成能⼒受限。
GPT⽣成效果更⾃然,语义和语法更加连贯,但对语义理解仍略显不⾜,对 DOMAIN 敏感度
⾼。
BERT和GPT各有优缺点,实际应⽤中通常会根据具体任务选择使⽤BERT还是GPT,亦或是
将⼆者结合,发挥各⾃的优势,达到最佳效果。

3、微调 vs 提⽰(咒语)

假设现在预训练好的⼤模型要针对具体领域⼯作了,他被安排成为⼀名鉴⻩师,要分辨⽂
章到底有没有在搞⻩⾊。那么BERT和GPT的区别在哪⾥呢?
BERT:fine-tuning(微调)。微调是指模型要做某个专业领域任务时,需要收集相关的
专业领域数据,做模型的⼩幅调整,更新相关参数。
例如,我收集⼀⼤堆标注数据,A-是⻩⾊,B-没有搞⻩⾊,然后喂给模型进⾏训练,调整
他的参数。经过⼀段时间的针对性学习后,模型对于分辨你们是否搞⻩⾊的能⼒更出⾊
了。这就是fine-tuning,⼆次学习微调。
GPT:Prompting。prompt是指当模型要做某个专业领域的任务时,我提供给他⼀些⽰
例、或者引导。但不⽤更新模型参数,AI只是看看。
例如,我提供给AI模型10张⻩⾊图⽚,告诉他这些是搞⻩⾊的。模型看⼀下,效果就提
升了。⼤家可能会说,这不就是fine-tuning吗?不是⼀样要额外给⼀些标注数据吗?
两者最⼤的区别就是:这种模式下,模型的参数不会做任何变化升级,这些数据就好像仅
仅是给AI看了⼀眼——嘿,兄弟,参考下这个,但是别往⼼⾥去。
不可思议吧,但他成功了!⽽更令⼈疯狂的是,到⽬前为⽌,关于prompt明明没有对参
数产⽣任何影响,但确实⼜明显提升了任务的效果,还是⼀个未解之谜。暂时⽽⾔⼤家就
像程序员对待bug⼀样——I don’t know why , but it work lol.
这种Prompt其实就是ICT(in-Context Learning),或者你也可以称为Few shot
Promot,⽤⼤⽩话说就是“给你⼀点⼩提⽰”。
同时还有另外⼀种Promot,称之为Zero shot Promot。ChatGPT就是Zero shot promot模
式,⽬前⼀般称之为instruct了。
这种模式下⽤户直接⽤⼈类的语⾔下达命令,例如“给我写⾸诗”,“给我做个请教条”,但
是你可以在命令的过程中⽤⼀些⼈类语⾔增强AI的效果,例如“在输出答案之前,你先每
⼀步都想⼀想”。就只是增加这样⼀句话,AI的答案效果就会明显提升。
你可能会问这是什么魔法咒语?!
有⼀个⽐较靠谱的猜测是这句话可能让AI回想起了学习的资料中那些推理知识好像前⾯都
会有这句话。
然后这⼀切莫名激活起了他死去的记忆,不⾃觉开始仿造那些严密的推理过程中⼀步步推
导。⽽这些推导会将⼀个复杂问题分解成若⼲⼦问题,AI因为对这些⼦问题的推导,从⽽
导致最终答案效果提升。
综上对⽐下来,你会发现好像GPT这种模式⽐起BERT模式更符合我们对⼈⼯智能的想
象:通过海量的知识成⻓起来,然后经过稍微引导(Prompt),他就能具备不同领域的
强⼤能⼒。

最后总结⼀下,ChatGPT背后的GPT模型是什么?

在⼀个超⼤语料基础上预训练出的⼤语⾔模型(LLM),采⽤从左到右进⾏填字概率预
测的⾃回归语⾔模型,并基于prompting(提⽰)来适应不同领域的任务。
如果只基于上⾯的描述,你可能⼤概弄懂了他背后的原理,但是对于为什么他这么⽜逼,
你仍然⽆法理解。没关系,我们接着进⼊第4节

相关文章:

ChatGPT⼊门到精通(3):ChatGPT 原理

OpenAI在2022年11⽉份发布ChatGPT,强⼤的⽂字对话、创意写作能⼒,全球掀起了⼀ 波AI浪潮。本⽂对ChatGPT的技术原理、厉害之处、可能的落地⽅向等⽅⾯进⾏了全⾯ 的解析,看完后会对ChatGPT有更深⼊的了解。 ⼀、前⾔ 2022年11⽉30⽇&#x…...

nginx配置keepalive长连接

nginx之keepalive详解与其配置_keepalive_timeout_恒者走天下的博客-CSDN博客 为什么要有keepalive? 因为每次建立tcp都要建立三次握手,消耗时间较长,所以为了减少tcp建立连接需要的时间,就可以设置keep_alive长连接。 nginx中keep_alive对…...

Thread.enumerate方法

Thread.enumerate方法的作用是将当前线程所对应的的线程组包含的所有线程放入一个数组 参见源码注释 /*** Copies into the specified array every active thread in the current* threads thread group and its subgroups. This method simply* invokes the {@link java.lan…...

* 号靠近数据类型,和靠近变量名, 号靠近数据类型,和靠近变量名,有什么区别

文章目录 一、int* age 和 int *age,* 号靠近数据类型,和靠近变量名,有什么区别:1. int* age:2. int *age: 二、int& age 和 int &age,& 号靠近数据类型,和靠近变量名,有什么区别&a…...

为了做好农业,拼多多请来顶尖农业专家当独立董事

8月29日,拼多多发布截至6月30日的2023年第二季度业绩报告。财报显示,拼多多集团今年第二季度收入为523亿元,同比增长66%,远超市场预期。 财报发布的同时,拼多多还宣布,其董事会已聘任荷兰瓦赫宁根大学终身…...

Linux服务器安装部署MongoDB数据库 – 【无公网IP远程连接】

文章目录 前言1.配置Mongodb源2.安装MongoDB数据库3.局域网连接测试4.安装cpolar内网穿透5.配置公网访问地址6.公网远程连接7.固定连接公网地址8.使用固定公网地址连接 前言 MongoDB是一个基于分布式文件存储的数据库。由 C 语言编写,旨在为 WEB 应用提供可扩展的高…...

Python+PIL+qrcode实现二维码自由—普通二维码+彩色二维码+logo二维码+动态二维码(附完整代码)

有时候我们需要自己制作一个二维码,然后进行打印下来,或者说在二维码中提前写上一段话比如搞笑的话,然后印在衣服上,然后穿出去玩!的🤣 那么今天我们分享一下制作二维码的几种方式: 哎&#x…...

【Spring Data JPA】JPA 常用查询函数

文章目录 前言函数查询表格 前言 函数查询的表格参考了官网的 2.7.3 版本的文档,JPA 的这种函数式查询方法改动不大,如果想知道更多的复杂查询,可以参考这篇文章 【Spring Data JPA】基于 JpaRepository 增删改查 官方文档地址 Spring Data…...

Visual Studio 2022的MFC框架——AfxWinMain全局对象和InitInstance函数

我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重新审视一下Visual Studio 2022下开发工具的MFC框架知识。 在看这篇帖子前,请先看我的另一篇帖子《Visual Studio 2022的MFC框架——应用程序向导》。 当程序调用了CWinApp类的构造…...

【网络】多路转接——poll | epoll

🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言:你只管努力,剩下的交给时间! 书接上文五种IO模型 | select。 poll | epoll 🍧poll🧁认识接口🧁简…...

音视频 ffmpeg命令视频录制(Windows)

先安装dshow软件 Screen Capturer Recorder, 项目地址:https://sourceforge.net/projects/screencapturer/files/ 然后查看可用设备名字:ffmpeg -list_devices true -f dshow -i dummy [dshow 0509d6c0] DirectShow video devices (some ma…...

【拾枝杂谈】从游戏开发的角度来谈谈原神4.0更新

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,结合最近的学习内容和以后自己的目标,今天又开了杂谈这个新坑,分享一下我在学习游戏开发的成长和自己的游戏理解,当然现在还是一枚…...

QT设置mainwindow的窗口title

QT设置mainwindow的窗口title 在QT程序中,通常会有**aaaa-[bbbbbbb]**这种形式的title,对于刚上手qt的程序员同学,可能会简单的以为修改这种title,就是使用setWindowTitle这个接口,其实只对了一半,这种形式…...

SaaS多租户系统架构设计

前言:多租户是SaaS(Software-as-a-Service)下的一个概念,意思为软件即服务,即通过网络提供软件服务。SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作的实际需求,通过互联网…...

Java自定义捕获异常

需求分析 ElectricalCustomerVO electricalCustomerVO new ElectricalCustomerVO(); electricalCustomerVO.setElcNumber(chatRecordsLog.getDeviceNumber()); List<ElectricalCustomerVO> electricalCustomerlist electricalCustomerMapper.selectElectricalCustomer…...

力扣--数组类题目27. 移除元素

给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 示例 1&#xff1a; 输入&#xff1a;nums [3,2,2,3], val 3 输出&#xff1a;2, nums [2,2] 解释&#xff1a;函数应该返回新的长度 2, 并且 n…...

实际并行workers数量不等于postgresql.conf中设置的max_parallel_workers_per_gather数量

1 前言 本文件的源码来自PostgreSQL 14.5&#xff0c;其它版本略有不同 PostgreSQL的并行workers是由compute_parallel_worker函数决定的&#xff0c;compute_parallel_worker是估算扫描所需的并行工作线程数&#xff0c;并不是您在postgresql.conf中设置的max_parallel_work…...

java定位问题工具

一、使用 JDK 自带工具查看 JVM 情况 在我的机器上运行 ls 命令&#xff0c;可以看到 JDK 8 提供了非常多的工具或程序&#xff1a; 接下来&#xff0c;我会与你介绍些常用的监控工具。你也可以先通过下面这张图了解下各种工具的基本作用&#xff1a; 为了测试这些工具&#x…...

【Java】基础入门 (十六)--- 异常

1.异常 1.1 异常概述 异常是指程序在运行过程中出现的非正常的情况&#xff0c;如用户输入错误、除数为零、文件不存在、数组下标越界等。由于异常情况再程序运行过程中是难以避免的&#xff0c;一个良好的应用程序除了满足基本功能要求外&#xff0c;还应具备预见并处理可能发…...

[javaWeb]Socket网络编程

网络编程&#xff1a;写一个应用程序,让这个程序可以使用网络通信。这里就需要调用传输层提供的 api。 Socket套接字 传输层提供协议&#xff0c;主要是两个: UDP和TCP 提供了两套不同的 api&#xff0c;这api也叫做socket api。 UDP和 TCP 特点对比&#xff1a; UDP: 无连…...

<MySon car=“宝马“ :money=“money“></MySon>有没有冒号

为什么car"宝马"没有&#xff1a; 但是 :money"money"就有&#xff1a; <script setup> import {ref} from vue import MySon from /components/MySon.vueconst money ref(100) </script><template><h3>father</h3><My…...

netty(三):NIO——多线程优化

NIO多线程优化 使用Boss线程来处理accepct事件使用Worker线程来处理读写事件&#xff0c;可以创建多个worker线程 package com.review;import lombok.extern.slf4j.Slf4j;import java.io.IOException; import java.net.InetSocketAddress; import java.nio.channels.*; impor…...

Linux操作系统--linux概述

1.Linux概述 Linux&#xff0c;全称GNU/Linux&#xff0c;是一种免费使用和自由传播的类UNIX操作系统&#xff08;OS&#xff09;。简单的说就是一种操作系统。在日常中常见的操作系统有一下三种: 2.linux起源和背景 (1).linux的诞生 linux操作系统是由李纳斯托瓦兹&#xf…...

数组中出现次数超过一半的数字

⭐️ 题目描述 &#x1f31f; OJ链接&#xff1a;数组中出现次数超过一半的数字 思路&#xff1a; 采用投票计数的方式&#xff0c;我们可以把每个数字都看成一次投票并且计数&#xff0c;那么最后剩下来的就是数组中数字出现次数最多的那一个。比如 { 1,2,3,2,2,2,5,4,2 } &a…...

网络优化工程师,你真的了解吗?

一、5G网络优化工程师到底是什么&#xff1f; 5G&#xff0c;就是我们通常所说的第五代移动通信标准&#xff0c;属于目前最热门的新技术趋势。随着2019年5G技术进入正式的商用阶段&#xff0c;拥有广阔的发展前景&#xff0c;备受瞩目。“5G工程师”这个词是一个概念词&#x…...

git 的常用命令

git是一个版本管理器&#xff0c;是程序员必备工具之一&#xff0c;其主分为三个区&#xff1a; 工作区&#xff1a; 暂存区&#xff1a; 仓库&#xff1a; 通过保持软件版本&#xff0c;分支&#xff0c;合并&#xff0c;等多种版本操作&#xff0c;使软件能在自己想要的版本…...

linux如何拷贝文件,删除多余的一级目录,用*号代替所有文件

加上*&#xff0c;代表目录下的所有文件 mv /home/user/dir1/dir1/* /home/user/dir1/可以使用mv命令的通配符来去掉一层目录。 例如&#xff0c;假设有一个名为/home/user/dir1/dir2/file.txt的文件&#xff0c;要将它移动到/home/user/dir2/目录下并去掉dir1目录&#xff0…...

springboot使用properties

一、方式1&#xff1a; 1.1.配置类&#xff1a; package cn.zyq.stater.config;import cn.zyq.stater.bean.User4; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework…...

Android中获取手机SIM卡的各种信息

通过以下工具类方法可以获取到手机SIM的各种信息数据&#xff01;&#xff01;&#xff01; package com.utils; import android.telephony.TelephonyManager; import com.baidu.platform.comapi.map.E; import org.json.JSONArray; import org.json.JSONObject; import java.…...

matlab 根据索引提取点云

目录 一、语法二、说明三、名称-值对应参数1、输入参数2、输出参数四、代码示例五、结果展示六、参考链接一、语法 ptCloudOut = select(ptCloud,indices) ptCloudOut = select(ptCloud,row,column...

蓝芯、四川邦辰面试(部分)

蓝芯 HTTP请求经过MQ异步处理后&#xff0c;怎样返回结果呢&#xff1f;grpc比起spring cloud的优缺点&#xff1f; 四川邦辰 SkyWalking的埋点具体是怎么操作的&#xff1f;newBing: SkyWalking支持两种埋点方式&#xff1a;自动埋点和手动埋点。自动埋点是指通过SkyWalking…...

openCV实战-系列教程13:文档扫描OCR识别下(图像轮廓/模版匹配)项目实战、源码解读

&#x1f9e1;&#x1f49b;&#x1f49a;&#x1f499;&#x1f49c;OpenCV实战系列总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 上篇内容&#xff1a; openCV实战-系列教程11&#xff1a;文档扫描OCR识别上&am…...

SpringBootWeb案例 Part 4

3. 修改员工 需求&#xff1a;修改员工信息 在进行修改员工信息的时候&#xff0c;我们首先先要根据员工的ID查询员工的信息用于页面回显展示&#xff0c;然后用户修改员工数据之后&#xff0c;点击保存按钮&#xff0c;就可以将修改的数据提交到服务端&#xff0c;保存到数据…...

什么是ChatGPT水印,ChatGPT生成的内容如何不被检测出来,原理什么?

太长不看版 1. 什么是ChatGPT水印&#xff1f; ChatGPT水印是AI以伪随机方式生成的独特tokens序列。该序列用来作为水印&#xff0c;以区分AI生成内容和人类原创内容。 2. 如何规避ChatGPT水印&#xff1f; 一种规避方法是使用其他AI模型改写ChatGPT生成的文本。这会破坏水…...

Android 6.0 Settings中添加虚拟键开关

添加系统默认键值 b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml-212,4 212,7 <!-- Default for Settings.Secure.NFC_PAYMENT_COMPONENT --><string name"def_nfc_payment_component"></string><!--mh.modify 2019060…...

Yolov8小目标检测(12):动态稀疏注意力BiFormer | CVPR 2023

💡💡💡本文改进:动态稀疏注意力,cvpr2023。 BiFormer | 亲测在红外弱小目标检测涨点,map@0.5 从0.755提升至0.758 💡💡💡Yolo小目标检测,独家首发创新(原创),适用于Yolov5、Yolov7、Yolov8等各个Yolo系列,专栏文章提供每一步步骤和源码,带你轻松实现小…...

C# VS调试技巧

一.按照条件调试步骤 ①在需要代码执行的行打断点 ②触发此断点&#xff0c;让代码执行到此处 ③鼠标滑至在断点处&#xff0c;点击设置 ④设置断点条件&#xff0c;如下图所示 二、多线程调试技巧 ①在需要代码执行的行打断点 ②触发此断点&#xff0c;让代码执行到此处…...

VS的调试技巧

Visual Studiohttps://visualstudio.microsoft.com/zh-hans/vs/ 目录 1、什么是调试&#xff1f; 2、debug和release 3、调试 3.1、环境 3.2、 快捷键 3.2.1、F10和F11 3.2.2、ctrlF5 3.2.3、F5与F9 3.2.3.1、条件断点 3.3、监视和内存观察 3.3.1、监视 3.3.2、内存 …...

lucene国内镜像 极速下载

文章目录 国内镜像汇总-极速下载【JavaPub版】 lucene国内镜像 https://mirrors.cloud.tencent.com/apache/lucene/ 国内镜像汇总-极速下载【JavaPub版】...

Qt 信号槽连接方式

使用示例&#xff1a; QObject::connect(sender, SIGNAL(signal()), receiver, SLOT(slot()), Qt::AutoConnection); 目录 连接方式 一、AutoConnection 二、DirectConnection 三、QueuedConnection 四、BlockingQueuedConnection 五、UniqueConnection 总结 连接方式 "q…...

(线程池) 100行以内的简单线程池

文章目录 前言CodeThreadPool.hppmain.cpp 简单讲解所需头文件using成员变量构造析构添加任务PS测试效果 END 前言 线程池_百度百科 (baidu.com) 线程池是一种多线程处理形式&#xff0c;处理过程中将任务添加到队列&#xff0c;然后在创建线程后自动启动这些任务。线程池线程都…...

Mysql按姓氏从小到大排序的正确sql

一、前言 最近有个需求&#xff0c;要按姓氏从小到大查询数据。(姓名都是中文的) 写了一个sql&#xff1a; select a.* from mytable a order by substr(a.NAME,1,1) asc结果发现这样不行&#xff0c;排序是乱的。 二、解决办法 查询发现&#xff0c;如果mysql字符集是gbk的…...

【C++】详细介绍模版初阶—函数模版、类模板

文章目录 一、泛型编程二、函数模版2.1 函数模版概念2.2 函数模版格式2.3 函数模版的原理2.4 函数模版的实例化2.5 函数模版的匹配原则 三、类模版3.1 类模版定义3.2 类模版实例化 总结 ヾ(๑╹◡╹)&#xff89;" 人总要为过去的懒惰而付出代价ヾ(๑╹◡╹)&#xff89;&…...

BananaPi BPI-6202工业控制板全志科技A40i、24V DC输入、RS485接口

Banana Pi BPI-6202“嵌入式单板计算机”采用工业级全志A40i四核Cortex-A7处理器&#xff0c;工业温度范围和长生命周期&#xff0c;2GB DDR3&#xff0c;8GB eMMC闪存&#xff0c;M.2 SATA插槽等。 这是自 Banana Pi去年推出Banana Pi BPI-M2 Ultra SBC 和BPI-M2 Berry以来&am…...

Python - functools.partial设置回调函数处理异步任务基本使用

一. 前言 在Python中&#xff0c;回调函数是指在一个函数执行完成后&#xff0c;调用另一个函数的过程。通常情况下&#xff0c;回调函数作为参数传递给原始函数&#xff0c;原始函数在执行完自己的逻辑后&#xff0c;会自动调用回调函数并将结果作为参数传递给它。 二. 回调…...

phpspreadsheet导出excel自动获得列,数字下标

安装composer require phpoffice/phpspreadsheetuse PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Style\Border;$spreadsheet new Spreadsheet(); $sheet $spreadsheet->getActiveSheet();//从65开&a…...

结算日-洛谷

结算日 - 洛谷 解释&#xff1a; 1.用sum记录贝西走到某位置的累计的总钱&#xff0c;flag标记是否有欠债还不了的情况&#xff08;1为有&#xff09;&#xff0c;ans记录步数。 2.若sum<0&#xff0c;则欠债无法还&#xff0c;flag标记为1&#xff0c;并记录下此刻的位置…...

Android Native Code开发学习(一)环境配置

Android Native Code开发学习&#xff08;一&#xff09; 本教程为native code学习笔记&#xff0c;希望能够帮到有需要的人 我的电脑系统为ubuntu 22.04&#xff0c;当然windows也是可以的&#xff0c;区别不大 环境配置 首先我们新建一个native C项目 然后我们下载NDK和C…...

Python GUI应用程序开发之wxPython使用详解

概要 wxPython是一个强大的跨平台GUI工具包&#xff0c;它使用Python编程语言开发&#xff0c;提供了丰富的控件功能。如果你是一名Python开发者&#xff0c;而且希望创建一个功能齐全的桌面应用程序&#xff0c;那么wxPython是一个值得考虑的选择。 什么是wxPython wxPython…...

【电子学会真题】青少年软件编程(C语言)等级考试试卷(一级) 2021年9月

试卷下载 pdf 格式下载&#xff1a;https://download.csdn.net/download/SHUTIAN2010/88255543 word 格式下载&#xff1a;https://download.csdn.net/download/SHUTIAN2010/88255558 1&#xff0e;计算乘积 一行两个整数a、b&#xff0c;以空格分隔。&#xff08;0&#xff1…...