AWS Trainium & Inferentia 文件
EC2 設定
並獲得增強的文件體驗
開始使用
EC2 設定
本指南將幫助您啟動並執行 Optimum Neuron。主要有兩種方法
- 🚀 推薦:使用深度學習 AMI 的 AWS EC2 - 使用預配置環境的最簡單入門方式
- ⚙️ 手動安裝 - 在現有基礎設施上安裝 Optimum Neuron
推薦:使用深度學習 AMI 的 AWS EC2
在 Amazon EC2 上使用 AWS Trainium 或 Inferentia 和 Optimum Neuron 最簡單的方法是使用 Hugging Face Neuron 深度學習 AMI (DLAMI)。DLAMI 預裝了所有必需的庫,包括 Optimum Neuron、Neuron 驅動程式、Transformers、Datasets 和 Accelerate。HF DLAMI 對 Amazon EC2 使用者是免費提供的。
Optimum Neuron 支援 Inf1、Inf2、Trn1 和 Trn2,所有這些都可以在 Amazon EC2 上訪問。您可以在這裡的“加速計算”部分找到 Trn 和 Inf 例項的所有規格。
在本節中,我們將向您展示
使用 HF DLAMI 在 Amazon EC2 上建立 AWS Trainium 或 Inferentia 例項
在建立 EC2 例項之前,請確保您位於所選例項支援的區域,並且您的 AWS 賬戶中有配額。
查詢支援的區域
截至 2025 年 2 月,支援至少一種 Trainium 或 Inferentia2 例項型別的區域列表如下:
- us-east-1: 美國東部(弗吉尼亞北部)
- us-east-2: 美國東部(俄亥俄)
- us-west-2: 美國西部(俄勒岡)
- ap-south-1: 亞太地區(孟買)
- ap-northeast-1: 亞太地區(東京)
- ap-southeast-1: 亞太地區(新加坡)
- ap-southeast-2: 亞太地區(悉尼)
- ap-southeast-4: 亞太地區(墨爾本)
- eu-north-1: 歐洲(斯德哥爾摩)
- eu-west-3: 歐洲(巴黎)
- eu-west-2: 歐洲(倫敦)
- eu-west-1: 歐洲(愛爾蘭)
- eu-central-1: 歐洲(法蘭克福)
- sa-east-1: 南美洲(聖保羅)
這裡有一個 Python 指令碼,可以幫助您在每個已啟用的區域中獲取最新的受支援例項型別
import boto3
from datetime import datetime
ec2 = boto3.client('ec2')
regions = [region['RegionName'] for region in ec2.describe_regions()['Regions']]
#Edit this line to change the instance types displayed
instance_types = ['trn1.32xlarge', 'trn1.2xlarge', 'inf2.48xlarge', 'inf2.24xlarge', 'inf2.8xlarge', 'inf2.xlarge', 'trn2.48xlarge']
supported_regions = {}
for region in regions:
ec2_region = boto3.client('ec2', region_name=region)
response = ec2_region.describe_instance_type_offerings(
#LocationType='availability-zone',
Filters=[
{'Name': 'instance-type', 'Values': instance_types},
]
)
if response['InstanceTypeOfferings']:
supported_regions[region] = [offer['InstanceType'] for offer in response['InstanceTypeOfferings']]
print('# Supported Regions as of',datetime.now().strftime('%B %d, %Y'))
print('================')
client = boto3.client('ssm')
for region, instance_types in supported_regions.items():
try:
response = client.get_parameter(Name=f'/aws/service/global-infrastructure/regions/{region}/longName')
region_long_name = response['Parameter']['Value']
except (client.exceptions.ParameterNotFound, KeyError):
region_long_name = region
print(f' * {region}: {region_long_name}')
for instance_type in instance_types:
print(f' - {instance_type}')
print('\n')
增加服務配額
現在您已經選擇了區域並切換到該區域,您可以透過 AWS 控制檯請求增加服務配額。導航到服務配額,在左側面板中選擇 AWS 服務,然後搜尋 Amazon EC2,再搜尋 “trn” 或 “inf”。您可以分別為按需例項和競價例項請求增加配額。
預設情況下,Inferentia 和 Trainium 的所有配額均為 0。增加配額不收取任何費用。Inferentia 和 Trainium 有單獨的配額,競價例項和按需例項也有單獨的配額。配額指的是分配給每種例項型別的 vCPU 總數的最大值。
例如,192 的配額可以讓您執行單個 inf2.48xlarge、兩個 inf2.24xlarge、六個 inf2.8xlarge 或四十八個 inf2.xlarge。它還允許您執行 inf1 例項型別。同樣,對於 Trainium,128 的配額可以讓您執行單個 trn1n.32xlarge 或 trn1.32xlarge,但它也允許您執行十六個 trn1.2xlarge。
使用 HF DLAMI 啟動 Amazon EC2 例項
讓我們透過 EC2 控制檯在 us-east-1 區域(弗吉尼亞北部)部署一個 trn1.2xlarge 例項。
首先,單擊 啟動例項 併為例項定義一個名稱 (trainium-huggingface-demo
)。

接下來,在 Amazon Marketplace 中搜索 Hugging Face AMI。在“應用程式和作業系統映像”的搜尋欄中輸入“Hugging Face”並按“enter”。

現在應該會開啟帶有搜尋結果的“選擇亞馬遜機器映像”檢視。您可以導航到“AWS Marketplace AMI”,找到 Hugging Face Neuron 深度學習 AMI 並點選選擇。

如果您尚未訂閱,系統會要求您訂閱。AMI 完全免費,您只需支付 EC2 的計算費用。
然後您需要定義一個金鑰對,它將用於透過 ssh
連線到例項。如果您沒有金鑰對,可以就地建立一個。

之後,建立或選擇一個允許 ssh
流量的安全組。

您現在可以啟動例項了。因此,請點選右側的“啟動例項”。

AWS 現在將使用 Hugging Face Neuron 深度學習 AMI 配置例項。
透過 SSH 連線
例項準備就緒後,您可以檢視並複製公共 IPv4 地址以透過 ssh
連線到機器。

將下面程式碼段中的空字串 ""
替換為您的例項的 IP 地址以及您在啟動例項時建立/選擇的金鑰對的路徑。
PUBLIC_DNS="" # IP address
KEY_PATH="" # local path to key pair
ssh -i $KEY_PATH ubuntu@$PUBLIC_DNS
連線成功後,您可以執行 neuron-ls
來確保您有權訪問 Trainium 加速器。您應該會看到類似下面的輸出。
ubuntu@ip-172-31-79-164:~$ neuron-ls
instance-type: trn1.2xlarge
instance-id: i-0570615e41700a481
+--------+--------+--------+---------+
| NEURON | NEURON | NEURON | PCI |
| DEVICE | CORES | MEMORY | BDF |
+--------+--------+--------+---------+
| 0 | 2 | 32 GB | 00:1e.0 |
+--------+--------+--------+---------+
設定您的遠端開發環境
我們將逐步介紹如何在 Amazon EC2 例項上設定 Jupyter Notebooks 或 VS Code 遠端伺服器。
這兩種方法都需要某種形式的 SSH 連線。這些說明是為 Mac 編寫的,但也應該適用於 Linux 系統。PC 可能需要使用 Putty。
您應該有一個在部署例項時建立的 .pem 檔案,或者來自之前的部署。您可以使用以下命令連線到您的系統
ssh -i "/path/to/sshkey.pem" ubuntu@instance_ip_address
透過 Jupyter Notebook 訪問
該方法涉及在 Neuron 例項上執行 Jupyter notebook 伺服器,本地對映一個埠,然後使用桌面上的瀏覽器訪問 notebook 伺服器。
首先,將本地機器上的一個埠對映到 Neuron 例項。在您的系統終端中執行
ssh -i "/path/to/sshkey.pem" -N -f -L localhost:8888:localhost:8888 ubuntu@instance_ip_address
然後從您的計算機使用 SSH 連線到您的 Amazon EC2 例項。連線後,在命令提示符下執行
nohup jupyter notebook --no-browser --port=8888
幾秒鐘後,檢查 nohup.out 檔案以找到您的伺服器令牌
cat nohup.out | grep localhost
複製連線字串並將其貼上到瀏覽器中。幾秒鐘後,您應該會看到 Jupyter Notebook 瀏覽器。它看起來應該像 https://:8888/tree?token=337fc8de2aenot_a_real_tokene952c43946e4fb57131
這個過程之所以有效,是因為您已將本地機器上的 8888 埠對映到 Neuron 例項上的 8888 埠,因此當您連線到 localhost:8888 時,您最終會訪問 Neuron 例項上的 Jupyter 伺服器。
如果遇到問題,請確保初始埠對映成功。如果您的機器上已經有東西在 8888 埠上執行,這可能會給您一個錯誤。如果需要,您可以隨時在所有說明中更改埠(例如 8885)。
透過 VS Code 遠端伺服器訪問
在本地計算機上安裝 Visual Studio Code 後,您可以使用 Remote-SSH 命令編輯和執行儲存在 Neuron 例項上的檔案。有關更多詳細資訊,請參閱 VS Code 文章。
- 從命令面板(F1, ⇧⌘P)中選擇“遠端 SSH: 連線到主機…”
- 輸入上面 ssh 部分的完整連線字串:ssh -i “/path/to/sshkey.pem” ubuntu@instance_ip_address
- VS Code 應該會連線並自動設定 VS Code 伺服器。
- 最終,您應該會被提示輸入一個基本目錄。您可以瀏覽到 Neuron 例項上的一個目錄。
- 如果您發現選單中的某些命令似乎變灰了,但鍵盤命令仍然有效(⌘S 儲存或 ^⇧` 開啟終端),您可能需要重啟 VS Code。
替代方案:手動安裝
手動安裝在以下幾種情況下非常有用:
- 使用較新版本:安裝最新的 Optimum Neuron 版本,該版本可能尚未在 DLAMI 中提供
- 自定義 AMI 要求:使用您組織的標準 AMI 或安全加固的映像
- 現有基礎設施:向預配置的環境或 Docker 容器新增 Neuron 支援
- 開發設定:安裝預釋出或開發版本進行測試
- 最小化安裝:建立僅包含所需依賴項的輕量級環境
如果選擇手動安裝,您需要確保首先正確安裝了 Neuron 驅動程式和工具。
在安裝 optimum-neuron
之前,請確保您已安裝 Neuron 驅動程式和工具,請檢視此處的更詳細指南。
新增 pip 包 URL
指向 AWS Neuron 儲存庫
python -m pip config set global.extra-index-url https://pip.repos.neuron.amazonaws.com
為 AWS Trainium (trn1) 或 AWS inferentia2 (inf2) 安裝 optimum-neuron
python -m pip install optimum-neuron[neuronx]
為 AWS inferentia (inf1) 安裝 optimum-neuron
python -m pip install optimum-neuron[neuron]
下一步是什麼?
現在您已經設定好了 Optimum Neuron,請檢視快速入門指南,學習使用 Optimum Neuron 進行訓練和推理的基礎知識。