EasyDeL 项目介绍
EasyDeL 是一个开源框架,旨在增强和简化机器学习模型的训练过程,特别是对于 Jax 和 Flax 框架的模型。该框架提供了便捷而高效的解决方案,用于在 TPU 和 GPU 上进行大规模的 Flax/Jax 模型训练和部署。
主要特性
- 多样化架构支持:EasyDeL 可以无缝地与多种模型架构配合使用,包括 Transformers、Mamba、RWKV 等。
- 多样化模型支持:在 JAX 中实现多种模型,包括 Falcon、Qwen2、Phi2、Mixtral、Qwen2Moe、Cohere、Dbrx、Phi3 和 MPT。
- 高级训练器:提供了专门的训练器,例如 DPOTrainer、ORPOTrainer、SFTTrainer 和 VideoCLM Trainer。
- 服务和 API 引擎:为高效服务大型语言模型(LLMs)提供引擎。
- 量化和位操作:支持多种量化方法以及 8、6 和 4 位操作,以优化推理和训练。
- 性能优化:集成了 FlashAttention、RingAttention 和其他提升性能的功能。
- 模型转换:支持 JAX-EasyDeL 和 PyTorch-HF 模型之间的自动转换。
完全可定制和可改造
EasyDeL 提供了无与伦比的灵活性和透明性:
- 开放架构:EasyDeL 的每个组件都是开放的,可以进行检视、修改和定制,没有密闭的黑盒。
- 核心可改造性:用户可以随心所欲地修改无论是小型函数还是整个训练循环。
- 自定义代码访问:所有自定义实现都提供充分的文档说明,便于用户理解、学习并根据需要进行修改。
- 鼓励实验:我们鼓励用户对现有代码进行实验、扩展和改进,你的创新可能会成为下一个重要特性!
- 社区驱动开发:分享你的自定义实现和改进,与社区协作,共同推进机器学习研究和发展。
通过 EasyDeL,用户不再受限于僵化的框架,而是拥有一个灵活强大的工具包,适应各种独特的需求。
高级定制和优化
EasyDeL 为模型的定制和优化提供了无与伦比的灵活性:
- 分片策略:轻松自定义和实验多种分片策略,以优化多设备间的性能。
- 算法定制:根据特定需求和硬件配置修改和微调算法。
- 注意机制:提供优化的超过 10 种 GPU/TPU/CPU 注意机制供选择。
这种定制级别让用户可以充分发挥硬件性能,并根据需求调整模型行为。
愿景与未来更新
EasyDeL 不断演进以满足机器学习社区的需求。在即将到来的更新中,计划引入:
- 尖端技术:通过频繁更新,持续提供新特性、优化和修复,确保 EasyDeL 处于机器学习技术的最前沿。
- 预配置模块:快速组件装配和实验。
- 增强扩展性:提高工具和方法,使 LLMs 能轻松处理更大数据集和更复杂任务。
- 高级定制选项:为模型架构和训练流程提供更多灵活性。
为什么选择 EasyDeL?
- 灵活性:模块化设计,易于混合搭配组件及不同架构,适应不同应用场景。
- 性能:利用 JAX 和 Flax 优化实现的最先进模型和训练技术。
- 扩展性:从小型实验到大规模训练,提供高效扩展模型和工作流程的工具。
- 易用性:强大功能与直观 API 相结合,适合不同经验水平的用户。
- 前沿研究:快速实现最新的模型架构、训练技巧和优化方法。
快速开始
安装
pip install easydel
测试注意机制
import easydel as ed
ed.FlexibleAttentionModule.run_attention_benchmarks()
EasyDeL 项目致力于通过其开放和灵活的框架,推动机器学习领域的创新与发展。