เทียบท่าและปรับใช้โมเดล Machine Learning ของคุณ

ในโลกแห่งเทคโนโลยีที่เติบโตอย่างต่อเนื่องนี้ docker ได้สร้างชื่อเสียงให้กับการพัฒนา จัดส่ง ทดสอบ และรันแอปพลิเคชันได้เร็วกว่าที่เคย ในขณะที่ยังคงควบคุมโครงสร้างพื้นฐานได้เต็มรูปแบบ

บทความนี้จะช่วยคุณสร้างอิมเมจนักเทียบท่าตามโมเดลแมชชีนเลิร์นนิงขั้นพื้นฐานและเรียกใช้เป็นคอนเทนเนอร์ สำหรับสิ่งนี้ เราจะใช้ flask เป็นเฟรมเวิร์กเว็บของเรา เนื่องจากมีลักษณะค่อนข้างเบา

ขั้นตอนการทำงานหลัก :

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

สำหรับการบันทึกโมเดล ML และเวิร์กโฟลว์การอนุมาน โปรดดูบทความอื่นของฉันที่เน้นไปที่การใช้งานโมเดล ML บนฟลาสก์เป็นหลัก



เมื่อคุณดำเนินการตามขั้นตอนข้างต้นสำเร็จแล้ว คุณควรมีแอปพลิเคชัน Flask ที่ทำงานได้อย่างสมบูรณ์ซึ่งมีตำแหน่งข้อมูลเชื่อมต่อกับโมเดล ML

โครงสร้างโฟลเดอร์ของคุณจะมีลักษณะดังนี้

โฟลเดอร์แอปพลิเคชันของฉัน
— Load_n_inferencing.py
— training_n_pickling.py
— my_model.pkl

คอนเทนเนอร์:

เพื่อบรรจุแอปพลิเคชันของเรา เราจำเป็นต้องมีไฟล์เพิ่มเติมสองสามไฟล์:

ข้อกำหนด.txt

Dockerfile

  1. ข้อกำหนด.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 พร้อมข้อมูลที่ต้องการแล้ว การคาดคะเนจะถูกส่งกลับเป็นการตอบกลับ

หวังว่าบทความนี้จะช่วยคุณปรับใช้แอปพลิเคชันของคุณ :-)