Jul 03, 2024
Die Vorteile des Einsatzes von MLOps-Software für Data Science sind seit Jahren bekannt und anerkannt, unabhängig davon, welche Art von KI/ML die Ingenieure praktizieren. Es wurde ein Punkt erreicht, an dem es langsam zu einem Standard wurde, der die Datenwissenschaftler von der Last befreit, ihre Experimente manuell verfolgen zu müssen, ihre Assets (Datensätze, Modelle) manuell zu versionieren, die Codebasis für die Bereitstellung der Modelle zu pflegen und so weiter.
Wenn ein unerfahrener Datenwissenschaftler die theoretischen Vorteile von MLOps erkannt hat und sie in seiner täglichen Arbeit nutzen möchte, wendet er sich in der Regel kleinen Open-Source-Softwaretools zu, die von einer breiten Community unterstützt werden und darüber hinaus in seiner lokalen Umgebung oder in seinem Notebook verwendet werden können. Im Allgemeinen hauptsächlich für persönliche Zwecke.
Eine solche MLOps-Software, die sich in den letzten 5-6 Jahren großer Beliebtheit erfreut hat, ist MLflow. Sie geht über die Lösung der zuvor erwähnten Probleme bei der Arbeit von Datenwissenschaftlern hinaus, indem sie auch Modellevaluierung, Modellpaketierung und Modellbereitstellung bietet. Ein beliebter Weg, um automatisch die Kompatibilität fast aller Modelle mit einem anderen MLOps-Service von AWS (Sagemaker) zu erreichen, den die Data-Science-Teams von Intertec genutzt haben, besteht beispielsweise darin, ein mit Sagemaker kompatibles Image zu erstellen, mit der Option, es an ECR (Elastic Container Registry) zu übergeben, und es dann durch die Erstellung eines Endpunkts auf Sagemaker bereitzustellen.

MLOps steht für Machine Learning Operations. Es ist sozusagen der Dirigent hinter den Kulissen für Machine Learning-Modelle. So wie eine Sinfonie einen Dirigenten braucht, der dafür sorgt, dass alle Instrumente harmonisch spielen, sorgt MLOps dafür, dass Machine Learning-Modelle reibungslos entwickelt, bereitgestellt und verwaltet werden. Es deckt alles ab, von der Datenvorbereitung und dem Modelltraining bis hin zur Bereitstellung und Überwachung, und stellt sicher, dass alles reibungslos abläuft, damit die Modelle ihre beste Leistung erbringen können.

Entdecken Sie, wie MLOps Ihre Geschäftsabläufe verändern kann:
Um eine robuste und zentralisierte OSS MLOps-Plattform auf AWS zu erstellen, haben wir uns mit einem AWS-zertifizierten Partner zusammengetan. Deren Fachwissen in Bezug auf die AWS-Infrastruktur und die MLOps-Tools half uns, den Prozess zu rationalisieren und häufige Fallstricke zu vermeiden. Durch die Zusammenarbeit mit ihnen konnten wir sicherstellen, dass unsere Einrichtung in Bezug auf Skalierbarkeit, Sicherheit und Leistung optimiert wurde, und profitierten von ihrer umfangreichen Erfahrung bei der Bereitstellung ähnlicher Lösungen.
Die Verwendung von MLOps-Software in der Datenwissenschaft hat sich zu einem anerkannten Standard entwickelt, der Datenwissenschaftler von der manuellen Nachverfolgung, Versionierung und Codepflege befreit. Neueinsteiger beginnen oft mit Open-Source-Tools für den persönlichen Gebrauch, wie MLflow, das die Modellevaluierung, Paketierung und Bereitstellung verbessert. So nutzen die Teams bei Intertec MLflow, um die Kompatibilität mit AWS Sagemaker zu optimieren und die Modellbereitstellung zu vereinfachen. Weitere Informationen finden Sie in Intertecs Leitfaden für den Lebenszyklus des maschinellen Lernens.

Dies wird durch ein CNN-Modell für die Kleiderklassifizierung, dessen Artefakte in einem S3-Speicherort gespeichert sind, in ein Sagemaker-kompatibles Modell umgewandelt und mit nur einigen Zeilen Code bereitgestellt:
# mlflow models build-docker --model-uri {S3_URI} --name "mlflow-sagemaker-xception:latest"
# mlflow sagemaker build-and-push-container --build --push -c mlflow-sagemaker-xception
mlflow deployments create --target sagemaker --name mlflow-sagemaker-xception --model-uri {S3_URI} -C region_name={AWS_REGION} -C image_url={ECR_URI} -C execution_role_arn={SAGEMAKER_ARN}
Wenn Sie an weiteren Beispielen für die Verwendung von MLflow für AWS und insbesondere Sagemaker interessiert sind, empfehle ich Ihnen die zweite Auflage von Julien Simons Buch "Learn Amazon Sagemaker".
Die Kompatibilitätsaspekte von MLflow erstrecken sich auf weitere Dienste innerhalb des AWS-Ökosystems. Da MLflow nicht nur eine gewöhnliche Bibliothek ist, sondern ein Server mit einer Benutzeroberfläche, der sich mit verschiedenen Speichern für seinen Artefaktspeicher und verschiedenen Datenbanken für seinen Backend-Speicher verbindet, gibt es mehrere Optionen zur Auswahl. Die Datenwissenschaftler beginnen jedoch in der Regel damit, den Server lokal zu betreiben, ohne das Setup anzupassen, und wählen das lokale oder das Dateisystem des Notebooks für den Artefaktspeicher und den Backend-Speicher. In einigen Fällen konfigurieren sie MLflow so, dass eine lokale Datenbank (SQLite, MySQL, MSSQL, Postgre) als Backend-Speicher oder MinIO als Artefakt-Speicher verwendet wird.
Dieses Setup funktioniert für sie persönlich perfekt, aber es treten Probleme auf, wenn sie ihren Fortschritt oder ihre Arbeit innerhalb eines Teams offenlegen wollen.
In einem Team oder Unternehmen, das wie Intertec KI-/ML-Dienstleistungen anbietet, ist es nicht tragbar, wenn jeder Datenwissenschaftler über einen längeren Zeitraum seine eigenen MLOps-Tools verwaltet. Dies führt dazu, dass Assets nicht wiederverwendbar sind, Experimente manuell geteilt werden müssen und Berechtigungen wiederholt plattformübergreifend festgelegt werden. Selbst innerhalb desselben Teams sind die Bemühungen ohne eine zentralisierte MLOps-Einrichtung verstreut, was es den Teammitgliedern erschwert, nahtlos dort weiterzumachen, wo andere aufgehört haben.
Bei Intertec kannten sich die meisten Datenwissenschaftler bereits mit MLflow aus. Die Umstellung auf eine neue MLOps-Software hätte eine erhebliche Anpassungszeit erfordert. Daher haben wir uns dafür entschieden, MLflow als unsere bevorzugte Plattform beizubehalten. Da AWS unser wichtigster Cloud-Anbieter ist, nutzen wir die verschiedenen Infrastrukturdienste, um unsere zentralisierte MLflow-Plattform aufzubauen. Selbst für AWS-Dienste, die nicht offiziell von MLflow unterstützt werden, kann eine erfolgreiche Einrichtung vorgenommen werden, indem der Backend-Speicher mit der NoSQL-Datenbank DynamoDB implementiert wird.
Einige der Partner und Kunden von Intertec, deren Infrastruktur auf AWS basiert, erkannten die Notwendigkeit und die Vorteile einer zentralisierten MLOps-Plattform, nachdem sie unseren Erfolg gesehen hatten. Sie haben unseren Ansatz an ihre spezifischen Hosting-Anforderungen für MLflow angepasst. Intertec hat sowohl intern als auch für Kunden erfolgreiche Implementierungen durchgeführt und damit die Skalierbarkeit und Effektivität unseres Ansatzes unter Beweis gestellt.
Mit einem erfahrenen DevOps-Team, das mit AWS und den Fähigkeiten von MLflow vertraut ist, verlief die Einrichtung in der AWS-Cloud reibungslos. Während der Wartung traten kleinere Herausforderungen auf, wie die Aktualisierung des Backend-Speichers nach MLflow-Updates. AWS bietet eine Reihe von Ressourcen, die mit den Anforderungen von MLflow kompatibel sind, um diese Herausforderungen zu bewältigen. Hier sind unsere empfohlenen Konfigurationen:
Für die internen Projekte und Forschungsarbeiten von Intertec hat sich diese Konfiguration - mit RDS (PostgreSQL) als Backend-Speicher, S3 für Artefakte und einer kleinen EC2-Instanz - als einfach und effektiv erwiesen.
Intertec hat auch ein alternatives MLflow-Setup auf Kubernetes vorbereitet, das auf Cloud-agnostische Implementierungen abzielt. Dieses Setup wird auf EKS mit MinIO für Artefakte und SQLite für den Backend-Speicher bereitgestellt und umfasst zusätzliche ML-Tools wie Label Studio und JupyterHub, wodurch eine umfassende MLOps-Plattform entsteht.
Für einen unserer Kunden erwies sich die Integration von MLflow in seinen dedizierten ECS-Cluster für KI/ML-Dienste als wesentlich. Der MLflow-Server wurde speziell für das AWS-Produktionskonto eingerichtet, wobei die internen Umgebungsverwaltungsfunktionen von MLflow genutzt wurden. Um die Kommunikation zwischen den Diensten verschiedener AWS-Konten und dem MLflow-Server zu erleichtern, wurde der kontoübergreifende Ressourcenzugriff mithilfe von IAM-Services aktiviert.
Der Zugriff auf die MLflow-Benutzeroberfläche wird durch einen Application Load Balancer (ALB) erleichtert, der eine dynamische Host-Port-Zuordnung für ECS-Aufgaben verwendet. Innerhalb der Aufgabendefinition wird das Netzwerk im Bridge-Modus konfiguriert, um eine nahtlose Integration zu gewährleisten.
Die anderen Teile der MLflow-Einrichtung basieren auf S3 für den Artefaktspeicher und RDS (MySQL) für den Backend-Speicher. Die automatische Wartung des Backend-Speichers erfolgt innerhalb der MLflow-Docker-Datei selbst.
FROM python:$PYTHON_BASE_IMAGE-slim
RUN pip install mlflow==$MLFLOW_VERSION
RUN pip install pymysql==$PYMYSQL_VERSION
RUN pip install boto3==$BOTO3_VERSION
EXPOSE $MLFLOW_INTERNAL_PORT
CMD mlflow db upgrade mysql+pymysql://$_MLFLOW_RDS_MYSQL_USER_:$_MLFLOW_RDS_MYSQL_PASS_@$_MLFLOW_RDS_MYSQL_HOST_:3306/backendstore && mlflow server --default-artifact-root s3://$_MLFLOW_S3_BUCKET_/mlflow --backend-store-uri mysql+pymysql://$_MLFLOW_RDS_MYSQL_USER_:$_MLFLOW_RDS_MYSQL_PASS_@$_MLFLOW_RDS_MYSQL_HOST_:3306/backendstore --host $MLFLOW_INTERNAL_HOST
Bei Intertec setzen wir MLflow auf AWS seit über 5 Jahren ein und unterstützen unsere Kunden seit fast 4 Jahren. In dieser Zeit sind wir nur auf minimale Probleme gestoßen und haben festgestellt, dass die Wartung von MLflow auf AWS bemerkenswert effizient ist. Diese Einrichtung hat unsere Arbeitsabläufe erheblich gestrafft und die Markteinführungszeit für zahlreiche Projekte konsequent beschleunigt. Sind Sie ein auf maschinelles Lernen ausgerichtetes Unternehmen, das qualifiziertes Personal sucht oder die Automatisierung mit maschinellem Lernen erforscht? Hier erfahren Sie mehr.
Während wir die GenAI- und MLOps-Technologie einsetzen, passen sich unsere Ingenieure und Cloud-Anbieter diesen Fortschritten an. MLOps-Plattformen werden mit GenAI-Funktionen weiterentwickelt, unsere Ingenieure verbessern ihre Fähigkeiten für ein schnelles Engineering, und Cloud-Anbieter führen neue Dienste ein, um aufkommende Basismodelle zu unterstützen.

MLflow ermöglichte uns zunächst die Protokollierung von Eingabeaufforderungen wie bei herkömmlichen ML-Modellen. Später wurde der Deployments Server eingeführt, um große GenAI-Modelle effektiv zu verwalten und mit RAG-Frameworks/Providern zu integrieren. Gleichzeitig führte AWS Bedrock ein, einen Service für grundlegende Modelle, der Unterstützung für die Feinabstimmung und RAG-Integration bietet. Die Synergie von Bedrock mit MLflow macht es ideal für die laufende Wartung.
Hier ist zum Beispiel ein Docker-Dateiausschnitt für die Bereitstellung des Deployments Server auf EC2, der unsere bestehende MLflow-Einrichtung ergänzt:
FROM python:$PYTHON_BASE_IMAGE-slim
RUN pip install mlflow[genai]==$MLFLOW_VERSION
EXPOSE $MLFLOW_INTERNAL_PORT
CMD mlflow deployments start-server --port $MLFLOW_INTERNAL_PORT --host $MLFLOW_INTERNAL_HOST --workers $NUMBER_OF_WORKERS
Während wir die Entwicklung von MLOps auf AWS vorantreiben, war unsere Reise mit MLflow für Intertec von entscheidender Bedeutung. Im Laufe der Jahre haben wir aus erster Hand erfahren, wie die Integration robuster MLOps-Tools die Effizienz und Zusammenarbeit von Datenwissenschaftlern verbessert. Durch die Nutzung der skalierbaren Infrastruktur von AWS und der vielseitigen Funktionen von MLflow haben wir unsere Abläufe gestrafft und die Projektlaufzeiten beschleunigt.
Mit Blick auf die Zukunft, wenn MLflow neue GenAI-Funktionen einführt und AWS seine Unterstützung mit Services wie Bedrock ausbaut, sind wir bereit, uns diese Fortschritte zunutze zu machen. Wir konzentrieren uns weiterhin auf die Entwicklung innovativer KI-Anwendungen und die Anpassung an neue Technologien, um sicherzustellen, dass unsere Kunden von den modernsten Lösungen profitieren.
Steigen Sie mit uns in die Zukunft von MLOps ein, wo Technologie auf Möglichkeiten trifft, und lassen Sie uns gemeinsam neu definieren, was mit KI und maschinellem Lernen erreichbar ist.

Velimir Graorkoski
Software Engineer - AI
Vertrauen bei führenden Unternehmen weltweit




Intertec


Aneta Pejchinoska


Intertec