不要重複自己是計算機科學的基本原則。因此,軟體工程師經常使用現成的程式碼或預先建立的解決方案來解決常見問題。因此,大型機器學習專案通常依賴許多其他開源專案。例如,transformers - 一個通常用於建立基於變壓器的模型的庫 - 依賴1000 多個其他開源專案。
使用開源專案來建立專案既有優點也有缺點。使用合適的開源專案將加速產品的開發,而無需從頭開始。但是,如果您選擇的開源專案沒有積極的開發或缺乏支持,您的專案可能會被延遲。
為了幫助您選擇正確的專案,本部落格探討了可用於衡量開源專案可靠性的標準以及十個鮮為人知的開源專案,這些專案將極大地幫助您建立強大的機器學習產品。
如果您導航到GitHub ,您會發現許多乍看之下似乎很有用的開源專案。然而,並非所有這些技術都已經成熟並可用於商業產品。要確定是否應該使用特定的開源程式庫,您可以根據以下標準進行評估:
文件和支援:具有詳細文件和快速支援(透過 GitHub、Slack 或 Discord)的專案比沒有的專案更好。
活動:積極解決拉取請求和問題的開源專案可以被認為比存檔或過時的專案更可靠。
贊助商:其他公司贊助的專案是可靠的,因為貢獻者和維護者會得到報酬來積極建構和改進專案。
許可證:某些專案具有阻止使用者分發和使用該專案用於商業用途的許可證。因此,明智的做法是在將其用於商業用途之前仔細閱讀“LICENSE”文件。
現在您已經了解了評估開源專案所涉及的標準,讓我們來看看您可能沒有聽說過的十個有用的開源 MLOps 專案。
In machine learning projects, data engineers, data scientists, and machine learning engineers often struggle to collaborate. Handing off artifacts (features, models, code, dataset, etc.) involves a convoluted software process that can necessitate frequent meetings or pair-programming sessions. Many have tried to automate this process, but it requires numerous tools that can introduce additional complexities.
[KitOps](https://jozu.com/blog/how-to-turn-a-jupyter-notebook-into-a-deployable-artifact/) eliminates these complexities by treating all components in an ML project as a single software unit. This makes it easier to package, version, and track those components, resulting in smooth handoffs between different stakeholders.
Furthermore, with KitOps, it is possible to unpack individual components (data, model, or code) and work on them. This simplifies collaboration and dependency management. [KitOps supports](https://kitops.ml/docs/modelkit/compatibility.html) [a](https://kitops.ml/docs/modelkit/compatibility.html) [majority of the tools](https://kitops.ml/docs/modelkit/compatibility.html) in the ML ecosystem and has beginner-friendly [documentation](https://kitops.ml/docs/overview.html), making it easier to switch.
The team behind KitOps recently announced a second project called Jozu Hub, to host ModelKits. You can [checkout the preview here](https://jozu.ml) and [sign up for the early access here](https://jozu.com/hub).
Hyperparameter tuning and evaluating ML models are integral aspects of ML product development. EvalML is an AutoML library that aims to ease the process of building, optimizing, and evaluating ML models by helping engineers avoid manual training and tuning of models. It also includes data quality checks and cross-validation.
Burr is a new library that focuses on applications of Large Language Models (LLMs). Burr enables developers to build decision-making agents (chatbots and simulations) using simple Python building blocks and deploy them on custom hardware. It includes three components:
- A Python library that enables you to build and manage state machines with simple Python functions.
- A UI you can use for [introspection and debugging](https://burr.dagworks.io/concepts/additional-visibility/).
- A set of integrations to help you integrate Burr with other systems.
Evidently is an open source monitoring tool built by [Evidently AI](https://docs.evidentlyai.com) to help data scientists identify drifts in data, label, model performance changes, and run custom tests. Evidently works with [tabular and textual](https://docs.evidentlyai.com/user-guide/input-data/data-requirements) data, including embeddings. In short, it is a tool to evaluate, test, and monitor machine learning models in production.
Evidently allows users to run pre-defined tests or create custom tests for their machine learning model. The computed test results and metrics can be displayed in an interactive dashboard, which can be hosted on public or private cloud infrastructure.
The majority of the tools in the MLOps space focus on models and infrastructure. Unlike those tools, Rerun focuses on data, which is integral to any machine learning project. Rerun is a time-series database and visualizer for temporal and multimodal data. It’s used in robotics, spatial computing, 2D/3D simulation, and finance to verify, debug, and explain. Rerun provides SDKs (C++, Python, and Rust) to log data like images, tensors, point clouds, and text.
Unlike other libraries in the list, Agenta is an [end-to-end LLM developer platform](https://docs.agenta.ai/getting_started/introduction#with-agenta-you-can). It allows engineers to collaborate on prompts, evaluate, and monitor LLM-powered applications. It also provides assistance with incorporating human feedback and deploying LLM-based apps. Agenta is model and library-agnostic, allowing engineers to use any library and model, which in turn makes this tool more versatile and useful.
Jupyter Notebook is an effective tool for experimenting with machine learning models, but it has a few problems: Jupyter Notebooks are hard to deploy and collaborate on. marimo is an open source reactive notebook for Python. Unlike Jupyter Notebooks, marimo notebooks are reproducible, interactive, git-friendly, easy to collaborate on, and can be deployed as scripts or apps. As a result, marimo notebooks are the perfect candidate for building internal tools like this [model comparison tool](https://marimo.io/@public/model-comparison).
A serious problem with machine learning projects is the complex process involved in taking models from development to production. Kedro is an open source tool that solves this problem by employing software engineering best practices to help you create data engineering and data science pipelines that are reproducible, maintainable, and modular.
Additionally, kedro provides [kedro-viz](https://github.com/kedro-org/kedro-viz) for visualizing machine learning workflows. It also allows you to create project templates to organize configuration, source code, tests, documentation, and notebooks within a project.
LLMs are extremely hot these days; companies and individuals are using them to automate boring tasks and improve efficiency and responsiveness. However, LLMs are cumbersome to deploy and incur [high cost](https://cybernews.com/tech/rising-cost-of-training-ai-/).
Skypilot is an open source tool that helps engineers LLMs, AI models, or any batch jobs in the cloud while ensuring high availability. Its [autostop and autodown feature](https://skypilot.readthedocs.io/en/latest/reference/auto-stop.html) automatically stop and delete resources when they are not in use, resulting in low cloud bills.
The success of a machine learning model relies on the quality of data and, hence, the features fed to the model. However, in large organizations, members of one team may not be aware of good features developed by other teams in the organization. A feature store helps eliminate this problem by providing a central repository of features that are accessible to all the teams and individuals within an organization.
[Featureform is a virtual feature store](https://docs.featureform.com/getting-started/architecture-and-components#resource-and-feature-registry) that enables data scientists to define, manage, and serve their ML model's features. The virtual feature store sits on top of the existing data infrastructure and orchestrates it to work like a traditional feature store. Its benefits include easy collaboration, organized experimentation, easy deployment (of features), and increased reliability.
到目前為止,應該清楚的是,機器學習專案依賴眾多開源專案來將模型從訓練到生產。因此,選擇能夠與其他 MLOps 工具輕鬆整合、具有良好文件且學習曲線淺的工具至關重要。 KitOps就是這樣的工具之一。除了所有這些功能之外,它還易於安裝、有大量教程,並包括Jozu 的企業支援。
如果您發現這篇文章有幫助,請透過 GitHub Star 支持我們!
原文出處:https://dev.to/kitops/10-open-source-mlops-projects-you-didnt-know-about-5bf5