自回归生成任务

输入输出长度不匹配的模型输出

翻译任务(如 "我爱中国" 对应输出 "I love China",输入(4 个汉字)与输出(3 个英文单词)长度不同)。


模型输出的三类典型场景

逐元素标签匹配

  • 逻辑:输入的每个向量对应一个输出标签,输入、输出长度均为 N。
  • 适用任务:序列标注类任务(如词性标注,每个单词对应一个词性标签)。

序列级单一标签

  • 逻辑:整个输入序列对应一个输出标签,输入长度为 N,输出长度为 1。
  • 适用任务:序列分类类任务(如文本情感判断,一段文本对应 "正面"/"负面" 等单一标签)。

模型自主决定输出数量

  • 逻辑:模型根据输入自主生成输出标签数量(记为 N'),N' 与输入长度 N 不相等。
  • 适用任务:该课程聚焦的任务类型(如文本生成、摘要,输入长文本后输出长度自主决定的精简内容)。

序列到序列(Seq2seq)生成模型

序列到序列(Seq2seq)是一种用于处理 "输入一段序列、输出一段序列" 任务的模型架构,核心特点是输出序列的长度由模型自主决定,而非与输入长度强绑定。

  • 典型应用案例

    • 语音识别:输入为长度为 T 的语音信号序列,模型自主生成长度为 N 的文本序列(如输入语音信号,输出 "你好吗"),T 与 N 长度不固定。
    • 机器翻译:输入为长度为 N 的中文文本序列(如 "机器学习"),模型自主生成长度为 N' 的英文文本序列(如 "machine learning"),N 与 N' 长度不固定。

Seq2seq 广泛应用于文本摘要、对话生成等任务 ------ 这类任务均需要模型根据输入内容,自主控制输出序列的长度以匹配任务需求。


Transformer 架构解析

遵循 "编码器(Encoder)- 解码器(Decoder)" 范式:

  • 输入序列(Input sequence)先传入 Encoder,由 Encoder 将其编码为特征表示;
  • Encoder 的输出传递给 Decoder,最终由 Decoder 生成输出序列(output sequence)。

底层实现逻辑

  • 该架构的 Encoder/Decoder 基于循环结构(图中链式模块,通常为 LSTM/GRU 等循环神经网络单元),特点是:

    • 需按序列顺序逐元素处理输入(如输入序列的 A、B、C 需依次传入循环单元);
    • <EOS>(End of Sequence,序列结束标志)作为序列的边界:
    • 输入序列处理到<EOS>时,Encoder 完成编码;
    • 输出序列生成到<EOS>时,Decoder 结束生成(图中输出序列包含 W、X、Y、Z,最终以<EOS>收尾)。
  • 架构特点与局限

    • 适用场景:解决输入、输出长度不固定的序列转换任务(如翻译、文本生成);
    • 局限:因循环结构的顺序性,存在长序列信息衰减、并行计算效率低的问题,后续被 Transformer 架构(基于注意力机制)优化。

Seq2seq 生成方式及现存问题

  • 效果差:Encoder 需将输入序列压缩为特征表示,长序列的关键信息易丢失,导致 Decoder 生成的内容与输入语义的匹配度降低;
  • 长度问题:Decoder 生成的输出序列长度难以稳定控制,无法精准适配不同任务对输出长度的需求。

Transformer 是基于 "编码器(Encoder)- 解码器(Decoder)" 的序列到序列架构,核心以注意力机制替代循环结构,提升并行性与长序列建模能力,其结构可分为三部分:

  1. 输入
  • 编码器输入
    • Input Embedding:将输入序列的 token 转换为固定维度的向量;
    • Positional Encoding:注入序列的位置信息(因 Transformer 无循环结构,需显式编码位置顺序),与 Embedding 结果相加作为编码器的输入。
  • 解码器输入
    • Output Embedding:将已生成的输出序列 token 转换为向量;
    • Positional Encoding:同样注入位置信息,且输入需 "右移"(训练时避免解码阶段获取后续未生成的 token)。
  1. 编码器(Encoder):N 层子模块堆叠

每层子模块包含以下组件(均搭配残差连接 + 层归一化 "Add & Norm"):

  • 多头注意力(Multi-Head Attention):同时关注输入序列的不同位置信息,捕捉全局依赖;
  • 前馈网络(Feed Forward):对多头注意力的输出做独立的线性变换,增强特征表达能力。
  1. 解码器(Decoder):N 层子模块堆叠

每层子模块包含以下组件(均搭配残差连接 + 层归一化 "Add & Norm"):

  • 掩码多头注意力(Masked Multi-Head Attention):防止解码时关注后续未生成的 token,保证生成的自回归性;
  • 多头注意力:以编码器的输出为 "键 / 值"、解码器的中间输出为 "查询",实现对输入序列的针对性关注;
  • 前馈网络:与编码器的前馈网络功能一致,增强特征表达。
  1. 输出层
  • Linear 层:将解码器的输出映射到目标词汇表的维度;
  • Softmax 层:将输出转换为各 token 的概率分布,得到最终的输出序列。

架构价值:Transformer 解决了传统循环式 Seq2seq 的 "长序列信息衰减""并行效率低" 等问题,是现代自然语言处理任务(如翻译、文本生成)及大语言模型(如 GPT、BERT)的核心基础架构。


编码器encoder

Transformer 编码器采用与 BERT 完全一致的网络架构,这是其实现上下文语义理解的基础。

  • 输入:接收序列形式的输入(图中为x¹-x⁴,代表序列中的不同 token);
  • 输出:为每个输入 token 生成对应的特征表示(图中为h¹-h⁴),实现输入序列的语义编码。

编码器的单层组件(各模块后均搭配残差连接 + 层归一化 "Add & Norm"):

  • 输入嵌入(Input Embedding):将输入 token 转换为向量表示;
  • 位置编码(Positional Encoding):注入序列的位置信息,弥补 Transformer 无循环结构的顺序信息缺失;
  • 多头注意力(Multi-Head Attention):捕捉输入序列的全局依赖关系;
  • 前馈网络(Feed Forward):增强特征的非线性表达能力。

解码器Decoder

"将 Encoder 提取的特征直接当作 Decoder 输入" 的做法,会直接导致图中提到的 "效果差""长度失控" 两个核心问题,原因如下:

  1. 效果差:丢失生成序列的上下文逻辑

Encoder 的输出是输入序列的语义特征编码 (比如图中 "機器學習" 对应的语音,Encoder 输出的是该语音的语义特征序列),但 Decoder 的核心任务是生成连贯的目标序列

  • 若直接用 Encoder 特征当 Decoder 输入:Decoder 失去了 "已生成 token 的上下文依赖",只能基于输入的语义特征生成,无法保证序列的逻辑连贯性(比如生成的 "機、器、學、習" 可能语义脱节),最终效果大幅下降。
  1. 长度失控:生成长度与需求不匹配

Encoder 的输出长度是与输入序列长度绑定的(比如输入语音对应 4 个 token,Encoder 输出 4 个特征),但 Decoder 要生成的目标序列长度:

  • 可能与输入长度不一致(比如翻译任务中,英文输入长度≠中文输出长度);
  • 若直接用 Encoder 特征当输入:Decoder 的输入长度固定为 Encoder 的输出长度,只能生成与输入长度相同的序列,无法灵活匹配目标序列的实际长度需求,出现 "长度不符合预期" 的问题。

所以我们需要自回归生成:

自回归生成方式

生成起点:Decoder 以特殊 token "START" 作为初始输入,启动序列生成过程。

核心机制:逐 token 自回归生成

  • 概率分布输出:Decoder 每一步会输出对应词汇表(Size V,包含常用字符)的概率分布(如图中 "机" 的概率为 0.8);
  • token 选取:通过 "max" 操作选取当前概率最大的 token(此处为 "机")作为当前生成结果;
  • 循环生成:该生成的 token 会作为 Decoder 下一步的输入,重复 "输出概率分布 - 选 token" 的流程,直至生成结束 token,完成序列生成。

以 "前一步生成结果作为后一步输入" 的逻辑保证序列生成的顺序性,但因逐 token 生成的特性,存在生成效率较低(无法并行生成多个 token)的局限。

输入处理:Encoder 接收 "机器学习" 对应的语音信号序列,将其编码为特征表示后传递给 Decoder。

逐步自回归生成:

  1. 步骤 1:以特殊 token "START" 为初始输入,通过 "max" 操作从输出概率分布中选取 "机";
  2. 步骤 2:以 "机" 为输入,生成 "器";
  3. 步骤 3:以 "器" 为输入,生成 "学";
  4. 步骤 4:以 "学" 为输入,生成 "习";
  5. 步骤 5:以 "习" 为输入,生成 "呀"。(示例中出现的语义偏离情况)。

潜在局限:

  • 采用 "贪心式"(选当前概率最大 token)的生成策略,易陷入局部最优,可能出现生成内容偏离原输入语义的情况(如图中最终生成的 "呀" 与目标内容 "机器学习" 不匹配)。

Decoder 的结构

其结构通过多层模块支撑自回归生成的合理性与顺序性:

输入处理:

  • Output Embedding:将已生成的 token 转换为向量表示;
  • Positional Encoding:注入位置信息,弥补无循环结构的顺序信息缺失;
  • 输入 "右移(shifted right)":训练阶段避免解码时获取后续未生成的 token,匹配自回归的生成逻辑。

多层子模块(N 层堆叠):

  1. Masked Multi-Head Attention:防止解码时关注后续 token,保障自回归生成的顺序性;
  2. Multi-Head Attention:结合 Encoder 的输出,捕捉输入序列与当前生成内容的语义关联;
  3. Feed Forward:增强特征的非线性表达能力;
  4. 各模块后搭配 "Add & Norm(残差连接 + 层归一化)":稳定训练过程,保留关键特征信息。

输出层:

  1. 通过 Linear 层映射到词汇表维度,经 Softmax 输出 token 的概率分布,为 "max" 操作(选取当前概率最高的 token)提供依据。

顺序链式依赖问题

自回归生成的核心逻辑是 "前一步的输出作为后一步的输入",每一步的生成结果都严格依赖上一步的输出,形成顺序链式依赖关系。

错误传递过程

  • 第一步:Decoder 基于 "START" 生成 "机"(与目标 Label 一致,正确);
  • 第二步:本该基于 "机" 生成 "器",但错误生成 "气";
  • 后续影响:由于自回归的依赖逻辑,第三步及之后的生成会以错误的 "气" 作为输入,而非正确的 "器",导致后续生成完全偏离目标序列(原本目标为 "机器学习")。

自回归的顺序链式依赖,使得某一步的错误会被传递到后续所有步骤,形成错误的累积放大,最终导致整个生成序列偏离预期目标。(一错全错)


Teacher Forcing(教师强制)

自回归(AR)模型的推理阶段必须逐 token 串行生成(前一步输出是后一步输入),但如果训练阶段也串行,效率会极低(比如生成 100 个 token 的序列,就要串行计算 100 次)。

Teacher Forcing 的核心目标是:训练时用 "完整目标序列" 做输入,实现全序列并行计算(一次算完所有 token 的输出);

  1. Teacher Forcing(教师强制)
  • 训练时,Decoder 的输入不是 "模型自己生成的 token",而是人工标注的完整目标序列(右移一位)
  • 右移的目的:让 Decoder 的第i步输入对应第i步的目标输出(比如生成 "机器学习",目标序列是[机, 器, 学, 习],Decoder 输入是[START, 机, 器, 学]);
  • 作用:避免训练阶段依赖模型自身生成的错误 token(推理阶段才会依赖),同时为 "并行计算" 提供完整的输入序列。

但是会出现一个问题,如果把人工标注的完整目标序列作为输入,模型会偷懒偷看答案,不推理,直接把下个词的输入作为输出。

怎么办呢?


"Masked"(掩码)

MASK 的位置

  1. 作用于 Transformer Decoder 的 "Masked Multi-Head Attention" 模块中。

核心功能

  1. 防止 Decoder 在生成当前 token 时,获取后续未生成的 token 信息 (即 "未来信息泄露"),保证序列生成的自回归顺序性(只能基于已生成的 token 生成下一个 token)。

具体机制

  1. 在注意力计算时,MASK 会对 "当前 token 之后的位置" 施加掩码(通常通过下三角矩阵实现:将后续位置的注意力权重设为极小值,如负无穷)。
  2. 经过 Softmax 层后,这些被掩码的位置权重会趋近于 0,使得模型仅能关注 "当前及之前已生成的 token",无法利用后续未生成的内容。

必要性

  1. Decoder 的任务是逐 token 自回归生成序列(如翻译、文本生成),若允许模型关注后续 token,会破坏生成的顺序逻辑(相当于 "提前知道了答案"),导致训练与实际生成的逻辑不一致,最终影响生成结果的合理性与准确性。

(对比:Encoder 的 Multi-Head Attention 无此 MASK,因为 Encoder 需完整关注输入序列的所有位置,无需限制注意力范围)


Teacher Forcing + Mask 的核心目标是:

  • 训练时用 "完整目标序列" 做输入,实现全序列并行计算(一次算完所有 token 的输出);
  • 同时通过 Mask 屏蔽 "未来信息",保证训练逻辑和自回归推理逻辑一致(模型只能看到当前及之前的 token)。

在 Self-attention 基础上增加掩码约束MASK

  • 核心修改:限制每个输入元素的注意力范围,仅允许关注 "当前及之前的元素"(如只能关注只能关注a¹、a²);
  • 实现方式:通过掩码矩阵屏蔽 "后续元素" 的注意力连接(图中原本的全连接会被截断);
  • 作用:避免自回归生成场景下的 "未来信息泄露",保证序列生成的顺序性(比如文本生成时,生成当前 token 不能依赖后续未生成的 token)。

Self-attention: 计算第 2 个位置的输出时,第 2 个位置的查询向量会与 ** 所有位置的键向量(k¹、k²、k³、k⁴) 计算注意力权重(α'₂,₁、α'₂,₂、α'₂,₃、α'₂,₄),最终所有位置的值向量(v¹~v⁴)的加权组合。

简言之:无范围限制,能关注整个序列的所有元素

Masked Self-attention:

计算第 2 个位置的输出时,通过掩码矩阵 限制了注意力范围:图左侧的掩码矩阵(第二行是[1,1,0,0])规定:第 2 个位置仅能关注前 2 个位置(a¹、a² ,无法关注后续位置(a³、a⁴)。反映在图中:仅与k¹、k²计算有效注意力权重(α'₂,₁、α'₂,₂),k³、k⁴对应的权重被屏蔽(图中无连接),最终仅是v¹、v²的加权组合。


  • Self-attention :适用于需要全局上下文信息的场景(如 Transformer 的 Encoder),比如文本理解任务(需同时捕捉 "机器学习" 中 "机" 与 "习" 的关联),无顺序生成的约束。

  • Masked Self-attention :适用于自回归生成场景(如 Transformer 的 Decoder),比如文本生成任务(生成 "机" 后,不能提前依赖未生成的 "学、习"),通过掩码防止 "未来信息泄露",保证生成的顺序性。


"输出长度控制" 问题

自回归生成的核心痛点之一:无法自主控制输出长度

  1. 自回归生成的逻辑是 "前一步输出作为后一步输入",但模型本身没有 "停止生成" 的内置机制:
  • 图中 Decoder 已生成目标序列 "机器学习",但仍继续生成无关 token(如 "惯"),出现 "Never stop!" 的无限生成风险;
  • 核心疑问是 "如何知道要输出多长"------ 自回归生成默认无法自主判断 "目标序列已完成"。
  1. 问题的本质原因

自回归生成的逐 token 链式依赖逻辑,仅定义了 "如何生成下一个 token",但未定义 "何时停止生成",因此会持续生成 token,直到人为干预。

  1. 解决方法:引入 "终止 Token"(如 END/EOS)

通过在词汇表中加入特殊的 "终止 Token"(End of Sequence, EOS),实现长度控制:

  • 训练阶段:将目标序列处理为 "目标内容 + 终止 Token"(如 "机器学习 + END"),让模型学习 "生成完目标内容后,输出终止 Token";
  • 推理阶段:当 Decoder 生成 "终止 Token" 时,立即停止生成,从而控制输出长度,避免无限生成的情况。

交叉熵损失计算逻辑

自回归模型训练中的交叉熵损失计算逻辑

训练阶段通过最小化交叉熵损失让模型学习生成正确 token 的过程:

1. 输入与目标配置

  • Encoder 输入:接收 "机器学习" 对应的语音信号序列,编码为特征表示后传递给 Decoder;
  • Decoder 输入 :以特殊开始符<BOS>(Begin of Sequence)为初始输入,启动序列生成;
  • 目标 Label :真实输出序列为 "机、器、学、习",当前训练步骤的目标 token 是 "机"(即Ground truth)。

2. Decoder 的输出:概率分布

Decoder 处理后,输出整个词汇表(Size V)的概率分布

  • 每个 token 对应一个概率值(如图中 "机" 的概率是 0.7,"学""器""鬼" 的概率均为 0.1);
  • 该分布代表模型对 "当前步骤应生成哪个 token" 的预测结果。

3. 损失计算:最小化交叉熵

交叉熵的作用是衡量 "模型预测的概率分布" 与 "真实标签分布" 的差异

  • 真实标签分布:以 one-hot 形式表示(仅目标 token "机" 对应值为 1,其余 token 对应值为 0,如图左侧表格所示);
  • 交叉熵损失 :计算 "预测分布" 与 "真实分布" 的交叉熵,训练的核心目标是最小化这个损失------ 让模型预测的概率分布尽可能接近真实标签分布(即让 "机" 的概率尽可能高,其他 token 的概率尽可能低)。

通过持续最小化交叉熵损失,模型会逐步学习 "基于当前输入(如<BOS>)生成正确的目标 token(如 "机")",最终掌握整个序列的生成逻辑。


训练与测试的流程差异

平常任务 vs 生成任务:训练与测试的流程差异

1. 平常任务:训练与测试方式一致

  • 核心逻辑:"训练时的方式,即为测试时的方式"。
  • 示例(如图像分类):训练阶段是 "输入图片→提取特征→输出分类结果";测试阶段的流程完全相同,输入、处理逻辑、输出方式均无差异。
  • 特点:训练与测试的流程、输入输出逻辑高度统一,无流程上的割裂。

2. 生成任务:训练与测试方式完全不同

生成任务(如文本生成)的训练和测试,在流程、计算方式上均存在明显差异:

(1)训练阶段:整体并行

  • 核心策略:采用Teacher Forcing(将真实标签直接作为 Decoder 输入),结合Mask屏蔽未来信息。
  • 流程:Decoder 输入是 "START+完整真实标签"(如 "START + 机 + 器 + 学 + 习"),借助 Mask 保证仅关注当前及之前的 token,同时实现全序列并行计算(一次处理所有 token)。
  • 特点:效率高,避免模型依赖自身生成的错误内容。

(2)测试阶段:整体串行

  • 核心逻辑:自回归逐 token 生成。
  • 流程:测试时无真实标签,只能以 "模型自己生成的前一个 token" 作为下一个 token 的输入(如从START生成 "我",再用 "我" 生成 "爱",以此类推),逐 token 串行处理
  • 特点:流程与训练阶段完全割裂,只能依赖自身生成的内容,存在 "错误传递" 风险。

总结

  • 平常任务:训练 = 测试,流程统一;
  • 生成任务:训练(并行、依赖真实标签)≠ 测试(串行、依赖自生成内容),这是生成任务 "暴露偏差" 问题的核心来源。

Beam Search(束搜索)

解决自回归生成中 "贪婪策略的局部最优" 与 "全路径搜索的高计算量" 矛盾

1. 背景:贪婪策略的局限与全路径搜索的不可行

  • 贪婪策略(图中蓝色路径) :每一步仅选择当前概率最大的 token(如选 0.6 而非 0.4),但这种 "短视" 选择会陷入局部最优------ 某一步的高概率,可能导致后续序列的总概率更低。
  • 全路径搜索 :遍历所有可能的 token 组合(图中 "所有 paths"),能找到总概率最高的 "最好策略"(图中红色路径),但当词汇表或序列长度较大时,路径数量呈指数增长,计算量完全不可行(即图中 "Not possible to check all the paths")。

2. Beam Search 的核心逻辑

Beam Search 通过保留 Top-K 个候选序列(K 为束宽),平衡计算量与结果质量:

  • 初始阶段:从START开始,生成所有可能的第一个 token,保留概率最高的 K 个序列;
  • 迭代扩展:每一步对当前保留的 K 个序列,分别扩展所有可能的下一个 token,计算每个新序列的总概率,再保留总概率最高的 K 个序列;
  • 终止条件:当候选序列生成终止符(如<EOS>)时,停止扩展,最终从所有候选中选总概率最高的序列。

3. 图中示例的直观体现

图中假设词汇表仅含 2 个 token(A、B):

  • 贪婪策略(蓝色)仅保留当前最优的单个序列,错过后续总概率更高的路径;
  • Beam Search 会同时保留多个候选(如束宽 K=2),既避免全路径的高计算量,又能捕捉到 "总概率更高的最好策略"(红色路径)。

总结

Beam Search 是自回归生成中常用的解码策略:以可控的计算量,避免贪婪策略的局部最优,同时比全路径搜索更高效,最终得到更接近全局最优的生成序列。

Cross Attention(交叉注意力)

  1. Cross Attention 位于 Transformer 的Decoder 层内
  • 在 Decoder 的Masked Multi-Head Attention(掩码自注意力)之后;
  • Feed Forward(前馈网络)之前;
  • 每一层 Decoder 都会包含这一模块(图中 "N×" 代表多层堆叠)。
  1. Cross Attention 是Encoder 与 Decoder 之间的信息桥梁
  • Decoder 中 Masked 自注意力的输出作为 "查询(Query)";
  • Encoder 的最终输出作为 "键(Key)" 和 "值(Value)";
  • 通过注意力计算,让 Decoder 在生成当前 token 时,能关注到输入序列(Encoder 编码的内容)的全局信息

例如在翻译任务中:Decoder 生成目标语言的 "机" 时,Cross Attention 会让它关联到源语言中对应的 "machine"(Encoder 编码的内容),保证生成内容与输入语义一致。

  1. 与自注意力的区别

Cross Attention 和 Transformer 中的自注意力(如 Encoder 的 Multi-Head Attention、Decoder 的 Masked Multi-Head Attention)的核心差异是:

  • 自注意力:是单一序列内部的注意力(如 Encoder 关注输入序列自身的上下文,Decoder 的 Masked 自注意力关注输出序列自身的已生成内容);
  • Cross Attention:是两个不同序列之间的注意力(连接输入序列与输出序列),是 Encoder 向 Decoder 传递信息的唯一方式。

Cross Attention 是 Transformer 实现 "输入 - 输出语义对齐" 的关键模块,保证了生成内容与输入的关联性。


Cross Attention 的具体计算流程与信息传递逻辑

1. 输入来源:分别来自 Encoder 与 Decoder

  • Encoder 侧的 "信息池" :Encoder 处理输入(如图中的语音信号)后,输出序列特征a¹、a²、a³;每个特征会被转换为对应的键(Key,k)值(Value,v),这是 Cross Attention 可调用的 "输入语义信息"。

  • Decoder 侧的 "当前状态" :Decoder 以特殊符START为起点,先经过Masked Self-attention ,得到当前生成步骤的查询(Query,q)------ 这是 Decoder "当前生成状态" 的特征表示。

2. Cross Attention 的计算步骤

"用 Decoder 的查询,匹配 Encoder 的键,加权 Encoder 的值":

  1. 计算注意力得分 :用 Decoder 的q,分别与 Encoder 的k¹、k²、k³计算注意力得分(图中α'₁、α'₂、α'₃),得分越高代表q与对应k的语义关联越强;
  2. 得分归一化(隐含步骤):对得分做 Softmax 处理,得到总和为 1 的注意力权重;
  3. 加权融合值向量 :用归一化后的权重,对 Encoder 的v¹、v²、v³做加权求和,得到融合了输入语义的特征向量;
  4. 全连接转换 :加权后的向量经过FC(全连接层)处理,作为 Decoder 后续模块的输入。

3. 核心作用:保证生成内容与输入语义对齐

Cross Attention 是 Encoder 向 Decoder 传递信息的唯一通道:

  • 它让 Decoder 在生成序列时,能精准关联 Encoder 输入中与当前状态相关的信息(比如生成 "机" 时,自动关注 Encoder 中对应 "machine" 的特征);
  • 结合 Decoder 内的 Masked Self-attention(捕捉已生成内容的上下文),Cross Attention 让生成的内容既符合自身逻辑,又与输入语义保持一致。
相关推荐
NAGNIP6 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab7 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab7 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP11 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年11 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼11 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS11 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区12 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈12 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang13 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx