เริ่มต้นใช้งานโมเดลแบบเรียลไทม์บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

เริ่มต้นใช้งานโมเดลแบบเรียลไทม์บน Amazon SageMaker

อเมซอน SageMaker เป็นบริการที่มีการจัดการเต็มรูปแบบซึ่งช่วยให้นักพัฒนาและนักวิทยาศาสตร์ข้อมูลทุกคนสามารถสร้าง ฝึกอบรม และปรับใช้โมเดล Machine Learning (ML) ได้อย่างรวดเร็วในวงกว้าง ML เกิดขึ้นได้จากการอนุมาน SageMaker มีตัวเลือกการอนุมานสี่ตัวเลือก:

  1. การอนุมานตามเวลาจริง
  2. การอนุมานแบบไร้เซิร์ฟเวอร์
  3. การอนุมานแบบอะซิงโครนัส
  4. การแปลงแบทช์

ตัวเลือกทั้งสี่นี้สามารถแบ่งออกกว้างๆ ได้เป็นตัวเลือกการอนุมานแบบออนไลน์และแบบกลุ่ม ในการอนุมานแบบออนไลน์ คำขอจะได้รับการประมวลผลเมื่อมาถึง และแอปพลิเคชันที่ใช้งานคาดว่าจะได้รับการตอบกลับหลังจากประมวลผลคำขอแต่ละรายการแล้ว ซึ่งอาจเกิดขึ้นพร้อมกัน (การอนุมานแบบเรียลไทม์ ไร้เซิร์ฟเวอร์) หรือแบบอะซิงโครนัส (การอนุมานแบบอะซิงโครนัส) ในรูปแบบซิงโครนัส แอปพลิเคชันที่ใช้งานจะถูกบล็อกและไม่สามารถดำเนินการต่อได้จนกว่าจะได้รับการตอบกลับ ปริมาณงานเหล่านี้มักจะเป็นแอปพลิเคชันแบบเรียลไทม์ เช่น การตรวจจับการฉ้อโกงบัตรเครดิตออนไลน์ ซึ่งคาดว่าจะได้รับการตอบสนองตามลำดับมิลลิวินาทีถึงวินาที และเพย์โหลดคำขอมีขนาดเล็ก (ไม่กี่ MB) ในรูปแบบอะซิงโครนัส ประสบการณ์แอปพลิเคชันจะไม่ถูกบล็อก (เช่น การส่งการเคลมประกันผ่านแอปมือถือ) และโดยปกติต้องใช้ขนาดเพย์โหลดที่ใหญ่กว่าและ/หรือเวลาดำเนินการนานกว่า ในการอนุมานแบบออฟไลน์ คำขอการอนุมานแบบรวม (ชุด) จะได้รับการประมวลผลร่วมกัน และจะมีการตอบกลับหลังจากประมวลผลทั้งชุดแล้วเท่านั้น โดยปกติแล้ว ปริมาณงานเหล่านี้ไม่ไวต่อเวลาแฝง เกี่ยวข้องกับข้อมูลปริมาณมาก (หลาย GB) และได้รับการกำหนดเวลาตามจังหวะปกติ (เช่น เรียกใช้การตรวจจับวัตถุในฟุตเทจจากกล้องรักษาความปลอดภัยในตอนท้ายของวัน หรือประมวลผลข้อมูลบัญชีเงินเดือนที่ สิ้นเดือน)

ที่กระดูกเปลือยเปล่า การอนุมานแบบเรียลไทม์ของ SageMaker ประกอบด้วยโมเดล เฟรมเวิร์ก/คอนเทนเนอร์ที่คุณใช้งานอยู่ และโครงสร้างพื้นฐาน/อินสแตนซ์ที่สนับสนุนตำแหน่งข้อมูลที่คุณปรับใช้ ในโพสต์นี้ เราจะสำรวจวิธีที่คุณสามารถสร้างและเรียกใช้ Single Model Endpoint

การเลือกตัวเลือกการปรับใช้โมเดล

การเลือกประเภทการอนุมานที่เหมาะสมอาจเป็นเรื่องยาก และคำแนะนำง่ายๆ ต่อไปนี้สามารถช่วยคุณได้ ไม่ใช่แผนภูมิการไหลที่เข้มงวด ดังนั้น หากคุณพบว่าตัวเลือกอื่นทำงานได้ดีกว่าสำหรับคุณ คุณก็สามารถใช้ตัวเลือกเหล่านั้นได้ตามใจชอบ โดยเฉพาะอย่างยิ่ง การอนุมานตามเวลาจริงเป็นตัวเลือกที่ยอดเยี่ยมสำหรับการโฮสต์โมเดลของคุณเมื่อคุณมีเวลาแฝงต่ำและสม่ำเสมอ (ตามลำดับมิลลิวินาทีหรือวินาที) และปริมาณงานที่มีความละเอียดอ่อนด้านปริมาณงาน คุณสามารถควบคุมประเภทอินสแตนซ์และนับตามหลังตำแหน่งข้อมูลของคุณได้ในขณะกำหนดค่าด้วย การปรับขนาดอัตโนมัติ นโยบายในการจัดการจราจร มีตัวเลือก SageMaker Inference อีกสองตัวเลือกที่คุณสามารถใช้เพื่อสร้างตำแหน่งข้อมูลได้ การอนุมานแบบอะซิงโครนัสคือเมื่อคุณมีขนาดเพย์โหลดขนาดใหญ่และมีแบนด์วิดท์เวลาแฝงที่ใกล้เคียงกับเรียลไทม์ นี่เป็นตัวเลือกที่ดี โดยเฉพาะอย่างยิ่งสำหรับรุ่น NLP และ Computer Vision ที่มีเวลาในการประมวลผลล่วงหน้านานกว่า การอนุมานแบบไร้เซิร์ฟเวอร์เป็นตัวเลือกที่ยอดเยี่ยมเมื่อคุณมีการรับส่งข้อมูลไม่ต่อเนื่องและไม่ต้องการจัดการการปรับขนาดโครงสร้างพื้นฐาน สูตรการสร้างตำแหน่งข้อมูลยังคงเหมือนเดิมไม่ว่าคุณจะเลือกประเภทการอนุมานใดก็ตาม ในโพสต์นี้ เราจะเน้นที่การสร้างตำแหน่งข้อมูลตามอินสแตนซ์แบบเรียลไทม์ แต่คุณสามารถปรับให้เข้ากับตัวเลือกการอนุมานอื่นๆ ได้อย่างง่ายดายตามกรณีการใช้งานของคุณ สุดท้ายนี้ การอนุมานแบบแบตช์จะเกิดขึ้นแบบออฟไลน์ ดังนั้นคุณจึงสามารถจัดเตรียมชุดข้อมูลที่คุณต้องการอนุมานได้ แล้วเราจะดำเนินการให้ นี่เป็นการดำเนินการตามอินสแตนซ์ที่คล้ายกัน ดังนั้นคุณจึงสามารถเลือกอินสแตนซ์ที่เหมาะสมที่สุดสำหรับปริมาณงานของคุณได้ เนื่องจากไม่มีจุดสิ้นสุดและทำงาน คุณจึงชำระเงินเฉพาะช่วงระยะเวลาของงานเท่านั้น เหมาะสำหรับการประมวลผลข้อมูลกิกะไบต์และระยะเวลางานอาจเป็นวันได้ มีฟีเจอร์ในตัวที่ช่วยให้การทำงานกับข้อมูลที่มีโครงสร้างง่ายขึ้น และการเพิ่มประสิทธิภาพเพื่อกระจายข้อมูลที่มีโครงสร้างโดยอัตโนมัติ ตัวอย่างการใช้งานบางส่วน ได้แก่ การสร้างแบบจำลองแนวโน้ม การบำรุงรักษาเชิงคาดการณ์ และการคาดการณ์การเปลี่ยนใจ ทั้งหมดนี้สามารถเกิดขึ้นแบบออฟไลน์เป็นกลุ่มได้ เนื่องจากไม่จำเป็นต้องตอบสนองต่อเหตุการณ์ใดเหตุการณ์หนึ่งโดยเฉพาะ

การโฮสต์โมเดลบน SageMaker Endpoints

ณ จุดสำคัญ จุดสิ้นสุดแบบเรียลไทม์ของ SageMaker ประกอบด้วยโมเดลและโครงสร้างพื้นฐานที่คุณเลือกใช้สำรองตำแหน่งข้อมูล SageMaker ใช้คอนเทนเนอร์เพื่อโฮสต์โมเดล ซึ่งหมายความว่าคุณต้องมีคอนเทนเนอร์ที่ตั้งค่าสภาพแวดล้อมอย่างเหมาะสมสำหรับเฟรมเวิร์กที่คุณใช้สำหรับแต่ละโมเดลที่คุณระบุ ตัวอย่างเช่น หากคุณกำลังทำงานกับโมเดล Sklearn คุณจะต้องส่งสคริปต์/ข้อมูลโมเดลของคุณภายในคอนเทนเนอร์ที่ตั้งค่า Sklearn อย่างเหมาะสม โชคดีที่ SageMaker จัดให้ รูปภาพที่ได้รับการจัดการ สำหรับเฟรมเวิร์กยอดนิยม เช่น TensorFlow, PyTorch, Sklearn และ HuggingFace คุณสามารถดึงและใช้รูปภาพเหล่านี้ได้โดยใช้ระดับสูง SageMaker Python SDK และแทรกสคริปต์โมเดลและข้อมูลของคุณลงในคอนเทนเนอร์เหล่านี้ ในกรณีที่ SageMaker ไม่มีคอนเทนเนอร์ที่รองรับ คุณก็สามารถทำได้เช่นกัน สร้างคอนเทนเนอร์ของคุณเอง และพุชอิมเมจที่คุณกำหนดเอง ติดตั้งการขึ้นต่อกันที่จำเป็นสำหรับโมเดลของคุณ

SageMaker รองรับทั้งโมเดลที่ผ่านการฝึกอบรมและที่ผ่านการฝึกอบรมมาแล้ว ในย่อหน้าก่อนหน้าเมื่อเราพูดถึงสคริปต์/ข้อมูลโมเดล เรากำลังอ้างอิงถึงเรื่องนี้ คุณสามารถเมานต์สคริปต์บนคอนเทนเนอร์ของคุณได้ หรือหากคุณมีอาร์ติแฟกต์ของโมเดลที่ได้รับการฝึกไว้ล่วงหน้าแล้ว (เช่น `model.joblib` สำหรับ SKLearn) จากนั้นคุณสามารถจัดเตรียมสิ่งนี้พร้อมกับรูปภาพของคุณให้กับ SageMaker เพื่อทำความเข้าใจ SageMaker Inference มีเอนทิตีหลักสามรายการที่คุณจะสร้างในกระบวนการสร้างจุดสิ้นสุด:

  1. เอนทิตีโมเดล SageMaker – ที่นี่คุณสามารถส่งข้อมูลโมเดลที่ได้รับการฝึก/สคริปต์โมเดลและอิมเมจของคุณที่คุณใช้งานอยู่ ไม่ว่าจะเป็น AWS เป็นเจ้าของหรือสร้างโดยคุณก็ตาม
  2. การสร้างการกำหนดค่าตำแหน่งข้อมูล – ที่นี่คุณกำหนดโครงสร้างพื้นฐานของคุณ ซึ่งหมายความว่าคุณจะเลือกประเภทอินสแตนซ์ จำนวน ฯลฯ
  3. การสร้างจุดสิ้นสุด – นี่คือจุดสิ้นสุด REST ที่โฮสต์โมเดลของคุณที่คุณกำลังเรียกใช้เพื่อรับการตอบกลับ มาดูกันว่าคุณสามารถใช้รูปภาพ SageMaker ที่มีการจัดการและรูปภาพที่คุณสร้างขึ้นเองเพื่อปรับใช้ตำแหน่งข้อมูลได้อย่างไร

ข้อกำหนดอุปกรณ์ปลายทางแบบเรียลไทม์

  1. ก่อนที่จะสร้างตำแหน่งข้อมูล คุณต้องเข้าใจว่าคุณต้องการโฮสต์โมเดลประเภทใด หากเป็นโมเดล Framework เช่น TensorFlow, PyTorch หรือ MXNet คุณสามารถใช้หนึ่งใน อิมเมจ Framework ที่สร้างไว้ล่วงหน้า.
    หากเป็นโมเดลที่กำหนดเอง หรือคุณต้องการความยืดหยุ่นอย่างเต็มที่ในการสร้างคอนเทนเนอร์ที่ SageMaker เรียกใช้เพื่อการอนุมาน คุณสามารถสร้างคอนเทนเนอร์ของคุณเองได้

จุดสิ้นสุดของ SageMaker ถูกสร้างขึ้นจาก รุ่น SageMaker และ การกำหนดค่าปลายทาง
หากคุณใช้ Boto3 คุณจะต้องสร้างทั้งสองวัตถุ มิฉะนั้น หากคุณใช้ SageMaker Python SDK การกำหนดค่าจุดสิ้นสุดจะถูกสร้างขึ้นในนามของคุณเมื่อคุณใช้ .deploy(..) ฟังก์ชัน

เอนทิตี SageMaker:

  • รุ่น SageMaker:
    • ประกอบด้วยรายละเอียดของภาพอนุมาน ตำแหน่งของสิ่งประดิษฐ์แบบจำลอง บริการ Amazon Simple Storage (Amazon S3) การกำหนดค่าเครือข่าย และ AWS Identity และการจัดการการเข้าถึง (IAM) บทบาทที่จะใช้โดยจุดสิ้นสุด
      • SageMaker ต้องการให้อาร์ติแฟกต์โมเดลของคุณได้รับการบีบอัดในรูปแบบ .tar.gz ไฟล์. SageMaker จะแยกข้อมูลนี้โดยอัตโนมัติ .tar.gz ไฟล์ลงใน /opt/ml/model/ ไดเร็กทอรีในคอนเทนเนอร์ของคุณ หากคุณใช้คอนเทนเนอร์เฟรมเวิร์กตัวใดตัวหนึ่ง เช่น TensorFlow, PyTorch หรือ MXNet คอนเทนเนอร์นั้นคาดว่าโครงสร้าง TAR ของคุณจะเป็นดังนี้:
        • TensorFlow
          model.tar.gz/
          |--[model_version_number]/
          |--variables
          |--saved_model.pb
          code/
          |--inference.py
          |--requirements.txt

        • ไพทอร์ช
          model.tar.gz/
          |- model.pth
          |- code/
          |- inference.py
          |- requirements.txt # only for versions 1.3.1 and higher

        • MX เน็ต
          model.tar.gz/
          |- model-symbol.json
          |- model-shapes.json
          |- model-0000.params
          |- code/
              |- inference.py
              |- requirements.txt # only for versions 1.6.0 and higher

        • สเลิร์น
          model.tar.gz/
          |- model.joblib
          | code/ 
          |- inference.py

      • เมื่อใช้อิมเมจเฟรมเวิร์ก เราสามารถจัดเตรียมสคริปต์จุดเข้าใช้งานที่กำหนดเอง ซึ่งเราสามารถใช้การประมวลผลก่อนและหลังของเราเองได้ ในกรณีของเรา สคริปต์การอนุมานถูกรวมไว้ใน model.tar.gz ภายใต้ไดเร็กทอรี /code
    • การกำหนดค่าปลายทาง
      • ประกอบด้วยข้อมูลโครงสร้างพื้นฐานที่จำเป็นในการปรับใช้ SageMaker Model กับตำแหน่งข้อมูล
      • ตัวอย่างเช่น มีการระบุโมเดล SageMaker ที่เราสร้างไว้ที่นี่ รวมถึงประเภทอินสแตนซ์และจำนวนอินสแตนซ์เริ่มต้น

กรอบการทำงานและ BYOC

    • กำลังเรียกข้อมูลอิมเมจ SageMaker
      • ส่วนนี้ไม่จำเป็นเสมอไปและ SageMaker Python SDK เป็นนามธรรมผ่านตัวประมาณค่า อย่างไรก็ตาม หากคุณต้องการดึงรูปภาพที่จัดการโดย SageMaker เพื่อขยายรูปภาพนั้น คุณก็สามารถรับรูปภาพที่พร้อมใช้งานผ่าน SDK ได้ ต่อไปนี้เป็นตัวอย่างของการดึงอิมเมจ TF 2.2 เพื่อการอนุมาน
        import sagemaker
        tf_image = sagemaker.image_uris.retreive(framework="tensorflow", region="us-east-1",
        image_scope = "inference", version = "2.2", instance_type = "ml.c5.xlarge)
        print(tf_image)

    • กรอบ
      • ในกรณีที่คุณต้องการปรับใช้ Framework Model เช่น TensorFlow, PyTorch หรือ MXNet สิ่งที่คุณต้องมีก็คือส่วนของโมเดล
      • ดูเอกสารประกอบสำหรับการปรับใช้โมเดลโดยตรงจากสิ่งประดิษฐ์ของโมเดล TensorFlow, ไพทอร์ช,หรือ MX เน็ต.
    • การเลือกระหว่าง 1P และ BYOC
      • SageMaker SDK ยังสรุปการจัดการรูปภาพออกมา ดังที่คุณเห็นในส่วนกรอบงานก่อนหน้านี้ มีตัวประมาณค่าสำเร็จรูปสำหรับ Sklearn, TensorFlow และ PyTorch ที่จะเลือกรูปภาพให้คุณโดยอัตโนมัติตามเวอร์ชันที่คุณเลือก จากนั้นคุณสามารถส่งผ่านสคริปต์การฝึกอบรม/การอนุมานได้ โหมดสคริปต์ เข้าไปในตัวประมาณค่าเหล่านี้
        from sagemaker.pytorch import PyTorch #PyTorch Estimator within SageMaker SDK
        estimator_parameters = {"entry_point": "train_deploy_pytorch_without_dependencies.py",
        "source_dir": "pytorch_script","instance_type": train_instance_type,
        "instance_count": 1,"hyperparameters": hyperparameters,
        "role": role,"base_job_name": "pytorch-model","framework_version": "1.5",
        "py_version": "py3",}
        
        ## Model Training
        estimator = PyTorch(**estimator_parameters)estimator.fit(inputs)
        
        ## Deploy Trained model
        pytorch_predictor = estimator.deploy(initial_instance_count=1, instance_type="ml.m5.xlarge", endpoint_name=pytorch_endpoint_name)

      • SageMaker ไม่รองรับแพ็คเกจและรูปภาพทั้งหมด และในกรณีนี้คุณต้องทำ นำภาชนะมาเอง (BYOC). นี่หมายถึงการสร้าง Dockerfile ที่จะตั้งค่าสภาพแวดล้อมที่เหมาะสมสำหรับการให้บริการโมเดลของคุณ ตัวอย่างนี้คือโมดูล Spacy NLP และไม่มีคอนเทนเนอร์ SageMaker ที่มีการจัดการสำหรับเฟรมเวิร์กนี้ ดังนั้นคุณต้องจัดเตรียม Dockerfile ที่ติดตั้ง Spacy ภายในคอนเทนเนอร์ คุณยังติดตั้งสคริปต์การอนุมานโมเดลของคุณด้วย มาพูดคุยกันอย่างรวดเร็วเกี่ยวกับส่วนประกอบที่คุณระบุในรูปแบบ Bring Your Own Container เนื่องจากสิ่งเหล่านี้มีความสอดคล้องกันสำหรับตัวอย่างส่วนใหญ่
        • “nginx.conf” เป็นไฟล์กำหนดค่าสำหรับส่วนหน้าของ nginx คุณจะไม่ต้องแก้ไขไฟล์นี้ เว้นแต่ว่าคุณต้องการปรับแต่งส่วนเหล่านี้
        • “ทำนาย.py” เป็นโปรแกรมที่ใช้เว็บเซิร์ฟเวอร์ Flask และโค้ดโมเดลสำหรับแอปพลิเคชันของคุณ คุณสามารถมีไฟล์หรือฟังก์ชัน Python เพิ่มเติมในคอนเทนเนอร์ของคุณที่คุณสามารถเรียกใช้ในไฟล์นี้ได้
        • "ให้บริการ" คือโปรแกรมที่เริ่มทำงานเมื่อคอนเทนเนอร์เริ่มทำงานสำหรับการโฮสต์ เพียงเปิดตัวเซิร์ฟเวอร์ gunicorn ซึ่งเรียกใช้แอป Flask หลายอินสแตนซ์ที่กำหนดใน Predictor.py เช่นเดียวกับ nginx.conf คุณไม่จำเป็นต้องแก้ไขไฟล์นี้ เว้นแต่จะมีการปรับแต่งเพิ่มเติมที่คุณต้องการดำเนินการ
        • "รถไฟ" คือโปรแกรมที่ถูกเรียกใช้เมื่อคอนเทนเนอร์ถูกรันเพื่อการฝึก คุณจะแก้ไขโปรแกรมนี้เพื่อใช้อัลกอริทึมการฝึกอบรมของคุณ หากคุณนำโมเดลหรือเฟรมเวิร์กที่ได้รับการฝึกอบรมมาล่วงหน้า เช่น Spacy มาใช้ คุณไม่จำเป็นต้องใช้ไฟล์นี้
        • “wsgi.py” เป็น wrapper ขนาดเล็กที่ใช้เรียกใช้แอป Flask คุณควรจะสามารถใช้ไฟล์นี้ได้ตามที่เป็นอยู่ เว้นแต่คุณจะเปลี่ยนชื่อไฟล์ Predictor.py ของคุณ ในกรณีนั้น ตรวจสอบให้แน่ใจว่าแมปอย่างถูกต้องที่นี่
    • สคริปต์การอนุมานแบบกำหนดเอง
      • คอนเทนเนอร์ SageMaker Framework มอบความยืดหยุ่นในการจัดการก่อน/หลังการประมวลผลคำขอและการโหลดโมเดลโดยใช้สคริปต์จุดเข้าที่กำหนดเอง/inference.py
      • ดูเอกสารประกอบสำหรับการสร้างสคริปต์ inference.py ที่กำหนดเอง TensorFlow, ไพทอร์ช และ MX เน็ต.
    • คอนเทนเนอร์แบบกำหนดเอง

วิธีต่างๆ ที่คุณสามารถโต้ตอบกับ SageMaker Endpoints

มีตัวเลือกมากมายสำหรับการใช้ SageMaker โดยทางโปรแกรม เพื่อให้คุณสามารถเรียกใช้โมเดลที่คุณปรับใช้เพื่อรับการอนุมานได้ ที่ อินเทอร์เฟซบรรทัดคำสั่ง AWS (AWS CLI) REST API การก่อตัวของ AWS Cloud, ชุดพัฒนา AWS Cloud (AWS CDK) และ AWS SDK เป็นเครื่องมือทั่วไปที่นำเสนอโดย AWS และได้รับการสนับสนุนอย่างกว้างขวางจากบริการอื่นๆ ของ AWS สำหรับ SageMaker เรายังมี SageMaker Python SDK ด้วย ตอนนี้ เรามาเปรียบเทียบตัวเลือกต่างๆ เพื่อสร้าง เรียกใช้ และจัดการ SageMaker Endpoints กัน

นอกจาก SageMaker CLIมีสองวิธีที่คุณสามารถโต้ตอบกับตำแหน่งข้อมูลใน SageMaker ผ่าน SDK โดยทางโปรแกรมได้ ลองดูความแตกต่างบางประการระหว่าง SageMaker Python SDK และ Boto3 หลาม SDK:

  1. SageMaker “Python” SDK ระดับสูง – SDK นี้เป็นไลบรารีโอเพ่นซอร์สที่ให้นามธรรมระดับที่สูงกว่าซึ่งมีไว้สำหรับการเรียกใช้ SageMaker API โดยทางโปรแกรมโดยใช้ Python โดยเฉพาะ ส่วนที่ดีของ SDK นี้คือมันง่ายมากที่จะเรียก sagemaker APIs การทำงานหนักหลายอย่างเสร็จสิ้นไปแล้ว เช่น การเรียก API แบบซิงโครนัส/โหมดอะซิงก์ (ช่วยหลีกเลี่ยงการโพล) สคีมาคำขอ/ตอบกลับที่ง่ายกว่า โค้ดน้อยกว่ามาก และมาก รหัสที่ง่ายกว่า SageMaker Python SDK มีนามธรรมระดับสูงหลายรายการสำหรับการทำงานกับ SageMaker แพ็คเกจนี้มีไว้เพื่อลดความซับซ้อนของกระบวนการ ML ต่างๆ บน SageMaker
  2. AWS SDK ระดับต่ำ (Boto3 SDK) – SDK นี้ทำงานในระดับต่ำกว่าโดยอนุญาตให้ผู้ใช้เลือกจากภาษาการเขียนโปรแกรมที่รองรับ และเรียกใช้บริการ AWS ใดๆ โดยทางโปรแกรม นี่ไม่ใช่แค่เฉพาะกับ SageMaker เท่านั้น แต่ยังใช้ได้กับบริการ AWS ทั้งหมดอีกด้วย AWS SDK ระดับต่ำมีให้บริการในภาษาการเขียนโปรแกรมต่างๆ เช่น .NET, Python, Java, Node.js เป็นต้น หนึ่งใน SDK ยอดนิยมที่ใช้คือ boto3 python SDK ซึ่งได้รับความนิยมในชุมชนนักวิทยาศาสตร์ข้อมูลสำหรับ ML ส่วนที่ดีของ SDK นี้คือมีน้ำหนักเบามากและพร้อมให้ใช้งานโดยค่าเริ่มต้นเมื่อติดตั้งไว้ AWS แลมบ์ดา รันไทม์ นอกจากนี้ คุณยังสามารถใช้ SDK นี้เพื่อโต้ตอบกับบริการ AWS ภายนอก SageMaker ได้

SDK ทั้งสองนี้สามารถนำไปใช้งานเดียวกันได้ แต่ในบางกรณี จะง่ายกว่าหากใช้งาน SDK มากกว่าหนึ่งรายการ แนะนำให้ใช้ SageMaker Python SDK เพื่อการทดสอบที่ง่ายดาย ในขณะที่ AWS SDK/Boto3 ได้รับการแนะนำสำหรับกรณีใช้งานจริงเพื่อการควบคุมประสิทธิภาพที่ดียิ่งขึ้น ตัวอย่างเช่น บริการ SageMaker มอบอิมเมจที่สร้างไว้ล่วงหน้าและบำรุงรักษาสำหรับเฟรมเวิร์กยอดนิยม เช่น Sklearn, PyTorch และ TensorFlow การใช้ SageMaker SDK เพื่อดึงภาพการเรียนรู้เชิงลึก ฝึกโมเดลโดยใช้จะมีประโยชน์อย่างยิ่ง ประมาณการและปรับใช้โมเดลได้อย่างง่ายดายโดยใช้การเรียก API แบบธรรมดา คุณสามารถดูตัวอย่างเพื่อแสดงสิ่งนี้ได้ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม.

ในทางกลับกัน บางครั้งคุณมีโมเดลที่ได้รับการฝึกไว้ล่วงหน้าหรือเฟรมเวิร์กอื่นๆ ที่คุณอาจใช้อยู่ สิ่งนี้ต้องการการปรับแต่งที่มากขึ้น และ SageMaker SDK ก็ไม่ได้นำเสนอสิ่งนั้นเสมอไป เรามีสามขั้นตอนที่สำคัญและการเรียก API boto3 ที่เกี่ยวข้องซึ่งเราต้องดำเนินการเพื่อปรับใช้ตำแหน่งข้อมูล: การสร้างแบบจำลอง, การสร้างการกำหนดค่าปลายทางและ การสร้างจุดสิ้นสุด. เอนทิตีสองรายการแรกถูกสรุปด้วย SageMaker SDK ด้วยเฟรมเวิร์กที่เรารองรับ แต่เรามองเห็นรายละเอียดเหล่านั้นด้วย Boto3 SDK คุณสามารถดูตัวอย่างที่ครอบคลุมเพื่อแสดงขั้นตอนที่เกี่ยวข้องกับการใช้ Boto3 SDK เพื่อสร้างและจัดการตำแหน่งข้อมูลได้ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม.

ข้อควรพิจารณาในการโฮสต์ SageMaker

การอนุมานแบบเรียลไทม์ของ SageMaker มีการเพิ่มประสิทธิภาพหลักสองประการที่คุณสามารถพิจารณาได้: 1/ การเพิ่มประสิทธิภาพประสิทธิภาพ และ 2/ การเพิ่มประสิทธิภาพต้นทุน มาดูกันก่อนเลย การเพิ่มประสิทธิภาพเช่นเดียวกับเมื่อเราจัดการกับปริมาณงานที่ไวต่อความหน่วง ทุกมิลลิวินาทีก็มีความสำคัญ มีปุ่มต่างๆ มากมายที่คุณสามารถปรับแต่งเพื่อเพิ่มประสิทธิภาพเวลาแฝงและปริมาณงานของคุณได้ ในระดับอินสแตนซ์ คุณสามารถใช้ได้ ผู้แนะนำการอนุมานซึ่งเป็นเครื่องมือทดสอบโหลดในตัวของเรา เพื่อช่วยคุณเลือกประเภทอินสแตนซ์และจำนวนที่เหมาะสมสำหรับปริมาณงานของคุณ การใช้การผสมผสานการประมวลผลที่เหมาะสมจะช่วยให้คุณได้ทั้งประสิทธิภาพและราคา คุณยังปรับแต่งได้ที่ระดับคอนเทนเนอร์และเฟรมเวิร์กอีกด้วย
คำถามที่ต้องถามตัวเองได้แก่:

  1. คุณใช้กรอบงานอะไร?
  2. มีตัวแปรสภาพแวดล้อมใดบ้างที่คุณปรับแต่งภายในคอนเทนเนอร์ของคุณได้

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

มีสามวิธีในการดู ปรับปรุงการใช้ประโยชน์ ของตำแหน่งข้อมูลเรียลไทม์ของคุณ:

  1. อุปกรณ์ปลายทางหลายรุ่น (MME)
    • คุณสามารถโฮสต์โมเดลได้หลายพันรายการหลังตำแหน่งข้อมูลเดียว เหมาะสำหรับกรณีการใช้งานที่คุณไม่จำเป็นต้องมีตำแหน่งข้อมูลเฉพาะสำหรับโมเดลแต่ละรุ่นของคุณ MME ทำงานได้ดีที่สุดเมื่อโมเดลมีขนาดและเวลาแฝงใกล้เคียงกัน และอยู่ในเฟรมเวิร์ก ML เดียวกัน โดยทั่วไปสามารถใช้ได้เมื่อคุณไม่จำเป็นต้องเรียกรุ่นเดียวกันตลอดเวลา คุณสามารถโหลดโมเดลที่เกี่ยวข้องลงใน SageMaker Endpoint แบบไดนามิกเพื่อให้บริการตามคำขอของคุณได้. คุณสามารถดูตัวอย่างที่นำเสนอการใช้งาน MME ได้ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม. หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคำเตือนต่างๆ และแนวปฏิบัติที่ดีที่สุดสำหรับการโฮสต์โมเดลบน MME โปรดดูโพสต์ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม.
  2. จุดสิ้นสุดแบบหลายคอนเทนเนอร์ (MCE)
    • แทนที่จะใช้ตำแหน่งข้อมูลหลายรายการเพื่อโฮสต์คอนเทนเนอร์หลายรายการ คุณสามารถดูการโฮสต์คอนเทนเนอร์ได้มากถึง 15 รายการบนตำแหน่งข้อมูลเดียว แต่ละคอนเทนเนอร์เหล่านี้สามารถเรียกใช้ได้โดยตรง ดังนั้น คุณสามารถดูการโฮสต์โมเดลที่แตกต่างกันของเฟรมเวิร์กที่แตกต่างกันได้ทั้งหมดบนจุดสิ้นสุดเดียว ตัวเลือกนี้จะดีที่สุดเมื่อคอนเทนเนอร์แสดงลักษณะการใช้งานและประสิทธิภาพที่คล้ายคลึงกัน คุณสามารถดูตัวอย่างที่นำเสนอ MCE ได้ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม. หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคำเตือนต่างๆ และแนวทางปฏิบัติที่ดีที่สุดสำหรับการโฮสต์โมเดลบน MCE โปรดดูโพสต์ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม.
  3. ไปป์ไลน์การอนุมานแบบอนุกรม (SIP)
    • หากคุณมีขั้นตอนต่างๆ ในตรรกะการอนุมานของคุณ คุณอาจใช้ Serial Inference Pipeline (SIP) SIP ช่วยให้คุณเชื่อมโยงคอนเทนเนอร์ 2-15 ตัวเข้าด้วยกันหลังจุดสิ้นสุดเดียว SIP ทำงานได้ดีเมื่อคุณมีขั้นตอนก่อนการประมวลผลและหลังการประมวลผล หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับรูปแบบการออกแบบสำหรับไปป์ไลน์การอนุมานอนุกรม โปรดดูโพสต์ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม.

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

SageMaker ยังมีข้อเสนออีกด้วย แผนการออม. แผนการออมทรัพย์สามารถลดต้นทุนของคุณได้มากถึง 64% นี่เป็นข้อผูกพันระยะเวลา 1 หรือ 3 ปีต่อปริมาณการใช้งานที่สม่ำเสมอ ($/ชั่วโมง) ดูนี่ ลิงค์ สำหรับข้อมูลเพิ่มเติม. และดูสิ่งนี้ ลิงค์ เพื่อปรับต้นทุนให้เหมาะสมที่สุดสำหรับการอนุมานบน Amazon SageMaker

สรุป

ในโพสต์นี้ เราได้แสดงแนวทางปฏิบัติที่ดีที่สุดในการเลือกระหว่างตัวเลือกการโฮสต์โมเดลต่างๆ บน SageMaker เราได้พูดคุยถึงข้อกำหนด SageMaker Endpoint และยังเปรียบเทียบข้อกำหนดและฟังก์ชันการทำงานของ Framework และ BYOC อีกด้วย นอกจากนี้ เราได้พูดคุยเกี่ยวกับวิธีต่างๆ ที่คุณสามารถใช้ประโยชน์จากตำแหน่งข้อมูลแบบเรียลไทม์เพื่อโฮสต์โมเดล ML ของคุณในการใช้งานจริง ได้อย่างคุ้มค่าและมีประสิทธิภาพสูง

ดูที่สอดคล้องกัน พื้นที่เก็บข้อมูล GitHub และลองตัวอย่าง


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

เริ่มต้นใช้งานโมเดลแบบเรียลไทม์บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.ราหู ราเมชา เป็นสถาปนิกโซลูชัน ML กับทีมบริการ Amazon SageMaker เขามุ่งเน้นที่การช่วยลูกค้าสร้าง ปรับใช้ และย้ายปริมาณงานการผลิต ML ไปยัง SageMaker ในปริมาณมาก เขาเชี่ยวชาญด้านแมชชีนเลิร์นนิง, AI และโดเมนวิชันซิสเต็ม และสำเร็จการศึกษาระดับปริญญาโทด้านวิทยาการคอมพิวเตอร์จาก UT Dallas ในเวลาว่าง เขาชอบการเดินทางและการถ่ายภาพ

เริ่มต้นใช้งานโมเดลแบบเรียลไทม์บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.ราม เวจิราจุ เป็นสถาปนิก ML กับทีมบริการ SageMaker เขามุ่งเน้นที่การช่วยลูกค้าสร้างและเพิ่มประสิทธิภาพโซลูชัน AI/ML ของตนบน Amazon SageMaker ในเวลาว่าง เขาชอบท่องเที่ยวและเขียนหนังสือ

เริ่มต้นใช้งานโมเดลแบบเรียลไทม์บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.มาร์ค คาร์ป เป็นสถาปนิก ML กับทีมบริการ SageMaker เขามุ่งเน้นไปที่การช่วยลูกค้าออกแบบ ปรับใช้ และจัดการปริมาณงาน ML ตามขนาด ในเวลาว่างเขาชอบท่องเที่ยวและสำรวจสถานที่ใหม่ๆ

เริ่มต้นใช้งานโมเดลแบบเรียลไทม์บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.ดาวัล พาเทล เป็นหัวหน้าสถาปนิก Machine Learning ที่ AWS เขาได้ทำงานร่วมกับองค์กรต่างๆ ตั้งแต่องค์กรขนาดใหญ่ไปจนถึงสตาร์ทอัพขนาดกลางในปัญหาที่เกี่ยวข้องกับการคำนวณแบบกระจายและปัญญาประดิษฐ์ เขามุ่งเน้นไปที่การเรียนรู้อย่างลึกซึ้งรวมถึง NLP และโดเมนวิชันซิสเต็ม เขาช่วยให้ลูกค้าบรรลุการอนุมานแบบจำลองประสิทธิภาพสูงบน Amazon SageMaker

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

ประทับเวลา:

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