GaLore项目CI/CD配置:GitHub Actions自动化测试与部署

GaLore项目CI/CD配置:GitHub Actions自动化测试与部署

【免费下载链接】GaLore 【免费下载链接】GaLore 项目地址: https://gitcode.com/GitHub_Trending/ga/GaLore

项目概述

GaLore是一个基于梯度低秩投影(Gradient Low-Rank Projection)的内存高效LLM训练算法,允许全参数学习同时比LoRA等低秩适应方法更节省内存。该项目提供了与多种优化器集成的实现,可通过简单代码接入现有训练流程。

环境准备

安装依赖

pip install -e .

项目依赖配置文件:requirements.txt

核心模块结构

GaLore的核心优化器实现位于galore_torch/目录,包含以下关键类:

GitHub Actions配置方案

基础CI/CD工作流文件

创建文件:.github/workflows/ci-cd.yml

name: GaLore CI/CD Pipeline

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.10'
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -e .
          pip install pytest
      - name: Run tests
        run: pytest tests/ -v
  
  deploy:
    needs: test
    runs-on: ubuntu-latest
    if: github.event_name == 'push' && github.ref == 'refs/heads/main'
    steps:
      - uses: actions/checkout@v4
      - name: Build package
        run: |
          python setup.py sdist bdist_wheel
      - name: Upload artifacts
        uses: actions/upload-artifact@v3
        with:
          name: galore-packages
          path: dist/

训练脚本集成

以下是使用GaLore优化器的典型训练代码示例:

from galore_torch import GaLoreAdamW

# 定义参数组
param_groups = [
    {'params': non_galore_params}, 
    {'params': galore_params, 'rank': 128, 'update_proj_gap': 200, 'scale': 0.25, 'proj_type': 'std'}
]
optimizer = GaLoreAdamW(param_groups, lr=0.01)

测试与部署流程

单GPU训练测试

# LLaMA-7B单GPU训练示例
torchrun --standalone --nproc_per_node 1 torchrun_main.py \
    --model_config configs/llama_7b.json \
    --lr 0.005 \
    --galore_scale 0.25 \
    --rank 1024 \
    --update_proj_gap 500 \
    --batch_size 16 \
    --total_batch_size 512 \
    --activation_checkpointing \
    --num_training_steps 150000 \
    --optimizer galore_adamw8bit_per_layer

相关配置文件:configs/llama_7b.json

分布式训练脚本

C4数据集上的LLaMA预训练脚本位于scripts/benchmark_c4/目录,例如7B模型训练脚本:llama_7b.sh

梯度投影原理

GaLore通过梯度低秩投影实现内存优化,其核心思想如图所示:

GaLore算法示意图

该方法独立于优化器选择,通过以下步骤集成:

  1. 创建GaLore优化器实例
  2. 配置低秩投影参数(rank、update_proj_gap等)
  3. 正常执行训练循环

总结与扩展

GaLore提供了内存高效的LLM训练解决方案,通过GitHub Actions配置可实现自动化测试与部署。项目目前支持单GPU和分布式训练,未来将扩展更多优化器支持和多GPU训练功能。

主要训练入口脚本:

【免费下载链接】GaLore 【免费下载链接】GaLore 项目地址: https://gitcode.com/GitHub_Trending/ga/GaLore

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值