跳到主要内容Qwen3 系列模型对比及长上下文训练技术解析 | 极客日志编程语言AI算法
Qwen3 系列模型对比及长上下文训练技术解析
综述由AI生成详细对比了 Qwen3 系列四大模型(Max、Next、Omni、Coder)的架构定位、训练方式及核心差异。重点解析了 Qwen3 如何通过分阶段训练策略(S0-S3)实现 256K 超长上下文扩展,包括动态权重调整与平方根重加权调节机制。此外,文章深入探讨了 RoPE(旋转位置编码)的数学原理,形式化说明了其相对于 Sinusoidal 编码在长序列外推、维度处理及训练稳定性方面的优势,为理解大模型长上下文技术提供了理论支撑。
字节跳动24 浏览 Qwen3 系列模型对比及长上下文训练技术解析
本文总结 Qwen3 家族的主要成员:Qwen3‑Max、Qwen3‑Next、Qwen3‑Omni、Qwen3‑Coder 的架构定位、训练方式及设计差异。这些信息基于公开资料整理而成。
一、Qwen3 家族主要成员对比
1. Qwen3-Max
定位(旗舰通用大模型)
Qwen3‑Max 是 Qwen3 系列中最顶级、参数规模最大(超过 1 T 级别)的基线通用模型,覆盖文本、推理、编程、智能体等多个通用能力。
架构特点
- 基于 Qwen3 系列核心 Transformer + 混合稀疏(MoE)架构,延续了 3 代设计范式。
- 支持超长上下文(高达百万级 token 训练/推理)。
- 引入全球负载均衡 loss、流水并行等训练稳定性优化,使得在超大规模下训练更高效、更稳定。
训练方式
- 预训练使用了极大规模语料(如 36 T tokens),混合语言 + 多任务预训练。
- 持续训练/后期 Instruct 调优以改善对话、推理与编程表现。
优势
- 最强通用能力、长上下文理解、推理和复杂任务表现优异。
- 稀疏专家架构显著降低有效推理成本。
2. Qwen3-Next
定位(下一代高效架构)
Qwen3‑Next 是 Qwen3 系列'下一代'架构设计,目标是提升 计算效率和长上下文性能,保持甚至超过同规模密集模型的表现。
架构特点
- 引入 混合注意力机制 + 高稀疏度 MoE,在推理时只激活少量参数(例如 80B 总参数,推理仅激活 3B)。
- 支持高效长上下文推理,吞吐量远高于传统密集模型。
- 包含多 token 预测机制(MTP) 等优化以加速推理。
训练方式
- 保持大规模预训练与 Qwen3 核心语料一致,但在训练策略与稀疏专家路由上优化以提升质量与效率。
优势
- 训练与推理极高效率(参数大、计算量低)。
- 特别适合大型语境下的理解、代码和推理任务。
- 更低的训练成本、推理更快。
3. Qwen3-Omni
定位(原生端到端全模态大模型)
Qwen3‑Omni 是 Qwen3 系列第一个统一处理文本、图像、音频和视频的全模态模型。
架构特点
- 内含文本、视觉、语音、视频编码与融合模块,实现 多模态理解和生成(可输出文本或语音)。
- 设计了不同用途的变体(Instruct、Thinking、Captioner),分别优化生成、推理和字幕任务。
- 多语种、多语音输入覆盖广泛语言和方言。
训练方式
- Multi‑modal unified 训练策略:文本 + 图像 + 音频 + 视频样本共同训练,使模型在多种任务之间协同学习。
- 支持端到端的实时流式输入处理。
优势
- 真正统一多模态输入/输出。
- 适合跨媒体交互、实时语音和视觉理解。
- 实际应用丰富(如语音助手、音视频问答)。
4. Qwen3-Coder
定位(代码专用模型)
Qwen3‑Coder 是 Qwen3 系列针对编程及软件工程任务,训练聚焦代码生成、理解、修复与推理。
细分出的专用模型
- 通常基于 Qwen3 核心架构,但通过针对性任务微调与联合训练提升代码能力。
- 优化推理流程以加速代码生成/补全。
- 在通用大模型基础上进行 编程语料专用 fine‑tuning。
- 部分训练数据可能联合使用来自 Qwen Code 和其他系统的编码数据进行增强。
- 对编程语义理解和长逻辑代码生成表现更优。
- 代码安全性和速度优化。
- 在 SWE‑Bench 等实际编码基准上表现优异(公开评测结果显示领先优势)。
二、核心差异总结(架构 + 训练)
| 维度 | Qwen3‑Max | Qwen3‑Next | Qwen3‑Omni | Qwen3‑Coder |
|---|
| 目标定位 | 旗舰通用能力 | 高效长上下文模型 | 端到端全模态 | 代码任务优化 |
| 核心架构 | MoE 大规模 Transformer | 混合注意力 + 高稀疏性 MoE | 多模态统一框架 | Qwen3 基础 + 代码任务优化 |
| 编码能力 | 文本/通用 | 文本/长上下文 | 文本 + 图像 + 音频 + 视频 | 文本 + 代码 |
| 训练语料 | 通用大规模语料 | 能效和上下文优化训练 | 多模态融合语料 | 编程与逻辑专用语料 |
| 推理优化 | 强 | 极强(效率最好) | 多模态实时 | 针对代码任务快速 |
| Parameter Scale | 1T+ | ~80B(高效激活 3B) | 取决于变体 | 中等‑大型(如 7B–32B) |
三、Qwen3 长上下文扩展机制
Qwen3 系列如何通过分阶段训练扩展到超长上下文(如 256K Token)的核心机制如下:
1. 分阶段训练策略(Progressive Training)
Qwen3 系列(包括通用和多模态版本)为了从传统的 4K/32K 上下文扩展到 256K,采用了 分阶段训练 的方法:
阶段 S0 / S1 — 基础语言 + 通用预训练
- 序列长度较短(例如 4K 或类似传统上下文),用于学习基本语言、知识与推理能力。
- 模型参数大部分处于学习通用分布状态。
- 这部分训练覆盖了海量语料(几十万亿 token),为长上下文能力奠定基础。
阶段 S2 — 长上下文预训练
- 将训练序列长度提升到更大的级别,如 32K tokens。
- 以长文档、长对话、多段落逻辑任务为主的数据,训练模型在更大的窗口中建模语义依赖关系。
- 在这个阶段,模型开始学习跨更长文本的语义连贯性和信息传递。
阶段 S3 — 超长上下文适应(Ultra‑Long Context)
- 将上下文窗口进一步提升至 256K tokens。
- 训练数据主要是真正的超长数据:如完整论文、书籍章节、企业级文档、代码库、长视频/多帧视觉内容等。
- 采用动态权重、重加权调节(如平方根重加权)策略来平衡不同长度、不同模态的损失,使长上下文训练不压制短上下文性能。
总结:这种分阶段策略先让模型学习基本语言模式,再逐渐引入更长上下文训练,使得模型从短到长逐步习得长距离依赖的模式,而不是一次性在超长序列上训练(效率极低且不稳定)。
2. 核心技术要点
位置编码(Position Encoding)设计
- Qwen3 系列依然使用 RoPE(Rotary Positional Embedding) 或其增强版本作为位置编码基础,这种编码机制本身具有 一定的外推能力(extrapolation),即可以在比训练最大位置更长的序列上大致保持推理连贯性。
- 在训练过程中,通过逐步放大位置编码的训练长度,让模型逐阶段适配更长的 RoPE 范围,而不是暴力从 4K 扩到 256K,这样能更稳定地保留短、中、长序列的注意力模式。
数据构造与长序列采样策略
为了有效训练 256K 的上下文能力,必须构造大量长序列数据:
- 长文档拼接:把多个相关文档/章节拼接成单个训练片段,让模型在训练中看到长达 100K+ 的真实连贯上下文。
- 特定任务长序列:例如总结、全文检索、跨段落推理、跨页 OCR 文档解析、长视频字幕、代码库分析等,这些任务要求模型保留大量前文信息。
框架与优化调整
- 激活检查点(Activation Checkpointing) 和分布式张量并行机制,以控制 GPU 内存消耗。
- 混合精度训练(如 FP8 / 8‑bit) 以提升训练效率,同时在长序列中保持数值稳定。
- 某些版本(如 Qwen3‑Next)引入了特定注意力优化和 RoPE 扩展机制(如 Yarn/YaRN),这类方法允许模型在推理时进一步外推到更大上下文(如 1M tokens)。
3. 从训练到推理:外推能力
即使训练最大上下文窗口是 256K tokens:
- Qwen3 在推理部署时可以借助 RoPE scaling(如 YaRN) 等技术外推到 更大窗口(如百万级 tokens)。
- 这种扩展不是通过单纯训练更长序列,而是通过 位置编码调整 + 推理框架支持 实现的。
- 这种方法在许多长文档与大规模代码分析场景中能有效保持语义连贯性。
四、动态权重与重加权调节
动态权重和重加权调节(如平方根重加权)策略在训练过程中被用来平衡不同长度的序列输入,使得模型在面对不同上下文长度时仍能稳定学习和有效推理,尤其是当涉及超长上下文时。
1. 动态权重调整(Dynamic Weighting)
基本概念
动态权重调整指的是根据输入序列的长度、复杂度或重要性动态地改变训练样本的权重。在 Qwen3 系列的训练中,这通常是用来应对不同长度上下文的影响,使得训练过程中长序列和短序列能得到相对均衡的训练效果。
具体实现
- 在训练过程中,模型会通过动态调整训练样本的权重来增强对长序列的学习能力。
- 长序列的训练损失可能比短序列的损失更大(因为它们通常含有更多的信息和更复杂的依赖),因此通过调整损失的权重,来平衡不同长度上下文的影响。
动态权重调整的方式:
- 使用 基于序列长度的权重因子,例如较长的序列可能被赋予较大的权重,以增强模型对长距离依赖的学习。
- 按比例加权:比如,对某一长度以上的训练样本(如 32K、256K tokens),按序列长度的比例增加权重,这样会增加模型在长序列上的训练负担,并帮助其学到更多的长期依赖关系。
2. 平方根重加权调节(Root-based Reweighting)
基本概念
平方根重加权调节是一种常见的训练策略,用来调整损失函数中的权重,目的是平衡不同长度序列对模型学习的影响。在 Qwen3 的超长上下文训练中,使用此策略来处理长序列和短序列之间的损失差异。
具体实现
平方根重加权的核心是对 损失函数 或 梯度 进行加权时使用平方根形式的函数,使得长序列的梯度不会过大,避免在训练过程中对模型更新造成过大干扰。
- 平方根权重函数:如果一个序列的长度为 $L$,那么在损失函数中,长度较长的序列会根据 $\sqrt{L}$ 进行加权。
- 例如,假设训练过程中损失函数为 $\mathcal{L}$,损失会加上一个基于输入长度 $L$ 的加权项:
- $\mathcal{L}_{adjusted} = \mathcal{L} \times \sqrt{L}$
- 这样,长序列的损失会相对增加,但不会比短序列多得过于严重,而短序列的损失则相对较小。
- 通过这种方式,模型能够在训练中处理来自短序列和长序列的不同影响,避免长序列的梯度过大。
平方根重加权的目标
- 平衡长序列和短序列在训练过程中对模型的影响,防止长序列的训练过于主导。
- 提升对长文本/长文档的理解和推理能力,同时保留短文本任务的训练质量。
- 通过重加权机制,避免了过长序列在训练时造成的模型更新不稳定性。
3. 应用于 Qwen3 的训练过程
在 Qwen3 的分阶段训练过程中,超长上下文(如 256K tokens)需要特别的调整和优化:
阶段性损失调整
- 在训练 长上下文模型(如 256K tokens),损失函数会根据当前序列长度动态加权。在训练过程中,使用平方根或类似的加权策略,可以让模型逐渐适应从 短文本到长文本 的推理能力扩展。
- 训练的过程中,模型会逐步引入不同长度的训练样本,而对长文本样本给予额外的'学习负担',以此加强模型对长依赖关系的捕捉能力。
超长上下文的具体加权机制:
- 使用 加权梯度:每次模型在超长序列上进行更新时,梯度大小会根据序列长度进行调节,例如:长序列的损失梯度会被增强,但不会比短序列过大。
- 这种加权机制使得训练在长序列时不会导致梯度爆炸,且能够有效提升模型的长距离依赖学习能力。
4. 重加权调节策略的总结
| 策略 | 具体方法 | 优势 |
|---|
| 动态权重调整 | 根据序列长度动态改变训练样本的权重 | 平衡长短序列在训练过程中的影响,提升长序列的训练效果 |
| 平方根重加权 | 长序列损失按 $\sqrt{L}$ 加权 | 防止长序列损失过大,平衡长短序列的梯度更新,稳定训练 |
| 目标 | 强化模型对长距离依赖关系的学习 | 使模型能够处理更长的上下文,特别是像 256K tokens 这样的极长序列 |
五、RoPE 数学原理形式化说明
为了形式化地说明 RoPE(Rotary Positional Embedding)如何扩展到超长上下文,首先我们需要理解位置编码和旋转操作的数学基础。
1. 传统位置编码的数学背景
在大多数位置编码方法中(如 sinusoidal 和 learnable embeddings),我们需要为每个输入的位置 $i$ 计算一个 位置向量 $\mathbf{p}_i$,并将其添加到词向量 $\mathbf{w}_i$ 中。
1.1) 加性位置编码
对于一个输入序列中的第 $i$ 个词,位置编码一般表现为加法形式:
$$ \mathbf{w}_i^{'} = \mathbf{w}_i + \mathbf{p}_i $$
其中,$\mathbf{w}_i$ 是词向量,而 $\mathbf{p}_i$ 是位置向量。位置向量可以由某些函数生成,如正弦函数,通常表示为:
$$ \mathbf{p}_i = \begin{bmatrix} \sin(\omega_1 i) & \cos(\omega_1 i) & \sin(\omega_2 i) & \cos(\omega_2 i) & \cdots \end{bmatrix} $$
其中 $\omega_1, \omega_2, \dots$ 是位置编码的频率。位置编码的设计目的是使模型能够根据位置感知词的顺序,但它存在无法处理超长序列的问题,因为其生成的每个位置编码都有固定的模式,且难以外推超出训练长度的部分。
1.2) Sinusoidal Position Encoding
在 sinusoidal 编码中,位置编码定义为:
$$ \mathbf{p}_i = \begin{bmatrix} \sin(i / 10000^{\frac{2j}{d}}) & \cos(i / 10000^{\frac{2j}{d}}) \end{bmatrix}, \quad j = 0, 1, \dots, \frac{d}{2} - 1 $$
其中,$i$ 是位置,$d$ 是词向量的维度。正如你所见,这种方法的核心是对每个维度使用正弦和余弦函数,可以在一定范围内有效地表示不同的位置,但在位置上限附近,它变得难以扩展,因为正弦和余弦的周期性限制了它们的外推能力。
2. RoPE(旋转位置编码)的数学形式
RoPE 通过引入旋转操作解决了传统方法的限制。RoPE 采用 旋转矩阵(rotation matrix)来将位置编码与输入词向量结合。为了方便表达,假设我们的词向量是二维的,即 $\mathbf{w}_i \in \mathbb{R}^2$,旋转矩阵在二维空间中的形式为:
$$ R(\theta) = \begin{bmatrix} \cos(\theta) & -\sin(\theta) \ \sin(\theta) & \cos(\theta) \end{bmatrix} $$
其中,旋转角度 $\theta$ 与位置 $i$ 相关,可以由以下公式计算:
$$ \theta_i = \frac{2\pi i}{\tau} $$
这里,$\tau$ 是一个常数,用来控制旋转的幅度。旋转角度 $\theta$ 依赖于输入序列中的位置 $i$,从而为每个词向量生成一个与位置相关的旋转矩阵。
2.1) RoPE 位置编码的构造
每个输入词向量 $\mathbf{w}_i$ 和位置编码 $\mathbf{p}_i$ 的结合,可以通过旋转操作来进行:
$$ \mathbf{w}_i^{'} = R(\theta_i) \cdot \mathbf{w}_i $$
即将每个词向量通过旋转矩阵 $R(\theta_i)$ 进行旋转,并与其原始位置对应的词向量结合。这样,我们不仅仅是简单地将位置编码添加到词向量中,而是通过旋转来调整词向量的方向,使得每个词向量与其在序列中的位置密切相关。
3. RoPE 扩展的关键:旋转和周期性
RoPE 的最大优势在于旋转矩阵的周期性。我们知道,对于角度 $\theta$,其旋转具有周期性,即:
$$ R(\theta + 2\pi) = R(\theta) $$
因此,RoPE 在较长的序列中会表现出旋转的周期性特征,使得它在推理过程中能够外推到更长的位置,而不受固定位置编码长度的限制。
3.1) RoPE 的外推能力
RoPE 通过旋转操作在位置编码上引入了周期性和可外推性。假设我们训练时使用了 $N$ 个位置,模型的最大上下文长度为 $L$,那么 RoPE 的位置编码形式能够让模型在训练时获得最大位置后继续进行外推,从而对超长序列进行推理。例如,如果我们训练时的最大序列长度是 32K,RoPE 通过旋转编码的方式可以将 256K 或更长的序列扩展到模型的推理范围内。
4. 总结:RoPE 扩展超长上下文的技巧
- 旋转矩阵的周期性:通过将位置编码视为旋转角度,RoPE 可以将位置编码的长度外推到训练时最大位置长度之外。这种方法的核心在于旋转矩阵的周期性和角度的线性增长,使得它能够适应长序列甚至超长序列的依赖。
- 无固定最大位置的限制:与传统的加性位置编码和 sinusoidal 编码不同,RoPE 不依赖于固定长度的位置编码表,而是通过旋转操作保持位置编码的外推能力,从而避免了对最大位置长度的硬性限制。
- 推理时的有效外推:在推理阶段,RoPE 能够外推训练阶段未见过的更长序列,这对于超长上下文(如 256K tokens)非常有效。
- 加速训练过程:由于 RoPE 避免了位置编码的冗余计算和高维空间的复杂性,训练时可以在计算效率和上下文长度扩展之间找到平衡。
通过这些数学原理,RoPE 实现了从传统位置编码到超长上下文的扩展能力,能够有效支持 256K tokens 或更长的序列训练和推理。
六、RoPE 与 Sinusoidal 编码维度差异
RoPE(Rotary Positional Embedding)之所以能假设词向量是二维的,主要是基于其旋转矩阵的应用以及它与传统的sinusoidal 编码的本质差异。
1. RoPE 为什么可以假设词向量是二维的?
RoPE 的核心思想是通过旋转矩阵来处理位置编码,它利用了 旋转矩阵 来为每个位置提供独特的编码。旋转矩阵是一个 2x2 的矩阵,用于在二维空间中旋转向量:
$$ R(\theta) = \begin{bmatrix} \cos(\theta) & -\sin(\theta) \ \sin(\theta) & \cos(\theta) \end{bmatrix} $$
其中,$\theta$ 是与词向量的位置相关的旋转角度。对二维向量进行旋转时,旋转矩阵变得非常自然且简单。
旋转矩阵和二维词向量
- RoPE 假设词向量是二维的,这是因为旋转矩阵本身是一个二维矩阵。在二维空间中,我们可以直接对每个位置的词向量进行旋转,从而将每个位置的信息编码到词向量中。通过这种旋转,RoPE 保留了对位置的周期性表示,并能将位置编码外推到超长上下文。
- 旋转操作对每个位置的编码进行的变换非常直观:每个位置的编码都可以通过简单的旋转获得,而这个旋转操作的结果也可以通过简单的旋转矩阵实现。
二维词向量的灵活性
- 通过旋转矩阵,RoPE 可以有效地在二维空间中表示每个词的位置信息,这种方法能够避免加性位置编码面临的长距离依赖和外推问题。
- RoPE 的'二维'并不意味着所有词向量的维度都是二维,而是指位置编码的旋转机制基于二维空间的操作。RoPE 可以应用于任意维度的词向量,但是旋转操作本身是在二维空间中进行的。
扩展到高维词向量
- 如果词向量的维度高于二维(例如,通常使用 512 或 1024 维的词向量),RoPE 会将这些高维词向量分为若干二维子空间。每对维度将进行独立的旋转,并在输出中组合。这使得高维词向量能够享受 RoPE 的旋转特性,同时保留多维空间中复杂的信息。
因此,RoPE 并不局限于二维的词向量,而是通过对高维词向量的各个部分进行独立的二维旋转操作来实现位置编码。它的优势在于:这种方式非常高效,并且利用了旋转矩阵的数学性质,使得对长序列和超长序列的处理变得非常灵活。
2. Sinusoidal 编码对词向量的假设是什么?
Sinusoidal 编码(正弦位置编码)与 RoPE 的差异在于,它不直接应用旋转矩阵,而是通过周期性函数(正弦和余弦函数)来生成位置编码。这些位置编码本质上是通过正弦和余弦函数的周期性模式来为每个位置创建一个固定的向量。
Sinusoidal 编码的构造:
对于每个位置 $i$,位置编码 $\mathbf{p}_i$ 是通过正弦和余弦函数构建的,公式如下:
$$ \mathbf{p}i = \left[ \sin \left( \frac{i}{10000^{\frac{2j}{d}}} \right), \cos \left( \frac{i}{10000^{\frac{2j}{d}}} \right) \right]{j=0}^{d/2-1} $$
其中:
每个位置编码的维度数量通常是和词向量维度 $d$ 相同,因此,sinusoidal 编码对每个位置的编码并不依赖于二维空间,而是通过正弦和余弦的周期性函数来填充整个词向量空间。
Sinusoidal 编码与词向量维度:
- Sinusoidal 编码的关键是它通过 正弦和余弦 函数在多维空间中为每个位置生成一个高维位置向量。在这个过程中,词向量维度(通常是 512、1024 维等)由多种不同的频率构成,这些频率保证了不同位置编码的唯一性。
- 这种方法依赖于正弦和余弦的周期性,生成的编码虽然可以在一定长度的上下文中表示不同的位置,但它的周期性导致了长序列中位置编码的相似性,使得超长序列的长距离依赖性变得不太容易捕捉。
3. 为什么 Sinusoidal 编码不能像 RoPE 一样进行旋转?
Sinusoidal 编码与 RoPE 的核心区别在于它们的编码机制:
- Sinusoidal 编码是基于正弦和余弦函数生成的周期性编码。虽然正弦函数本身有一定的周期性,但是这些编码是通过加法方式叠加到词向量中的,而不是通过旋转来表达。由于这些正弦和余弦编码是通过固定的频率生成的,它们的表示方式非常依赖于输入的序列长度,且不能灵活地进行位置的'外推'。
- RoPE(旋转位置编码)通过旋转矩阵在二维空间中对每个词向量进行旋转,这不仅保留了每个位置的唯一性,还能够在超长上下文中通过旋转进行外推,不再依赖固定的最大位置长度。因此,RoPE 可以有效地将位置编码扩展到更长的序列,甚至超出训练阶段的最大上下文长度。
Sinusoidal 编码的局限性:
- 周期性问题:由于正弦和余弦函数的周期性,较长的序列中,位置编码会出现重复或相似的编码,导致长距离依赖难以有效捕捉。
- 无法外推:Sinusoidal 编码的编码方式不能像 RoPE 那样在序列超出训练时最大位置后'平滑外推',导致它在超长上下文推理时表现较差。
- 加性叠加问题:位置编码和词向量的加性叠加使得随着上下文长度增加,位置编码对词向量的影响逐渐减弱,从而影响模型的推理能力。
4. 总结
- RoPE 假设词向量是二维的,因为旋转操作本质上是在二维空间中进行的(旋转矩阵)。对于高维词向量,RoPE 将其分解为若干对二维的词向量进行旋转,使得旋转操作在高维空间中同样能够有效进行。
- Sinusoidal 编码的维度假设与词向量的维度一致,且其依赖于正弦和余弦函数的周期性来构建位置编码,但这种方法难以处理长序列的长距离依赖关系,也无法像 RoPE 那样进行有效的外推。
RoPE 通过旋转矩阵和外推性质能够克服传统 sinusoidal 编码在长距离依赖和超长上下文处理中的限制,使得它成为更适合处理长序列和超长序列的编码方法。
相关免费在线工具
- 加密/解密文本
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- 随机西班牙地址生成器
随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
- Gemini 图片去水印
基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online