# thirdparty_llm **Repository Path**: tecorigin/thirdparty_llm ## Basic Information - **Project Name**: thirdparty_llm - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-17 - **Last Updated**: 2025-04-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 太初元碁大模型训练适配第三方库 ## 简介 本仓库用于介绍太初元碁适配的大模型训练第三方库,发布相关适配库支持的特性、最新进展,以及进行需求处理和问题跟踪。 | 三方库 | 支持说明 | |----------------------|------------------------| |[Accelerate](https://github.com/huggingface/accelerate)|原生支持| |[DeepSpeed](https://github.com/deepspeedai/DeepSpeed)|原生支持 |[LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory)|部分功能适配,基于Llama-3-8B跑通测例,其它相关功能陆续开发中 |[Transformers](https://github.com/huggingface/transformers)|部分功能适配,基于LLaMA-Factory提供一个测试样例,其它相关功能陆续开发中 |[TRL](https://github.com/huggingface/trl) |部分功能适配,基于LLaMA-Factory提供一个测试样例,其它相关功能陆续开发中 ## 更新日志 - [2025/03/21] :sparkles: [Accelerate](https://github.com/huggingface/accelerate)原生支持太初T100加速卡的单卡/多卡/AMP训练,请通过源码或者pip安装体验。 - [2025/03/21] :sparkles: [DeepSpeed](https://github.com/deepspeedai/DeepSpeed)原生支持太初T100加速卡的单卡/多卡训练,请通过源码或者pip安装体验。 - [2025/03/21] :sparkles: [LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory)提供[Transformers](https://github.com/huggingface/transformers)和[TRL](https://github.com/huggingface/trl)的测试用例。 ## Accelerate Accelerate 已经原生支持T100加速卡,请参考[accelerate-usage-guides](https://huggingface.co/docs/accelerate/main/en/usage_guides/explore)了解更多用法。 **说明**:使用前,请参考[基础环境安装](./docs/teco_base_env.md),完成环境检查和安装。 当前,T100加速卡对Accelerate相关特性的支持情况如下: | 特性 | 是否支持 | |--------------------|-----------------------| |AMP |支持fp16,不支持bf16 | |DDP |支持 | |DeepSpeed |支持ZeRO 1/2/3,支持offload| |Dataloader |除MpDdeviceLoaderWrapper外均支持| |Logging |支持 | |Optimizer |支持 | |Scheduler |支持 | |Tracking |支持 | |Checkpointing |支持 | |Hook |不支持 | |Big Modeling |不支持 | |cli |不支持 | |Dynamo |不支持 | |Megatron-LM |不支持 | |FSDP |不支持 | |bnb |不支持 | |Local SGD |不支持 | |Launchers |不支持 | ## DeepSpeed DeepSpeed已经原生支持T100加速卡,请参考[deepspeed-ai](https://www.deepspeed.ai)了解更多用法。 **说明**:使用前,请参考[基础环境安装](./docs/teco_base_env.md),完成环境检查和安装。 当前,T100加速卡对DeepSpeed相关特性的支持情况如下: | 特性 | 是否支持 | |-----------------------|----| |DDP |支持| |AMP |支持fp16,不支持bf16 | |ZeRO 1/2/3 |支持| |Offload |支持| |Checkpoint |支持| |Pipeline Parallelism |支持| |Launcher |支持| |Profiling |支持| |Sequence Parallelism |不支持| |Autotuning |不支持| |Inference |不支持| |MoE |不支持| |NVMe |不支持| |Compression |不支持| ## LLaMA-Factory/Transformers/TRL LLaMA-Factory/Transformers/TRL由于功能比较庞大,目前太初元碁只对一个模型(Llama-3-8B)进行了跑通测试。 Transformers和TRL未单独测试,均基于LLaMA-Factory提供一个测试样例。 1. 搭建环境。 请参考[基础环境安装](./docs/teco_base_env.md),完成微调前的环境检查和安装。 2. 执行以下命令,安装LLaMA-Factory。 ``` pip install deepspeed tensorboardX git clone --depth 1 -b v0.9.2 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e ".[torch,metrics]" ``` 3. 将LLaMA-Factory/src/llamafactory/extras/misc.py 文件的内容替换成examples/llama-factory/misc.py的内容 4. 通过ModelScope下载[Llama-3-8B](https://www.modelscope.cn/models/LLM-Research/Meta-Llama-3-8B-Instruct/summary)。 5. 执行以下命令,配置环境变量并启动训练的Web用户界面。 ``` export TECO_LAUNCH_BLOCKING=1 export SDAA_LAUNCH_BLOCKING=1 export TORCH_SDAA_ALLOC_CONF=max_split_size_mb:300 export TORCH_SDAA_LINEAR_HIGHPREC=1 export TORCH_SDAA_BADDBMM_HIGHPREC=1 export TORCH_SDAA_BMM_HIGHPREC=1 export TORCH_SDAA_BMM_HIGHPERF=1 export TORCH_SDAA_FUSED_ATTN_MEM_LIMITED=1 export TORCH_SDAA_ALIGN_NV_DEVICE=a100 export HF_ENDPOINT=https://hf-mirror.com llamafactory-cli webui ``` 6. 进行模型微调。 - Transformer测试: sft微调选项见[sft](./examples/llama-factory/sft.jpg)。 - TRL测试:dpo微调选项见[dpo](./examples/llama-factory/dpo.jpg)。 ## 注意事项 - 太初T100加速卡单卡会有4个SPA(T1计算设备),使用时请把单SPA当作GPU单卡进行使用。 - 由于太初T100加速卡使用时把单SPA当作单卡进行使用,而单SPA只有15G,训练时建议开启以下环境变量降低显存开销,并建议使用ZeRO3训练。 ``` export TORCH_SDAA_ALLOC_CONF=max_split_size_mb:1024 export TORCH_SDAA_FUSED_ATTN_MEM_LIMITED=1 ``` - 太初T100加速卡无法表示fp16非规格化数,建议使用时添加以下环境变量,缓解其造成的精度影响(尤其是大参数模型和大batch场景下的精度影响): ``` export TORCH_SDAA_LINEAR_HIGHPREC=1 export TORCH_SDAA_BADDBMM_HIGHPREC=1 export TORCH_SDAA_BMM_HIGHPREC=1 export TORCH_SDAA_BMM_HIGHPERF=1 ``` - 使用时建议关闭异步执行,避免ZeRO3计算出现NaN异常。 ``` export TECO_LAUNCH_BLOCKING=1 export SDAA_LAUNCH_BLOCKING=1 ``` ## 联系我们 如果您在太初T100加速卡使用Accelerate/DeepSpeed/LLaMA-Factory/Transformers/TRL时,遇到无法解决的问题,欢迎您提交issue,联系太初开发工程师进行解决。