เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

เรียกใช้สมุดบันทึกเป็นงานแบตช์ใน Amazon SageMaker Studio Lab

เมื่อเร็ว ๆ นี้ สตูดิโอ Amazon SageMaker เปิดตัววิธีง่ายๆ ในการรันโน้ตบุ๊กเป็นงานแบตช์ที่สามารถรันตามกำหนดการที่เกิดซ้ำได้ ห้องปฏิบัติการ Amazon SageMaker Studio ยังรองรับคุณสมบัตินี้ ทำให้คุณสามารถเรียกใช้สมุดบันทึกที่คุณพัฒนาใน SageMaker Studio Lab ในบัญชี AWS ของคุณ สิ่งนี้ทำให้คุณสามารถปรับขนาดการทดสอบแมชชีนเลิร์นนิง (ML) ของคุณได้อย่างรวดเร็วด้วยชุดข้อมูลที่ใหญ่ขึ้นและอินสแตนซ์ที่มีประสิทธิภาพมากขึ้น โดยไม่ต้องเรียนรู้อะไรใหม่หรือเปลี่ยนโค้ดแม้แต่บรรทัดเดียว

ในโพสต์นี้ เราจะแนะนำคุณเกี่ยวกับสิ่งที่จำเป็นต้องมีในครั้งเดียวเพื่อเชื่อมต่อสภาพแวดล้อม Studio Lab ของคุณกับบัญชี AWS หลังจากนั้น เราจะแนะนำคุณตลอดขั้นตอนในการเรียกใช้สมุดบันทึกเป็นงานแบตช์จาก Studio Lab

ภาพรวมโซลูชัน

Studio Lab รวมส่วนขยายเดียวกันกับ Studio ซึ่งใช้ส่วนขยายโอเพ่นซอร์สของ Jupyter สำหรับ สมุดบันทึกตามกำหนดเวลา. ส่วนขยายนี้มีพารามิเตอร์เฉพาะของ AWS เพิ่มเติม เช่น ประเภทการประมวลผล ใน Studio Lab สมุดบันทึกตามกำหนดเวลาจะถูกคัดลอกไปยัง บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon ที่เก็บข้อมูล (Amazon S3) ในบัญชี AWS ของคุณ จากนั้นเรียกใช้ตามเวลาที่กำหนดด้วยประเภทการประมวลผลที่เลือก เมื่องานเสร็จสมบูรณ์ เอาต์พุตจะถูกเขียนไปยังบัคเก็ต S3 และการประมวลผล AWS จะหยุดลงโดยสิ้นเชิง เพื่อป้องกันค่าใช้จ่ายที่ต่อเนื่อง

เบื้องต้น

หากต้องการใช้งานโน้ตบุ๊ก Studio Lab คุณต้องมีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบในบัญชี AWS ที่คุณจะเชื่อมต่อด้วย (หรือความช่วยเหลือจากบุคคลที่มีสิทธิ์เข้าถึงนี้) ในส่วนที่เหลือของโพสต์นี้ เราถือว่าคุณเป็นผู้ดูแลระบบ AWS หากไม่ใช่ ให้ขอให้ผู้ดูแลระบบหรือเจ้าของบัญชีตรวจสอบขั้นตอนเหล่านี้กับคุณ

สร้างบทบาทการดำเนินการของ SageMaker

เราจำเป็นต้องตรวจสอบให้แน่ใจว่าบัญชี AWS มี AWS Identity และการจัดการการเข้าถึง (IAM) บทบาทการดำเนินการของ SageMaker บทบาทนี้ใช้โดยทรัพยากร SageMaker ภายในบัญชี และให้การเข้าถึงจาก SageMaker ไปยังทรัพยากรอื่นๆ ในบัญชี AWS ในกรณีของเรา งานสมุดบันทึกของเราทำงานโดยมีสิทธิ์เหล่านี้ หากเคยใช้ SageMaker ในบัญชีนี้มาก่อน แสดงว่ามีบทบาทอยู่แล้ว แต่อาจไม่มีสิทธิ์ที่จำเป็นทั้งหมด งั้นเรามาสร้างใหม่กันเถอะ

ขั้นตอนต่อไปนี้จำเป็นต้องทำเพียงครั้งเดียว โดยไม่คำนึงว่าสภาพแวดล้อม SageMaker Studio Lab จะเข้าถึงบัญชี AWS นี้มากน้อยเพียงใด

  1. บนคอนโซล IAM ให้เลือก บทบาท ในบานหน้าต่างนำทาง
  2. Choose สร้างบทบาท.
  3. สำหรับ ประเภทเอนทิตีที่เชื่อถือได้ให้เลือก บริการ AWS.
  4. สำหรับ กรณีการใช้งานสำหรับบริการอื่นๆ ของ AWSเลือก SageMaker.
  5. เลือก SageMaker – การดำเนินการ.
  6. Choose ถัดไป.
  7. ตรวจสอบสิทธิ์ แล้วเลือก ถัดไป.เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  8. สำหรับ ชื่อบทบาท, ใส่ชื่อ (สำหรับโพสต์นี้เราใช้ sagemaker-execution-role-notebook-jobs).
  9. Choose สร้างบทบาท.
  10. จดบันทึกบทบาทของ ARN

บทบาทของ ARN จะอยู่ในรูปแบบของ arn:aws:iam::[account-number]:role/service-role/[role-name] และจำเป็นในการตั้งค่า Studio Lab

สร้างผู้ใช้ IAM

สำหรับสภาพแวดล้อม Studio Lab เพื่อเข้าถึง AWS เราจำเป็นต้องสร้างผู้ใช้ IAM ภายใน AWS และให้สิทธิ์ที่จำเป็น จากนั้นเราต้องสร้างชุดคีย์การเข้าถึงสำหรับผู้ใช้รายนั้นและมอบให้กับสภาพแวดล้อมของ Studio Lab

ควรทำซ้ำขั้นตอนนี้สำหรับแต่ละสภาพแวดล้อม SageMaker Studio Lab ที่จะเข้าถึงบัญชี AWS นี้

โปรดทราบว่าผู้ดูแลระบบและเจ้าของบัญชี AWS ควรตรวจสอบให้แน่ใจว่าได้ปฏิบัติตามแนวปฏิบัติด้านความปลอดภัยที่มีการออกแบบมาอย่างดีในระดับมากที่สุดเท่าที่จะเป็นไปได้ ตัวอย่างเช่น สิทธิ์ของผู้ใช้ควรถูกลดขอบเขตลงเสมอ และควรหมุนเวียนคีย์การเข้าถึงอย่างสม่ำเสมอเพื่อลดผลกระทบจากการบุกรุกข้อมูลประจำตัว

ในบล็อกนี้ เราจะแสดงวิธีใช้ AmazonSageMakerFullAccess นโยบายที่ได้รับการจัดการ นโยบายนี้ให้การเข้าถึง Amazon SageMaker แบบกว้างซึ่งอาจเกินกว่าที่จำเป็น รายละเอียดเกี่ยวกับ AmazonSageMakerFullAccess สามารถพบได้ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม.

แม้ว่า Studio Lab จะใช้การรักษาความปลอดภัยระดับองค์กร แต่ควรสังเกตว่าข้อมูลรับรองผู้ใช้ Studio Lab ไม่ได้เป็นส่วนหนึ่งของบัญชี AWS ของคุณ ดังนั้นจึงไม่อยู่ภายใต้รหัสผ่าน AWS หรือนโยบาย MFA ของคุณ

เพื่อจำกัดขอบเขตการอนุญาตให้มากที่สุด เราสร้างโปรไฟล์ผู้ใช้สำหรับการเข้าถึงนี้โดยเฉพาะ

  1. บนคอนโซล IAM ให้เลือก ผู้ใช้ ในบานหน้าต่างนำทาง
  2. Choose เพิ่มผู้ใช้.
  3. สำหรับ ชื่อผู้ใช้ป้อนชื่อ เป็นการดีที่จะใช้ชื่อที่เชื่อมโยงกับบุคคลที่จะใช้บัญชีนี้ สิ่งนี้ช่วยได้หากตรวจสอบบันทึกการตรวจสอบ
  4. สำหรับ เลือกประเภทการเข้าถึง AWSให้เลือก คีย์การเข้าถึง – การเข้าถึงแบบเป็นโปรแกรม.
  5. Choose ถัดไป: สิทธิ์.เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  6. Choose แนบนโยบายที่มีอยู่โดยตรง.
  7. ค้นหาและเลือก AmazonSageMakerFullAccess.เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  8. ค้นหาและเลือก AmazonEventBridgeFullAccess.เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  9. Choose ถัดไป: แท็ก.
  10. Choose ถัดไป: รีวิว.
  11. ยืนยันนโยบายของคุณ จากนั้นเลือก สร้างผู้ใช้.เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.หน้าสุดท้ายของกระบวนการสร้างผู้ใช้ควรแสดงคีย์การเข้าถึงของผู้ใช้ เปิดแท็บนี้ทิ้งไว้ เพราะเราไม่สามารถกลับมาที่นี่ได้ และเราต้องการรายละเอียดเหล่านี้
  12. เปิดแท็บเบราว์เซอร์ใหม่ใน Studio Lab
  13. เกี่ยวกับ เนื้อไม่มีมัน เมนูให้เลือก เปิดใหม่แล้วเลือก สถานีปลายทาง.เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  14. ที่บรรทัดรับคำสั่ง ให้ป้อนรหัสต่อไปนี้:
    aws configure

  15. ป้อนรหัสต่อไปนี้:
    1. ป้อนค่าจากหน้าคอนโซล IAM สำหรับ ID คีย์การเข้าถึงและคีย์การเข้าถึงลับของคุณ
    2. สำหรับ Default region nameป้อน us-west-2.
    3. ทิ้ง Default output format as text.
      (studiolab) studio-lab-user@default:~$ aws configure 
      AWS Access Key ID []: 01234567890
      AWS Secret Access Key []: ABCDEFG1234567890ABCDEFG
      Default region name []: us-west-2
      Default output format [text]: 
      
      (studiolab) studio-lab-user@default:~$

ขอแสดงความยินดี สภาพแวดล้อม Studio Lab ของคุณควรได้รับการกำหนดค่าเพื่อเข้าถึงบัญชี AWS แล้ว ในการทดสอบการเชื่อมต่อ ให้ออกคำสั่งต่อไปนี้:

aws sts get-caller-identity

คำสั่งนี้ควรส่งคืนรายละเอียดเกี่ยวกับผู้ใช้ IAM ที่คุณกำหนดค่าให้ใช้

สร้างงานสมุดบันทึก

สร้างงานโน้ตบุ๊กโดยใช้โน้ตบุ๊ก Jupyter ภายใน Studio Lab หากโน้ตบุ๊กของคุณทำงานใน Studio Lab โน้ตบุ๊กก็สามารถทำงานเป็นงานโน้ตบุ๊กได้ (พร้อมทรัพยากรและการเข้าถึงบริการของ AWS ที่มากขึ้น) อย่างไรก็ตาม มีสองสิ่งที่ควรระวัง

หากคุณติดตั้งแพ็คเกจเพื่อให้โน้ตบุ๊กใช้งานได้ ให้เพิ่มคำสั่งเพื่อโหลดแพ็คเกจเหล่านี้ในเซลล์ที่ด้านบนของโน้ตบุ๊ก โดยใช้สัญลักษณ์ & ที่จุดเริ่มต้นของแต่ละบรรทัด รหัสจะถูกส่งไปยังบรรทัดคำสั่งเพื่อเรียกใช้ ในตัวอย่างต่อไปนี้ เซลล์แรกใช้ pip เพื่อติดตั้งไลบรารี PyTorch:

%%capture
%pip install torch
%pip install torchvision

เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

สมุดบันทึกของเราจะสร้างโมเดล PyTorch ที่ผ่านการฝึกอบรม ด้วยโค้ดปกติของเรา เราจะบันทึกโมเดลลงในระบบไฟล์ใน Studio Labs

เมื่อเรารันสิ่งนี้เป็นงานโน้ตบุ๊ก เราจำเป็นต้องบันทึกโมเดลในที่ที่เราสามารถเข้าถึงได้ในภายหลัง วิธีที่ง่ายที่สุดคือบันทึกโมเดลใน Amazon S3 เราสร้างบัคเก็ต S3 เพื่อบันทึกโมเดลของเรา และใช้เซลล์บรรทัดคำสั่งอื่นเพื่อคัดลอกวัตถุลงในบัคเก็ต

เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI. เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

เราใช้ อินเทอร์เฟซบรรทัดคำสั่ง AWS AWS (AWS CLI) ที่นี่เพื่อคัดลอกวัตถุ เรายังสามารถใช้ AWS SDK สำหรับ Python (Boto3) หากเราต้องการให้มีการควบคุมชื่อไฟล์ที่ซับซ้อนหรือเป็นไปโดยอัตโนมัติ สำหรับตอนนี้ เราจะตรวจสอบให้แน่ใจว่าเราเปลี่ยนชื่อไฟล์ทุกครั้งที่เรียกใช้โน้ตบุ๊ก เพื่อไม่ให้รุ่นถูกเขียนทับ

ตอนนี้เราพร้อมที่จะสร้างงานโน๊ตบุ๊คแล้ว

  1. เลือก (คลิกขวา) ที่ชื่อสมุดบันทึก จากนั้นเลือก สร้างงานโน๊ตบุ๊ค.เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
    หากไม่มีตัวเลือกเมนูนี้ คุณอาจต้องรีเฟรชสภาพแวดล้อม Studio Lab ในการทำเช่นนี้ ให้เปิด Terminal จากตัวเรียกใช้งานและรันโค้ดต่อไปนี้:
    conda deactivate && conda env remove —name studiolab

  2. จากนั้น รีสตาร์ทอินสแตนซ์ JupyterLab ของคุณโดยเลือก ห้องปฏิบัติการ Amazon SageMaker Studio จากเมนูด้านบน จากนั้นเลือก รีสตาร์ท JupyterLabหรือไปที่หน้าโครงการแล้วปิดและรีสตาร์ทรันไทม์
  3. เกี่ยวกับ สร้างงาน หน้าสำหรับ ประเภทคอมพิวเตอร์เลือกประเภทการประมวลผลที่เหมาะกับงานของคุณ

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความสามารถในการคำนวณประเภทต่างๆ รวมถึงค่าใช้จ่าย โปรดดูที่ ราคา Amazon SageMaker (เลือก ราคาตามความต้องการ และไปที่ การฝึกอบรม แท็บ คุณอาจต้องตรวจสอบความพร้อมใช้งานของโควต้าของประเภทการประมวลผลในบัญชี AWS ของคุณ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโควต้าการบริการ โปรดดูที่: โควต้าบริการของ AWSสำหรับตัวอย่างนี้ เราได้เลือกอินสแตนซ์ ml.p3.2xlarge ซึ่งมี 8 vCPU, หน่วยความจำ 61 GB และ GPU Tesla V100เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

    หากไม่มีคำเตือนในหน้านี้ คุณควรพร้อมที่จะไป หากมีคำเตือน ให้ตรวจสอบเพื่อให้แน่ใจว่ามีการระบุบทบาท ARN ที่ถูกต้อง ตัวเลือกเพิ่มเติม. บทบาทนี้ควรตรงกับ ARN ของบทบาทการดำเนินการของ SageMaker ที่เราสร้างขึ้นก่อนหน้านี้ ARN อยู่ในรูปแบบ arn:aws:iam::[account-number]:role/service-role/[role-name].

    มีตัวเลือกอื่น ๆ ที่มีอยู่ภายใน ตัวเลือกเพิ่มเติม; ตัวอย่างเช่น คุณสามารถเลือกอิมเมจและเคอร์เนลเฉพาะที่อาจมีการกำหนดค่าที่คุณต้องการอยู่แล้วโดยไม่จำเป็นต้องติดตั้งไลบรารีเพิ่มเติม

  4. หากคุณต้องการเรียกใช้สมุดบันทึกนี้ตามกำหนดเวลา ให้เลือก วิ่งตามกำหนด และระบุความถี่ที่คุณต้องการให้งานทำงานเรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.เราต้องการให้สมุดบันทึกนี้ทำงานครั้งเดียว เราจึงเลือก วิ่งเลย.
  5. Choose สร้างบัญชีตัวแทน.
    เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รายการงานโน๊ตบุ๊ค

พื้นที่ งานโน๊ตบุ๊ค หน้าแสดงรายการงานทั้งหมดที่กำลังดำเนินการอยู่และงานที่เคยดำเนินการในอดีต คุณสามารถค้นหารายการนี้ได้จาก Launcher (เลือก เนื้อไม่มีมัน, เปิดใหม่) จากนั้นเลือก งานโน๊ตบุ๊ค ใน อื่นๆ มาตรา.

เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

เมื่องานโน้ตบุ๊กเสร็จสิ้น คุณจะเห็นสถานะเปลี่ยนเป็น Completed (ใช้ โหลด ตัวเลือกหากจำเป็น) จากนั้นคุณสามารถเลือกไอคอนดาวน์โหลดเพื่อเข้าถึงไฟล์ที่ส่งออก

เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

เมื่อดาวน์โหลดไฟล์แล้ว คุณสามารถตรวจสอบสมุดบันทึกพร้อมกับเอาต์พุตโค้ดและบันทึกเอาต์พุต ในกรณีของเรา เนื่องจากเราได้เพิ่มโค้ดเพื่อกำหนดเวลาการเรียกใช้เซลล์การฝึก เราจึงเห็นระยะเวลาที่งานการฝึกใช้คือ 16 นาที 21 วินาที ซึ่งเร็วกว่าการเรียกใช้โค้ดภายใน Studio Lab มาก (1 ชั่วโมง , 38 นาที 55 วินาที). อันที่จริง โน้ตบุ๊กทั้งเครื่องทำงานภายในเวลา 1,231 วินาที (มากกว่า 20 นาทีเท่านั้น) ด้วยราคาต่ำกว่า $1.30 (USD)

เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ขณะนี้ W สามารถเพิ่มจำนวนยุคและปรับไฮเปอร์พารามิเตอร์เพื่อปรับปรุงมูลค่าการสูญเสียของโมเดล และส่งงานโน้ตบุ๊กอื่นได้

สรุป

ในโพสต์นี้ เราแสดงวิธีใช้งานโน้ตบุ๊ก Studio Lab เพื่อปรับขนาดโค้ดที่เราพัฒนาใน Studio Lab และเรียกใช้ด้วยทรัพยากรเพิ่มเติมในบัญชี AWS

การเพิ่มข้อมูลรับรอง AWS ลงในสภาพแวดล้อม Studio Lab ของเรา ไม่เพียงแต่เราสามารถเข้าถึงงานโน้ตบุ๊กเท่านั้น แต่เรายังสามารถเข้าถึงทรัพยากรอื่นๆ จากบัญชี AWS ได้โดยตรงจากภายในโน้ตบุ๊ก Studio Lab ของเรา ดูที่ AWS SDK สำหรับ Python

ความสามารถพิเศษของ Studio Lab นี้ช่วยยกระดับขีดจำกัดของประเภทและขนาดของโปรเจ็กต์ที่คุณสามารถทำได้ แจ้งให้เราทราบว่าคุณสร้างอะไรด้วยความสามารถใหม่นี้!


เกี่ยวกับผู้แต่ง

เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.ไมค์ แชมเบอร์ส เป็นผู้สนับสนุนนักพัฒนาสำหรับ AI และ ML ที่ AWS เขาใช้เวลา 7 ปีที่ผ่านมาในการช่วยผู้สร้างในการเรียนรู้ระบบคลาวด์ ความปลอดภัย และ ML ไมค์มีพื้นเพมาจากสหราชอาณาจักร เขาเป็นคนชอบดื่มชาและชอบต่อเลโก้

เรียกใช้สมุดบันทึกเป็นงานแบบแบตช์ใน Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI. มิเชล มอนโคลวา เป็นผู้จัดการผลิตภัณฑ์หลักที่ AWS ในทีม SageMaker เธอเป็นชาวนิวยอร์กโดยกำเนิดและมีประสบการณ์ในซิลิคอนแวลลีย์ เธอหลงใหลในนวัตกรรมที่ช่วยปรับปรุงคุณภาพชีวิตของเรา

ประทับเวลา:

เพิ่มเติมจาก AWS Machine Learning AWS