ChatGPT大模型极简应用开发-CH1-初识 GPT-4 和 ChatGPT

文章目录

    • 1.1 LLM 概述
      • 1.1.1 语言模型和NLP基础
      • 1.1.2 Transformer及在LLM中的作用
      • 1.1.3 解密 GPT 模型的标记化和预测步骤
    • 1.2 GPT 模型简史:从 GPT-1 到 GPT-4
      • 1.2.1 GPT1
      • 1.2.2 GPT2
      • 1.2.3 GPT-3
      • 1.2.4 从 GPT-3 到 InstructGPT
      • 1.2.5 GPT-3.5、Codex 和 ChatGPT
      • 1.2.6 GPT-4
    • 1.3 LLM 用例和示例产品
      • 1.3.1 Be My Eyes
      • 1.3.2 摩根士丹利
      • 1.3.3 可汗学院
      • 1.3.4 多邻国
      • 1.3.5 Yabble
      • 1.3.6 Waymark
      • 1.3.7 Inworld AI
    • 1.4 警惕 AI 幻觉:限制与考虑
    • 1.5 使用插件和微调优化 GPT 模型
    • 1.6 小结

1.1 LLM 概述

1.1.1 语言模型和NLP基础

GPT-4 和其他 GPT 模型是基于大量数据训练而成的大语言模型 (large language model,LLM),它们能够以非常高的准确性识别和生成人类可读的文本。

GPT-4 和 ChatGPT 基于一种特定的神经网络架构,即 Transformer。 Transformer 就像阅读机一样,它关注句子或段落的不同部分,以理解其上下文并产生连贯的回答。此外,它还可以理解句子中的单词顺序和上下 文意思。这使 Transformer 在语言翻译、问题回答和文本生成等任务中非 常有效。

NLP 是 AI 的一个子领域,专注于使计算机能够处理、解释和生成人类语言。现代 NLP 解决方案基于 ML 算法。NLP 的目标是让计算机能够处理自然语言文本。这个目标涉及诸多任务

  • 文本分类
  • 自动翻译
  • 问题回答
  • 文本生成:给定输入文本(prompt提示词)生成连贯且相关的输出文本

LLM 是试图完成文本生成任务的一类 ML 模型。LLM 使计算机 能够处理、解释和生成人类语言,从而提高人机交互效率。为了做到这一 点,LLM 会分析大量文本数据或基于这些数据进行训练,从而学习句子中 各词之间的模式和关系。

数据源

  • 维基百科
  • Reddit
  • 成千上万本书
  • 甚至互联网本身

在给定输入文本的情况下,这个学习过程使得 LLM 能够预测最有可能出现的后续单词,从而生成对输入文本有意义的回应。

早期发展

始于简单的语言模型,如 n-gram 模 型。n-gram 模型通过使用词频来根据前面的词预测句子中的下一个词,其 预测结果是在训练文本中紧随前面的词出现的频率最高的词。虽然这种方 法提供了不错的着手点,但是 n-gram 模型在理解上下文和语法方面仍需 改进,因为它有时会生成不连贯的文本。

为了提高 n-gram 模型的性能,人们引入了更先进的学习算法,包括循环神经网络(recurrent neural network,RNN)和长短期记忆(long short-term memory,LSTM)网络。这些模型能够学习更长的序列,并且能够更好地分析上下文,但它们在处理大量数据时的效率仍然欠佳。

1.1.2 Transformer及在LLM中的作用

Transformer 架构彻底改变了 NLP 领域,这主要是因为它能够有效地解决之前的 NLP 模型(如 RNN)存在的一个关键问题:很难处理长文本序列并记住其上下文。换句话说,RNN 在处理长文本序列时容易忘记上下文(也就是臭名昭著的“灾难性遗忘问题”),Transformer 则具备高效处理和编码上下文的能力。

这场革命的核心支柱是注意力机制,这是一个简单而又强大的机制。模型不再将文本序列中的所有词视为同等重要,而是在任务的每个步骤中关注最相关的词。交叉注意力和自注意力是基于注意力机制的两个架构模块,它们经常出现在 LLM 中。Transformer 架构广泛使用了交叉注意力模块和自注意力模块

交叉注意力有助于模型确定输入文本的不同部分与输出文本中下一个词的相关性

自注意力机制是指模型能够关注其输入文本的不同部分。具体到 NLP 领域,自注意力机制使模型能够评估句子中的每个词相比于其他词的重要性。这使得模型能够更好地理解各词之间的关系,并根据输入文本中的多个词构建新概念。

与 RNN 不同,Transformer 架构具有易于并行化的优势。这意味着Transformer 架构可以同时处理输入文本的多个部分,而无须顺序处理。这样做可以提高计算速度和训练速度

Transformer 架构由来自谷歌公司的 Ashish Vaswani 等人在 2017 年的论文“Attention Is All You Need”中提出,最初用于序列到序列的任务,如机器翻译任务。标准的 Transformer 架构有两个主要组件:编码器和解码器,两者都十分依赖注意力机制。

编码器的任务是处理输入文本,识别有价值的特征,并生成有意义的文本表示,称为嵌入(embedding)。

解码器使用这个嵌入来生成一个输出,比如翻译结果或摘要文本。这个输出有效地解释了编码信息。

生成式预训练 Transformer(Generative Pre-trained Transformer,GPT)是一类基于 Transformer 架构的模型,专门利用原始架构中的解码器部分。

在 GPT 中,不存在编码器,因此无须通过交叉注意力机制来整合编码器产生的嵌入,GPT 仅依赖解码器内部的自注意力机制来生成上下文感知的表示和预测结果。

1.1.3 解密 GPT 模型的标记化和预测步骤

GPT 模型接收一段提示词作为输入,然后生成一段文本作为输出,这个过程被称为文本补全,这主要是一个概率问题。

当 GPT 模型收到一段提示词之后,它首先将输入拆分成标记(token)。这些标记代表单词、单词的一部分、空格或标点符号。比如,在前面的例子中,提示词可以被拆分成[The, wea, ther, is, nice, today, so,I, de, ci, ded, to]。几乎每个语言模型都配有自己的分词器。

理解标记与词长的一条经验法则是,对于英语文本,100 个标记大约等于 75 个单词。

为了生成新的句子,LLM 根据提示词的上下文预测最有可能出现的下一个标记。OpenAI 开发了两个版本的 GPT-4,上下文窗口大小分别为 8192 个标记和 32 768 个标记。

带有注意力机制的Transformer 架构使得 LLM 能够将上下文作为一个整体来考虑。基于这个上下文,**模型为每个潜在的后续标记分配一个概率分数,然后选择概率最高的标记作为序列中的下一个标记。**在前面的例子中,“今天天气很好,所以我决定”之后,下一个最佳标记可能是“去”。

接下来重复此过程,但现在上下文变为“今天天气很好,所以我决定去”,之前预测的标记“去”被添加到原始提示词中。这个过程会一直重复,直到形成一个完整的句子:“今天天气很好,所以我决定去散步。”这个过程依赖于 LLM 学习从大量文本数据中预测下一个最有可能出现的单词的能力。

1.2 GPT 模型简史:从 GPT-1 到 GPT-4

1.2.1 GPT1

2018 Improving Language Understanding by Generative Pre-Training

早期需要有大量标记良好的监督数据。这一需求限制了监督学习的性能,因为要生成这样的数据集,难度很大且成本高昂。

在论文中,GPT-1 的作者提出了一种新的学习过程,其中引入了无监督的预训练步骤。这个预训练步骤不需要标记数据。相反,他们训练模型来预测下一个标记。

对于预训练,GPT-1 模型使用了 BookCorpus 数据集。该数据集包含约 11 000 本未出版图书的文本。BookCorpus 最初由Yukun Zhu 等人在 2015 年的论文“Aligning Books and Movies:Towards Story-like Visual Explanations by Watching Movies andReading Books”中给出,并通过多伦多大学的网页提供。然而,原始数据集的正式版本如今已不能公开访问。

人们发现,GPT-1 在各种基本的文本补全任务中是有效的。在无监督学习阶段,该模型学习 BookCorpus 数据集并预测文本中的下一个词。**然而,GPT-1 是小模型,它无法在不经过微调的情况下执行复杂任务。因此,人们将微调作为第二个监督学习步骤,让模型在一小部分手动标记的数据上进行微调,从而适应特定的目标任务。**比如,在情感分析等分类任务中,可能需要在一小部分手动标记的文本示例上重新训练模型,以使其达到不错的准确度。

尽管规模相对较小,但 GPT-1 在仅用少量手动标记的数据进行微调后,能够出色地完成多个 NLP 任务。GPT-1 的架构包括一个解码器(与原始Transformer 架构中的解码器类似),具有 1.17 亿个参数。作为首个GPT 模型,它为更强大的模型铺平了道路。

1.2.2 GPT2

2019 ,OpenAI 提出了 GPT-2。

这是 GPT-1 的一个扩展版本,其参数量和训练数据集的规模大约是 GPT-1 的 10 倍。这个新版本的参数量为15 亿,训练文本为 40 GB。GPT-2 表明,使用更大的数据集训练更大的语言模型可以提高语言模型的任务处理能力,并使其在许多任务中超越已有模型。它还表明,更大的语言模型能够更好地处理自然语言。

1.2.3 GPT-3

2020 年 6 月,OpenAI 发布了 GPT-3。

GPT-2 和 GPT-3 之间的主要区别在于模型的大小和用于训练的数据量。GPT-3 比 GPT-2 大得多,它有1750 亿个参数,这使其能够捕捉更复杂的模式。

GPT3的数据集:

  • Common Crawl(它就像互联网档案馆,其中包含来自数十亿个网页的文本)
  • 维基百科
  • 网站、书籍和文章的内容

能力:

  • 它在文本生成方面还展示出更强的连贯性和创造力。

  • 它甚至能够编写代码片段,如 SQL 查询,并执行其他智能任务。

  • GPT-3 取消了微调步骤,而这在之前的 GPT 模型中是必需的。

问题:

  • GPT-3 存在一个问题,即最终用户提供的任务与模型在训练过程中所见到的任务不一致
  • 训练过程不一定与最终用户希望模型执行的任务一 致
  • 增大语言模型的规模并不能从根本上使其更好地遵循用户的意图或指令
  • 用于训练模型的数据仍然可能包含虚假信息或有问题的文本,比如涉及种族歧视、性别歧
  • 模型有时可能说错话,甚至说出有害的话

2021年,OpenAI 发布了 GPT-3 模型的新版本,并取名为 InstructGPT。

与原始的 GPT-3 基础模型不同,InstructGPT 模型通过强化学习和人类反馈进行优化。这意味着 InstructGPT 模型利用反馈来学习和不断改进。这使得模型能够从人类指令中学习,同时使其真实性更大、伤害性更小。

使用标准的 GPT-3模型也能够得到所需的回答,但需要应用特定的提示词设计和优化技术。这种技术被称为提示工程(prompt engineering)

1.2.4 从 GPT-3 到 InstructGPT

instructGPT Training Language Models to Follow Instructions with Human Feedback

从 GPT-3 模型到 InstructGPT 模型的训练过程主要有两个阶段:

  • 监督微调(supervised fine-tuning,SFT)
  • 通过人类反馈进行强化学习(reinforcement learning from human feedback,RLHF)

每个阶段都会针对前一阶段的结果进行微调,SFT 阶段接收 GPT-3 模型并返回一个新模型。RLHF 阶段接收该模型并返回 InstructGPT 版本。

在 SFT 阶段中,原始的 GPT-3 模型通过监督学习进行微调。OpenAI 拥有一系列由最终用户创建的提示词。

  • 首先,从可用的提示词数据集中随机抽样
  • 然后,要求一个人(称为标注员)编写一个示例来演示理想的回答。重复这个过程数千次,以获得一个由提示词和相应的理想回答组成的监督训练数据集
  • 最后,使用该数据集微调 GPT-3 模型,以针对用户的提问提供更一致的回答。此时得到的模型称为 SFT 模型

图 1-6:获取 InstructGPT 模型的步骤

RLHF 阶段分为两个子步骤:

  • 首先训练奖励模型

    • 奖励模型的目标是自动为回答给出分数。
      • 当回答与提示词中的内容匹配时,奖励分数应该很高;
      • 当回答与提示词中的内容不匹配时,奖励分数应该很低;
    • OpenAI 首先随机选择一个问题,并使用 SFT模型生成几个可能的答案。通过一个叫作温度(temperature)的参数,可以针对同一输入生成许多回答。
    • 要求标注员根据与提示词的匹配程度和有害程度等标准给这些回答排序。在多次重复此过程后,使用数据集微调 SFT 模型以进行评分。
  • 然后使用奖励模型进行强化学习

    • 迭代的过程。它从一个初始的生成式模型开始,比如 SFT 模型;
    • 根据得到的奖励分数,相应地更新生成式模型。这个过程可以在无须人工干预的情况下重复无数次,从而自动、高效地提高模型的性能;

1.2.5 GPT-3.5、Codex 和 ChatGPT

2022 年 3 月,OpenAI 发布了 GPT-3 的新版本。新模型可以编辑文本或向文本中插入内容。(训练数据截至 2021 年 6 月)。2022 年 11 月底,OpenAI 正式称这些模型为GPT-3.5 模型。

OpenAI 还提出了 Codex 模型,这是一个在数十亿行代码上进行了微调的GPT-3 模型。Codex 模型在 2023 年 3 月被OpenAI 弃用。GitHub 发布了基于 GPT-4 的 Copilot X 版本,功能比之前的版本多得多。

可以说,ChatGPT 是由 LLM 驱动的应用程序,而不是真正的LLM。ChatGPT 背后的 LLM 是 GPT-3.5 Turbo。然而,OpenAI 在发布说明中将 ChatGPT 称为“模型”。

ChatGPT 是由 LLM 驱动的应用程序,而不是真正的LLM。ChatGPT 背后的 LLM 是 GPT-3.5 Turbo。然而,OpenAI 在发布说明中将 ChatGPT 称为“模型”。

1.2.6 GPT-4

2023 年 3 月,OpenAI 发布了 GPT-4。与 OpenAI GPT 家族中的其他模型不同,GPT-4 是第一个能够同时接收文本和图像的多模态模型。这意味着 GPT-4 在生成输出句子时会考虑图像和文本的上下文。

1.3 LLM 用例和示例产品

1.3.1 Be My Eyes

自 2012 年起,Be My Eyes 已通过技术为数百万视障人士提供了帮助。它的应用程序是志愿者与需要帮助的视障人士之间的纽带,使视障人士在日常生活中得到帮助,比如识别产品或在机场导航。只需在应用程序中点击一次,需要帮助的视障人士即可联系到一位志愿者,后者通过视频和麦克风提供帮助。GPT-4 的多模态能力使得它能够处理文本和图像。Be My Eyes 开始基于GPT-4 开发新的虚拟志愿者。这个虚拟志愿者旨在达到与人类志愿者相当的理解水平和帮助能力。

1.3.2 摩根士丹利

作为财富管理领域的领头羊,摩根士丹利拥有数十万页的知识和见解内容库,涵盖投资策略、市场研究与评论,以及分析师意见。这些海量信息分散在多个内部网站上,其文件格式主要是 PDF。这意味着顾问必须搜索大量文档才能找到他们想要的答案。可以想象,搜索过程既漫长又乏味。

由公司内部开发的模型将驱动一个聊天机器人,对财富管理内容进行全面搜索,并高效地解锁摩根士丹利积累的知识。通过这种方式,GPT-4 提供了一种更易使用的格式来分析所有相关信息。

1.3.3 可汗学院

Khanmigo 是由 GPT-4 驱动的新型 AI 助手。Khanmigo 可以为学生做很多事情,比如引导和鼓励他们,提问并帮助他们准备考试。Khanmigo 旨在成为对用户友好的聊天机器人,帮助学生完成课堂作业。它不会直接给出答案,而会引导学生进行学习。除了帮助学生,Khanmigo 还可以帮助教师准备教案、完成行政任务和制作教材等。

1.3.4 多邻国

多邻国已经使用 GPT-4 为其产品添加了两个新功能:“角色扮演”和“解释我的答案”。这两个功能在名为 Duolingo Max 的新订阅级别中可用。借助这两个功能,多邻国填补了理论知识和语言应用之间的鸿沟。多亏了LLM,多邻国让语言学习者能够沉浸在真实世界的场景中。

  • “角色扮演”功能模拟与母语人士的对话,让用户能够在各种场景中练习语言技能。
  • “解释我的答案”功能针对语法错误提供个性化反馈,帮助用户更深入地理解语言结构。

1.3.5 Yabble

Yabble 是一家市场研究公司,它利用 AI 技术分析消费者数据,为企业提供可用的见解。Yabble 的平台将原始的非结构化数据转化为可视化形式,使企业能够根据客户需求做出明智的决策。

1.3.6 Waymark

Waymark 提供了一个创作视频广告的平台。该平台利用 AI 技术帮助企业轻松创作高质量的视频,无须技术知识或昂贵的设备。

显著地改进了平台用户的脚本编写过程。这种由 GPT 驱动的增强功能使得平台能够在几秒内为用户生成定制脚本。用户能够更专注于他们的主要目标,因为他们无须花费太多时间编辑脚本,从而有更多的时间来创作视频广告

1.3.7 Inworld AI

Inworld AI 为开发人员提供了一个平台,用于创建具有独特个性、多模态表达能力和上下文意识的 AI 角色。Inworld AI 平台的主要应用领域之一是视频游戏。

将GPT 与其他 ML 模型结合,该平台可以为 AI 角色生成独特的个性、情感、记忆和行为。这个过程使游戏开发人员能够专注于叙事和其他主题,而无须花费大量时间从头开始创建语言模型。

1.4 警惕 AI 幻觉:限制与考虑

LLM 根据给定的输入提示词逐个预测下一个词(也就是标记),从而生成回答。在大多数情况下,模型的输出是与提问相关的,并且完全可用,但是在使用语言模型时需要小心,因为它们给出的回答可能不准确。这种回答通常被称为 AI 幻觉,即 AI 自信地给出一个回答,但是这个回答是错误的,或者涉及虚构的信息。

当要求它进行检查并重新计算时,它仍然给出了一个错误的答案

强烈推荐在创意型应用程序中使用纯 GPT 解决方案,而不是在医疗咨询工具等真相至关重要的问答类应用程序中使用。对于这类用例,插件可能是理想的解决方案。

1.5 使用插件和微调优化 GPT 模型

除了简单的文本补全功能,还可以使用更高级的技术来进一步利用 GPT 模型的能力:

  • 插件
  • 微调

局限性:

GPT 模型有一定的局限性,例如其计算能力有限。正如你所见,GPT 模型可以正确回答简单的数学问题,如 2 + 2 等于多少,但在面对更复杂的计算时可能会遇到困难,如 3695 × 123 548。此外,它没有直接访问互联网的权限,这意味着 GPT 模型无法获取新信息,其知识仅限于训练数据。对于 GPT-4,最后一次知识更新是在 2021 年 9 月。截至 2023 年 11 月下旬,GPT-4 的训练知识已更新至 2023 年 4 月。

**OpenAI 提供的插件服务允许该模型与可能由第三方开发的应用程序连接。**这些插件使模型能够与开发人员定义的应用程序接口(application program interface,API)进行交互。这个过程可以极大地增强 GPT 模型的能力,因为它们可以通过各种操作访问外部世界。

在其网站上,OpenAI 表示可以通过插件让 ChatGPT 执行以下操作:

  • 检索实时信息,如体育赛事比分、股票价格、最新资讯等;
  • 检索基于知识的信息,如公司文档、个人笔记等;
  • 代表用户执行操作,如预订航班、订购食品等;
  • 准确地执行数学运算。

微调过程涉及使用特定的一组新数据重新训练现有的GPT 模型。新模型专为特定任务而设计,这个额外的训练过程让模型能够调节其内部参数,以适应给定的任务。经过微调的模型应该在该任务上表现得更好。比如,采用金融文本数据进行微调的模型应该能够更好地回应针对该领域的查询并生成相关性更强的内容。

1.6 小结

从简单的 n-gram 模型发展到 RNN、LSTM,再到先进的 Transformer 架构,LLM 已经取得了长足的进步。LLM 是可以处理和生成人类语言的计算机程序,它利用 ML 技术来分析大量的文本数据。通过使用自注意力机制和交叉注意力机制,Transformer 极大地增强了模型的语言理解能力

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

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

相关文章

vector迭代器的使用以及迭代器失效

一、iterator的使用注意 begin与end 遵循左闭右开的原则,begin 指向vector的第一个元素,end 指向vector的最后一个元素的往下一个位置。 rbegin 与 rend rbegin指向最后一个元素的位置,rend指向第一个元素的往前一个位置。 二、vector的常…

【Linux】15.Linux进程概念(4)

文章目录 程序地址空间前景回顾C语言空间布局图:代码1代码2代码3代码4代码5代码6代码7 程序地址空间前景回顾 历史核心问题: pid_t id fork(); if(id 0) else if(id>0) 为什么一个id可以放两个值呢?之前没有仔细讲。 C语言空间布局图&am…

【无法下载github文件】虚拟机下ubuntu无法拉取github文件

修改hosts来进行解决。 步骤一:打开hosts文件 sudo vim /etc/hosts步骤二:查询 github.com的ip地址 https://sites.ipaddress.com/github.com/#ipinfo将github.com的ip地址添加到hosts文件末尾,如下所示。 140.82.114.3 github.com步骤三…

Android BitmapShader实现狙击瞄具十字交叉线准星,Kotlin

Android BitmapShader实现狙击瞄具十字交叉线准星&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.…

Android系统开发(十):标准协议和通讯的桥梁:探索蓝牙、NFC、WLAN 的工作原理

引言&#xff1a; 现代社会已经是信息互联的世界&#xff0c;各种设备之间的互联互通已经成为了生活的一部分。而在这个过程中&#xff0c;Android 设备与其他硬件之间的通信扮演着至关重要的角色。从蓝牙耳机到 WiFi 路由器&#xff0c;甚至与电话功能的互动&#xff0c;所有…

node中文名的js文件有问题

新版Node无法运行含有中文名的JS文件&#xff0c;具体表现在无报错无反应。如下图&#xff1a; 源码如下&#xff1a; 改成英文的JS文件&#xff0c;则正常&#xff0c;如下图&#xff1a;

BERT与CNN结合实现糖尿病相关医学问题多分类模型

完整源码项目包获取→点击文章末尾名片&#xff01; 使用HuggingFace开发的Transformers库&#xff0c;使用BERT模型实现中文文本分类&#xff08;二分类或多分类&#xff09; 首先直接利用transformer.models.bert.BertForSequenceClassification()实现文本分类 然后手动实现B…

openharmony应用开发快速入门

开发准备 本文档适用于OpenHarmony应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用&#xff08;如下图所示&#xff09;&#xff0c;快速了解工程目录的主要文件&#xff0c;熟悉OpenHarmony应用开发流程。 在开始之前&#xff0c;您需要了解有关OpenHarmon…

RabbitMQ---TTL与死信

&#xff08;一&#xff09;TTL 1.TTL概念 TTL又叫过期时间 RabbitMQ可以对队列和消息设置TTL&#xff0c;当消息到达过期时间还没有被消费时就会自动删除 注&#xff1a;这里我们说的对队列设置TTL,是对队列上的消息设置TTL并不是对队列本身&#xff0c;不是说队列过期时间…

51.WPF应用加图标指南 C#例子 WPF例子

完整步骤&#xff1a; 先使用文心一言生成一个图标如左边使用Windows图片编辑器编辑&#xff0c;去除背景使用正方形&#xff0c;放大图片使图标铺满图片使用格式工程转换为ico格式&#xff0c;分辨率为最大 在资源管理器中右键项目添加ico类型图片到项目里图片属性设置为始终…

多语言插件i18n Ally的使用

先展示一下效果 1.第一步首先在vscode下载插件 2.第二步在 setting.json 里面配置 要区分文件是js&#xff0c;ts或json结尾 以zh.ts和en.ts结尾的用这个 { "i18n-ally.localesPaths": ["src/locales"],"i18n-ally.keystyle": "nested"…

蓝桥杯备考:堆和priority queue(优先级队列)

堆的定义 heap堆是一种特殊的完全二叉树&#xff0c;对于树中的每个结点&#xff0c;如果该结点的权值大于等于孩子结点的权值&#xff0c;就称它为大根堆&#xff0c;小于等于就叫小根堆&#xff0c;如果是大根堆&#xff0c;每个子树也是符合大根堆的特征的&#xff0c;如果是…

【人工智能】:搭建本地AI服务——Ollama、LobeChat和Go语言的全方位实践指南

前言 随着自然语言处理&#xff08;NLP&#xff09;技术的快速发展&#xff0c;越来越多的企业和个人开发者寻求在本地环境中运行大型语言模型&#xff08;LLM&#xff09;&#xff0c;以确保数据隐私和提高响应速度。Ollama 作为一个强大的本地运行框架&#xff0c;支持多种先…

Java锁 从乐观锁和悲观锁开始讲 面试复盘

目录 面试复盘 Java 中的锁 大全 悲观锁 专业解释 自我理解 乐观锁 专业解释 自我理解 悲观锁的调用 乐观锁的调用 synchronized和 ReentrantLock的区别 相同点 区别 详细对比 总结 面试复盘 Java 中的锁 大全 悲观锁 专业解释 适合写操作多的场景 先加锁可以…

OpenVela——专为AIoT领域打造的开源操作系统

目录 一、系统背景与开源 1.1. 起源 1.2. 开源 二、系统特点 2.1. 轻量化 2.2. 标准兼容性 2.3. 安全性 2.4. 高度可扩展性 三、技术支持与功能 3.1. 架构支持 3.2. 异构计算支持 3.3. 全面的连接套件 3.4. 开发者工具 四、应用场景与优势 4.1. 应用场景 4.2. …

使用 Java 实现基于 DFA 算法的敏感词检测

使用 Java 实现基于 DFA 算法的敏感词检测 1. 引言 敏感词检测在内容审核、信息过滤等领域有着广泛的应用。本文将介绍如何使用 DFA&#xff08;Deterministic Finite Automaton&#xff0c;确定有限状态自动机&#xff09; 算法&#xff0c;在 Java 中实现高效的敏感词检测。…

单片机存储器和C程序编译过程

1、 单片机存储器 只读存储器不是并列关系&#xff0c;是从ROM发展到FLASH的过程 RAM ROM 随机存储器 只读存储器 CPU直接存储和访问 只读可访问不可写 临时存数据&#xff0c;存的是CPU正在使用的数据 永久存数据&#xff0c;存的是操作系统启动程序或指令 断电易失 …

UDP报文格式

UDP是传输层的一个重要协议&#xff0c;他的特性有面向数据报、无连接、不可靠传输、全双工。 下面是UDP报文格式&#xff1a; 1&#xff0c;报头 UDP的报头长度位8个字节&#xff0c;包含源端口、目的端口、长度和校验和&#xff0c;其中每个属性均为两个字节。报头格式为二…

2024年我的技术成长之路

2024年我的技术成长之路 大家好&#xff0c;我是小寒。又到年底了&#xff0c;一年过得真快啊&#xff01;趁着这次活动的机会&#xff0c;和大家聊聊我这一年在技术上的收获和踩过的坑。 说实话&#xff0c;今年工作特别忙&#xff0c;写博客的时间比去年少了不少。不过还是…

HTML5+Canvas实现的鼠标跟随自定义发光线条源码

源码介绍 HTML5Canvas实现的鼠标跟随自定义发光线条特效源码非常炫酷&#xff0c;在黑色的背景中&#xff0c;鼠标滑过即产生彩色变换的发光线条效果&#xff0c;且线条周围散发出火花飞射四溅的粒子光点特效。 效果预览 源码如下 <!DOCTYPE html PUBLIC "-//W3C//D…