ITADN
mindspore-lab/mindnlp · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

MindNLP Logo

MindNLP

零代码修改,在 MindSpore 上运行 HuggingFace 模型

在 Ascend NPU、GPU 和 CPU 上使用 200,000+ HuggingFace 模型的最简单方式

GitHub stars PyPI Downloads License

Documentation CI PRs Welcome Issues

快速开始功能特性安装为什么选择 MindNLP文档


🎯 什么是 MindNLP?

MindNLP 弥合了 HuggingFace 庞大的模型生态系统与 MindSpore 硬件加速之间的差距。仅需 import mindnlp,即可在 Ascend NPUNVIDIA GPUCPU 上运行任何 HuggingFace 模型 - 无需修改代码。

import mindnlp  # That's it! HuggingFace now runs on MindSpore
from transformers import pipeline

pipe = pipeline("text-generation", model="Qwen/Qwen2-0.5B")
print(pipe("Hello, I am")[0]["generated_text"])

⚡ 快速开始

使用 LLM 进行文本生成

import mindspore
import mindnlp
from transformers import pipeline

pipe = pipeline(
    "text-generation",
    model="Qwen/Qwen3-8B",
    ms_dtype=mindspore.bfloat16,
    device_map="auto"
)

messages = [{"role": "user", "content": "Write a haiku about coding"}]
print(pipe(messages, max_new_tokens=100)[0]["generated_text"][-1]["content"])

使用 Stable Diffusion 进行图像生成

import mindspore
import mindnlp
from diffusers import DiffusionPipeline

pipe = DiffusionPipeline.from_pretrained(
    "stable-diffusion-v1-5/stable-diffusion-v1-5",
    ms_dtype=mindspore.float16
)
image = pipe("A sunset over mountains, oil painting style").images[0]
image.save("sunset.png")

用于文本分类的 BERT

import mindnlp
from transformers import AutoTokenizer, AutoModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")

inputs = tokenizer("MindNLP is awesome!", return_tensors="pt")
outputs = model(**inputs)

✨ 功能

🤗 完整的 HuggingFace 兼容性

  • 200,000+ 模型 来自 HuggingFace Hub
  • Transformers - 所有模型架构
  • Diffusers - Stable Diffusion, SDXL, ControlNet
  • 零代码更改 - 只需 import mindnlp

🚀 硬件加速

  • Ascend NPU - 全面支持华为 AI 芯片
  • NVIDIA GPU - CUDA 加速
  • CPU - 优化的 CPU 执行
  • Multi-device - 自动设备放置

🔧 高级功能

  • 混合精度 - FP16/BF16 训练与推理
  • 量化 - 基于 BitsAndBytes 的 INT8/INT4
  • 分布式 - 多 GPU/NPU 训练
  • PEFT/LoRA - 参数高效微调

📦 轻松集成

  • 通过 mindtorch 提供 PyTorch 兼容 API
  • 支持 Safetensors 以实现快速加载
  • Model Hub 镜像 以加快下载速度
  • 全面的文档

🧪 Mindtorch NPU 调试

Mindtorch NPU 算子默认是异步的。当需要阻塞等待结果时,请使用 torch.npu.synchronize()。 对于调试,请设置 ACL_LAUNCH_BLOCKING=1 以强制每个算子同步。

📦 安装

# From PyPI (recommended)
pip install mindnlp

# From source (latest features)
pip install git+https://github.com/mindspore-lab/mindnlp.git
📋 版本兼容性
MindNLPMindSporePython
0.6.x≥2.7.13.10-3.11
0.5.x2.5.0-2.7.03.10-3.11
0.4.x2.2.x-2.5.03.9-3.11

💡 为什么选择 MindNLP?

特性MindNLPPyTorch + HFTensorFlow + HF
HuggingFace 模型✅ 200K+✅ 200K+⚠️ 有限
Ascend NPU 支持✅ 原生
零代码迁移-
统一 API
中文模型支持✅ 优秀✅ 良好⚠️ 有限

🏆 核心优势

  1. 即时迁移:您现有的 HuggingFace 代码可立即运行
  2. Ascend 优化:原生支持华为 NPU 硬件
  3. 生产就绪:经过企业级部署的实战检验
  4. 活跃社区:定期更新和快速响应支持

🗺️ 支持的模型

MindNLP 支持 HuggingFace Transformers 和 Diffusers 中的所有模型。以下是一些热门模型:

类别模型
LLMsQwen, Llama, ChatGLM, Mistral, Phi, Gemma, BLOOM, Falcon
视觉ViT, CLIP, Swin, ConvNeXt, SAM, BLIP
音频Whisper, Wav2Vec2, HuBERT, MusicGen
扩散Stable Diffusion, SDXL, ControlNet
多模态LLaVA, Qwen-VL, ALIGN

👉 查看所有支持的模型

📚 资源

🤝 贡献

我们欢迎贡献!详情请参阅我们的贡献指南

# Clone and install for development
git clone https://github.com/mindspore-lab/mindnlp.git
cd mindnlp
pip install -e ".[dev]"

👥 社区

加入 MindSpore NLP SIG(特别兴趣小组),参与讨论、活动与协作:

QQ Group

⭐ Star History

Star History Chart

如果你觉得 MindNLP 有用,请考虑给它一个星标 ⭐ - 这有助于项目的发展!

📄 许可证

MindNLP 依据 Apache 2.0 License 发布。

📖 引用

@misc{mindnlp2022,
    title={MindNLP: Easy-to-use and High-performance NLP and LLM Framework Based on MindSpore},
    author={MindNLP Contributors},
    howpublished={\url{https://github.com/mindspore-lab/mindnlp}},
    year={2022}
}

MindSpore Lab 团队用 ❤️ 制作