MLflow เป็นแพลตฟอร์มเพื่อปรับปรุงการพัฒนาแมชชีนเลิร์นนิง รวมถึงการติดตามการทดลอง การบรรจุโค้ดลงในการทำงานที่ทำซ้ำได้ และการแชร์และการปรับใช้โมเดล MLflow นำเสนอชุด API น้ำหนักเบาที่สามารถใช้ได้กับแอปพลิเคชันหรือไลบรารี Machine Learning ที่มีอยู่ (TensorFlow, PyTorch, XGBoost ฯลฯ) ทุกที่ที่คุณเรียกใช้โค้ด ML ในปัจจุบัน (เช่น ในโน้ตบุ๊ก แอปพลิเคชันแบบสแตนด์อโลน หรือระบบคลาวด์) ส่วนประกอบปัจจุบันของ MLflow คือ:
การติดตาม MLflow: API สำหรับบันทึกพารามิเตอร์ โค้ด และผลลัพธ์ในการทดลองการเรียนรู้ของเครื่อง และเปรียบเทียบโดยใช้ UI แบบโต้ตอบ
โปรเจ็กต์ MLflow: รูปแบบแพ็กเกจโค้ดสำหรับการรันที่ทำซ้ำได้โดยใช้ Conda และ Docker เพื่อให้คุณสามารถแชร์โค้ด ML ของคุณกับผู้อื่นได้
โมเดล MLflow: รูปแบบแพ็คเกจโมเดลและเครื่องมือที่ช่วยให้คุณสามารถปรับใช้โมเดลเดียวกัน (จากไลบรารี ML ใดก็ได้) ไปจนถึงการให้คะแนนแบบกลุ่มและแบบเรียลไทม์บนแพลตฟอร์ม เช่น Docker, Apache Spark, Azure ML และ AWS SageMaker
MLflow Model Registry: ที่เก็บโมเดลแบบรวมศูนย์ ชุด API และ UI เพื่อร่วมกันจัดการวงจรการใช้งานเต็มรูปแบบของโมเดล MLflow
แพ็คเกจ
พีพีไอ | |
conda-ฟอร์จ | |
แครน | |
มาเวน เซ็นทรัล |
สถานะงาน
ติดตั้ง MLflow จาก PyPI ผ่าน pip install mlflow
MLflow ต้องการให้ conda
อยู่บน PATH
สำหรับฟีเจอร์โปรเจ็กต์
สแน็ปช็อตยามค่ำคืนของ MLflow master มีอยู่ที่นี่เช่นกัน
ติดตั้งชุดย่อยการพึ่งพาที่ต่ำกว่าของ MLflow จาก PyPI ผ่าน pip install mlflow-skinny
สามารถเพิ่มการพึ่งพาเพิ่มเติมตามสถานการณ์ที่ต้องการ ตัวอย่างเช่น pip install mlflow-skinny pandas numpy
อนุญาตให้รองรับ mlflow.pyfunc.log_model
ดูเอกสารอย่างเป็นทางการสำหรับ MLflow ได้ที่ https://mlflow.org/docs/latest/index.html
โร้ดแมป MLflow ปัจจุบันมีอยู่ที่ https://github.com/mlflow/mlflow/milestone/3 เรากำลังมองหาการมีส่วนร่วมในรายการแผนงานทั้งหมดของเราที่มีป้ายกำกับ help wanted
โปรดดูส่วนการสนับสนุนสำหรับข้อมูลเพิ่มเติม
สำหรับความช่วยเหลือหรือคำถามเกี่ยวกับการใช้งาน MLflow (เช่น "ฉันจะทำ X ได้อย่างไร") โปรดดูเอกสารหรือ Stack Overflow
หากต้องการรายงานจุดบกพร่อง ยื่นเอกสารปัญหา หรือส่งคำขอคุณสมบัติ โปรดเปิดปัญหา GitHub
สำหรับประกาศเปิดตัวและการสนทนาอื่นๆ โปรดสมัครรับรายชื่ออีเมลของเรา ([email protected]) หรือเข้าร่วมกับเราบน Slack
โปรแกรมใน examples
ใช้ MLflow Tracking API ตัวอย่างเช่น ให้รัน:
ตัวอย่างหลาม/quickstart/mlflow_tracking.py
โปรแกรมนี้จะใช้ MLflow Tracking API ซึ่งจะบันทึกข้อมูลการติดตามใน ./mlruns
จากนั้นสามารถดูได้ด้วย UI ติดตาม
UI การติดตาม MLflow จะแสดงการรันที่บันทึกไว้ใน ./mlruns
ที่ http://localhost:5000 เริ่มต้นด้วย:
mlflow UI
หมายเหตุ: ไม่แนะนำให้เรียกใช้ mlflow ui
จากภายในโคลนของ MLflow - การทำเช่นนั้นจะเรียกใช้ dev UI จากแหล่งที่มา เราขอแนะนำให้เรียกใช้ UI จากไดเร็กทอรีการทำงานอื่น โดยระบุที่เก็บแบ็กเอนด์ผ่านตัวเลือก --backend-store-uri
หรือดูคำแนะนำในการเรียกใช้ dev UI ในคู่มือผู้สนับสนุน
คำสั่ง mlflow run
ช่วยให้คุณรันโปรเจ็กต์ที่แพ็กเกจด้วยไฟล์ MLproject จากพาธในเครื่องหรือ Git URI:
ตัวอย่างการรัน mlflow/sklearn_elasticnet_wine -P alpha=0.4 mlflow ทำงาน https://github.com/mlflow/mlflow-example.git -P alpha=0.4
ดู examples/sklearn_elasticnet_wine
สำหรับโปรเจ็กต์ตัวอย่างที่มีไฟล์ MLproject
เพื่อแสดงให้เห็นการจัดการโมเดล แพ็คเกจ mlflow.sklearn
สามารถบันทึกโมเดล scikit-learn เป็นอาร์ติแฟกต์ MLflow แล้วโหลดโมเดลเหล่านั้นอีกครั้งเพื่อให้บริการ มีตัวอย่างแอปพลิเคชันการฝึกอบรมใน examples/sklearn_logistic_regression/train.py
ที่คุณสามารถเรียกใช้ได้ดังนี้:
$ ตัวอย่างหลาม / sklearn_logistic_regression/train.py คะแนน: 0.666 บันทึกโมเดลในการรัน <run-id> โมเดล $ mlflow ให้บริการ --model-uri run:/<run-id>/model $ curl -d '{"dataframe_split": {"คอลัมน์":[0],"index":[0,1],"data":[[1],[-1]]}}' -H 'เนื้อหา - ประเภท: application/json' localhost:5000/invocations
หมายเหตุ: หากใช้ MLflow Skinny ( pip install mlflow-skinny
) สำหรับการให้บริการโมเดล จะต้องติดตั้งการขึ้นต่อกันที่จำเป็นเพิ่มเติม (เช่น flask
) เพื่อให้เซิร์ฟเวอร์ MLflow ทำงาน
อิมเมจ MLflow Docker อย่างเป็นทางการมีอยู่ใน GitHub Container Registry ที่ https://ghcr.io/mlflow/mlflow
ส่งออก CR_PAT=YOUR_TOKENEcho $CR_PAT | นักเทียบท่าเข้าสู่ระบบ ghcr.io -u ชื่อผู้ใช้ --รหัสผ่าน-stdin# ดึงเวอร์ชันล่าสุดนักเทียบท่าดึง ghcr.io/mlflow/mlflow# ดึง 2.2.1docker ดึง ghcr.io/mlflow/mlflow:v2.2.1
เรายินดีต้อนรับการมีส่วนร่วมกับ MLflow อย่างยินดี เรายังต้องการการมีส่วนร่วมในรายการต่างๆ ในแผนงาน MLflow อีกด้วย โปรดดูคู่มือการมีส่วนร่วมของเราเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการมีส่วนร่วมใน MLflow
ปัจจุบัน MLflow ได้รับการดูแลโดยสมาชิกหลักต่อไปนี้ พร้อมด้วยการสนับสนุนที่สำคัญจากสมาชิกชุมชนที่มีความสามารถพิเศษหลายร้อยคน
เบน วิลสัน
คอเรย์ ซูมาร์
ดาเนียล ล็อค
กาเบรียล ฟู
ฮารุทากะ คาวามูระ
เซรีน่า รูน
เว่ยเฉิน ซู
ยูกิ วาตานาเบะ
โทมุ ฮิราตะ