เทียบท่าและปรับใช้โมเดล Machine Learning ของคุณ
ในโลกแห่งเทคโนโลยีที่เติบโตอย่างต่อเนื่องนี้ docker ได้สร้างชื่อเสียงให้กับการพัฒนา จัดส่ง ทดสอบ และรันแอปพลิเคชันได้เร็วกว่าที่เคย ในขณะที่ยังคงควบคุมโครงสร้างพื้นฐานได้เต็มรูปแบบ
บทความนี้จะช่วยคุณสร้างอิมเมจนักเทียบท่าตามโมเดลแมชชีนเลิร์นนิงขั้นพื้นฐานและเรียกใช้เป็นคอนเทนเนอร์ สำหรับสิ่งนี้ เราจะใช้ flask เป็นเฟรมเวิร์กเว็บของเรา เนื่องจากมีลักษณะค่อนข้างเบา
ขั้นตอนการทำงานหลัก :
- การบันทึกโมเดล ML: เมื่อโมเดลของคุณได้รับการฝึกสำเร็จแล้ว เราจำเป็นต้องบันทึกโมเดลนั้นเพื่อการใช้งานที่ง่ายยิ่งขึ้น เราสามารถบันทึกโมเดลในรูปแบบของไฟล์ดอง /.HDF5 หรือรูปแบบอื่น ๆ ที่ใช้ไลบรารี่
- การอนุมาน:ไฟล์โมเดลที่บันทึกไว้จำเป็นต้องเข้าถึงจากภายนอกโดยไม่ต้องใช้ความพยายามมากนัก ดังนั้นเราจึงทำให้สามารถเข้าถึงได้ผ่าน API โดยใช้ flask
- บรรจุ:จากนั้นแอปพลิเคชันทั้งหมดจะถูกบรรจุในคอนเทนเนอร์โดยใช้นักเทียบท่า และพร้อมที่จะจัดส่ง
สำหรับการบันทึกโมเดล ML และเวิร์กโฟลว์การอนุมาน โปรดดูบทความอื่นของฉันที่เน้นไปที่การใช้งานโมเดล ML บนฟลาสก์เป็นหลัก
เมื่อคุณดำเนินการตามขั้นตอนข้างต้นสำเร็จแล้ว คุณควรมีแอปพลิเคชัน Flask ที่ทำงานได้อย่างสมบูรณ์ซึ่งมีตำแหน่งข้อมูลเชื่อมต่อกับโมเดล ML
โครงสร้างโฟลเดอร์ของคุณจะมีลักษณะดังนี้
โฟลเดอร์แอปพลิเคชันของฉัน
— Load_n_inferencing.py
— training_n_pickling.py
— my_model.pkl
คอนเทนเนอร์:
เพื่อบรรจุแอปพลิเคชันของเรา เราจำเป็นต้องมีไฟล์เพิ่มเติมสองสามไฟล์:
ข้อกำหนด.txt
Dockerfile
- ข้อกำหนด.txt
ไฟล์นี้จะมีแพ็คเกจทั้งหมดที่แอปพลิเคชันของคุณจะต้องทำงานได้อย่างราบรื่น
แพ็คเกจยังสามารถมีเวอร์ชันเช่น Flask==2.0.2 เพื่อติดตั้งเวอร์ชันเฉพาะได้
2. ด็อคเกอร์ไฟล์
ประกอบด้วยคำแนะนำทีละขั้นตอนทั้งหมดเพื่อสร้างอิมเมจนักเทียบท่า
คำแนะนำ:
FROM python:3 = สืบทอดอิมเมจ python 3 และติดตั้งบนอิมเมจนักเทียบท่าของเรา
RUN apt-get update = อัปเดตแพ็คเกจทั้งหมดเป็นเวอร์ชันล่าสุด
EXPOSE 5000 = เปิดเผยพอร์ตเฉพาะด้วยโปรโตคอลที่ระบุสู่โลกภายนอก
WORKDIR /app = การตั้งค่าไดเรกทอรีรากสำหรับแอปพลิเคชันของเรา
COPY Requirements.txt . = คัดลอก “requirements.txt” ลงในไดเร็กทอรีการทำงาน
RUN pip install -U -r needs.txt= ติดตั้งแพ็คเกจหลามที่จำเป็น
คัดลอก /app= คัดลอกไฟล์ทั้งหมดลงในโฟลเดอร์ app
CMD python3 Load_n_inferencing.py = เรียกใช้คำสั่ง “python3 Load_n_inferencing.py ”
สร้างอิมเมจนักเทียบท่า
ในการสร้างอิมเมจนักเทียบท่าเราสามารถกดคำสั่งต่อไปนี้จากพรอมต์คำสั่ง
docker image build -t my_image_name .
หมายเหตุ : อย่าลืมเพิ่มเครื่องหมายจุดท้าย
คุณสามารถยืนยันภาพได้โดยใช้คำสั่ง
docker image ls
วิ่งบนคอนเทนเนอร์
ตอนนี้เราสามารถรันอิมเมจบนคอนเทนเนอร์ได้แล้ว เพื่อให้บรรลุเป้าหมายดังกล่าว เราใช้คำสั่งต่อไปนี้
docker run -p 6000:5000 -d my_image_name
ที่นี่ 6000 คือ port_1 ที่แอปพลิเคชันถูกจัดสรรบนเครื่องของเรา โดยพื้นฐานแล้วการเชื่อมโยงพอร์ตสำหรับผู้ใช้ภายนอก
5000 คือ port_2 ที่แอปพลิเคชันทำงานอยู่ภายในคอนเทนเนอร์
คำสั่งต่อไปนี้สามารถใช้เพื่อตรวจสอบสถานะคอนเทนเนอร์
docker ps
ครีบ
คอนเทนเนอร์ของเรากำลังทำงานอยู่ และแอปพลิเคชันกำลังฟังบน localhost:6000
JSON ของคำขอที่มีข้อมูลที่ต้องคาดการณ์จะมีลักษณะดังนี้
{ “data” : [1,2,3,4] }
เมื่อคุณกด URL พร้อมข้อมูลที่ต้องการแล้ว การคาดคะเนจะถูกส่งกลับเป็นการตอบกลับ
หวังว่าบทความนี้จะช่วยคุณปรับใช้แอปพลิเคชันของคุณ :-)