手動下載並設定 Edge Manager 代理程式 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

手動下載並設定 Edge Manager 代理程式

根據您的作業系統、架構和 AWS 區域,下載 Edge Manager 代理程式。代理程式會定期更新,因此您可以根據發行日期和版本選擇您的代理程式。擁有代理程式後,請建立JSON組態檔案。指定裝置 IoT 物件名稱、機群名稱、裝置憑證及其他鍵值對。如執行 Edge Manager 代理程式需必須在組態檔案中指定的完整金鑰清單,請參閱。您可以執行代理程式做為可執行的二進位檔,或將其連結做為動態共用物件 (DSO)。

代理程式的運作方式

代理程式會在您裝置的 CPU 上執行。代理程式會在您的編譯任務期間指定目標裝置的架構和硬體上執行推論。例如,如果您為 Jetson Nano 編譯模型,代理程式會在提供的深度學習執行時間 () GPU中支援 DLR。

代理程式會以二進位格式發行,以支援作業系統。請檢查您的作業系統是否受支援,並符合下表中的最低作業系統需求:

Linux

版本:Ubuntu 18.04

支援的二進位格式:x86-64 位元 (ELF 二進位) 和 ARMv8 64 位元 (ELF 二進位)

Windows

版本:視窗 10 1909 版

支援的二進位格式:x86-32 位元 (DLL) 和 x86-64 位元 (DLL)

安裝 Edge Manager 代理程式

若要使用 Edge Manager 代理程式,您必須先取得發行成品和根憑證。發行成品儲存在 us-west-2 區域內的 Amazon S3 儲存貯體中。若要下載成品,請指定您的作業系統 (<OS>) 和 <VERSION>

根據您的作業系統,取代 <OS> 為下列其中一項:

Windows 32 位元 Windows 64 位元 Linux x86-64 Linux ARMv8
windows-x86 windows-x64 linux-x64 亞麻 8

VERSION 分為三個組成部分:<MAJOR_VERSION>.<YYYY-MM-DD>-<SHA-7>,其中:

  • <MAJOR_VERSION>:發行版本。目前設定給 1 的發行版本。

  • <YYYY-MM-DD>:成品發行的時間戳記。

  • <SHA-7>:從中構建發行版本的儲存庫提交 ID。

您必須以 YYYY-MM-DD 格式提供 <MAJOR_VERSION> 和時間戳記。我們建議您使用最新的成品發佈時間戳記。

在命令列中執行以下命令以獲取最新的時間戳記。將 <OS> 取代為您的作業系統:

aws s3 ls s3://sagemaker-edge-release-store-us-west-2-<OS>/Releases/ | sort -r

例如,如果您使用的是 Windows 32 位元作業系統,請執行:

aws s3 ls s3://sagemaker-edge-release-store-us-west-2-windows-x86/Releases/ | sort -r

將傳回 。

2020-12-01 23:33:36 0 PRE 1.20201218.81f481f/ PRE 1.20201207.02d0e97/

此範例中的傳回輸出會顯示兩個發行成品。第一個版本成品檔案會記下發行版本的主要版本為 1、時間戳記為 20201218( YYYY-MM-DD格式),以及 SHA-7 81f481f 遞交 ID。

注意

上述命令假設您已經配置了 AWS Command Line Interface。如需如何設定 AWS CLI 用來與 互動的設定的詳細資訊 AWS,請參閱設定 AWS CLI

根據您的作業系統,使用下列命令來安裝成品:

Windows 32-bit
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-windows-x86/Releases/<VERSION>/<VERSION>.zip . aws s3 cp s3://sagemaker-edge-release-store-us-west-2-windows-x86/Releases/<VERSION>/sha256_hex.shasum .
Windows 64-bit
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-windows-x64/Releases/<VERSION>/<VERSION>.zip . aws s3 cp s3://sagemaker-edge-release-store-us-west-2-windows-x64/Releases/<VERSION>/sha256_hex.shasum .
Linux x86-64
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-x64/Releases/<VERSION>/<VERSION>.tgz . aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-x64/Releases/<VERSION>/sha256_hex.shasum .
Linux ARMv8
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-armv8/Releases/<VERSION>/<VERSION>.tgz . aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-armv8/Releases/<VERSION>/sha256_hex.shasum .

您也必須下載根憑證。此憑證會驗證 簽署的模型成品, AWS 然後再將其載入您的邊緣裝置。

<OS> 取代為支援的操作系統清單中與您的平台相對應者,並將 <REGION> 取代為您的 AWS 區域。

aws s3 cp s3://sagemaker-edge-release-store-us-west-2-<OS>/Certificates/<REGION>/<REGION>.pem .

執行 Edge Manager 代理程式

您可以執行 SageMaker AI Edge Manager 代理程式做為獨立程序,其形式為可執行和可連結格式 (ELF) 可執行二進位檔,也可以將其做為動態共用物件 (.dll) 進行連結。Linux 支援將其做為獨立的可執行二進位文件執行,並且為偏好模式。視窗支援將其作為共享物件 (.dll) 執行。

在 Linux 上,我們建議您透過初始化 (init) 系統一部分的服務來執行二進位檔。如果您希望直接執行二進位檔案,您可以在終端機中這麼做,如以下範例所示。如果您有現代化的作業系統,則在執行代理程式之前不需要其他安裝,因為所有需求都是以靜態方式建置在可執行檔中。這使您可以靈活地在終端機上,作為服務或在容器中執行代理程式。

若要執行代理程式,請先建立JSON組態檔案。指定下列鍵值對:

  • sagemaker_edge_core_device_name:裝置的名稱。此裝置名稱必須與 SageMaker Edge Manager 主控台中的裝置機群一起註冊。

  • sagemaker_edge_core_device_fleet_name:裝置所屬機群的名稱。

  • sagemaker_edge_core_region:與裝置、機群和 Amazon S3 儲存貯體相關聯的 AWS 區域。這對應於註冊裝置的所在區域,以及建立 Amazon S3 儲存貯體的區域 (預期為相同位置)。這些模型本身可以在不同的區域中使用 SageMaker Neo 編譯,此組態與模型編譯區域無關。

  • sagemaker_edge_core_root_certs_path:根憑證的絕對資料夾路徑。這用於使用相關 AWS 帳戶驗證裝置。

  • sagemaker_edge_provider_aws_ca_cert_file:Amazon Root CA 憑證 (AmazonRootCA1.pem) 的絕對路徑。這用於使用相關 AWS 帳戶驗證裝置。 AmazonCA 是 擁有的憑證 AWS。

  • sagemaker_edge_provider_aws_cert_file: AWS IoT 簽署根憑證的絕對路徑 (*.pem.crt)。

  • sagemaker_edge_provider_aws_cert_pk_file: AWS IoT 私有金鑰的絕對路徑。 (*.pem.key)。

  • sagemaker_edge_provider_aws_iot_cred_endpoint: AWS IoT 登入資料端點 (identifier.iot.region.amazonaws.com)。此端點用於認證驗證。請參閱將裝置連線至 AWS IoT 以取得更多資訊。

  • sagemaker_edge_provider_provider:這表示正在使用的提供者介面的實作。提供者介面會與終端網路服務通訊,以進行上傳、活動訊號和註冊驗證。根據預設,這會設定為 "Aws"。我們允許提供者介面的自訂實作。若無提供者,可以設定為 None,而提供相關共用物件路徑的自訂實作則設定為 Custom

  • sagemaker_edge_provider_provider_path:提供提供者實作共用物件的絕對路徑。(.so 或 .dll 檔案)。"Aws" 提供者 .dll 或 .so 檔案隨代理程式版本一起提供。此欄位是必要的。

  • sagemaker_edge_provider_s3_bucket_name:Amazon S3 儲存貯體的名稱 (而非 Amazon S3 儲存貯體 URI)。值區的名稱中必須有一個 sagemaker 字串。

  • sagemaker_edge_log_verbose (布林值):選用。這會設定偵錯記錄檔。擇一選取 True 或者 False

  • sagemaker_edge_telemetry_libsystemd_path:僅針對 Linux,systemd 實作代理程式損毀計數器量度。設定 libsystemd 的絕對路徑,以開啟當機計數器量度。您可以透過在裝備終端機中執行 whereis libsystemd 來尋找預設的 libsystemd 路徑。

  • sagemaker_edge_core_capture_data_destination:上傳擷取資料的目的地。選擇 "Cloud""Disk"。預設設定為 "Disk"。將其設定為 "Disk" 將輸入和輸出張量和輔助資料寫入您偏好位置的本機檔案系統。寫入 "Cloud" 時,請使用 sagemaker_edge_provider_s3_bucket_name 組態中提供的 Amazon S3 儲存貯體名稱。

  • sagemaker_edge_core_capture_data_disk_path:在本地檔案系統中設置絕對路徑,當目的地是 "Disk" 時,將擷取資 料檔案寫入該路徑。指定為目的地時,"Cloud" 不會使用此欄位。

  • sagemaker_edge_core_folder_prefix:Amazon S3 中的父項首碼,當您指定 "Cloud" 為擷取資料目的地時,會存放擷取的資料 (sagemaker_edge_core_capture_data_disk_path)。如果 "Disk" 設定為資料目標,擷取的資料會儲存在 sagemaker_edge_core_capture_data_disk_path 下的子資料夾中。

  • sagemaker_edge_core_capture_data_buffer_size (整數值):擷取資料的循環緩衝區大小。它表示儲存在緩衝區中的請求的最大數量。

  • sagemaker_edge_core_capture_data_batch_size(整數值):擷取資料批次大小。它指示從緩衝區處理的一批請求的大小。此值必須等於或小於 sagemaker_edge_core_capture_data_buffer_size。對於批次大小,建議使用緩衝區大小的最大一半。

  • sagemaker_edge_core_capture_data_push_period_seconds(整數值):擷取資料推送期間 (以秒為單位)。當緩衝區中有批次大小要求,或在此時段已完成 (以先到者為準) 時,就會處理緩衝區中的一批要求。此配置設置該時間段。

  • sagemaker_edge_core_capture_data_base64_embed_limit:上傳擷取資料的限制 (以位元組為單位)。整數值。

您的組態檔案看起來如下列範例 (指定了您的特定數值)。此範例使用預設的 AWS provider("Aws"),不會指定定期上傳。

{ "sagemaker_edge_core_device_name": "device-name", "sagemaker_edge_core_device_fleet_name": "fleet-name", "sagemaker_edge_core_region": "region", "sagemaker_edge_core_root_certs_path": "<Absolute path to root certificates>", "sagemaker_edge_provider_provider": "Aws", "sagemaker_edge_provider_provider_path" : "/path/to/libprovider_aws.so", "sagemaker_edge_provider_aws_ca_cert_file": "<Absolute path to Amazon Root CA certificate>/AmazonRootCA1.pem", "sagemaker_edge_provider_aws_cert_file": "<Absolute path to AWS IoT signing root certificate>/device.pem.crt", "sagemaker_edge_provider_aws_cert_pk_file": "<Absolute path to AWS IoT private key.>/private.pem.key", "sagemaker_edge_provider_aws_iot_cred_endpoint": "https://<AWS IoT Endpoint Address>", "sagemaker_edge_core_capture_data_destination": "Cloud", "sagemaker_edge_provider_s3_bucket_name": "sagemaker-bucket-name", "sagemaker_edge_core_folder_prefix": "Amazon S3 folder prefix", "sagemaker_edge_core_capture_data_buffer_size": 30, "sagemaker_edge_core_capture_data_batch_size": 10, "sagemaker_edge_core_capture_data_push_period_seconds": 4000, "sagemaker_edge_core_capture_data_base64_embed_limit": 2, "sagemaker_edge_log_verbose": false }

發行成品包含在 /bin 目錄中名為 sagemaker_edge_agent_binary 的二進位執行檔。若要執行二進位檔案,請使用 -a旗標在您選擇的目錄中建立通訊端檔案描述項 JSON (.sock),並指定您以 -c旗標建立的代理程式組態檔案路徑。

./sagemaker_edge_agent_binary -a <ADDRESS_TO_SOCKET> -c <PATH_TO_CONFIG_FILE>

下列範例會顯示具有指定目錄和檔案路徑的程式碼片段:

./sagemaker_edge_agent_binary -a /tmp/sagemaker_edge_agent_example.sock -c sagemaker_edge_config.json

在此範例中,會在 /tmp 目錄中建立名為 sagemaker_edge_agent_example.sock 的通訊端檔案描述項,並指向與名為 sagemaker_edge_config.json 代理程式位於相同工作目錄中的組態檔案。