แนวทางปฏิบัติที่ดีที่สุดในการจัดเก็บรูปแบบการเรียนรู้ของเครื่องงู


24

แนวปฏิบัติที่ดีที่สุดในการบันทึกจัดเก็บและแบ่งปันโมเดลการเรียนรู้ของเครื่องมีอะไรบ้าง

ใน Python เรามักจะจัดเก็บการเป็นตัวแทนไบนารีของโมเดลโดยใช้ pickle หรือ joblib แบบจำลองในกรณีของฉันอาจมีขนาดใหญ่ ~ 100Mo นอกจากนี้ joblib สามารถบันทึกรูปแบบหนึ่งไปยังหลายไฟล์ถ้าคุณตั้งcompress=1( /programming/33497314/sklearn-dumping-model-using-joblib-dumps-multiple-files-which-one-is-the- แกนกลาง )

แต่ถ้าคุณต้องการควบคุมสิทธิ์การเข้าถึงโมเดลและสามารถใช้โมเดลจากเครื่องต่าง ๆ วิธีที่ดีที่สุดในการจัดเก็บคืออะไร

ฉันมีตัวเลือกน้อย:


คุณได้รับวิธีที่มีประสิทธิภาพในการทำเช่นนี้หรือไม่?
iNet

คำตอบ:



2

ฉันเผชิญกับปัญหานี้ (และยังคงเผชิญกับมันในวันนี้) เป็นเวลาหลายปี ฉันว่าถ้าคุณไม่มีข้อกำหนดโดยละเอียดคุณไม่สามารถคาดหวังคำตอบที่จริงจังได้ ฉันอธิบายตัวเองด้วยตัวอย่างงานของฉัน:

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

  • เมื่อต้องการสร้างโมเดลในการผลิตฉันต้องการ 1) รุ่นของโมเดลที่ฉันสามารถโหลดได้อย่างรวดเร็วในกรณีที่เซิร์ฟเวอร์เสีย (โดยทั่วไปคือรูปแบบไบนารีการจัดเก็บเฉพาะสิ่งที่จำเป็นเช่นน้ำหนักของโครงข่ายประสาทเทียม) และ 2) a วิธีที่จะทำให้ model in-RAM จัดการกับคำขอ API ได้อย่างรวดเร็ว

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


1

ฉันอยากจะแนะนำอีก 2 แนวทาง

  1. เก็บไว้ในที่เก็บเอกสาร (เช่น mongoDB) - วิธีนี้แนะนำเมื่อไฟล์โมเดลของคุณน้อยกว่า 16Mb (หรือเศษชิ้นส่วนของ joblib) จากนั้นคุณสามารถจัดเก็บโมเดลเป็นข้อมูลไบนารี นอกจากนี้ห้องสมุด ML บางแห่งรองรับการส่งออกและนำเข้าโมเดลใน json (เช่น. LightGBM) ซึ่งทำให้เป็นตัวเลือกที่สมบูรณ์แบบสำหรับการจัดเก็บในการจัดเก็บเอกสาร ข้อดี : ง่ายต่อการติดตามการสร้างแบบจำลองและเข้าถึงได้ง่ายข้อเสีย : สิ่งต่าง ๆ จะยุ่งหากวัตถุแบบมีขนาดใหญ่เกินไป

  2. จัดเก็บแบบจำลองของคุณบนที่เก็บข้อมูลวัตถุ (เช่น Amazon S3) - วิธีนี้ดีถ้าแบบจำลองของคุณมีขนาดใหญ่มากในกรณีนี้คุณจะได้รับพื้นที่เก็บข้อมูลแบบไม่ จำกัด และ API ที่ค่อนข้างง่ายคุณต้องจ่ายมากขึ้น ข้อดี : พื้นที่ไม่ จำกัด และความสามารถในการจัดเก็บรูปแบบไฟล์โดยพลการ ข้อเสีย : ต้นทุนและความจริงที่ว่าต้องทำอย่างถูกต้องคุณจะต้องพัฒนาระบบติดตามของคุณเอง

โชคดี!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.