使用 PyTorch 在 Windows 上通过 AMD 部署 LLM 入门指南
使用 AMD 消费级显卡,通过 PyTorch 在 Windows 上运行 LLM。
本页内容
目标:机器学习生态系统正在迅速爆炸式发展,我们的目标是通过这一系列机器学习博文,让迁移到 AMD GPU 变得简单。
受众:数据科学家和机器学习从业者,以及在 AMD GPU 上使用 PyTorch/TensorFlow 的软件工程师。您可以是机器学习新手,也可以是经验丰富的 Nvidia GPU 用户。
动机:因为在开始一个新的机器学习项目时,您可能会注意到 GitHub 上许多现有代码几乎总是基于 CUDA。如果您拥有 AMD GPU 并按照说明运行代码,通常是行不通的。我们根据我们的经验,提供可以帮助您为实验创建代码环境并管理 AMD GPU 上的 CUDA 代码库的步骤。
与现有在线资源的区别
这是从机器学习从业者的角度出发,引导您避开因习惯和偏好(例如使用 Jupyter Notebooks 和 pip install)而导致的弯路。
这不是为了教您如何在 ROCm 上安装 PyTorch/TensorFlow,因为仅此一步通常不足以成功运行机器学习代码。
这不是为了教您如何 HIP 化代码,而是让您知道有时您甚至不需要这一步。
截至今天,这是互联网上唯一一份关于如何在 AMD GPU 上创建 PyTorch/TensorFlow 代码环境的端到端说明文档。
我们建议遵循官方 ROCm PyTorch 网站上的说明。
我们建议遵循官方 ROCm TensorFlow 网站上的说明。
注意:我们还强烈建议使用预装了 PyTorch 或 TensorFlow 的 Docker 镜像。原因是,如果您创建虚拟环境或 conda 环境,某些 ROCm 依赖项可能无法正确安装。安装依赖项可能非常棘手。
注意:您不需要使用 —gpus all 标志来使 Docker 在 AMD GPU 上运行。
git clone –-recursive <https://github.com/project/repo.git>跳过创建虚拟环境或 conda 环境的命令。它们通常位于 machine_install.sh 或 setup.sh 文件中。
直接转到库列表,并删除 torch 和 tensorflow,因为它们默认是基于 CUDA 的。Docker 容器应已为 ROCm 安装了这些库。您通常可以在 requirements.txt 中找到库列表。
运行 pip3 install –r requirements.txt,其中 requirements.txt 包含每行一个软件包名称(可能还有版本号)。
如果您的代码能够顺利运行,那么您已成功在 AMD GPU 上创建了代码环境!
如果不能,则可能是 requirements.txt 中的附加软件包依赖于 CUDA,这些软件包需要 HIP 化才能在 AMD GPU 上运行。
您只需在线搜索或在 GitHub 上搜索“library_name” + “ROCm”。如果存在 HIP 化代码,它就会出现。
由于此步骤并非易事,因此此处提供一个示例
如果您尝试运行与大型语言模型相关的代码,您可能需要 bitsandbytes 库(请参见链接)。
在线搜索“bitsandbytes ROCm”,您会找到这个分支,它通过 HIP 编译目标增加了 ROCm 支持。
git clone https://github.com/agrocylo/bitsandbytes-rocmcd bitsandbytes-rocmexport ROCM_HOME=/opt/rocm/make hip -jpython3 setup.py install注意:安装位置可能包含版本号,例如 /opt/rocm-5.5.0。
对于此选项,我们建议遵循以下教程。
完成修改新的 Docker 容器(按照“在 ROCm 上安装 PyTorch 或 TensorFlow”第一步)后,退出。
exit提示系统显示已启动的容器列表,并找到 Docker 容器 ID。
docker ps -a通过提交更改来创建一个新镜像。
docker commit [CONTAINER_ID] [new_image_name]总之,本文介绍了在 AMD GPU 上创建 PyTorch/TensorFlow 代码环境的关键步骤。ROCm 是一个不断成熟的生态系统,未来将有更多 GitHub 代码包含 ROCm/HIP 化后的端口。AMD Lab Notes 将在后续帖子中讨论从 CUDA 到 HIP 移植的具体细节,以及有关运行 HuggingFace 上流行社区模型的指南。