大语言模型(LLM)综述

news2024/11/26 3:38:33

大语言模型(LLM)综述

正如缩放定律(Scaling Laws )所预测的那样, LLM 的通用语言理解和生成能力是通过在大量文本数据上训练数十亿个模型参数获得的。基于 Transformer 的大型语言模型 (LLM) 的最新进展(在 Web 规模的文本语料库上进行预训练)显著扩展了语言模型 (LLM) 的功能。 例如,OpenAI 的 ChatGPT 和 GPT-4 不仅可以用于自然语言处理,还可以作为通用任务求解器来为 Microsoft 的 Co-Pilot 系统提供支持,例如,可以按照人类的指令执行复杂的新任务,并在需要时执行多步骤推理。因此,LLM 正在成为开发通用 AI 代理或通用人工智能 (AGI) 的基本构建块。

大语言模型的四波浪潮:统计语言模型、神经语言模型、预训练语言模型和 LLM

  • 统计语言模型 (SLM) 将文本视为单词序列,并将文本的概率估计为这些单词概率的乘积。SLM 的主要形式是马尔可夫链模型,即 n-gram 模型,它计算一个单词在其紧接着的 n − 1 个单词条件下的概率。

  • 早期的神经语言模型 (NLM) 通过将单词映射到低维连续向量(嵌入向量)来处理数据稀疏性,并使用神经网络根据其前一个单词的嵌入向量的聚合来预测下一个单词。NLM 学习到的嵌入向量定义了一个隐藏空间,其中向量之间的语义相似度可以很容易地计算为它们的距离。这为计算任何两个输入的语义相似度打开了大门,无论它们的形式(例如,Web 搜索中的查询与文档、机器翻译中不同语言的句子)或模态(例如,图像字幕中的图像和文本)。早期的 NLM 是特定于任务的模型,因为它们是在特定于任务的数据上进行训练的,并且它们学习到的隐藏空间是特定于任务的。

  • 与早期的 NLM 不同,预训练语言模型 (PLM) 与任务无关。这种通用性还扩展到学习到的隐藏嵌入空间。PLM 的训练和推理遵循预训练和微调范式,其中使用循环神经网络或 Transformer的语言模型在 Web 规模的未标记文本语料库上进行预训练,以完成单词预测等一般任务,然后使用少量(标记的)特定于任务的数据进行微调以完成特定任务。
    在这里插入图片描述

  • 大型语言模型(LLM)主要指基于 Transformer 的神经语言模型,包含数百亿到数千亿个参数,在海量文本数据上进行预训练,例如 PaLM、LLaMA 和 GPT-4。与 PLM 相比,LLM 不仅模型规模更大,而且表现出更强的语言理解和生成能力,更重要的是,它还具有小规模语言模型所不具备的新兴能力。如图 1 所示,这些新兴能力包括 (1) 情境学习(In-context Learning),LLM 在推理时从提示中呈现的一小组Prompt中学习新任务;(2) 指令遵循,LLM 在指令调整后,无需使用明确的示例即可遵循新类型任务的指令; (3) 多步骤推理,LLM 可以通过将复杂任务分解为中间推理步骤来解决该任务,如思路链提示中所示 。LLM 还可以通过使用外部知识和工具 进行增强,以便它们能够有效地与用户和环境 [37] 交互,并使用通过交互收集的反馈数据不断改进自身(例如通过带有人工反馈的强化学习 (RLHF))。
    在这里插入图片描述

通过高级使用和增强技术,LLM 可以部署为所谓的 AI 代理(Agent):感知环境、做出决策并采取行动的人工实体。 先前的研究主要集中在为特定任务和领域开发代理。LLM 所展示的新兴能力使得基于 LLM 构建通用 AI 代理成为可能。虽然 LLM 经过训练可以在静态设置中产生响应,但 AI 代理需要采取行动与动态环境进行交互。因此,基于 LLM 的代理通常需要增强 LLM,例如从外部知识库获取更新的信息,验证系统操作是否产生预期结果,并应对事情不按预期进行的情况等。

本文内容结构:

  • 回顾一些最著名的 LLM,包括三个流行的 LLM 系列(GPT、LLaMA、PaLM),并讨论了它们的特点、贡献和局限性
  • 概述为构建和增强 LLM 而开发的技术
  • 调查为 LLM 训练、微调和评估准备的流行数据集,回顾了广泛使用的 LLM 评估指标,并在一组代表性基准上比较了几种流行的 LLM 的性能
  • 讨论开放的挑战和未来的研究方向

一、大型语言模型LLM系列:

早期预训练神经语言模型

我们根据早期流行的基于 Transformer 的 PLM 的神经架构,将其分为三大类:仅编码器(Encoder-only)、仅解码器(Decoder-only)和编码器-解码器模型(Encoder-Decoder)

  1. Encoder-only:顾名思义,仅编码器模型仅由编码器网络组成。这些模型最初是为语言理解任务开发的,例如文本分类,其中模型需要预测输入文本的类标签。代表性的仅编码器模型包括 BERT 及其变体,例如 RoBERTa、ALBERT、DeBERTa、XLM、XLNet、UNILM。BERT(双向编码器表示,来自 Transformers)[24] 是最广泛使用的仅编码器语言模型之一。BERT 由三个模块组成:(1)嵌入模块,将输入文本转换为嵌入向量序列;(2)Transformer 编码器堆栈,将嵌入向量转换为上下文表示向量;(3)全连接层,将表示向量(在最后一层)转换为独热向量。 BERT 是经过预训练的,使用两个目标:掩码语言建模 (MLM) 和下一句预测
    Encoder-only LLM擅长捕捉输入文本中的语义和上下文信息,通过双向编码获取全局信息,因此在需要深度理解输入内容的任务中表现优异。

  2. Decoder-only:最广泛使用的两种仅解码器的 PLM 是 OpenAI 开发的 GPT-1 和 GPT-2。这些模型为随后更强大的 LLM(即 GPT-3 和 GPT-4)奠定了基础。适合生成任务。
    Decoder-only LLM的自回归结构使它能够更好地生成顺序文本,因此在需要生成自然流畅文本的任务中效果很好。它通过逐步生成词汇,能够很好地保持上下文连贯性。

  3. Encoder-Decoder:几乎所有 NLP 任务都可以转换为序列到序列生成任务。因此,编码器-解码器语言模型在设计上是一个统一的模型,因为它可以执行所有自然语言理解和生成任务。代表性编码器-解码器是 T5、mT5、MASS 和 BART
    Encoder-Decoder LLM结合了编码器的深度理解能力和解码器的生成能力,适合需要对输入文本进行理解后再生成输出的任务。这使得它在需要对输入进行复杂变换的任务中表现出色,如翻译和文本摘要。

大型语言模型家族

大型语言模型 (LLM) 主要指基于 Transformer 的 PLM,包含数百亿到数千亿个参数。与上面回顾的 PLM 相比,LLM 不仅模型规模大得多,而且表现出更强的语言理解和生成能力以及小规模模型所不具备的突发能力。接下来,我们将回顾三个 LLM 系列:GPT、LLaMA 和 PaLM。
在这里插入图片描述
The GPT Family
生成式预训练 Transformer (GPT) 是 OpenAI 开发的一系列仅用于解码器的基于 Transformer 的语言模型。该系列包括 GPT-1、GPT-2、GPT-3、InstrucGPT、ChatGPT、GPT-4、CODEX 和 WebGPT。尽管早期的 GPT 模型(例如 GPT-1 和 GPT-2)是开源的,但最近的模型(例如 GPT-3 和 GPT-4)是闭源的,只能通过 API 访问。
GPT-3 是一个经过预训练的自回归语言模型,具有 1750 亿个参数。GPT-3 被广泛认为是第一个 LLM,因为它不仅比以前的 PLM 大得多,而且首次展示了以前较小的 PLM 中未观察到的新兴能力。GPT3 展示了上下文学习的新兴能力,这意味着 GPT-3 可以应用于任何下游任务,而无需任何梯度更新或微调,任务和小样本演示纯粹通过与模型的文本交互来指定。GPT-3 在许多 NLP 任务中取得了出色的表现,包括翻译、问答和完形填空任务,以及一些需要即时推理或领域自适应的任务,例如解读单词、在句子中使用新词、三位数算术。图中绘制了 GPT-3 的性能与上下文提示中示例数量的关系。
在这里插入图片描述
OpenAI 于 2023 年 3 月发布的 CODEX [57] 是一种通用编程模型,可以解析自然语言并生成代码作为响应。CODEX 是 GPT-3 的后代,经过微调,可在从 GitHub 收集的代码语料库上编写应用程序。CODEX 为微软的 GitHub Copilot 提供支持。 WebGPT是 GPT-3 的另一个后代,经过微调,可以使用基于文本的 Web 浏览器回答开放式问题,方便用户搜索和浏览网页。具体来说,WebGPT 分三步进行训练。第一步是让 WebGPT 学习使用人类演示数据模仿人类的浏览行为。然后,学习奖励函数来预测人类的偏好。最后,通过强化学习和拒绝采样对 WebGPT 进行改进,以优化奖励函数。为了使 LLM 能够遵循预期的人类指令,提出了 InstructGPT [59],通过对人类反馈进行微调,使语言模型与用户意图在各种任务上保持一致。从一组标注员编写的提示和通过 OpenAI API 提交的提示开始,收集所需模型行为的标注员演示数据集。然后,GPT-3 在该数据集上进行微调。然后,收集人类排名的模型输出数据集,以使用强化学习进一步微调模型。该方法称为从人类反馈中进行强化学习( Reinforcement Learning from Human Feedback (RLHF))
在这里插入图片描述

LLM 发展最重要的里程碑是 2022 年 11 月 30 日推出 ChatGPT(聊天生成预训练 Transformer)[60]。ChatGPT 是一个聊天机器人,它使用户能够引导对话以完成各种任务,例如问答、信息查找、文本摘要等。ChatGPT 由 GPT-3.5(后来由 GPT-4 提供支持)提供支持,它是 InstructGPT 的姊妹模型,经过训练可以遵循提示中的指令并提供详细的响应。 GPT-4 是 GPT 家族中最新、最强大的 LLM。GPT-4 于 2023 年 3 月推出,是一种多模式 LLM,它可以将图像和文本作为输入并生成文本输出。尽管在一些最具挑战性的现实场景中,GPT-4 的能力仍然不如人类,但它在各种专业和学术基准上都表现出了人类水平的表现,包括以约 10% 的成绩通过模拟律师资格考试,如图所示。与早期的 GPT 模型一样,GPT-4 首先经过预训练以预测大型文本语料库中的下一个标记,然后使用 RLHF 进行微调,以使模型行为与人类期望的行为保持一致。
在这里插入图片描述
The LLaMA Family
LLaMA 是 Meta 发布的一系列基础语言模型。与 GPT 模型不同,LLaMA 模型是开源的,即模型权重以非商业许可的形式发布给研究社区。因此,LLaMA 系列发展迅速,因为这些模型被许多研究小组广泛用于开发更好的开源 LLM 来与闭源 LLM 竞争,或者为任务关键型应用开发特定任务的 LLM。第一套 LLaMA 模型于 2023 年 2 月发布,参数范围从 7B 到 65B。这些模型在从公开数据集中收集的数万亿个 token 上进行了预训练。LLaMA 使用 GPT-3 的 Transformer 架构,并对架构进行了一些小的修改,包括 (1) 使用 SwiGLU 激活函数代替 ReLU,(2) 使用旋转位置嵌入代替绝对位置嵌入,以及 (3) 使用均方根层归一化代替标准层归一化。开源 LLaMA-13B 模型在大多数基准测试中都优于专有的 GPT-3 (175B) 模型,使其成为 LLM 研究的良好基准。
2023 年 7 月,Meta 与微软合作发布了 LLaMA-2 系列 [61],其中包括基础语言模型和针对对话进行微调的聊天模型,称为 LLaMA-2 聊天。据报道,LLaMA-2 聊天模型在许多公共基准测试中的表现优于其他开源模型。图 12 显示了 LLaMA-2 聊天的训练过程。该过程从使用公开的在线数据对 LLaMA-2 进行预训练开始。然后,通过监督微调构建 LLaMA-2 聊天的初始版本。随后,使用 RLHF、拒绝采样和近端策略优化迭代细化模型。在 RLHF 阶段,积累用于修改奖励模型的人为反馈至关重要,以防止奖励模型发生过多变化,这可能会损害 LLaMA 模型训练的稳定性。
在这里插入图片描述
Alpaca 是使用 GPT-3.5 (text-davinci-003) 以自学风格生成的 52K 指令跟踪演示对 LLaMA-7B 模型进行微调而得的。Alpaca 的训练成本非常低,尤其是对于学术研究而言。在自学评估集上,尽管 Alpaca 的规模要小得多,但其表现与 GPT-3.5 相似。
Vicuna 团队通过收集自 ShareGPT的对用户共享对话中的 LLaMA 进行微调,开发了 13B 聊天模型 Vicuna13B。使用 GPT4 作为评估器的初步评估表明,Vicuna-13B 的质量达到了 OpenAI 的 ChatGPT 和 Google 的 Bard 的 90% 以上,同时在 90% 以上的情况下优于 LLaMA 和 Stanford Alpaca 等其他模型。图 13 显示了 GPT-4 对 Vicuna 和其他一些知名模型的相对响应质量。Vicuna-13B 的另一个优势是其对模型训练的计算需求相对有限。Vicuna-13B 的训练成本仅为 300 美元。
与 Alpaca 和 Vicuna 一样,Guanaco 模型也是使用指令跟踪数据微调的 LLaMA 模型。但使用 QLoRA 可以非常高效地进行微调,因此可以在单个 48GB GPU 上对 65B 参数模型进行微调。QLoRA 通过冻结的 4 位量化预训练语言模型将梯度反向传播到低秩适配器 (LoRA)。最好的 Guanaco 模型在 Vicuna 基准上的表现优于所有之前发布的模型,达到了 ChatGPT 性能水平的 99.3%,而只需要在单个 GPU 上进行 24 小时的微调。
Koala 是另一个基于 LLaMA 构建的指令遵循语言模型,但特别关注交互数据,包括用户输入和由 ChatGPT 等功能强大的闭源聊天模型生成的响应。根据基于真实用户提示的人工评估,Koala-13B 模型的表现可与最先进的聊天模型相媲美。
Mistral-7B是一个 7B 参数语言模型,旨在实现卓越的性能和效率。Mistral-7B 在所有评估基准中的表现均优于最佳开源 13B 模型 (LLaMA-2-13B),并且在推理、数学和代码生成方面优于最佳开源 34B 模型 (LLaMA-34B)。该模型利用分组查询注意功能实现更快的推理,并结合滑动窗口注意功能,以降低推理成本,有效处理任意长度的序列。
LLaMA 家族正在迅速壮大,越来越多的指令跟随模型建立在 LLaMA 或 LLaMA2 之上,其中包括 Code LLaMA、Gorilla、Giraffe、Vigogne、Tulu 65B、Long LLaMA和 Stable Beluga2,仅举几例。

The PaLM Family
PaLM(Pathways 语言模型)系列由 Google 开发。第一个 PaLM 模型 于 2022 年 4 月发布,并一直保持私有状态,直到 2023 年 3 月。它是一个基于 540B 参数转换器的 LLM。该模型在由 7800 亿个 token 组成的高质量文本语料库上进行了预训练,这些 token 涵盖了广泛的自然语言任务和用例。PaLM 是在 6144 TPU v4 芯片上使用 Pathways 系统预训练的,该系统可在多个 TPU Pod 上实现高效训练。 PaLM 通过在数百个语言理解和生成基准上实现最先进的少量学习结果,展示了扩展的持续优势。PaLM540B 不仅在一系列多步推理任务上超越了最先进的微调模型,而且在最近发布的 BIG-bench 基准上也与人类不相上下。
8B、62B 和 540B 规模的 U-PaLM 模型使用 UL2R 在 PaLM 上持续训练,UL2R 是一种使用 UL2 的混合降噪目标分几步持续训练 LLM 的方法。据报道,计算节省率约为 2 倍。
U-PaLM 后来经过指令微调,更名为 Flan-PaLM。 与上述其他指令微调工作相比,Flan-PaLM 的微调使用了更多任务、更大的模型尺寸和思路链数据。因此,Flan-PaLM 的表现大大优于之前的指令跟随模型。例如,在 1.8K 任务上经过指令微调的 FlanPaLM-540B 的表现远胜于 PaLM-540B(平均高出 9.4%)。微调数据包括 473 个数据集、146 个任务类别和 1,836 个总任务。
在这里插入图片描述
与前代 PaLM 相比,PaLM-2 是一种计算效率更高的 LLM,具有更好的多语言和推理能力。PaLM-2 使用多种目标进行训练。通过对英语、多语言和推理任务的广泛评估,PaLM-2 显著提高了不同模型大小的下游任务的模型性能,同时表现出比 PaLM 更快、更高效的推理能力。

Med-PaLM是一个特定领域的 PaLM,旨在为医学问题提供高质量的答案。 Med-PaLM 在 PaLM 上使用指令提示调整进行了微调,这是一种使用一些样例将 LLM 与新领域对齐的参数高效方法。Med-PaLM 在许多医疗保健任务上取得了非常令人鼓舞的结果,尽管它仍然不如人类临床医生。Med-PaLM 2 通过医学领域微调和集成提示改进了 MedPaLM。Med-PaLM 2 在 MedQA 数据集(即结合六个现有开放式问答数据集的基准,涵盖专业医疗检查、研究和消费者查询)上的得分高达 86.5%,比 Med-PaLM 提高了 19% 以上,创下了新高。

二、HOW LLMS ARE BUILT

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

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

相关文章

系统架构设计师⑧:软件工程-软件开发方法与模型

系统架构设计师⑧:软件工程-软件开发方法与模型 软件开发方法 常用的软件开发方法主要分为3类: 结构化法(比如C语言开发-面向过程), 面向对象法(比如C或者JAVA开发-面向对象), 面向…

永洪科技第八届全国用户大会,释放数据价值!

永洪科技,作为“致力于打造全球领先的数据技术厂商”,将于【2024年11月1日】,在【北京东方君悦大酒店】盛大召开“第八届永洪科技全国用户大会”。旨在通过AIBI的深入融合,更加智能且精准的展现及预测未来的数据走向,展…

10.7学习

1.安全认证 ●Session 认证中最常用的一种方式,也是最简单的。存在多节点session丢失的情况,可通过nginx粘性Cookie和Redis集中式Session存储解决 ●HTTP Basic Authentication 服务端针对请求头中base64加密的Authorization 和用户名和密码进行校验。…

分层解耦-03.IOCDI-入门

一. IOC&DI入门 二.控制转移注解Component 因为dao和service接口的实现类对象需要传入到service和controller中,因此需要将dao和service代码加上Component注解,使之实现控制反转,将实现类对象交给IOC容器管理,成为IOC容器中…

字符编码发展史5 — UTF-16和UTF-32

上一篇《字符编码发展史4 — Unicode与UTF-8》我们讲解了Unicode字符集与UTF-8编码。本篇我们将继续讲解字符编码的第三个发展阶段中的UTF-16和UTF-32。 2.3. 第三个阶段 国际化 2.3.2. Unicode的编码方式 2.3.2.2. UTF-16 UTF-16也是一种变长编码,对于一个Unic…

构建快速应用,国内低代码开发平台的选择指南

本文盘点10款主流低代码开发平台,包括ZohoCreator、阿里宜搭等,分析其特点及应用场景。各平台各具优势,适用于不同企业和业务需求,建议企业根据自身需求和技术水平试用后选择。 一、Zoho Creator Zoho Creator 是一个低代码开发平…

软件设计之SSM(8)

软件设计之SSM(8) 路线图推荐: 【Java学习路线-极速版】【Java架构师技术图谱】 尚硅谷新版SSM框架全套视频教程,Spring6SpringBoot3最新SSM企业级开发 资料可以去尚硅谷官网免费领取 学习内容: Mybatis 数据输出多表映射动态语句 1、数…

【Linux】基础IO(文件描述符、缓冲区、重定向)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12625432.html 目录 前言 C文件IO相关操作 系统文件I/O open open函数返回值 文件描述符fd re…

Rspamd:开源垃圾邮件过滤系统

Rspamd 是一个开源垃圾邮件过滤和电子邮件处理框架,旨在根据各种规则评估消息,包括正则表达式、统计分析以及与 URL 黑名单等自定义服务的集成。 系统会分析每封邮件并做出判定,MTA可据此采取进一步行动,例如拒绝邮件或添加垃圾邮…

【GeekBand】C++设计模式笔记7_Bridge_桥接模式

1. “单一职责”模式 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。典型模式 DecoratorBridge 2. Bridge 桥接模式…

UE5+ChatGPT实现3D AI虚拟人综合实战

第11章 综合实战:UE5ChatGPT实现3D AI虚拟人 通过结合Unreal Engine 5(UE5)的强大渲染能力和ChatGPT的自然语言处理能力,我们可以实现一个高度交互性的AI虚拟人。本文将详细介绍如何在UE5中安装必要的插件,配置OpenAI…

trans-cinnamate 4-monooxygenase肉桂酸4-羟化酶C4H的克隆和功能鉴定-文献精读62

Cloning and functional characterization of two cinnamate 4-hydroxylase genes from Pyrus bretschneideri 两种从白梨(Pyrus bretschneideri)中克隆和功能鉴定的肉桂酸4-羟化酶基因 摘要 肉桂酸4-羟化酶(C4H)是植物苯丙素类…

安装Spark-单机部署,Standalone集群部署,Spark on Yarn实现

目录 单机部署spark本地模式部署 Anaconda部署Python(3台机器都需要) Spark本地模式部署 Spark Python Shell Spark的Standalone集群部署 Standalone集群架构 Standalone集群部署 Standalone集群启动 Standalone集群测试 Spark on YARN的实现 Spark on YARN&#xf…

解决java: 无法访问java.lang.Record

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 错误描述 项目在编译期间报错:java: 无法访问java.lang.Record, 找不到java.lang.Record的类文件;图示如下: 解决方案 请在…

力扣203.移除链表元素

题目链接:203. 移除链表元素 - 力扣(LeetCode) 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6…

57.对称二叉树

迭代 class Solution {public boolean isSymmetric(TreeNode root) {if(rootnull){return true;}Deque<TreeNode> denew LinkedList<>();TreeNode l,r;int le;de.offer(root.left);de.offer(root.right);while(!de.isEmpty()){lde.pollFirst();rde.pollLast();if(…

如何使用MATLAB代码生成器生成ADRC跟踪微分器(TD) PLC源代码(ST)

ADRC线性跟踪微分器TD详细测试 ADRC线性跟踪微分器TD详细测试(Simulink 算法框图+CODESYS ST+博途SCL完整源代码)-CSDN博客文章浏览阅读383次。ADRC线性跟踪微分器(ST+SCL语言)_adrc算法在博途编程中scl语言-CSDN博客文章浏览阅读784次。本文介绍了ADRC线性跟踪微分器的算法和…

P3197 [HNOI2008] 越狱

题目传送门 题面 [HNOI2008] 越狱 题目描述 监狱有 n n n 个房间&#xff0c;每个房间关押一个犯人&#xff0c;有 m m m 种宗教&#xff0c;每个犯人会信仰其中一种。如果相邻房间的犯人的宗教相同&#xff0c;就可能发生越狱&#xff0c;求有多少种状态可能发生越狱。 …

js操作元素的其他操作(4个案例+效果图+代码)

目录 1. 获取元素的位置和大小 案例:获取元素的位置和大小 1.代码 2.效果 2. 获取元素的可视区域 案例:获取元素的可视区域 1.代码 2.效果 3. 元素的滚动操作 案例:元素的滚动操作 1.代码 2.效果 4. 获取鼠标指针位置 案例:时刻获取鼠标位置 1.代码 2.效果 案例:拖动的小球 1.代…

第一个Flutter应用(一)

1、创建项目 1.1 新建 1.2 选择Flutter SDK的位置 1.3 项目名称 英文单词加下划线起名规范&#xff0c;其他默认即可。 1.4 点击运行 发生报错显示我们的JAVA版本不符合 1.5 更改版本设置 1.6 再次启动项目 2、分析页面代码 以下是lib/main.dart的源代码&#xff08;为了阅…