| <!--版权所有 2025 The HuggingFace Team。保留所有权利。 | |
| 根据 Apache 许可证 2.0 版(“许可证”)授权;除非遵守许可证,否则不得使用此文件。您可以在以下网址获取许可证副本: | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| 除非适用法律要求或书面同意,根据许可证分发的软件按“原样”分发,无任何明示或暗示的担保或条件。请参阅许可证了解特定语言管理权限和限制。 | |
| --> | |
| # AWS Neuron | |
| Diffusers 功能可在 [AWS Inf2 实例](https://aws.amazon.com/ec2/instance-types/inf2/)上使用,这些是由 [Neuron 机器学习加速器](https://aws.amazon.com/machine-learning/inferentia/)驱动的 EC2 实例。这些实例旨在提供更好的计算性能(更高的吞吐量、更低的延迟)和良好的成本效益,使其成为 AWS 用户将扩散模型部署到生产环境的良好选择。 | |
| [Optimum Neuron](https://huggingface.co/docs/optimum-neuron/en/index) 是 Hugging Face 库与 AWS 加速器之间的接口,包括 AWS [Trainium](https://aws.amazon.com/machine-learning/trainium/) 和 AWS [Inferentia](https://aws.amazon.com/machine-learning/inferentia/)。它支持 Diffusers 中的许多功能,并具有类似的 API,因此如果您已经熟悉 Diffusers,学习起来更容易。一旦您创建了 AWS Inf2 实例,请安装 Optimum Neuron。 | |
| ```bash | |
| python -m pip install --upgrade-strategy eager optimum[neuronx] | |
| ``` | |
| <Tip> | |
| 我们提供预构建的 [Hugging Face Neuron 深度学习 AMI](https://aws.amazon.com/marketplace/pp/prodview-gr3e6yiscria2)(DLAMI)和用于 Amazon SageMaker 的 Optimum Neuron 容器。建议正确设置您的环境。 | |
| </Tip> | |
| 下面的示例演示了如何在 inf2.8xlarge 实例上使用 Stable Diffusion XL 模型生成图像(一旦模型编译完成,您可以切换到更便宜的 inf2.xlarge 实例)。要生成一些图像,请使用 [`~optimum.neuron.NeuronStableDiffusionXLPipeline`] 类,该类类似于 Diffusers 中的 [`StableDiffusionXLPipeline`] 类。 | |
| 与 Diffusers 不同,您需要将管道中的模型编译为 Neuron 格式,即 `.neuron`。运行以下命令将模型导出为 `.neuron` 格式。 | |
| ```bash | |
| optimum-cli export neuron --model stabilityai/stable-diffusion-xl-base-1.0 \ | |
| --batch_size 1 \ | |
| --height 1024 `# 生成图像的高度(像素),例如 768, 1024` \ | |
| --width 1024 `# 生成图像的宽度(像素),例如 768, 1024` \ | |
| --num_images_per_prompt 1 `# 每个提示生成的图像数量,默认为 1` \ | |
| --auto_cast matmul `# 仅转换矩阵乘法操作` \ | |
| --auto_cast_type bf16 `# 将操作从 FP32 转换为 BF16` \ | |
| sd_neuron_xl/ | |
| ``` | |
| 现在使用预编译的 SDXL 模型生成一些图像。 | |
| ```python | |
| >>> from optimum.neuron import Neu | |
| ronStableDiffusionXLPipeline | |
| >>> stable_diffusion_xl = NeuronStableDiffusionXLPipeline.from_pretrained("sd_neuron_xl/") | |
| >>> prompt = "a pig with wings flying in floating US dollar banknotes in the air, skyscrapers behind, warm color palette, muted colors, detailed, 8k" | |
| >>> image = stable_diffusion_xl(prompt).images[0] | |
| ``` | |
| <img | |
| src="https://huggingface.co/datasets/Jingya/document_images/resolve/main/optimum/neuron/sdxl_pig.png" | |
| width="256" | |
| height="256" | |
| alt="peggy generated by sdxl on inf2" | |
| /> | |
| 欢迎查看Optimum Neuron [文档](https://huggingface.co/docs/optimum-neuron/en/inference_tutorials/stable_diffusion#generate-images-with-stable-diffusion-models-on-aws-inferentia)中更多不同用例的指南和示例! |