【自然语言处理】【ChatGPT系列】ChatGPT的智能来自哪里?

news2024/11/24 1:12:13

相关博客
【自然语言处理】【ChatGPT系列】ChatGPT的智能来自哪里?
【自然语言处理】【ChatGPT系列】Chain of Thought:从大模型中引导出推理能力
【自然语言处理】【ChatGPT系列】InstructGPT:遵循人类反馈指令来训练语言模型
【自然语言处理】【ChatGPT系列】大模型的涌现能力

ChatGPT \text{ChatGPT} ChatGPT火了!作为开放域对话系统, ChatGPT \text{ChatGPT} ChatGPT展示出了出乎意料的智能。在人们惊讶 ChatGPT \text{ChatGPT} ChatGPT效果的同时,其"胡编乱造"的结果也让人担忧。

ChatGPT \text{ChatGPT} ChatGPT到底"只是"一个闲聊系统,还是意味着新的变革?如果只从使用者的角度分析,显然无法回答这个问题。不妨从"技术"的角度看看, ChatGPT \text{ChatGPT} ChatGPT到底是现有技术的极限还是新技术的起点?

一、 InstructGPT \text{InstructGPT} InstructGPT

请添加图片描述

chatGPT \text{chatGPT} chatGPT OpenAI \text{OpenAI} OpenAI开发的开发域对话系统,目标还没有论文。但是根据官方的说法,其基本原理同 OpenAI \text{OpenAI} OpenAI今年早些时候的 InstructGPT \text{InstructGPT} InstructGPT。所以,这里先简单对 InstructGPT \text{InstructGPT} InstructGPT的原理进行简单的介绍。

1. 目的

​ 训练大语言模型 (Large Language Model,LLM) \text{(Large Language Model,LLM)} (Large Language Model,LLM)通常是用上下文来预测部分token,而在使用 LLM \text{LLM} LLM时却希望其能够生成诚实的、无毒性的且对用户有帮助的内容。显然,语言模型并没有与用户的意图对齐。 InstructGPT \text{InstructGPT} InstructGPT的目标是通过人类的反馈微调语言模型,令语言模型与用户意图对齐。(通过基于人类反馈的强化学习,引导出大模型的能力)。

2. 方法

2.1 步骤1: prompt \text{prompt} prompt微调

​ 该步骤中需要人工先标注一个 prompt \text{prompt} prompt数据集。简单来说, prompt \text{prompt} prompt数据集中的单个样本是由一对文本组成,例如:
Prompt: 使用自然语言处理造一个句子。 Demonstration:自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。 \begin{aligned} &\text{Prompt: 使用自然语言处理造一个句子。} \\ &\text{Demonstration:自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。} \end{aligned} Prompt: 使用自然语言处理造一个句子。Demonstration:自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。
使用 prompt \text{prompt} prompt数据集以监督学习的方式来微调 GPT-3 \text{GPT-3} GPT-3

2.2 步骤2:训练奖励模型 (Reward modeling,RM) \text{(Reward modeling,RM)} (Reward modeling,RM)

​ 该步骤会先收集比较数据。如果了解 Learning to rank \text{Learning to rank} Learning to rank的话,比较数据就是一个排序的数据。具体来说,标注员需要模型针对同一输入的不同输出进行排序。举例来说,
Prompt: 使用自然语言处理造一个句子。 Demonstration1:自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。 Demonstration2:自然语言处理是一个名词。 \begin{aligned} &\text{Prompt: 使用自然语言处理造一个句子。} \\ &\text{Demonstration1:自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。} \\ &\text{Demonstration2:自然语言处理是一个名词。} \end{aligned} Prompt: 使用自然语言处理造一个句子。Demonstration1:自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。Demonstration2:自然语言处理是一个名词。
在上面的例子中,模型生成了 Demonstration1 \text{Demonstration1} Demonstration1 Demonstration2 \text{Demonstration2} Demonstration2。显然,标注人员需要标注 Demonstration1 \text{Demonstration1} Demonstration1相较于 Demonstration2 \text{Demonstration2} Demonstration2更好。

​ 奖励模型将 prompt \text{prompt} prompt和模型生成的结果作为输入,然后输出一个标量的奖励值。具体来说,对于单个输入会将模型的 K K K个输出交给标注者进行排序 。这 K K K个答案共有 ( k 2 ) \begin{pmatrix}k \\ 2\end{pmatrix} (k2)个两两比较。举例来说,通过最大化更喜欢的样本 y w y_w yw和没那么喜欢样本 y l y_l yl的奖励值差进行训练
loss ( θ ) = − 1 ( k 2 ) E ( x , y w , y l ) ∼ D [ log ⁡ ( σ ( r θ ( x , y w ) − r θ ( x , y l ) ) ) ] \text{loss}(\theta)=-\frac{1}{\begin{pmatrix}k \\ 2\end{pmatrix}}E_{(x,y_w,y_l)\sim D}[\log(\sigma(r_\theta(x,y_w)-r_\theta(x,y_l)))] loss(θ)=(k2)1E(x,yw,yl)D[log(σ(rθ(x,yw)rθ(x,yl)))]
其中 r θ ( x , y ) r_\theta(x,y) rθ(x,y)表示对于 prompt x \text{prompt x} prompt x和模型生成结果 y y y作为输入,奖励模型输出的奖励值; y w , y l y_w,y_l yw,yl是模型生成的输出,标注者认为 y w y_w yw y l y_l yl更受欢迎; D D D是整个比较数据集。

2.3 步骤3:强化学习

​ 前两个步骤分别会得到微调好的 GPT-3 \text{GPT-3} GPT-3和一个奖励模型。但是,如何将这两个模型和人类组合到一个动态的环境中,然后逐步利用人类的反馈来优化这个循环?这里使用了强化学习方法 PPO \text{PPO} PPO

3. 分析

​ 总的来说, InstructGPT \text{InstructGPT} InstructGPT可以总结为三部分:1. 微调的预训练语言模型;2. 结果排序模型; 3. 强化学习将人和模型统一至动态的环境。预训练语言模型的微调是 NLP \text{NLP} NLP中常见的技术,结果排序模型在推荐、搜索、问答等场景中也很常见。基于人类反馈的强化学习虽然不常见,但根本是将人加入到强化学习环境中。

​ 基于人类反馈的强化学习,构建了一个动态反馈的系统,能够使 InstructGPT(chatGPT) \text{InstructGPT(chatGPT)} InstructGPT(chatGPT)随着人类的反馈逐步改善。但是使用过 chatGPT \text{chatGPT} chatGPT都知道,其表现出的智能远远不是上面三部分能够体现出来的。

chatGPT \text{chatGPT} chatGPT所表现出的智能到底来自哪里?答案是大模型的涌现能力。

二、大模型的涌现能力

​ 自然语言处理从业者都使用过 BERT \text{BERT} BERT这样的预训练语言模型,虽然其能为广泛的下游任务带来效果的提升,但是使用这样的模型不太能够构建出 chatGPT \text{chatGPT} chatGPT那样的智能对话系统(包括对话、代码、逻辑推理能力)。那么完全没使用更加新的技术,只是在模型规模和使用数据量上高多个数量级的 GPT-3 \text{GPT-3} GPT-3就能实现吗?答案是肯定的。

​ 来自Google的文章 《Emergent Abilities of Large Language Models》 《\text{Emergent Abilities of Large Language Models}》 Emergent Abilities of Large Language Models系统的说明了这一点。该文章的核心简单来说就是,
量变带来质变,大模型与小模型不是一个物种。 \text{量变带来质变,大模型与小模型不是一个物种。} 量变带来质变,大模型与小模型不是一个物种。
​ 该文章通过实验说明了大模型中的一种"涌现"的现象。

1. few-shot \text{few-shot} few-shot能力的涌现

请添加图片描述

​ 简单来说,上面8个图的横坐标是模型的规模(参数量或者训练量),纵坐标是各类任务上的效果。观察这8个任务,都具有同一种模式:模型规模在小于某个阈值之前,效果基本等于随机;当超过该阈值后,模型效果有一个飞跃。

​ 上图(A)表示一个3位数加减法和2位数乘法的任务,模型 GPT-3 \text{GPT-3} GPT-3在达到 13B \text{13B} 13B参数量时突然具有了算术的能力。

​ 上图(E)是一个衡量模型诚实回答问题的基准 TruthfulQA \text{TruthfulQA} TruthfulQA,模型 Gopher \text{Gopher} Gopher在达到 280B \text{280B} 280B时突然有了高于随机的效果。

2. 技术的涌现

若一项 prompt \text{prompt} prompt技术在小模型上没有效果,但是在模型达到某个规模后突然有效,则该技术是一种涌现能力。

请添加图片描述

​ 上图是4种技术的涌现。以上图(A)为例,其是一个数学应用题的基准,需要模型 chain of thought \text{chain of thought} chain of thought实现多步推理能力才能在该基准上实现好的效果。可以看到,当模型达到 ∼ 100B \sim\text{100B} 100B时, chain of thought \text{chain of thought} chain of thought技术突然开始有效,并能够在数学应用题上实现好的效果。

3. 智能的来源:模型规模

​ 显然 chatGPT \text{chatGPT} chatGPT智能的来源是大模型的涌现能力。不妨畅想一下:

  • 目前 chatGPT \text{chatGPT} chatGPT的缺点也许会随着模型在参数量、训练数据量的进一步扩大下得以解决;
  • 随着预训练技术和模型结构的改进,也许在更小的模型上能够实现相同的效果;
  • 范式"大数据+大模型+无监督预训练=涌现能力"不只是能够运用到语言上,在其他领域也许能够带来意想不到的效果;

三、引导大模型智能的技术

OpenAI \text{OpenAI} OpenAI在2020年就已经发布了 GPT-3 \text{GPT-3} GPT-3,而 ChatGPT \text{ChatGPT} ChatGPT则是在2022年底才发布。**既然研究表明大模型具有各种涌现的能力,那么为何两者发布时间相差2年多?答案是引导大模型智能的技术。**这里简单介绍一下赋予大模型推理能力的 chain of thought \text{chain of thought} chain of thought技术,以及为大模型带来 zero-shot \text{zero-shot} zero-shot能力的 instruction tuning \text{instruction tuning} instruction tuning技术。通过理解这两项技术,能够更好的理解 ChatGPT \text{ChatGPT} ChatGPT的智能来源于大模型。

1. 引导推理能力: chain of thought \text{chain of thought} chain of thought

​ 这里介绍一种赋予大模型多步推理的技术 chain of thought \text{chain of thought} chain of thought,该技术很好的展示了大模型的神奇之处。这里用一句话总结该技术,
通过例子告诉模型做应用题要写步骤,而不是直接给答案。 \text{通过例子告诉模型做应用题要写步骤,而不是直接给答案。} 通过例子告诉模型做应用题要写步骤,而不是直接给答案。
详细细节见《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》。

单纯增加语言模型的规模并不能使其在算术、常识推理和符号推理表现的更好。

​ 下面是一个标准的 prompt \text{prompt} prompt
prompt: Jane有12朵花,2朵给妈妈,3朵给爸爸,那么她还有多少朵? answer: Jane还有7朵花 \begin{aligned} &\text{prompt: Jane有12朵花,2朵给妈妈,3朵给爸爸,那么她还有多少朵?} \\ &\text{answer: Jane还有7朵花} \end{aligned} prompt: Jane12朵花,2朵给妈妈,3朵给爸爸,那么她还有多少朵?answer: Jane还有7朵花
通过上面的 prompt \text{prompt} prompt进行 few-shot learning \text{few-shot learning} few-shot learning,模型在数学应用题上的表现很差

​ 下面是一个 chain of thought \text{chain of thought} chain of thought
prompt: Jane有12朵花,2朵给妈妈,3朵给爸爸,那么她还有多少朵? answer: Jane将2朵花送给她妈妈后还剩10朵...然后再送给她爸爸3朵后还有7朵...所以答案是7 \begin{aligned} &\text{prompt: Jane有12朵花,2朵给妈妈,3朵给爸爸,那么她还有多少朵?} \\ &\text{answer: Jane将2朵花送给她妈妈后还剩10朵...然后再送给她爸爸3朵后还有7朵...所以答案是7} \end{aligned} prompt: Jane12朵花,2朵给妈妈,3朵给爸爸,那么她还有多少朵?answer: Jane2朵花送给她妈妈后还剩10...然后再送给她爸爸3朵后还有7...所以答案是7
通过 chain of thought prompt \text{chain of thought prompt} chain of thought prompt进行 few-shot learning \text{few-shot learning} few-shot learning后,模型的效果显著提高。

直观的来说,让模型别瞎猜答案,把步骤写上再写答案。

2. 引导 zero-shot \text{zero-shot} zero-shot能力: instruction tuning \text{instruction tuning} instruction tuning

​ 文章 《Finetuned Language Models are Zero-shot Learners》 \text{《Finetuned Language Models are Zero-shot Learners》} Finetuned Language Models are Zero-shot Learners中介绍了一种微调大模型的方法: instruction tuning \text{instruction tuning} instruction tuning。在介绍 instruction tuning \text{instruction tuning} instruction tuning之前,先了看看自然语言推理任务 (Natural language inference,NLI) \text{(Natural language inference,NLI)} (Natural language inference,NLI)的通常做法。

​ 自然语言推理任务是判断两个句子在语义是否为蕴含 (Entailment) \text{(Entailment)} (Entailment)、矛盾 (Contradiction) \text{(Contradiction)} (Contradiction)或者中立 (Neutral) \text{(Neutral)} (Neutral)三种关系的一种。例如:
Premise: 多名男子正在踢足球。 Hypothesis:一些男子正在做运动。 \begin{aligned} &\text{Premise: 多名男子正在踢足球。} \\ &\text{Hypothesis:一些男子正在做运动。} \\ \end{aligned} Premise: 多名男子正在踢足球。Hypothesis:一些男子正在做运动。
显然, Premise \text{Premise} Premise蕴含 Hypothesis \text{Hypothesis} Hypothesis。一种常见的做法是将该任务转换为"句子对分类任务",分类的标签就是三种关系。下面是一个示例图:

请添加图片描述

将两个句子拼接起来送入语言模型,然后对该句子对进行三分类。

​ 下面来看自然语言推理任务上使用 instruction tuning \text{instruction tuning} instruction tuning的方式。将 Premise \text{Premise} Premise Hypothesis \text{Hypothesis} Hypothesis按某个自然语言的模板进行组装,并得到样本
多名男子正在踢足球。 基于上面的段落,是否可以得出结论: 一些男子正在做运动。 选项:是、否 \begin{aligned} &\text{多名男子正在踢足球。} \\ &\text{基于上面的段落,是否可以得出结论:} \\ &\text{一些男子正在做运动。} \\ &\text{选项:是、否} \end{aligned} 多名男子正在踢足球。基于上面的段落,是否可以得出结论:一些男子正在做运动。选项:是、否
将上面这段文本送入大模型,并使用监督的方式进行微调。这就是所谓的 instruction tuning \text{instruction tuning} instruction tuning

​ 具体来说,论文中将12类任务的62个数据集按照上面的方式转换,然后微调大模型。最终的实验结果是:通过上面的 instruction tuning \text{instruction tuning} instruction tuning的大模型,能够在完全未见过类型的任务上取得好的效果。

通过 instruction tuning \text{instruction tuning} instruction tuning的介绍可以更好的理解为什么 ChatGPT \text{ChatGPT} ChatGPT能够完成各种各样的任务。

四、漫谈

​ 以下仅是个人的看法。

1. 对现有 NLP \text{NLP} NLP的影响

​ 现有 NLP \text{NLP} NLP技术的主要困境仍然是标注成本,这个成本可以从两个方面来看:人力成本和时间成本。对于特定的场景,通常需要几千甚至上万的数据才能达到很好的效果。当然,如果能够明确的知道标注多少样本就能够达到预期的效果,通常项目也可以经过人力成本评估后确定是否继续。但是,真正影响 NLP \text{NLP} NLP技术落地的是时间成本,即经过一段时间的标注后可能效果无法达到预期,那么项目可能面临推迟或者终止的风险。

​ 大模型将会改变这一现状。大模型具有 few-shot \text{few-shot} few-shot能力,并且能够通过 instruction tuning \text{instruction tuning} instruction tuning获得 zero-shot \text{zero-shot} zero-shot的能力。因此,大模型可以仅使用少量的样本就能够在指定任务上达到非常好的效果,也将极大的降低人力成本和时间成本。但是,大模型的推理速度和推理成本是阻碍其广泛应用的主要问题,并且近期可能都无法将其小型化至合理的范围。所以,大模型很可能作为一个"超级教师模型"。经过少量标注样本微调后,大模型可以自动产生高质量的标注样本,然后使用这些样本来微调小模型。

​ 一种可能的发展路径是:(1) 少量样本微调大模型;(2) 大模型产生大量标注数据;(3) 通过标注数据将大模型的知识蒸馏至小模型。通过这条路径,将会为 NLP \text{NLP} NLP技术在各类项目和产品中的落地提供极大的支持。

2. 下一步的方向

​ 柏拉图在《理想国》中提到了"洞穴寓言",大意是:

有一群囚徒被困在地下洞穴里,他们手、脚和脖子都被拷住,无法动弹,只能看到面前的墙壁。这些人的背后有一堆火,外界的所有事物都是通过墙壁上的阴影展示给这些囚徒。那么这些囚徒只能通过阴影来观察和想想真实的世界。

​ 自然语言也是真实世界的"阴影",或者说自然语言是高维真实世界的低维表示。显然,通过自然语言这些低维信息来学习高维真实世界是存在信息丢失的。举例来说,语言描述苹果可能是"红的"、“圆的”,而真实的苹果并不是严格的“圆”且颜色也不是严格的"红",而是有着自己的纹理。所以,通过将视觉、声音等多个模态结合可能会带来更加智能的模型。

​ 另一方面,现有模型更多的是"被动的"接收信息并作出应答,而且无法通过与周围进行交互来获得更多的知识,从而提高本身的"智能"。 OpenAI \text{OpenAI} OpenAI提出的 WebGPT \text{WebGPT} WebGPT InstructGPT \text{InstructGPT} InstructGPT ChatGPT \text{ChatGPT} ChatGPT都是尝试让模型与环境进行交互,从而提高模型的"智能"。相信随着多模态大模型的发展,模型与环境的交互方式也会越来越多样(例如:通过视觉传感器进行交互),展示出来的"智能"也会越来越强大。

3. 超越语言模型

ChatGPT \text{ChatGPT} ChatGPT的“智能”主要来源于范式:“大数据+大模型+无监督预训练=涌现能力”。但这个范式并不是必须局限于语言,在任何存在大量数据的领域,通过设计合适的无监督预训练方式都可能会带来质的改变。因此,大模型的技术在不久的将来可能会对 AI for Science \text{AI for Science} AI for Science、自动驾驶等领域带来巨大的改变。

4. 局限性

ChatGPT \text{ChatGPT} ChatGPT一个最为人诟病的缺点是:你无法确信它给的答案是正确的。也就是说, ChatGPT \text{ChatGPT} ChatGPT可能是胡编乱造的。但是, OpenAI \text{OpenAI} OpenAI的另一个工作 WebGPT \text{WebGPT} WebGPT则是尝试让模型自己浏览网页,并将浏览的结果合成最终的答案。显然, WebGPT \text{WebGPT} WebGPT生成的答案是有依据的,那么真实性也就更高。论文《Large Language Models Can Self-Improve》中证明了大模型不需要标注样本就可以通过自己生成的样本完成性能的提升。

​ 那么一个可能改善 ChatGPT \text{ChatGPT} ChatGPT的方法是:使用 WebGPT \text{WebGPT} WebGPT作为真实性的评估模型或者指导模型,通过 WebGPT \text{WebGPT} WebGPT ChatGPT \text{ChatGPT} ChatGPT之间的交互来改善 ChatGPT \text{ChatGPT} ChatGPT的真实性问题。也就是,两个模型通过相互博弈来不断改进。

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

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

相关文章

二叉搜索树与Mysql索引的亲密关系

欢迎关注公众号:【离心计划】,一起逃离技术舒适圈 二叉搜索树 二叉搜索树大家应该多多少少听过,它有一个很重要的特征,就是父节点左子树所有结点的值小于父节点的值,右子树所有结点的值大于父节点的值,这个…

详解vue中vuex的用法

前言 说到 vuex 相信大家都不陌生,vuex 是一个专为 vue.js 应用程序开发的状态管理模式。vuex 背后的基本思想,就是单向数据流。今天我们就来好好聊聊 vuex。 vuex? 用官方的话来说,vuex 是一个专为 vue.js 应用程序开发的状态管…

【Linux】进程间通信之共享内存与信号量初识

目录🌈前言🌸1、System V共享内存🍡1.1、概念🍢1.2、原理🌺2、共享内存相关函数和指令🍡2.1、shmget函数(创建)🍢2.2、shmctl函数(控制)&#x1f…

使用 DataAnnotations(数据注解)实现模型的通用数据校验

DataAnnotations 实现数据模型的通用校验参数校验的意义常用参数的校验.NET 中内置 DataAnnotations 提供的特性校验关于 DataAnnotations 中的特性介绍基于 DataAnnotations 的通用模型校验封装基于 DataAnnotations 的特性校验助手实现步骤如何使用 DataAnnotations 封装的特…

某农业学校 算法设计与分析-第五次实验-回溯算法

1. 罗密欧与朱丽叶的迷宫问题 问题描述 罗密欧与朱丽叶的迷宫。罗密欧与朱丽叶身处一个mn的迷宫中,如图所示。每一个方格表示迷宫中的一个房间。这mn个房间中有一些房间是封闭的,不允许任何人进入。在迷宫中任何位置均可沿8 个方向进入未封闭的房间。罗…

第二章:关系数据库

一、关系数据库结构及形式化定义 1、【单选题】 下图中,关系D1、D2、D3笛卡尔积的目和基数分别为 正确答案: B 2、【多选题】下图中能够作为候选码的属性组为 正确答案: ABD 3、【多选题】关于关系数据库,说法正确的是 正确答…

二、栈和队列

二、栈和队列 栈——后进先出 应用:数制转换、括号匹配、行编辑程序、迷宫求解、表达式求值、八皇后问题、函数调用、递归调用的实现 队列——先进先出 应用:脱机打印输出 多用户系统用户排队分时循环使用CPU和主存 按用户优先级排队,每…

编译gtest报错‘is_trivially_copy_constructible’ is not a member of ‘std’

编译gtest报错‘is_trivially_copy_constructible’ is not a member of ‘std’一、问题描述二、原因分析三、升级gcc版本四、验证一、问题描述 在一个新的Redhat7.6 linux虚拟机上,将gtest clone下来之后编译,一堆报错: /opt/googletest/…

多线程问题(二)(安全问题)

目录 一、多线程不安全引例 二、线程不安全的原因 1、线程是抢占式执行 2、多线程共享同一变量 3、对变量的操作不是原子性 4、内存可见性 5、指令重排序 三、线程不安全问题的解决方案 1、使用synchronized关键字进行加锁 a、 synchronized修饰普通方法 b、sy…

Maleimide-PEG-Biotin,Biotin-PEG-MAL,生物素PEG马来酰亚胺用于生物分子检测

化学试剂生物素聚乙二醇马来酰亚胺,其英文名为Maleimide-PEG-Biotin,Biotin-PEG-MAL,它所属分类为Biotin PEG Multi-arm PEGs。 该试剂质量控制为95%,试剂的储存条件为: -20℃长期保存,避光,干…

数据结构---图

(一) 相关知识点 图(graph):图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中的顶点的集合,E是图G…

SpringBoot系列之自动装配原理详解

文章目录前言一、SpringBoot自动配置-Condition-11、观察spring自动创建bean过程2、创建自定义bean对象3、根据条件创建自定义bean二、 SpringBoot自动配置-Condition-2三、SpringBoot自动配置-切换内置web服务器1、查看继承关系图2、shiftdelete 排除Tomcat四、SpringBoot自动…

Win10启动Pycharm报错

Win10启动Pycharm报错报错信息解决方法报错信息 Internal error. Please report to http://jb.gg/ide/critical-startup-errors java.net.BindException: Address already in use: bind at java.base/sun.nio.ch.Net.bind0(Native Method) at java.base/sun.nio.ch.Net.bind(U…

如何在3个月内写出博士论文

在阅读本文之前,请注意:我花了三年半的时间进行全职研究,为我的博士论文收集数据;这三个月只涉及写作,我在最后很快就完成了。我并不是说每个人都能写得那么快,如果你没有做过研究,那是不可能的…

全国各省368个地级市河流密度数据(工具变量)

数据来源:国家基础地理信息中心 时间跨度:-- 区域范围:全国各省市 指标说明: 根据河流矢量和中国城市行政边界矢量地理信息,计算每个城市河流的总长度;根据各城市的行政区划面积,计算中国各城…

第三章:关系数据库标准语言SQL

一、sql概述和数据定义 1、【单选题】 create user A identified by B default tablespace C temporary tablespace D; 上述oracle数据库查询语句中A、B、C、D分别代表: 正确答案: A 2、【单选题】下表为患者缴费记录,现需…

2023跨年烟花3D最炫烟花,html最酷炫动态烟花源码分享,点击即可直接运行

📋 前言 🖱 博客主页:在下马农的碎碎念✍ 本文由在下马农原创,首发于CSDN📆 首发时间:2022/12/25📅 最近更新时间:2022/12/25🤵 此马非凡马,房星本是星。向前…

lambda表达式,函数式接口,链式编程,Stream流式计算

新时代的程序员:lambda表达式,函数式接口,链式编程,Stream流式计算 函数式接口 函数式接口:只有一个方法的接口(简化编程模型,在新版本框架底层中大量应用!) 只要是 函数型接口 就可以使用lambd…

iOS 16.2 在 SwiftUI 子视图中无法关闭弹出的(sheet)导航视图(NavigationView)之解决

问题现象 iOS 16.2 中,若在 SwiftUI 4.0 里弹出(sheet)一个导航视图 A,则不能在 A 的子视图中将 A 关闭(dismiss): 如上图所示:上面的按钮直接放在导航视图 A 中,点击它可以直接关闭 A;而下面的按钮放在一个子视图中,点击它想要关闭 A 却没有任何反应。 那么,该如…

可转债网格交易策略回测

什么是网格交易策略:基于股票波动高抛低吸策略,自动化反复买卖赚取差价。投资者借助条件单,把资金分成多份,从基准价开始,每跌x%就自动买入一份,每涨y%就自动卖掉一份。股价越波动高抛低吸的机会越多 什么…