Ubuntu/Python-2.7 | Ubuntu/Python-3.6 |
---|---|
Multi Model Server (MMS) เป็นเครื่องมือที่ยืดหยุ่นและใช้งานง่ายสำหรับการให้บริการรุ่นการเรียนรู้ลึกที่ผ่านการฝึกอบรมโดยใช้กรอบ ML/DL ใด ๆ
ใช้ MMS Server CLI หรือภาพ Docker ที่กำหนดค่าล่วงหน้าเพื่อเริ่มบริการที่ตั้งค่าจุดสิ้นสุด HTTP เพื่อจัดการคำขอการอนุมานแบบจำลอง
ภาพรวมและตัวอย่างที่รวดเร็วสำหรับทั้งการให้บริการและบรรจุภัณฑ์มีให้ด้านล่าง เอกสารและตัวอย่างโดยละเอียดมีอยู่ในโฟลเดอร์ DOCS
เข้าร่วม ช่อง Slack เพื่อติดต่อกับทีมพัฒนาถามคำถามค้นหาสิ่งที่ทำอาหารและอื่น ๆ !
ก่อนที่จะดำเนินการเพิ่มเติมกับเอกสารนี้ให้แน่ใจว่าคุณมีข้อกำหนดเบื้องต้นดังต่อไปนี้
Ubuntu, Centos หรือ MacOS การสนับสนุน Windows เป็นการทดลอง คำแนะนำต่อไปนี้จะมุ่งเน้นไปที่ Linux และ MacOS เท่านั้น
Python - Multi Model Server ต้องการ Python เพื่อเรียกใช้คนงาน
PIP - PIP เป็นระบบการจัดการแพ็คเกจ Python
Java 8 - Multi Model Server ต้องการ Java 8 เพื่อเริ่มต้น คุณมีตัวเลือกต่อไปนี้สำหรับการติดตั้ง Java 8:
สำหรับ Ubuntu:
sudo apt-get install openjdk-8-jre-headless
สำหรับ centos:
sudo yum install java-1.8.0-openjdk
สำหรับ macOS:
brew tap homebrew/cask-versions
brew update
brew cask install adoptopenjdk8
ขั้นตอนที่ 1: ตั้งค่าสภาพแวดล้อมเสมือนจริง
เราขอแนะนำให้ติดตั้งและเรียกใช้เซิร์ฟเวอร์หลายรุ่นในสภาพแวดล้อมเสมือนจริง มันเป็นวิธีปฏิบัติที่ดีในการเรียกใช้และติดตั้งการพึ่งพา Python ทั้งหมดในสภาพแวดล้อมเสมือนจริง สิ่งนี้จะช่วยแยกการพึ่งพาและการจัดการการพึ่งพาได้อย่างง่ายดาย
ตัวเลือกหนึ่งคือการใช้ VirtualEnv สิ่งนี้ใช้เพื่อสร้างสภาพแวดล้อม Python เสมือนจริง คุณสามารถติดตั้งและเปิดใช้งาน virtualenv สำหรับ Python 2.7 ดังนี้:
pip install virtualenv
จากนั้นสร้างสภาพแวดล้อมเสมือนจริง:
# Assuming we want to run python2.7 in /usr/local/bin/python2.7
virtualenv -p /usr/local/bin/python2.7 /tmp/pyenv2
# Enter this virtual environment as follows
source /tmp/pyenv2/bin/activate
อ้างถึงเอกสาร VirtualEnV สำหรับข้อมูลเพิ่มเติม
ขั้นตอนที่ 2: ติดตั้ง MxNet MMS จะไม่ติดตั้ง MXNET Engine โดยค่าเริ่มต้น หากยังไม่ได้ติดตั้งในสภาพแวดล้อมเสมือนจริงของคุณคุณต้องติดตั้งแพ็คเกจ MXNET PIP ใดแพ็คเกจ
สำหรับการอนุมาน CPU แนะนำให้ใช้ mxnet-mkl
ติดตั้งดังนี้:
# Recommended for running Multi Model Server on CPU hosts
pip install mxnet-mkl
สำหรับการอนุมาน GPU แนะนำให้ใช้ mxnet-cu92mkl
ติดตั้งดังนี้:
# Recommended for running Multi Model Server on GPU hosts
pip install mxnet-cu92mkl
ขั้นตอนที่ 3: ติดตั้งหรืออัพเกรด MMS ดังนี้:
# Install latest released version of multi-model-server
pip install multi-model-server
หากต้องการอัพเกรดจากเวอร์ชันก่อนหน้าของ multi-model-server
โปรดดูเอกสารอ้างอิงการย้ายข้อมูล
หมายเหตุ:
model-archiver
น้อยที่สุดจะถูกติดตั้งด้วย MMS เป็นการพึ่งพา ดู Model-archiver สำหรับตัวเลือกและรายละเอียดเพิ่มเติม เมื่อติดตั้งแล้วคุณสามารถรับ MMS Model Server และทำงานได้อย่างรวดเร็ว ลองใช้ --help
ช่วยเหลือเพื่อดูตัวเลือก CLI ทั้งหมดที่มีอยู่
multi-model-server --help
สำหรับการเริ่มต้นอย่างรวดเร็วนี้เราจะข้ามคุณสมบัติส่วนใหญ่ แต่อย่าลืมดูเอกสารเซิร์ฟเวอร์เต็มเมื่อคุณพร้อม
นี่คือตัวอย่างที่ง่ายสำหรับการให้บริการรูปแบบการจำแนกวัตถุ:
multi-model-server --start --models squeezenet=https://s3.amazonaws.com/model-server/model_archive_1.0/squeezenet_v1.1.mar
ด้วยคำสั่งด้านบนที่ดำเนินการคุณมี MMS ที่ทำงานบนโฮสต์ของคุณโดยฟังคำขออนุมาน โปรดทราบว่าหากคุณระบุรุ่นในระหว่างการเริ่ม MM ). ในกรณีของโฮสต์ที่ทรงพลังที่มีทรัพยากรคำนวณจำนวนมาก (VCPUS หรือ GPU) การเริ่มต้นและกระบวนการปรับการปรับสภาพอาจใช้เวลานาน หากคุณต้องการลดเวลาเริ่มต้น MMS ให้น้อยที่สุดคุณสามารถพยายามหลีกเลี่ยงการลงทะเบียนและปรับขนาดโมเดลในช่วงเวลาเริ่มต้นและย้ายไปยังจุดในภายหลังโดยใช้การโทร API การจัดการที่สอดคล้องกัน โมเดลใด ๆ )
ในการทดสอบคุณสามารถเปิดหน้าต่างเทอร์มินัลใหม่ถัดจาก MMS ที่กำลังทำงานอยู่ จากนั้นคุณสามารถใช้ curl
เพื่อดาวน์โหลดหนึ่งในรูปภาพน่ารัก ๆ ของลูกแมวและธงของ -o
จะตั้งชื่อ kitten.jpg
ให้คุณ จากนั้นคุณจะ curl
POST
ไปยัง MMS ทำนายจุดสิ้นสุดด้วยภาพของลูกแมว
ในตัวอย่างด้านล่างเราให้ทางลัดสำหรับขั้นตอนเหล่านี้
curl -O https://s3.amazonaws.com/model-server/inputs/kitten.jpg
curl -X POST http://127.0.0.1:8080/predictions/squeezenet -T kitten.jpg
จุดสิ้นสุดที่คาดการณ์จะส่งคืนการตอบสนองการทำนายใน JSON มันจะมีลักษณะเหมือนผลลัพธ์ต่อไปนี้:
[
{
"probability" : 0.8582232594490051 ,
"class" : " n02124075 Egyptian cat "
},
{
"probability" : 0.09159987419843674 ,
"class" : " n02123045 tabby, tabby cat "
},
{
"probability" : 0.0374876894056797 ,
"class" : " n02123159 tiger cat "
},
{
"probability" : 0.006165083032101393 ,
"class" : " n02128385 leopard, Panthera pardus "
},
{
"probability" : 0.0031716004014015198 ,
"class" : " n02127052 lynx, catamount "
}
]
คุณจะเห็นผลลัพธ์นี้ในการตอบสนองต่อการเรียก curl
ของคุณไปยังจุดสิ้นสุดที่คาดการณ์และในบันทึกเซิร์ฟเวอร์ในหน้าต่างเทอร์มินัลที่ใช้ MMS นอกจากนี้ยังถูกบันทึกไว้ในท้องถิ่นด้วยตัวชี้วัด
รุ่นอื่น ๆ สามารถดาวน์โหลดได้จากสวนสัตว์รุ่นดังนั้นลองใช้บางส่วนเช่นกัน
ตอนนี้คุณได้เห็นว่ามันง่ายแค่ไหนที่จะให้บริการรูปแบบการเรียนรู้อย่างลึกซึ้งกับ MMS! คุณต้องการทราบข้อมูลเพิ่มเติมหรือไม่?
หากต้องการหยุดอินสแตนซ์ของรุ่นที่เรียกใช้ปัจจุบันให้เรียกใช้คำสั่งต่อไปนี้:
$ multi-model-server --stop
คุณจะเห็นเอาท์พุทระบุว่าเซิร์ฟเวอร์หลายรุ่นหยุดลง
MMS ช่วยให้คุณสามารถจัดทำสิ่งประดิษฐ์โมเดลทั้งหมดของคุณลงในไฟล์เก็บถาวรแบบรุ่นเดียว สิ่งนี้ทำให้ง่ายต่อการแบ่งปันและปรับใช้โมเดลของคุณ ในการจัดทำโมเดลให้ตรวจสอบเอกสารประกอบ Model Archiver
เรียกดู Docs Readme สำหรับดัชนีเต็มรูปแบบของเอกสาร ซึ่งรวมถึงตัวอย่างเพิ่มเติมวิธีปรับแต่งบริการ API รายละเอียดจุดสิ้นสุด API และอื่น ๆ
นี่คือตัวอย่างการสาธิตการเรียนรู้เชิงลึกที่ขับเคลื่อนโดย MMS:
การจำแนกรีวิวผลิตภัณฑ์ ![]() | การค้นหาภาพ ![]() |
การจดจำอารมณ์ใบหน้า ![]() | การถ่ายโอนสไตล์ประสาท ![]() |
เรายินดีต้อนรับการมีส่วนร่วมทั้งหมด!
หากต้องการยื่นข้อผิดพลาดหรือขอคุณสมบัติโปรดยื่นปัญหา GitHub ยินดีต้อนรับคำขอดึง