大模型训练全攻略:从监督学习到数据预处理的完整指南

文章系统介绍大模型训练的五种学习方法:有监督学习(基于标注数据)、无监督学习(基于数据内在结构)、自监督学习(自动构造伪标签)、半监督学习(少量标注+大量未标注数据)和强化学习(奖励信号驱动)。同时详细阐述了数据集类型划分、数据预处理技术(过滤、去重、分词)、质量评估标准以及Scaling Laws三要素(参数量、数据量、计算资源)的平衡扩展原则,为开发者提供了完整的大模型训练实践指南。


模型训练学习方法

有监督学习

有监督学习:AI 模型使用被标注了的数据样本进行学习,通过样本的真实值和预测值来求得 Loss 值。有监督学习因为需要对数据样本进行标注,所以只适用于数据量较小的场景。

MP 模型的逻辑门就是最简单的有监督学习训练。

无监督学习

无监督学习:AI 模型使用没有任务标注的数据样本进行学习,通过聚类分析、主成分分析等算法来进行分类和降维。无监督学习的 Loss 值并非使用真实值和预测值来计算,而是基于数据的内在结构规律来定义的,其描述的是模型对数据内在结构的拟合程度。

例如:K-means 动态聚类算法可以将 n 个样本点自动分成 K 类,它的目标是让同一个簇内的样本尽可能紧凑,不同簇尽可能分离。所以 K-means 的 Loss(SSE) 值就是所有样本到其所属簇中心的距离平方和(Sum of Squared Errors)。例如:组内离差平方和、欧氏距离平方和等。

由于无监督学习的核心目标是让模型学习到数据的分布、聚类紧凑性或特征相关性,所以不需要对数据样本进行标注,也因此适用于数据量很大的场景。但无监督学习过程中的自动聚类是难以控制的,相较于有监督学习的人工标注,后者具有明确的优化目标,即:人为控制模型收敛的方向。

自监督学习

自监督学习:同样不会对数据样本进行标注,所以自监督学习是无监督学习的一个子集。而核心区别在于自监督学习会自动构造 “伪标签(Pseudo-Labelling)”,即:从数据本身的内在结构和规律自动构造 “标签”,以此计算 Loss 并驱动模型收敛。典型的自监督学习就是 GPT 系列的 CLM(Causal Language Model,因果语言模型)预训练任务。

GPT CLM 任务的训练目标是 “给定上文,预测下一个词的概率”,整个过程无需人工标注,具体步骤如下:

  1. 输入处理:从海量无标注的文本(比如书籍、网页)中截取一段连续文本,然后分词并构造输入序列。
原文:I love natural language processing 输入序列拆解为:I → love → natural → language
  1. 自动生成伪标签:将输入序列中的下一个词作为 “标签”。这里的伪标签完全由文本本身的顺序生成,是 “自监督” 的核心体现。
  2. 输出预测值:模型通过上文输入,Forward Pass,然后根据词汇表输出下一个词的概率分布。例如:词汇表有 10 万个词,那么就会输出一个 10 万维的概率向量,表示每个词作为下一个词的可能性(预测)。
  3. 计算 Loss 并反向传播:通过输出预测值和伪标签来计算 Loss,采用交叉熵损失算法,可以衡量预测的 Token 概率分布与真实 Token 的差异,优化模型参数以最小化损失。

然后可以进行 Backward Pass 了,收敛过程和有监督学习一致。

综上可见,自监督学习兼具了无监督的低成本和有监督的明确优化目标。

  • 海量数据提供充足的学习信号:虽然单条文本的伪标签很简单,但超大规模的无标注语料中,包含了语言的所有规律(比如 “太阳” 后面常跟 “升起”,“吃饭” 前面常跟 “我”)。模型通过海量样本的学习,能捕捉到这些通用的语言模式,最终收敛到稳定的参数状态。
  • 预训练 + 微调的范式:GPT-1 的预训练是自监督的,目的是学习通用语言表示;而 GPT-3 的微调则是有监督的,使其具备了 “举一反三” 的能力,能够针对具体任务(如分类、问答)时,只需要少量标注数据做微调,就能把通用能力迁移到下游任务。这也是自监督预训练的价值所在。

半监督学习

半监督学习(semi-supervised learning):是有监督学习、无监督学习和自监督学习的折中方案,使用大量的无标注数据和少量的有标注数据进行训练(标注数据占比通常极低,如 1%~10%)。同时再使用少量的有标注数据来为无标注数据进行 “伪标注”。

半监督学习,可以有效利用未标注数据的分布规律,提升少量标注数据的学习效果,平衡标注成本和模型性能。其具体的训练流程如下图所示:

  1. 在有限的已标注数据上训练模型,此时模型会根据已标注数据学习到优化目标。
  2. 再使用模型在未标记的数据上创建 “伪标签”,并将高置信度的伪标签作为目标添加到现有的标记数据集中,从而创建额外的训练数据。
  3. 最后使用已标注数据和 “伪标签” 数据进行训练,会得到 2 个 Loss。1)监督 Loss:已标注数据的预测值与人工标签的差距;2)无监督 Loss:未标注数据的预测结果与数据分布规律的差距(如一致性正则化模型)。
  4. 最终 Loss 的计算方式为 2 个 Loss 的加权求和。

强化学习

强化学习(Reinforcement Learning)是有别于上述学习方法的另一种机器学习方法,主要讨论的问题是智能体怎么在复杂的、不确定的环境中最大化它能获得的奖励。

如下图所示,强化学习主要由 2 部分构成:智能体和环境。在强化学习过程中,智能体会不断行动并从环境获取反馈,根据反馈来调整自己行动的策略。

强化学习具有以下 2 个主要区别:

  1. 数据样本:强化学习使用 “与环境交互的奖励信号” 作为动态的数据样本,而不是静态的数据集(标注、未标注、伪标注)。
  2. 学习范式:有监督、无监督、自监督、半监督学习的学习范式是 Loss 最小化(拟合数据 / 标签 / 结构),而强化学习的学习范式是 “长期累积的奖励最大化”(找到最优决策策略)。

数据集类型

按照数据的作用划分:

  • 通用文本数据:用于基础预训练阶段,训练模型的基本文字理解能力。
  • 领域文本数据:用于增量预训练阶段,训练模型的专业领域知识理解能力,比如金融领域、医疗领域等等。
  • 私域文本数据:用于微调阶段,训练模型的企业内部私域知识理解能力。

按照数据的特性划分:

  • 无标注数据:用于自监督预训练阶段,采用海量、多样化的无标注文本数据,规模通常达到万亿 tokens 级别(如 GPT-3 训练数据约 45TB 文本),涵盖书籍、网页、论文、新闻等,确保模型接触到广泛的语言现象和知识。通过这些数据,模型能自动捕捉语法、语义、逻辑关系和世界常识。
  • 有标注数据:用于有监督微调阶段,采用人工标注的高质量数据进行特定任务下的优化,数据量从万~百万级不等。

无标注数据集

常见的无标注数据来源包括:

  1. 网页:例如 CommonCrawl 包含大规模的网络爬虫数据;
  2. 对话文本:包含书面形式的对话、聊天记录、论坛帖子、社交媒体评论等。
  3. 书籍&新闻:例如 BookCorpus 包含了大量公开可用的书籍文本。
  4. 科学文本:包括教材、论文、百科及其他相关资源。例如 Wikipedia 包含多语言的百科全书文本。
  5. 代码:例如 Github 提供了大量的开源代码。
  6. 多语言数据:对于增强大语言模型的多语言理解和生成多语言能力具有至关重要的作用。

下图展示了不同大模型采用的数据类型配比。

自监督预训练数据集示例:

  • Text:https://huggingface.co/datasets/Salesforce/wikitext。在预训练时,只有 text 列中的 内容 (即 document)会用于模型训练。
  • Code:https://huggingface.co/datasets/codeparrot/codeparrot-clean-train

有标注数据集

SFT 数据集示例:

强化学习数据集示例:

数据质量对模型性能的影响

下图展示了样本数据质量对模型性能的影响。

  • 模型性能:通过 Loss 的体现,损失越低,代表模型对文本的预测能力越强、性能越好。
  • 测试 3 个任务场景:Wikitext103 单词预测、Curation Corpus 摘要、Lambada 书籍级别的单词预测
  • OpenWebText / C4:天然高质量数据集(本身是经过筛选、去重的优质文本),作为基准对象。
  • MassiveWeb Unfiltered:低质量原始数据(未过滤、未去重的海量网页文本,含噪声、重复内容),Loss 表现最差。
  • Quality Filter / Exact Deduplication / Fuzzy Deduplication:针对 MassiveWeb Unfiltered 执行一系列的数据质量提升操作(过滤低质内容、精确去重、模糊去重)后,Loss 表现逐步变好。下图表示使用高质量数据训练的模型在自然语言生成和自然语言理解任务上表现更好。高质量预训练语料库对语言模型的生成能力至关重要。

数据多样性对模型性能的影响

根据研究,LLM 所掌握的知识绝大部分都是在预训练过程中学会的,因此,为了使训练出的 LLM 能够覆盖尽可能广的知识面,预训练语料需要组织多种来源的数据,并以一定比例进行混合。来自不同领域、不同语言、不同场景的训练数据具有不同的语言特征,包含了不同的语义知识。保证数据多样性可以让大语言模型获得更广泛的知识。比如中文数据通常需要较高比例的英文数据以弥补质量差异。通常来说,中 : 英 : code = 4 : 4 : 2。

所以训练时,要考虑数据集采样配比的问题,将不同类型的数据(如新闻、百科、代码等)按合理比例混合。通过分类器将数据分门别类,并根据类别设定不同的清洗和去重标准,确保各类数据在训练集中合理分布。

下图显示了 Llama 型训练混合了大量不同来源的数据,以及各个数据集的采样概率,以此来保证数据样本的多样性。包括网页、代码、论文、图书等。针对不同的文本质量,Llama 模型训练针对不同质量和重要性的数据集设定了不同的采样概率,表中给出了不同数据集在完成 1.4 万亿个词元训练时的采样轮数。

另外,数据顺序也会影响模型的学习效果,类似于 “课程学习”。合理安排数据的训练顺序,可以提升模型的知识吸收和应用能力。LLama 的研究建议通过语义相似度拼接相关文档,增强上下文连贯性,但实际操作中需根据具体需求进行调整。

数据预处理

数据过滤

数据过滤是确保训练数据质量的关键。常见的数据过滤方法有 2 类。

  1. 基于分类器的方法:训练一个专用于数据质量打分和过滤的模型。常用的是利用 transformer-encoder 的 BERT 系列模型对数据进行打分,因为其表征能力优于 transformer-decoder 模型。并且使用一组精选文本(维基百科、书籍和一些选定的网站)进行训练,作为打分器的质量标准正样本。打分器能够筛选出含有不良内容或低质量数据的样本作为负样本。但对代码、Markdown 等格式的数据评分较低,需要单独处理。
  2. 基于启发规则的方法:通过精心设计的规则有针对性地识别和剔除低质量数据。例如:
  • 语言过滤:为了训练特定目标语言的模型可以过滤掉其他语言的文本;
  • 指标过滤:如根据数据长度等指标进行过滤;利用困惑度(Perplexity)等文本生成评估指标来检测和删除表达不自然的句子。
  • 统计特征过滤:使用统计特征来衡量文本质量。例如单词比率,对于网页数据,过滤任何具有超过 100 个重复单词或句子的文档,以及过滤符号和词元比大于 0.1 的文档;对于论坛数据,过滤掉任何点赞数少于 3 的用户评论。
  • 关键词过滤:通过关键词集合进行过滤。对于维基百科数据,过滤掉任何拥有少于 25 个 UTF-8 单词的页面;对于网页数据,过滤掉 HTML 标签,以及过滤掉任何不含有 the, be, to, of, and, that, have, with 词汇的文档。

数据去重

避免重复内容影响训练效果。重复数据会降低大语言模型的多样性,并可能导致训练过程不稳定。例如:包含重复单词或短语的句子很可能造成语言建模中引入重复的模式。这对语言模型来说会产生非常严重的影响,使模型在预测时容易陷入重复循环。

使用大数据框架如 Hadoop 或 Spark,通过 MinHash 或 SimHash 等技术实现高效去重。去重的粒度应根据训练需求灵活调整,以确保数据多样性和质量。

  • 句子级别去重:提取并过滤文档间超过一定长度的相同字符串。
  • 文档级别去重:靠文档之间的表面特征相似度,检测删除相似文档。
  • 数据集级别去重:很多大语言模型预训练数据集都会包含 GitHub、Wikipedia。

下面以 SimHash 批量去重为例:

#!/usr/bin/env python3 # -*- coding: utf-8 -*- import numpy as np # 1. 分词:将 “不能复现的软件不算开源软件” 分为 “不能”、“复现”、“的”、“软件”、“不算”、“开源软件”。 words = ['不能','复现','的','软件','不算','开源软件'] def encode_word(hash_int): # 3. 二进制化:将获得的 hash 值转成二进制,用 0 补齐到 md5 标准的 128bit,然后 1 保持不变,0 变成 -1,就得到了 simhash 算法中单词的向量表示 bin_hash_value = bin(hash_int)[2:].zfill(128) # 确保二进制串长度严格为 128 位(截断超长部分,避免哈希值超出 128 位) bin_hash_value = bin_hash_value[-128:] # 将每个bit转为1或-1的嵌入向量 embedding = np.array([1 if bit == '1' else -1 for bit in bin_hash_value]) return embedding # 2. HASH:计算每个词的 hash 值。 word_embeddings = [encode_word(hash(word)) for word in words] # 对所有嵌入向量逐位求和 sum_embeddings = sum(word_embeddings) print(sum_embeddings)

执行输出:

[-6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 2 -4 6 -2 2 -4 2 -2 2 2 0 -6 -2 0 0 4 0 -4 2 4 2 -2 2 2 -6 -2 -4 0 -2 0 -2 -4 0 -4 2 -2 -2 0 2 2 -2 4 0 2 0 2 -2 -2 0 -2 2 -2 -2 4 2 -6 0 4 -2 0 2 0 2]

把大于 0 的变成 1,小于的变成 0:

print(np.clip(sum(word_embeddings), 0, 1)) ''' [0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 0 0] '''

现在,只需要比较两个文档向量的汉明距离(有多少个比特不一样),就能比较两个文档的相似性了。

词元切分(Tokenization)

词元切分是一个文本表示向量化的过程,是 NLP 的基础,通常包括:分词和子词切分。

  • 分词:分词是为了构建词汇表,词汇表决定了分词器如何将文本转化为 Token 序列。所以大模型的 Word Embedding(词嵌入)阶段依赖词汇表,模型只能处理词汇表中存在的词,但词汇表不可能囊括所有的词,因此在就会存在 “未登录词” 的情况。大模型无法为未登录词生成对应的词向量,只能给予这些未登录词一个默认的通用表示 [UNK](unknown)作为其词向量。
  • 子词切分:子词切分是为了解决 UNK 的问题,子词切分可以构建词元表。其中既存在完整的单词,也存在形如英文单词词根词缀一般的子词(Subword)。比如: Nothing is impossible 会被子词分成 No th ing is im possi ble。

我们可以选择使用分词器来完成以上工作,常见的有 BPE(Byte-Pair Encoding)、SentencePiece 或 WordPiece。以 BPE 为例,它首先会把所有单词拆分为单个字符,然后通过合并常见的字符对形成更长的子词(subword)。通过迭代地合并频率最高的字符对,逐步构建词汇表,词汇表大小通常是 128 的整数倍。

为了高效加载和预处理,实际的预训练语料在训练之前都会先经过 Tokenizer 分词,并转换为 Binary(二进制)或 HDF5 格式文件,还会进行分块(sharding)支持并行读取。因为实际数据量很大,想要一次性读取到内存中不现实,每个块通常按照 1B、2B、4B 的大小分割。

数据集质量评估

  1. 相关性:数据必须与目标任务紧密相关。例如,法律 AI 的数据应包含像 “合同有效的要求是什么?” 这样精准的法律问题和答案。
  2. 准确性:答案必须正确且权威。想象一份食谱错把糖当盐,结果不堪设想!同样,医疗 AI 的训练数据需要由专业医生审核。例如:“糖尿病是什么原因引起的?” 的答案必须基于科学事实,而非谣言。
  3. 多样性:数据应涵盖多种场景和表达方式。对于客服 AI,数据应包含类似 “如何退货?” 的多种问法,例如 “能退货吗?” 或 “退货流程是什么?”,以提升模型的灵活性。
  4. 一致性:数据的语气和格式需保持统一。如果目标是专业语气,答案应避免俚语。例如 “请提供您的账户详情” 比 “嘿,给我你的信息” 更合适。
  5. 干净:数据需剔除噪音,例如拼写错误、无关内容或重复数据。用户生成的内容(如论坛帖子)需特别过滤广告或无关信息。
  6. 适量:数据量过少会让模型 “营养不良”,过多的低质量数据则会拖累表现。几千条高质量的 QA 对往往比海量低质量数据更有效。

Scaling Laws 三要素平衡扩展

OpenAI 在 2020 年的论文中提出了 Scaling Laws(扩展定律),证明了 LLM 的性能(以交叉熵损失衡量)遵循一定的数学幂律关系(Power-law)。即:大预言模型的 Loss(损失函数)值与模型参数量(N)、训练数据量(D)、计算资源量(C)这 3 者之间存在着稳定且可预测的数学关系。

  • L:损失函数,收到 N、D、C 的影响。
  • α、β、γ:常数系数,α≈0.076、β≈0.095、γ≈0.05,实际值因任务不同略有调整。如上图所示:
  1. 模型参数量(N):模型的总参数规模越大,Loss 越低。例如:将参数量从 1 亿增至 10 亿,损失下降幅度超过线性增长预期。
  2. 计算资源量(C):训练所用的浮点运算量(FLOPs)与 Loss 呈反向幂律关系,即:更多的计算资源可显著提升模型效果。
  3. 训练数据量(D):如下图所示,LLaMA 表明:随着 D 的增加,模型在分属两类任务的 6 个数据集上的性能都在稳步提高。通过增加 D 和延长训练时间,较小的模型也能表现出良好的性能。仅对模型进行 10M∼100M个词元的训练,就可以获得可靠的语法和语义特征。然而,需要更多的训练数据才能获得足够的常识知识和其他技能,并在典型的下游自然语言理解任务中取得较好的结果。

但值得注意的是,Scaling Law 展示了 NCD 这 3 者之间存在着微妙的平衡关系。若仅扩大其中一项而其他两项受限,将导致收益显著降低。DeepMind 研究表明如果希望模型训练达到计算最优(Compute-optimal),则模型大小和训练词元数量应该等比例缩放,即模型大小加倍则训练词元数量也应该加倍。例如,若 N 增加 8 倍,那么 D 需至少增加 5 倍才能避免过拟合。

另外,在 C 和 N 固定时,增加 D 可以缓解过度拟合,但存在边际递减效应。如下图所示,当 C 固定时,Loss 变化存在一个最优的 D,而不是单存的越多越好。所以,大模型训练需要关注 3 要素的平衡扩展。若仅扩大其中一项而其他两项受限,将导致收益显著降低。

下面是一些主流模型的 N、D 配比:GPT 认为是 1.7 倍,也就是说 175B 的 GPT-3,需要使用 300B token 进行预训练。

开源数据集

Hugging Face(https://huggingface.co/)和魔塔社区(https://www.modelscope.cn/home)是著名的 2 个开源模型和开源数据集的网站,此外还有 OpenDataLab(https://opendatalab.com/)、智源数据平台(https://data.baai.ac.cn/dataset)等等,我们可以在这些网站上下载许多知名的开源数据集。

Pile:用于大语言模型训练的多样性大规模文本数据库,由 22 个不同的高质量子集构成,包括现有的和新构建的,主要来自学术或专业领域。(https://huggingface.co/datasets/Skywork/SkyPile-150B)ROOTS(Responsible Open-science Open-collaboration Text Sources):包含 46 种自然语言和 13 种编程语言,总计 59 种语言,整个数据集的大小约 1.6TB。RefinedWeb:数据源为 CommonCrawl,初始数据总量超过 1PB。经过文档准备、过滤和冗余去除后仅保留了大约 11.67% 的数据。SlimPajama:原始的 RedPajama 包含 1.21 万亿个词元,经过清洗和去重后的 SlimPajama 数据集包含 6270 亿个词元。

  • NFC 正则化(NFC Normalization):过滤非 Unicode 字符。
  • 过滤短文档(Filter Short Documents):过滤了长度少于 200 个字符的文档,长度非常短的内容对模型训练没有作用。
  • 全局去重(Deduplication):包括数据库内和数据库间的去重,有多个阶段,比如构建 MinHashLSH 索引、在索引中进行查询以定位重复项、构建图表示以确定重复连通域,最后过滤每个成分中的重复项。
  • 文档交错与文档重排(Interleave & Shuffle):大语言模型训练大多是在多源数据集上进行的,需要使用指定的权重混合这些数据源。
  • 训练集和保留集拆分(Split Dataset into Train and Holdout):这一步主要是完成第二次随机重排并创建保留集。
  • 训练集与保留集中相似数据去重(Deduplicate Train against Holdout):最后一步是确保训练集和保留集之间没有重叠。

如何学习AI大模型?

如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!

这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!


第一阶段:从大模型系统设计入手,讲解大模型的主要方法;

第二阶段:在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段:大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段:大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段:大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段:以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段:以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

100套AI大模型商业化落地方案

大模型全套视频教程

200本大模型PDF书籍

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

LLM面试题合集

大模型产品经理资源合集

大模型项目实战合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

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

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

相关文章

字节序及IP地址转换

文章目录字节序检测主机字节序字节序转换函数函数原型示例IP地址字符串与二进制转换传统转换函数(IPv4专用)现代转换函数(支持IPv4/IPv6)线程安全的转换字节序 定义:多字节数据在内存中存储或网络传输时各字节的顺序两…

LeetCode 134. 加油站(O(n)时间+O(1)空间最优解)

✨ 本文针对 LeetCode 中等难度题目 134. 加油站,提供一种时间复杂度 O(n)、空间复杂度 O(1) 的最优解法,结合具体思路推导和代码实现,帮你快速吃透这道题。一、题目描述在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i…

【计算机毕业设计案例】基于Springboot的幼儿园综合管理系统基于springboot的幼儿园管理系统基于SpringBoot+Vue的幼儿园管理系统(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

提示工程架构设计实战:旅游行业智能推荐提示系统架构设计全流程

提示工程架构设计实战:旅游行业智能推荐提示系统架构设计全流程 一、标题选项 《提示工程落地指南:旅游行业智能推荐系统架构设计全流程》《从0到1:旅游行业智能推荐提示系统架构实战解析》《旅游推荐智能化:基于提示工程的系统…

【计算机毕业设计案例】基于Java的养老院管理系统的设计与实现基于springboot的养老院管理系统的设计与实现(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

深度学习篇---初看transformer

核心比喻:一个超级强大的“翻译官” 想象一下,你要把一段中文翻译成英文。一个传统的“翻译官”(老式模型)会这样做: 从左到右,一个字一个字地看,看完前面再猜后面。 像个记性不太好的人&…

固高控制板卡驱动安装教程

固高控制板卡驱动安装教程

基于大数据的图书推荐系统的设计与实现-计算机毕业设计源码+LW文档

基于大数据的图书推荐系统的设计与实现 摘要:本文详细阐述了基于大数据的图书推荐系统的研究背景意义、需求分析以及功能设计。该系统旨在解决信息过载下读者选书难和图书销售效率低的问题,通过大数据技术实现精准推荐。需求分析涵盖用户、商家等多方面需…

学术研究的第一步不再困难,AI工具助你轻松优化开题报告模板内容

AI开题报告工具对比速览 工具名称 核心功能 生成速度 适用场景 独特优势 AIbiye 全流程论文辅助 3-5分钟 从开题到定稿 深度学术逻辑构建 AIcheck 精准开题生成 2-3分钟 快速产出初稿 国内院校模板库 AskPaper 文献综述辅助 实时响应 研究现状分析 海量文献…

想要高效完成学术写作?这份AI辅助的开题报告模板是你的最佳选择

AI开题报告工具对比速览 工具名称 核心功能 生成速度 适用场景 独特优势 AIbiye 全流程论文辅助 3-5分钟 从开题到定稿 深度学术逻辑构建 AIcheck 精准开题生成 2-3分钟 快速产出初稿 国内院校模板库 AskPaper 文献综述辅助 实时响应 研究现状分析 海量文献…

Java毕设选题推荐:基于springboot的幼儿园管理系统基于springboot的实验幼儿园信息管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

区间并查集|树状数组

lc3245 lc3244 区间并查集 _并边 i set.find(i 1)) set.merge(i, q[1]-1); 这步实现跳跃 class UFS { public: vector<int> fa; int size; UFS(int n) { fa.resize(n); iota(fa.begin(), fa.end(), 0); size n; }…

计算机Java毕设实战-基于springboot的幼儿园管理系统基于Springboot的幼儿园综合管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【课程设计/毕业设计】基于springboot+vue的实验幼儿园信息管理系统基于springboot的幼儿园管理系统【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

Java计算机毕设之基于SpringBoot+Vue的幼儿园管理系统基于springboot的幼儿园管理系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

Expo+React Native实现鉴权

一、引入相关依赖 npm i @reduxjs/toolkit react-redux expo-secure-store axios依赖 作用@reduxjs/toolkit 简化 Redux 开发的官方工具包,提供标准化的 Redux 最佳实践react-redux 连接 React 组件和 Redux Store 的…

Java毕设项目推荐-基于springboot的养老院管理系统的设计与实现基于SpringBoot+Vue的养老院管理系统【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

Java毕设项目推荐-基于Springboot的幼儿园综合管理系统基于springboot的幼儿园管理系统【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

随笔-无具体内容

本文聚焦数字化新业态下的数据安全创新技术Token化&#xff0c;核心是用非敏感Token替代个人敏感数据&#xff08;PII&#xff09;流通&#xff0c;实现“可用、不可见”&#xff0c;解决数据安全与效率合规的矛盾。 文中先分析数字化时代数据的流动性、可复制性等特征带来的安…

吐血推荐!继续教育10款AI论文平台测评与推荐

吐血推荐&#xff01;继续教育10款AI论文平台测评与推荐 2026年继续教育AI论文平台测评&#xff1a;如何选择高效写作工具&#xff1f; 随着人工智能技术的不断发展&#xff0c;AI论文写作工具逐渐成为继续教育领域的重要辅助工具。然而&#xff0c;面对市场上琳琅满目的平台…