了解Transformer 如何通过segment递归和远距离上下文处理等创新技术彻底改变序列建模。
Transformer 或Transformer Long "是一种复杂的 神经网络架构,旨在解决 人工智能(AI)领域最持久的挑战之一 人工智能(AI)中最持久的挑战之一:处理 超过固定长度的数据序列。由来自 Google AI)和卡内基梅隆大学(Carnegie Mellon University)的研究人员共同开发的。 架构改进了最初的 Transformer的基础上进行了改进。 引入了一种新颖的递归机制。这一创新允许模型在不同的 数据段的信息,大大扩展了其有效的 上下文窗口,而不会产生通常与处理长输入相关的大量计算 通常与处理长输入相关的大量计算开销。
要了解Transformer 的意义,不妨先看看其前身的局限性。标准 转换器以固定大小的块(段)独立处理数据。这导致了 "上下文 碎片化",即模型从一个segment 移动到下一个segment 时就会遗忘信息。 Transformer 借鉴了递归神经网络(Recurrent Neural Networks)的概念,将segment recurrence)融入其中,从而克服了这一问题。 这一概念借鉴了递归神经网络(RNN),但 这一概念借鉴自循环神经网络(RNN),但应用于 Transformers 的可并行框架中。
该架构主要依靠两项技术贡献:
Transformer 能够保持长期记忆,这对于需要大量上下文的任务来说非常重要。
虽然Ultralytics 主要侧重于 计算机视觉 (CV) YOLO11等模型,但了解 Transformer 对高级 ML 工程非常有用。以下内容 PyTorch代码段演示了在前向传递过程中传递 "内存 "张量以保留上下文的概念。 "内存 "tensor 概念。
import torch
def forward_pass_with_memory(input_segment, memory=None):
"""Conceptual demonstration of passing memory (cached states) simulating the Transformer-XL recurrence mechanism.
"""
# If memory exists from the previous segment, concatenate it
if memory is not None:
# Combine memory with current input along the sequence dimension
context = torch.cat([memory, input_segment], dim=1)
else:
context = input_segment
# Simulation of processing (in a real model, this goes through layers)
output = context * 0.5 # Dummy operation
# Detach current output to create memory for the NEXT segment
# This prevents gradient backpropagation into the deep history
new_memory = output.detach()
return output, new_memory
# Run a dummy example
segment1 = torch.randn(1, 10) # Batch size 1, sequence length 10
output1, mems = forward_pass_with_memory(segment1)
print(f"Memory cached shape: {mems.shape}")
将Transformer 与类似术语区分开来,有助于明确其具体用途:
对于处理序列数据的研究人员和开发人员来说,研究 Transformer 研究论文,可以更深入地了解 内存管理 大型语言模型 (LLM) 的高效内存管理有了更深入的了解。高效 内存使用的原则也适用于优化视觉模型,以便在边缘设备上使用 图形处理器。