亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Sagemaker 的處理步驟中將包上傳到實例?

如何在 Sagemaker 的處理步驟中將包上傳到實例?

紫衣仙女 2023-10-06 13:44:50
我必須對一些數據進行大規模特征工程。我當前的方法是使用啟動實例SKLearnProcessor,然后通過選擇更大的實例大小或增加實例數量來擴展作業。我需要使用一些默認情況下未安裝在 Sagemaker 實例上的軟件包,因此我想使用 .whl 文件安裝這些軟件包。另一個障礙是 Sagemaker 角色無法訪問互聯網。import boto3import sagemakerfrom sagemaker import get_execution_rolefrom sagemaker.sklearn.processing import SKLearnProcessorsess = sagemaker.Session()sess.default_bucket()        region = boto3.session.Session().region_namerole = get_execution_role()sklearn_processor = SKLearnProcessor(framework_version='0.20.0',                                     role=role,                                     sagemaker_session = sess,                                     instance_type="ml.t3.medium",                                     instance_count=1)sklearn_processor.run(code='script.py')嘗試的解決方案:將包上傳到 CodeCommit 存儲庫并將存儲庫克隆到 SKLearnProcessor 實例中。因錯誤而失敗fatal: could not read Username for 'https://git-codecommit.eu-west-1.amazonaws.com': No such device or address。我嘗試將存儲庫克隆到 sagemaker 筆記本實例中并且它可以工作,所以這不是我的腳本的問題。使用 bash 腳本通過 CLI 從 s3 復制包。我使用的 bash 腳本基于這篇文章。但包永遠不會被復制,并且不會拋出錯誤消息。還研究了使用該包s3fs,但似乎不適合復制輪文件。備擇方案我的客戶對于是否從自定義 Docker 鏡像啟動容器猶豫不決。還有其他選擇嗎?
查看完整描述

2 回答

?
慕森王

TA貢獻1777條經驗 獲得超3個贊

2. Use a bash script to copy the packages from s3 using the CLI. The bash script I used is based off this post. But the packages never get copied, and an error message is not thrown.

這種方法似乎很合理。

您最好覆蓋tocommand上的字段,運行 bash 腳本,就像安裝包含 python 依賴項的wheel,然后運行主 python 入口點腳本。SKLearnProcessor/bin/bashinstall_and_run_my_python_code.sh

此外,您可以使用ProcessingInput來下載代碼,而不是使用AWS S3調用來下載腳本中的代碼,而不是使用bash腳本中的AWS CLI調用來下載代碼,這就是SKLearnProcessor下載入口點script.py代碼的方法。所有實例。


查看完整回答
反對 回復 2023-10-06
?
弒天下

TA貢獻1818條經驗 獲得超8個贊

還有其他一些選擇。這是我能想到的所有選項(有些已經提到了)

  1. 使用sagemaker.processing.*Processor.run(code=<bash script>)bash 腳本從存儲庫中提?。禾峤坏?Codecommit/Github/Bitbucket 存儲庫,并使用您的運行 bash 腳本通過從同一存儲庫克隆來進行設置

  2. Hijack ProcessingInput:指向ProcessingInput本地目錄,或者通過將文件上傳到 S3 并指向ProcessingInput同一個 S3 來進行預先設置。

  3. 將您的庫打包并推送到本地存儲庫(Nexus、EC2、CodArtifact,支持此),然后像任何帶有 bash 運行文件的 python 包一樣安裝它們。

  4. 劫持sagemaker.sklearn.estimator并用于source_dir指定您的整個源目錄

  5. 從包中編譯一個輪子并推送到容器并ProcessingInput安裝。

這些都不是很好。我沒有做1,因為我不想每次都推送最新的代碼來測試,不想構建一個包(3)或編譯一個輪子(5),并使用估計器來運行處理作業似乎是錯誤的。使用 2,在我的情況下,有必要將單個文件放在正確的位置(ProcessingInput不支持單個文件,并且我在更高的目錄中有 pyproject.toml),因此運行該作業的作業腳本通過訂購進行預先設置并將文件上傳到 S3,我在ProcessingInput.


查看完整回答
反對 回復 2023-10-06
  • 2 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號