"Mixture-of-Depths"论文的非官方实现
简介
这是论文Mixture-of-Depths: 在基于transformer的语言模型中动态分配计算资源的非官方实现
当前支持的模型
模型 | 是否支持 |
---|---|
Mistral | ✅ |
Mixtral | ✅ |
LLama | ✅ |
LLama2 | ✅ |
LLama3 | ✅ |
Gemma | ✅ |
BLOOMZ | ✅ |
BLOOM | ✅ |
DeepSeek | ✅ |
Phi (1.5 & 2) | ✅ |
Qwen2 | ✅ |
StarCoder2 | ✅ |
Qwen2-MoE | ❓ |
Solar | ❓ |
Baichuan | ❌ |
ChatGLM3 | ❌ |
InternLM | ❌ |
Olmo | ❌ |
XVERSE | ❌ |
Yi | ❌ |
Yuan | ❌ |
💾 安装
pip install mixture-of-depth
支持Linux、Windows和MacOS系统。
🏁 快速开始
高级API(兼容transformers)
from transformers import AutoModelForCausalLM
from MoD import apply_mod_to_hf
# 从可用的hf模型初始化您的模型
model= AutoModelForCausalLM.from_pretrained("some-repo/some-model")
# 将模型转换为包含混合深度层
model = apply_mod_to_hf(model)
# 训练模型
# ...
# 保存模型
model.save_pretrained('some_local_directory')
加载转换后的模型
要使用转换后的模型,您需要从AutoClass加载模型。以下是一个从本地目录加载模型的示例:
from MoD import AutoMoDModelForCausalLM
# 将'path_to_your_model'替换为您模型目录的实际路径
model = AutoMoDModelForCausalLM.from_pretrained('path_to_your_model')
使用generate()
在调用hf的generate()方法之前,请显式地对模型使用eval()
🫱🏼🫲🏽 贡献
我们欢迎社区的贡献,无论是添加新功能、改进文档还是报告错误。在提交拉取请求之前,请参阅我们的贡献指南。
📜 许可证
本仓库根据Apache-2.0许可证开源。
引用
如果您在研究中使用我们的代码,请使用以下Bibtex条目进行引用:
@article{MoD2024,
title={Unofficial implementation for the paper "Mixture-of-Depths"},
author={AstraMind AI},
journal={https://github.com/astramind-ai/Mixture-of-depths},
year={2024}
}
支持
如有问题、问题或需要支持,请在我们的GitHub仓库上开一个issue。