开源flux适配昇腾NPU分享,体验120亿参数AI文生图模型

这一期我们分享一位开源开发者参与flux适配昇腾NPU的实践经验,欢迎广大开发者对华为技术栈适配进行讨论。

开源适配实践

flux是一个AI图像生成模型,有120亿参数量,具有大量的用户基础,可以根据命令行输入的文字去生成对应的图片。本次适配使用的flux模型权重文件是schnell版本。

下面我简单分享一下flux模型适配昇腾NPU的实践心得,如有改进之处,欢迎指正,也希望对华为生态感兴趣的小伙伴可以加入进来一起探讨。

如何验证开源项目

本次适配我需要在拥有昇腾NPU的主机上将flux模型运行起来,验证其功能是否可以正常使用。昇腾NPU主机需要先安装CANN软件,CANN软件的安装可参考昇腾社区的开发资源。后续的所有操作都在此主机上进行。

在GitHub平台上下载项目源码(点击链接下载),通过分析README文件中的内容可以知道flux模型开发环境所需要的python版本是python3.10,其相关依赖都封装在pyproject.toml文件中。同时flux模型主要采用python语言进行开发,所以我使用anaconda管理模型环境。anaconda作为环境管理工具,可以为不同的模型创建独立的环境,这样可以避免依赖版本冲突,保持环境的整洁性。该主机需要的anaconda为Linux系统ARM64版,查找相关文档进行安装配置后,使用anaconda去创建属于flux的虚拟环境。

第一步:进入创建的conda环境,安装相关依赖

在代码仓库中,是由pyproject.toml文件去管理的依赖,使用【pip install -e ".[all]"】命令下载依赖。我们下载好flux模型所需要的相关依赖之后,需要安装对应版本的torch_npu,使pytorch框架可以运行在昇腾NPU上,这样flux模型所需要的环境就搭建完成了。torch_npu是华为为昇腾NPU设计的pytorch后端库,使得pytorch框架能够在昇腾NPU上运行,是连接pytorch框架与昇腾NPU的桥梁。

第二步:准备模型权重文件

我先运行了一次模型,发现权重文件在运行时会自动从Hugging Face上下载,由于模型权重文件较大,且每次运行都会重新下载,比较占用内存。所以我们提前下载模型权重文件到主机上。

分析代码文件,涉及到的相关模型权重有以下3个:

t5:文本转换为机器理解的语言

clip:文本转换为图像

flux:图像生成

第三步:编写运行代码

flux模型权重文件下载完成后,就可以修改相关代码,实现模型权重文件从本地加载。

在之前的代码逻辑里面,判断加载哪一个模型是基于模型的名称去进行判断的,但是我们现在传入的参数是路径,这个方法不适用,需要修改代码,直接说明加载的模型是T5或者CLIP。

然后运行模型,报错提示设备为CUDA,但我的设备是NPU。根据这个报错信息,我进行了对应的修改,将device="CUDA",改为device="NPU"

再次运行之后报错提示bfloat16不支持在这个设备上,我根据这个报错信息,找到bfloat16的位置,修改为float32

进行这些修改之后,运行模型,查看NPU已经进入了运行状态。

测试结果:

经过测试,模型可以通过输入的内容,去生成对应的图片,所以模型的功能在此主机上可以正常使用了。

期待各位小伙伴的加入,一起体验适配带来的乐趣。在体验过程中,如有问题可点击链接进入开源开发者专属问答区,加入开源开发者专项计划。加入我们,您可以在项目中提 Issues与其他开发者进行互动,也可以添加项目相关的微信群进行技术讨论与交流。

沃土云创开源开发者专项计划是华为给开源开发者提供专属激励资源,鼓励开发者积极参与开源 for Huawei适配,践行"让优秀开发者支持更优秀开发者"的理念。

点击关注,第一时间了解华为云新鲜技术~

相关推荐
万俟淋曦1 小时前
【论文速递】2025年第28周(Jul-06-12)(Robotics/Embodied AI/LLM)
人工智能·ai·机器人·大模型·论文·robotics·具身智能
万俟淋曦4 小时前
【论文速递】2025年第29周(Jul-13-19)(Robotics/Embodied AI/LLM)
人工智能·ai·机器人·论文·robotics·具身智能
Ashley的成长之路4 小时前
AI搜索中的幻觉问题:成因、解决方案与最佳实践
ai·ai搜索·ai幻觉·ai幻觉解决方案
Elastic 中国社区官方博客5 小时前
Elasticsearch 推理 API 增加了开放的可定制服务
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
梵得儿SHI7 小时前
Prompt Engineering 核心知识:从基础模式到思维链,掌握大模型高效交互秘籍
大模型·prompt·交互·提示词·对话·大模型提问艺术·极简指令
AI360labs_atyun10 小时前
AI教育开启新篇章
人工智能·百度·ai
hzp66610 小时前
Magnus:面向大规模机器学习工作负载的综合数据管理方法
人工智能·深度学习·机器学习·大模型·llm·数据湖·大数据存储
CoderJia程序员甲11 小时前
GitHub 热榜项目 - 日榜(2025-10-17)
ai·llm·github·开源项目·github热榜
Elastic 中国社区官方博客17 小时前
根据用户行为数据中的判断列表在 Elasticsearch 中训练 LTR 模型
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
HyperAI超神经1 天前
AI预判等离子体「暴走」,MIT等基于机器学习实现小样本下的等离子体动力学高精度预测
人工智能·神经网络·机器学习·ai·强化学习·可控核聚变·托卡马克