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

李宏毅NLP-8-语音模型

Language Model

在这里插入图片描述
在这里插入图片描述

语言模型的定义(LM)

  • 核心功能:估计token 序列的概率,即 P ( y 1 , y 2 , … , y n ) P(y_1,y_2,…,y_n) P(y1,y2,,yn)
    • Token:可以是单词、字、子词(如 BPE),代表文本的基本单元。
    • 示例:LM 能判断 “我吃饭” 比 “我吃床” 更可能(概率更高),因为前者符合语言规律。

LM 在模型中的应用:HMM vs LAS

(1)HMM(隐马尔可夫模型)

公式: Y = a r g m a x Y P ( X ∣ Y ) P ( Y ) Y=argmax_YP(X∣Y)P(Y) Y=argmaxYP(XY)P(Y)

  • 场景:典型用于语音识别(X 是语音信号,Y 是文字序列)。
  • 分工:
    • P ( X ∣ Y ) P(X|Y) P(XY):建模 “文字→语音” 的映射(如声学模型,需语音 - 文字配对数据)。
    • P ( Y ) P(Y) P(Y):建模 “文字本身的合理性”(如 n - gram 模型,只需纯文本数据)。
  • 意义:通过 “观测概率 + 语言先验” 联合决策,提升预测的合理性(比如避免 “我吃床” 这类语法错误)。

(2)LAS(Listen - Attend - Spell,端到端模型)

公式: Y = a r g m a x Y P ( Y ∣ X ) P ( Y ) Y=argmax_YP(Y|X)P(Y) Y=argmaxYP(YX)P(Y)

  • 场景:同样用于语音识别,但 LAS 是端到端模型(直接学习 “语音→文字” 的映射 P(YX))。
  • LM 的作用:
    • P ( Y ∣ X ) P(Y|X) P(YX) 依赖 配对数据(语音 - 文字对,收集成本高)。
    • P ( Y ) P(Y) P(Y) 依赖 纯文本数据(如互联网文本,容易大规模收集)。
    • 引入 LM 可利用海量纯文本数据,补充 P ( Y ∣ X ) P(Y|X) P(YX) 的不足(比如提升语法合理性)。

3. 数据层面的核心优势

  • P ( Y ∣ X ) P(Y|X) P(YX) (如 LAS 的主模型):
    • 需要 配对数据(如语音 - 文字对),收集难度大(需标注、场景覆盖有限)。
  • P ( Y ) P(Y) P(Y)(语言模型):
    • 只需 纯文本数据(如新闻、小说、社交媒体文本),容易大规模获取(互联网是天然语料库)。

当模型需要输出文本(如语音识别、机器翻译、文本生成)时,语言模型能利用 “易获取的纯文本数据”,补充主模型对 “语言规律” 的学习,提升输出的合理性和准确性。

简单来说:

  • 主模型(如 LAS、HMM 的观测模型)负责 “输入→输出” 的映射,但依赖稀缺的配对数据;
  • 语言模型负责 “输出本身的合理性”,依赖易获取的纯文本数据;
  • 两者结合,实现 “精准映射 + 语言先验” 的双重保障。

N-gram

在这里插入图片描述

  1. 核心目标:估计序列概率**

语言模型的核心是计算 token 序列的概率 P ( y 1 , y 2 , … , y n ) P(y_1,y_2,…,y_n) P(y1,y2,,yn)(如句子 “wreck a nice beach” 的概率)。

2. 问题:数据稀疏性

直接估计长序列概率面临 “数据稀疏” 难题:

  • 训练数据中,完整的长序列(如 “wreck a nice beach”)可能从未出现,无法直接统计其概率。

3. N-gram 的解决思路:分解为短距离条件概率

N-gram 通过 “马尔可夫假设” 简化问题:假设 “每个词的概率仅依赖前 n − 1 n−1 n1 个词”,将长序列概率分解为 短距离条件概率的乘积

(1)链式法则分解(以 2-gram 为例)

以句子 “wreck a nice beach” 为例,利用 链式法则 分解为:
在这里插入图片描述

  • START:序列开始的占位符(如句子开头)。
  • 2-gram(Bigram):每个词仅依赖 前 1 个词,是 N-gram 中最常用的形式。

(2)条件概率的统计估计
P ( b e a c h ∣ n i c e ) P(beach∣nice) P(beachnice) 为例,通过 训练数据中的词对频率 估计:P(beach∣nice)= C o u n t ( “ n i c e b e a c h ” ) Count(“nice beach”) Count(nicebeach)/ C o u n t ( “ n i c e ” ) Count(“nice”) Count(nice)

  • 分子:训练数据中 “nice beach” 同时出现的次数(共现次数)。

  • 分母:训练数据中 “nice” 出现的总次数。

  • 这是 最大似然估计(MLE),核心是 “用频率近似概率”。
    在这里插入图片描述
    N-gram 通过 训练数据中的词频 估计条件概率,但存在先天缺陷:

  • n n n 较大时(如 3-gram、4-gram),问题更严重
    长距离的词组合(如 “the dog jumped”,“the cat ran”)在训练数据中 极难完整出现,导致很多合理的序列被错误估计为 “概率 0”。

假设训练数据只有两句:

  • “The dog ran …”
  • “The cat jumped …”

计算 P(jumped∣the, dog)

  • 含义:前两个词是 “the dog” 时,下一个词是 “jumped” 的概率。
  • 训练数据中,“the dog” 后面接的是 “ran”,从未出现 “the dog jumped”
  • 按 MLE(最大似然估计),概率会被算成 0,但这显然不合理(“The dog jumped” 是合理句子)。

计算 P(ran∣the, cat),按 MLE,概率也会被算成 0,但这同样不合理(“The cat ran” 是合理句子)。

3.根源:数据稀疏(Data Sparsity)

  • 自然语言的 词组合是无限的(如 3-gram 的组合数是 V 3 V^3 V3V 是词表大小,通常很大)。
  • 训练数据 无法覆盖所有可能的 n-gram 组合,导致大量合理组合的频率为 0,进而概率估计为 0。

建议 赋予这些未出现的组合一个 “小概率”(如 0.0001),而非绝对 0。“平滑(Smoothing)” 技术的思想(如加 1 平滑、Kneser-Ney 平滑等),核心是 “让未出现的组合也有微小概率,避免概率为 0 的极端情况”。

数据稀疏导致大量合理序列的概率被错误估计为 0,使模型无法处理未见过的词组合,必须通过平滑技术修正。


Continuous LM

在这里插入图片描述

  • N-gram 的缺陷:依赖离散的词共现计数,未出现的组合概率为 0(数据稀疏)。
  • 连续模型的优势:通过 低维隐向量的泛化能力,即使没见过 “用户 B - 动漫 2” 的组合,也能通过向量内积预测评分(类似神经语言模型用词向量泛化未见过的词组合)。
    在这里插入图片描述
    将推荐系统的矩阵分解思想引入语言模型(Continuous LM)”** 的核心逻辑,用于解决 词组合的稀疏性问题。以下从 模型类比、矩阵结构、向量学习、损失函数 四个维度解析:

1. 核心类比:推荐系统 → 语言模型

  • 推荐系统:处理 “用户 - 物品” 交互矩阵(如用户对电影的评分),通过矩阵分解学习用户和物品的隐向量,预测缺失的评分。
  • 连续语言模型:处理 “词 - 历史上下文” 共现矩阵(如 “dog” 和 “ran” 的共现次数),通过矩阵分解学习 词向量( v i v^i vi上下文向量( h j h^j hj,预测未观察到的词组合概率。

2. 矩阵结构:词 - 上下文的共现计数

(1)行(Vocabulary):词汇

  • 代表 目标词(如 ranjumpedcried…),对应推荐系统的 “用户”。
  • 每个词用 向量 v i v^i vi 表示(如 v 1 v^1 v1ran 的向量, v 2 v^2 v2jumped 的向量)。

(2)列(History):上下文

  • 代表 历史上下文(如 dogcatchild…),对应推荐系统的 “物品”。
  • 每个上下文用 向量 h j h^j hj 表示(如 h 1 h^1 h1dog 的向量, h 2 h^2 h2cat 的向量)。

(3)单元格( n i j n_{ij} nij):共现次数

  • n i j n_{ij} nij i i i 和上下文 j j j 的共现次数(如 n 11 = 2 n_{11}=2 n11=2 表示 “dog” 和 “ran” 共现 2 次; n 22 = 2 n_{22}=2 n22=2 表示 “cat” 和 “jumped” 共现 2 次)。
  • 大量单元格为 0(如 “dog” 和 “jumped” 的 n 21 = 0 n_{21}=0 n21=0),对应 “未观察到的词组合”(数据稀疏)。

3. 向量学习:连续表示的泛化能力

  • 目标:学习词向量 v i v^i vi 和上下文向量 h j h^j hj,使得 向量内积 v i ⋅ h j v^i⋅h^j vihj 尽可能接近实际共现次数 n i j n_{ij} nij
  • 泛化逻辑:
    • 即使某词和上下文未共现( n i j = 0 n_{ij}=0 nij=0),它们的向量内积仍可给出 非零的 “预测共现概率”(如 “dog” 和 “jumped” 的内积 v 2 ⋅ h 1 v^2⋅h^1 v2h1 可预测其共现可能性)。
    • 这解决了 N-gram 的稀疏性缺陷(N-gram 中未出现的组合概率为 0,而连续 LM 通过向量泛化赋予其合理概率)。

4. 损失函数:最小化预测误差

为了学习向量 v i v^i vi h j h^j hj,定义 均方误差(MSE)损失 L = ∑ ( i , j ) ( v i ⋅ h j − n i j ) 2 L=∑_{(i,j)}(v^i⋅h^j−n_{ij})^2 L=(i,j)(vihjnij)2

  • 优化目标:通过梯度下降最小化 L L L,使向量内积尽可能拟合实际共现次数。
  • 类比推荐系统:这与协同过滤中 “最小化预测评分与实际评分的误差” 完全一致。

借鉴推荐系统的矩阵分解思想,将 “词 - 上下文” 的共现关系建模为连续向量的内积,通过学习向量表示泛化稀疏数据,解决 N-gram 的概率估计偏差问题。
在这里插入图片描述

  • N-gram 的痛点:未观察的词组合(如 “dog jumped”)概率被置为 0,需手动平滑(如加小概率)。
  • 连续 LM 的优势:通过 向量相似性的自然传递,未观察的组合会自动获得合理概率(继承相似上下文的关联),实现 “自动平滑”。
    在这里插入图片描述
    可以将这个连续语言模型看作一个神经网络。整个图示清晰地展示了连续语言模型的工作原理,即通过学习历史上下文和词汇的连续向量表示,利用向量内积来预测共现次数,并通过损失函数进行优化,从而自动解决数据稀疏问题,实现更好的泛化能力。
    更进一步的可以扩展到基于神经网络的LM

NN-based LM

在这里插入图片描述
基于神经网络的语言模型(NN-based LM)” 的训练逻辑,核心是 “自回归学习:预测下一个词”,以下分步拆解:

1. 训练数据:纯文本语料

左侧展示 无监督文本数据(如中文句子片段):

  • 例:“潮水 退了 就 知道 誰 …”“不爽 不要 買 …”“公道價 八萬 一 …”
  • 特点:只需纯文本(无需配对数据),符合语言模型 “易收集数据” 的优势。

2. 训练目标:预测下一个词

核心诉求:Learn to predict the next word

  • 给定 前文(context)(如 “潮水 退了”“退了 就”),模型学习预测 下一个词(如 “就”“知道”“誰”)。

3. 网络结构:序列依赖的建模

右侧展示 神经网网络的输入 - 输出关系

  • 输入:前文的词(如 “潮水”+“退了”,“退了”+“就”,“就”+“知道”)。
  • 输出:下一个词的概率分布(如 “就”“知道”“誰”)。
  • 示例对应:
    • 输入 “潮水 退了” → 预测 “就”
    • 输入 “退了 就” → 预测 “知道”
    • 输入 “就 知道” → 预测 “誰”
      完美匹配左侧文本 “潮水 退了 就 知道 誰 …” 的序列依赖。

4. 模型本质:自回归(Autoregressive)学习

  • 自回归:用 前面的词预测后面的词,逐步生成序列。
  • 对比传统 N-gram:
    • N-gram 依赖固定长度的窗口(如 2-gram 看前 1 个词),而神经网络可通过循环结构(RNN)或注意力(Transformer) 捕捉更长距离的依赖。

利用纯文本数据,训练神经网络学习 “前文→下一个词” 的映射,自动捕捉语言的序列依赖,实现比 N-gram 更灵活的长距离建模。

在这里插入图片描述
神经网络的角色:预测下一个词的概率
每个条件概率 P(next word∣context) 由 相同结构的神经网络 计算:

  • 输入:前文(context)的1-of-N 编码(独热编码)。
    • 例:预测 P ( w r e c k | S T A R T ) P(wreck|START) P(wreckSTART)时,输入是 “START” 的独热编码;
    • 预测 P ( a ∣ w r e c k ) P(a|wreck) P(awreck) 时,输入是 “wreck” 的独热编码。
  • 输出:词汇表中每个词作为下一个词的概率分布。
    • 例:第一个 NN 输出 “wreck”,“a”,“nice”… 的概率,其中 “wreck” 的概率最高(对应 P ( w r e c k ∣ S T A R T ) P(wreck|START) P(wreckSTART))。

1-of-N 编码:词的离散表示

  • 独热编码:每个词用一个向量表示,向量长度等于词汇表大小,只有对应词的位置为 1,其余为 0
  • 作用:将离散的词转换为神经网络可处理的数值输入,是 “离散词→连续向量” 的过渡(后续会进化为词嵌入,如 Word2Vec)。
    在这里插入图片描述
    这类想法最早可以追溯到2003年,Bengio 等人提出的神经语言模型(Neural Probabilistic Language Model)架构,是现代词嵌入和神经 LM 的奠基性工作。

神经网络的三级结构

模型目标:给定前 n − 1 n−1 n1 个词(上下文),预测下一个词 w t w_t wt 的概率 P ( w t ∣ w t − n + 1 , … , w t − 1 ) P(w_t|w_{t−n+1},…,w_{t−1}) P(wtwtn+1,,wt1)

  1. 输入层:词嵌入(Word Embedding)
  • 操作:对每个上下文词(如 w t − n + 1 , w t − 2 , w t − 1 w_{t−n+1},w_{t−2},w_{t−1} wtn+1,wt2,wt1),通过 共享的词嵌入矩阵 C C C 查表,得到其 连续向量表示 C ( w ) C(w) C(w)
  • 意义:
    • 替代传统 “独热编码”,将离散词映射到低维连续空间,解决稀疏性问题。
    • 词嵌入矩阵 C C C共享参数(所有词共用),大幅减少参数数量,提升泛化能力。
  1. 隐藏层:非线性特征提取
  • 操作:将多个上下文词的嵌入向量拼接(或组合),输入到 tanh 激活的隐藏层,捕捉词间的复杂交互。
  • 意义:
    • 相比 N-gram 的 “统计共现”,神经网络可学习 非线性的上下文依赖(如语义、语法关系)。
  1. 输出层:Softmax 预测概率
  • 操作:隐藏层输出经过 Softmax 函数,生成词汇表中每个词作为下一个词的概率分布: P ( w t = i ∣ c o n t e x t ) = S o f t m a x ( 隐藏层输出 ) i P(w_t=i|context)=Softmax(隐藏层输出)_i P(wt=icontext)=Softmax(隐藏层输出)i
  • 挑战:
    • 词汇表 V V V 通常很大(如 104∼105),Softmax 计算复杂度为 O ( V ) O(V) O(V),是模型的计算瓶颈(后续通过层次 Softmax、负采样优化)。

解决传统 LM 的两大痛点

  1. 数据稀疏性
    • 词嵌入的连续表示,让语义相似的词(如 “dog” 和 “cat”)在向量空间中靠近,天然实现 “平滑”(未观察的词组合可通过向量相似性泛化)。
  2. 长距离依赖
    • 神经网络的隐藏层可建模 非线性的长距离依赖(虽受限于固定窗口,但为后续 RNN、Transformer 等递归 / 注意力模型奠定基础)。

在 Bengio 论文发表的 2003 年,ReLU 尚未提出(ReLU 在 2010 年后才广泛应用),tanh 是当时比 sigmoid 更优的选择。尽管 tanh 仍有梯度消失问题,但已解决了 sigmoid 的核心缺陷(零中心、梯度强度)。

后来,ReLU 因 计算简单、梯度更稳定(正区间导数恒为 1) 逐渐成为主流,但在 序列建模的早期阶段,tanh 的设计是神经语言模型突破传统 N-gram 的关键一步 —— 它让连续词向量的学习更高效,为后续发展奠定了基础。

综上,图中隐藏层用 tanh,是因为它在 零中心特性、梯度传递效率、非线性表达能力 上更适配神经语言模型的训练需求,相比 sigmoid 更能解决当时的核心痛点(稀疏性、梯度消失、长依赖建模)。


RNN-based LM

在这里插入图片描述
基于 RNN 的语言模型(RNN-based LM)突破 “长历史依赖” 的瓶颈,核心是 用循环隐状态替代固定窗口的独热编码,让语言模型首次具备处理 长距离历史依赖 的能力,为后续 LSTM、Transformer 等模型奠定了 “序列循环建模” 的基础。从 “固定窗口” 到 “动态记忆”,使模型能捕捉句子级甚至段落级的语义关联(如 “猫” 和远早出现的 “鱼” 的关联)
在这里插入图片描述
复杂模型的诞生:突破 RNN 的瓶颈

上方的复杂架构(如神经图灵机变体)针对传统 RNN 的两大痛点设计:

  1. 长依赖遗忘:普通 RNN 隐状态易丢失早期信息 → 引入 显式记忆模块(Memory) 存储长期信息。
  2. 交互粗粒度:对历史信息利用粗糙 → 通过 注意力(Attention)+ 精细寻址(Addressing),像 “数据库查询” 般精准提取记忆。

本质:给 RNN 加装 “外挂记忆” 和 “精细操控系统”,试图处理更长、更复杂的序列(如长文本、程序代码)。

记忆如何 “存” 和 “取”

(1)记忆更新(Update memory)

  • 基于当前输入 w t + 1 w^{t+1} wt+1、注意力 a t a^t at 等,通过 元素乘法(⊙)和加法 动态修改记忆单元:保留关键信息,覆盖冗余内容,让记忆 “可控更新”。

(2)寻址(Addressing)

分五步精细操作(Match→Normalization→Interpolation→Shift→Sharpening):

  • Match:计算查询与记忆的相似度(内积);
  • Normalization:归一化相似度,转化为概率;
  • Interpolation:结合历史权重,平滑读取位置;
  • Shift:微调读取位置(处理序列顺序);
  • Sharpening:强化高概率位置,让读取更聚焦。

像给模型配了 “记忆索引 + 插值微调”,解决 “记忆太多,不知读哪” 的问题,但 架构复杂、训练难度陡增

LSTM 的务实优势:简单有效,经优化仍能打

  • LSTM 的核心价值:通过门控机制(输入 / 遗忘 / 输出门),天然缓解长依赖遗忘,架构比复杂模型简单,训练更稳定。
  • 工程现实:在很多场景中,精心调优的 LSTM(加正则、优化器) 能逼近复杂模型的效果,却避免了高复杂度的代价(训练慢、部署难)。

提升LAS

在这里插入图片描述
如何将语言模型(LM)集成到 LAS 模型(Listen-Attend-Spell,端到端语音识别模型)” 的技术框架,从 “集成时机(when)”“集成方式(how)” 两个维度分类:
在这里插入图片描述
在这里插入图片描述
浅融合(Shallow Fusion) 将语言模型(LM)与 LAS 模型结合,核心是 “解码阶段在输出概率层直接融合,无需修改模型结构”

模块结构:独立训练,解码融合

LAS 解码器

  • 训练目标:学习 P L A S ( Y ∣ X ) P_{LAS}(Y|X) PLAS(YX)(语音→文本的条件概率)。
  • 结构:
    • 黄色模块:解码器的隐状态(如 RNN/LSTM 隐状态),逐步生成输出。
    • 橙色模块:输出层,通过 Softmax 生成 词汇表(大小 V V V)上的概率分布 P L A S ( y ) P_{LAS}(y) PLAS(y)
  1. 语言模型(LM)
  • 训练目标:学习 P L M ( Y ) P_{LM}(Y) PLM(Y)(文本自身的概率,即语言先验)。
  • 结构:
    • 绿色模块:LM 的隐状态(如 RNN 结构),输入为序列结束符 <EOS> 或历史词。
    • 蓝色模块:输出层,通过 Softmax 生成 同词汇表(大小 V V V)的概率分布 P L M ( y ) P_{LM}(y) PLM(y)
  1. 融合层(紫色模块)
  • 操作:在对数域将两者的概率相加(避免数值下溢):

    l o g P 融合 ( y ) = l o g P L A S ( y ) + λ l o g P L M ( y ) logP_{融合}(y)=logP_{LAS}(y)+λlogP_{LM}(y) logP融合(y)=logPLAS(y)+λlogPLM(y)

    • λ:平衡系数(如 λ=0.5,控制 LM 和 LAS 的贡献权重)。
  • 解码决策:对每个位置,选择 融合后概率最高的词(图中 “max” 操作,对应 beam search 等解码算法)。

“浅融合” 的核心特点

  1. “浅” 的本质
    仅在 输出概率层 融合,不修改 LAS 或 LM 的内部结构(如隐藏层、注意力模块),无需重新训练,工程实现简单。

  2. 独立训练,解码复用

    • LAS 和 LM 可 完全独立训练(LAS 用语音 - 文本配对数据,LM 用纯文本数据)。
    • 解码时 “即插即用”,直接结合两者的概率,快速提升输出的语言合理性(如纠正 “我吃床” 为 “我吃饭”)。
  3. 优缺点对比

    优势局限
    实现简单,无训练成本语言信息未参与模型内部决策
    复用预训练模型,灵活适配融合效果弱于 “深融合”(改隐藏层)

在这里插入图片描述

深融合(Deep Fusion) 的核心逻辑,对比浅融合,其关键是 “在模型内部隐藏层融合,需重新训练”,以下分步拆解:

深融合的架构逻辑

  1. 双输入流
  • 绿色路径:语言模型(LM)的信息流(如文本的词嵌入、隐状态,代表语言先验)。
  • 黄色路径:LAS 模型的信息流(如语音编码器输出、解码器隐状态,代表语音→文本的映射)。
  1. 融合层(灰色 Network)
  • 位置:模型的 隐藏层 / 中间特征层(而非浅融合的输出概率层)。
  • 作用:让 LM 和 LAS 的特征 深度交互(如拼接、相加、门控融合),使语言知识参与模型内部的决策过程(如影响 RNN 隐状态更新、注意力权重)。
  • 需要训练,让参数学习 “如何最优结合 LM 和 LAS 的特征”。

更换 LM 的连锁反应

  • 若替换 LM(如从 N-gram 换为 BERT),深融合的 融合层参数是针对旧 LM 训练的,新 LM 的特征分布不同,必须 重新训练融合网络 以适配,否则无法有效融合。

深融合 vs 浅融合:核心对比

维度浅融合(Shallow)深融合(Deep)
融合位置输出概率层(表层)隐藏特征层(深层)
训练需求无需重新训练必须重新训练
语言知识影响仅修正最终输出深度参与特征交互
工程复杂度低(即插即用)高(模型修改 + 重训)

在这里插入图片描述
深融合在此图中选择 SoftMax 之前的 logits(未归一化的线性输出,保留更丰富的梯度信息),要不同 LM 的 输出维度一致(Size V,与词汇表大小匹配),就能替换(如从 N-gram 换为 BERT,只需确保 LM 输出层维度为 V)。通过 “SoftMax 前 logits 融合 + 标准化维度接口”,在保留 “深度特征交互” 优势的同时,提升了 LM 的可替换性 和 训练效率。
在这里插入图片描述
冷融合(Cold Fusion) 的核心逻辑,属于 “预训练 + 微调” 范式,核心是 “训练 LAS 前,用预训练语言模型(LM)的参数初始化 LAS,继承语言知识”。

  • 基于海量纯文本数据,LM 学习语言规律(如词嵌入、RNN/LSTM 参数),得到 通用语言知识(如 “dog” 和 “jump” 的语义关联)
  • 在 LM 预训练参数的基础上,微调适配语音任务(学习 “语音特征→文本” 的映射,修正语言知识与语音场景的偏差
http://www.dtcms.com/a/267825.html

相关文章:

  • 【管理学】组织纪律性与创新性的失衡导致的问题
  • Redis事务机制
  • [论文阅读]VGGFace2: A dataset for recognising faces across pose and age
  • Linux-磁盘管理
  • 【前端工程化】前端工作中的业务规范有哪些
  • 基于评估方法论评估一个大模型的准确度
  • 文心开源大模型ERNIE-4.5-0.3B-Paddle私有化部署保姆级教程及技术架构探索
  • Java面试宝典:网络编程
  • 基于Pandas和FineBI的昆明职位数据分析与可视化实现(五) - 基于随机森林算法预测职位分类
  • 【星闪】Hi2821 | Pinctrl、GPIO + LED灯和按键输入例程
  • 字符函数和字符串函数(下)- 暴力匹配算法
  • python pip 下载慢
  • 在 Dokploy 中为 PostgreSQL 搭建 PgBouncer 数据库连接池(图文)
  • 【influxdb3】如何使用 SQL 对时间序列数据进行聚合查询
  • Golang读取ZIP压缩包并显示Gin静态html网站
  • 51c大模型~合集150
  • 大型语言模型中的自动化思维链提示
  • unity校招岗面试题 天津某场 深圳某场
  • spring中@Transactional注解和事务的实战理解附代码
  • 蓝凌EKP产品:Hibernate懒加载检测与开发助手
  • LoRaWAN的设备类型有哪几种?
  • ABP VNext + Tye:本地微服务编排与调试
  • 1.线性神经网络--线性回归
  • Windows深色模式助手,定时自动切换
  • 热方程初边值问题解法
  • Qt之修改纯色图片的颜色
  • token设计方案
  • 大话网络协议 - HTTP不同版本的演进及其区别
  • 基于Excel的数据分析思维与分析方法
  • Java poi-tl 使用 word 模板 生成 word