跳到主要内容
AI News HubLIVE
站内改写3 分钟阅读

在 Amazon SageMaker AI 上训练阿塞拜疆语模型

文章摘要

Azercell Telecom 与 AWS 生成式 AI 创新中心合作,在六周内构建了生产就绪的阿塞拜疆语大语言模型训练框架。通过自定义分词器、继续预训练和 LoRA 微调,实现了 23% 的训练吞吐量提升和 58% 的峰值 GPU 内存降低,并将编码效率提高一倍。

来源AWS Machine Learning Blog作者: Aleksei Iancheruk
在 Amazon SageMaker AI 上训练阿塞拜疆语模型
报告错误

纠错通道尚未开通,可先复制下方文章信息留存。

查看更正说明
直接读正文

阿塞拜疆领先的电信运营商 Azercell Telecom 与 AWS 生成式 AI 创新中心展开为期六周的协作,基于 Amazon SageMaker AI 构建了一个面向电信场景和客户聊天机器人的阿塞拜疆语大语言模型(LLM)。该项目旨在解决将基础模型适配到形态丰富但训练数据稀缺的语言时所面临的独特挑战。团队建立了一套生产就绪的框架,通过内核级优化在 ml.p5.48xlarge 实例上实现了 23% 的训练吞吐量提升和 58% 的峰值 GPU 内存降低。同时,借助自定义分词器,每词令牌数减半,相当于在相同上下文窗口内将可处理的阿塞拜疆语文本量翻倍。

整个框架分为三个顺序阶段:分词器开发、继续预训练(CPT)和基于 LoRA 的监督微调。每个阶段产生的工件都作为下一阶段的输入。分词器阶段评估了三种方案:基线英语优化分词器、词汇扩展和自定义单语分词器。最终,自定义单语分词器表现最佳,将每词令牌数从基线的 3.22 降至 1.59,编码效率提升一倍。这意味着在 Llama 3.2 的 128k 令牌上下文窗口中,基线分词器大约能容纳 4 万词,而优化后的分词器可容纳约 8 万词。为了验证自定义分词器不会牺牲建模质量,团队采用 Bits-Per-Byte(BPB)指标而非困惑度进行比较,因为 BPB 在字节级别归一化,可消除词汇表差异的影响。结果显示,使用自定义分词器的模型在验证集上 BPB 为 0.5795,优于基线的 0.6830。

继续预训练阶段使用 Llama 3.2 1B 模型,在 Amazon SageMaker AI 训练作业上通过分布式训练和 Liger Kernel 优化来适配阿塞拜疆语。团队在 ml.p4d.24xlarge(8 块 NVIDIA A100 GPU)和 ml.p5.48xlarge(8 块 NVIDIA H100 GPU)上进行了基准测试。分布式训练采用 PyTorch 的完全分片数据并行(FSDP),将参数、梯度和优化器状态分片到各 GPU 上,动态收集计算所需的部分。在 ml.p4d.24xlarge 上,FSDP 将每 GPU 模型状态内存从 9.23 GB 降至 1.17 GB,为更大的批处理大小腾出空间。Liger Kernel 则通过 Triton 实现融合多个操作到单次 GPU 内核启动,减少中间内存分配,且数值结果等效。集成仅需一行代码即可在模型实例化前打补丁,并且与 FSDP 无缝协作。

优化效果显著:在 ml.p4d.24xlarge 上,完整优化栈将最大批处理大小从 DDP 的 2 提升至 14,实现了 7 倍增长。在 ml.p5.48xlarge 上,FSDP 加 Liger Kernel 使峰值 GPU 内存(含激活值)从 64 GB 降至 27 GB,降幅 58%,同时每 GPU 吞吐量从 63,771 令牌/秒提升至 78,319 令牌/秒,增幅 23%。在预训练设置中,团队使用自定义阿塞拜疆语分词器(10 万词汇表),训练语料约 25 亿令牌。训练脚本支持可配置上下文窗口、BFloat16 混合精度、余弦学习率调度与 AdamW 优化器,并自动将检查点保存至 Amazon S3 以实现容错。上下文窗口设为 2,048 令牌,因为超过 90% 的训练样本在分词后低于此长度。

当向词汇表添加新令牌时,CPT 采用两阶段方法:第一阶段冻结模型主干,仅训练嵌入层,使新令牌表示适应模型已有的内部空间而不破坏预训练知识;第二阶段解冻所有参数进行全量训练,让模型深入学习阿塞拜疆语模式。训练使用两个 ml.p4d.24xlarge 实例(共 16 块 A100 GPU),结合 FSDP 和 Liger Kernel 优化。第一阶段学习率为 0.0032,训练 5,000 步,耗时约 3.2 小时;第二阶段学习率降至 0.0024,训练 15,000 步,耗时约 11.9 小时。有效批处理大小为 224(每 GPU 14 × 16 GPU),在 2,048 令牌上下文下,每步处理约 45 万令牌,估计每轮训练约 4.3 小时。

监督微调阶段采用低秩适应(LoRA),将预训练模型转变为对话助手。经过 CPT 后,模型能够流畅预测下一个阿塞拜疆语令牌,但并不理解对话结构,面对问题只会生成看似合理的续写而非有帮助的回答。LoRA 通过冻结预训练权重并训练注入注意力层和前馈层的小型低秩分解矩阵来高效弥合这一差距。配置为秩 64、alpha 28、dropout 0.05,目标模块包括 q、k、v、o 投影以及 gate、up、down 投影,最大序列长度 1,024。这种紧凑设计使得微调能够在单块 GPU 上运行,显著降低了计算成本。

整个训练流程在 Amazon SageMaker Unified Studio 中启动 SageMaker AI 训练作业,每个作业指向自定义训练脚本。作业会配置全新的 Amazon EC2 实例并在完成后终止,因此用户只需为实际计算时间付费,无空闲集群成本。训练数据和模型工件存储在 Amazon S3 中,训练指标通过 TensorBoard 跟踪,系统指标由 Amazon CloudWatch 捕获。该解决方案基于 PyTorch、Hugging Face Transformers 和 Liger Kernel 等开源工具构建。团队指出,虽然分布式训练对于 1B 规模的Proof of Concept并非必需,但随着 Azercell 扩展至更大模型,它将成为关键。这一框架为低资源或形态复杂语言的 LLM 训练提供了可复用的蓝图。

展开要点与分析

文章情报

工程师进阶

要点

  • 自定义分词器将每词令牌数从 3.22 降至 1.59,使 128k 上下文窗口可容纳约 8 万词。
  • FSDP 与 Liger Kernel 结合,在 ml.p5.48xlarge 上峰值 GPU 内存降低 58%,吞吐量提升 23%。
  • 采用两阶段继续预训练(先嵌入适应后全参数训练)和 LoRA 微调,高效适配低资源语言。

要点与分析由自动化流程生成,可能有误,请结合原始来源核实。