GaLore项目CI/CD配置:GitHub Actions自动化测试与部署
【免费下载链接】GaLore 项目地址: https://gitcode.com/GitHub_Trending/ga/GaLore
项目概述
GaLore是一个基于梯度低秩投影(Gradient Low-Rank Projection)的内存高效LLM训练算法,允许全参数学习同时比LoRA等低秩适应方法更节省内存。该项目提供了与多种优化器集成的实现,可通过简单代码接入现有训练流程。
环境准备
安装依赖
pip install -e .
项目依赖配置文件:requirements.txt
核心模块结构
GaLore的核心优化器实现位于galore_torch/目录,包含以下关键类:
- GaLoreAdamW:adamw.py
- GaLoreAdamW8bit:adamw8bit.py
- GaLoreAdafactor:adafactor.py
- 梯度投影实现:galore_projector.py
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优化器实例
- 配置低秩投影参数(rank、update_proj_gap等)
- 正常执行训练循环
总结与扩展
GaLore提供了内存高效的LLM训练解决方案,通过GitHub Actions配置可实现自动化测试与部署。项目目前支持单GPU和分布式训练,未来将扩展更多优化器支持和多GPU训练功能。
主要训练入口脚本:
- 预训练主脚本:torchrun_main.py
- GLUE微调脚本:run_glue.py
【免费下载链接】GaLore 项目地址: https://gitcode.com/GitHub_Trending/ga/GaLore
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




