我推荐的 20 个用于构建、共享和运行 AI 项目的开源工具
开源 AI 工具为机器学习开发者和数据科学家提供了一种经济高效的方式来构建、共享和运行 AI 项目,而不受专有软件的限制。通过免除高昂的许可费用,这些工具可让您重新分配资源以扩展项目规模或尝试新想法。
凭借开源的灵活性,您可以根据自身需求定制解决方案,使其适应任何模型或部署方式。同样,加入全球社区意味着持续改进、故障排除和新功能,让您始终能够使用最新的技术进步。
开源工具也易于集成,允许您整合多种资源,从而简化工作流程。在本文中,我将分享 20 款可用于运行 AI/ML 项目的开源 AI 工具。相信我,它们都值得一看。
为什么选择这 20 个开源 AI 工具?
我根据三个关键因素精心选择了这些开源工具:活跃而强大的社区、以用户为中心的核心功能以及与机器学习和数据科学生命周期各个阶段的一致性。
让我们详细探讨这些首选,以及为什么每个工具都值得在您的下一个项目中考虑。
为了让您可以快速浏览这些工具,这里列出了 20 个可用于支持您的 AI 项目的开源工具:
模型打包与部署
- KitOps
- 机器学习流
- Streamlit
- 格拉迪奥
- 快速矿工
数据和模型版本控制
- DVC(数据版本控制)
管道和工作流程编排
- 弗莱特
- 元流
- MLRun
- Apache SystemDS
- 凯德罗
- 法师人工智能
模型构建和训练框架
- TensorFlow
- 拥抱脸变形金刚
- H2O.ai
- Detectron2
- Cerebras-GPT
- 拉萨
- OpenCV
数据验证和测试
- 深度检查
现在让我们详细探讨一下开源工具。
模型打包与部署
这些工具支持打包和部署并提供可重复性。
1. KitOps
机器学习项目需要多人协作;通常情况下,每个人都是独立工作的。虽然这个过程最终可能会催生出优秀的产品或项目,但它也带来了一个问题:如何管理和跟踪项目整个生命周期中使用的每个组件——数据、代码、配置、工件、元数据和机器学习模型。
KitOps 通过使用Kitfile来定位组件,并使用符合 OCI 标准的打包格式ModelKit来解决这个问题,从而将组件打包成单个标准化单元。ModelKit 使用类似于容器原生技术的不可变 OCI 标准构件技术,从而实现防篡改。
除了将组件打包为单个单元外,KitOps 还可以对各个组件进行版本控制和解包。该工具还与各种工具和平台集成,从Docker Hub 到 Azure ML 和 Comet ML 。为了进一步支持这一点,KitOps 提供了与 ModelKit 软件包兼容的工具 的详细列表。此功能简化了依赖项管理,简化了工作流程,并改善了跨开发团队的协作。
KitOps 的核心优势在于所有操作都可以通过 Kit CLI 完成。想要了解更多关于 KitOps 的信息,请查看其面向初学者的文档,并开始构建检索增强生成 (RAG) 管道。
2. MLflow
MLflow是一个开源平台,用于管理机器学习项目的生命周期,从模型开发到部署和性能评估。它的优势有以下几个方面。
MLflow 通过跟踪您的 ML 实验,让您能够轻松地复现结果、部署和管理模型。该平台与环境无关,可通过 REST API 和命令行界面 (CLI) 访问。
它有七个组成部分:
- MLflow 模型注册表用于存储您的 ML 模型。它具有版本控制和注释功能。
- MLflow Tracking用于跟踪实验并衡量模型性能。
- MLflow 模型用于跨云平台部署您的 ML 项目。
- MLflow 项目用于打包您的项目,以确保可重用性、可重复性和可移植性。
- MLflow Prompt Engineering UI处理您的提示工程任务。
- MLflow Deployments for LLMs提供用于访问 SaaS 和 OSS LLM 模型的 API。
- MLflow Recipes用于为实际部署场景构建 ML 项目。
MLflow 还集成了各种工具和平台,从PyTorch 和 LangChain 到 HuggingFace、OpenAI、Keras 和 TensorFlow 。您可以按照本教程开始在 MLflow 上构建模型和生成式 AI 应用程序。
3. Streamlit
Streamlit是一个开源平台,只需几行代码,即可在几分钟内将您的 Python 脚本转换为可共享的 Web 应用。这些交互式 Web 应用通常是大多数机器学习项目的演示应用。该平台最吸引人的地方在于,它无需任何前端或后端经验。此外,Streamlit 允许您创建这些网站,无需 HTML、CSS 或 JavaScript,也无需定义路由,也无需专注于处理 HTTP 请求。
Streamlit 还允许开发者在一分钟内构建和部署强大的生成式 AI 应用。他们的教程页面涵盖了各种主题,从如何使用 LangChain 构建 LLM 应用,到如何 在 Streamlit 中部署应用程序。
4. 格拉迪奥
与 Streamlit 类似,Gradio是一款开源工具,可用于将您的机器学习模型作为 Web 应用与公众共享。该工具为您的模型创建了一个交互式界面。这个可自定义的界面支持与PyTorch 和 Scikit-learn等流行框架集成。
除了创建可共享的链接外,Gradio 还允许开发人员在 Python 笔记本中展示和嵌入模型界面,以展示其模型功能。此链接可以通过 Pythonic API 生成,并支持多种输入类型,包括文本、图像、音频和视频。
您可以构建一个 ML 模型并使用此Gradio 教程分享您的第一个应用程序。
5. RapidMiner
RapidMiner Studio 是一个面向数据分析师和机器学习工程师的软件和数据科学平台。它简化了项目的数据处理、数据挖掘、机器学习和模型部署阶段。虽然该平台主要面向开发和部署预测分析应用程序,但它仍然为用户提供了各种监督学习、无监督学习和强化学习模型。
Rapid Miner 的一些吸引人的功能包括其预构建的运算符、拖放功能、交互式可视化、协作环境和可视化编程界面,允许用户无需编写代码即可创建 ML 工作流。
学习如何使用 RapidMiner Studio 的最佳方式是通过社区教程。
数据和模型版本控制
这些工具管理数据集、模型和代码版本,以实现可靠的跟踪和可重复性。
6.DVC(数据版本控制)
DVC可以说是数据科学项目的 Git。数据版本控制 (DVC) 是一个版本控制应用程序,用于管理和跟踪数据、机器学习模型和实验的更改。这样,您可以保持 Git 存储库的轻量级,同时确保您的项目可以在任何时候使用正确的数据版本进行复现。这与 Git 跟踪代码更改的方式非常相似。
除了使用 Git 进行数据版本控制外,DVC 还具有本地实验跟踪功能,可用于管理 ML 实验和数据管道版本控制,从而帮助描述您的数据如何与其他数据和代码一起构建。使用 DVC 进行实验跟踪的一大优势在于,您无需离开 Git 即可评估和可视化 ML 项目的指标和参数。
通过实际操作图像分类器项目开始您的 DVC 体验,该项目具有数据和模型版本控制功能。
管道和工作流程编排
这些工具通过优化您的 ML 和数据流程来实现可扩展的生产,从而自动化复杂的工作流程。
7. 弗莱特
Flyte是一个开源工作流编排平台,允许开发人员通过其 Python SDK 构建、转换和部署数据及机器学习工作流。通过这种方式,您可以构建和执行可扩展、可维护、可重复的数据处理和机器学习流程。
要了解有关 Flyte 的更多信息,请查看Flyte 博客。
8. Metaflow
Metaflow是 Netflix 开发的用于构建和管理机器学习、人工智能和数据科学项目的开源框架。该工具解决了在生产环境中部署大型数据科学应用程序的问题,允许开发人员使用 Python API 构建工作流、使用 Notebook 进行探索、进行测试并快速扩展到云端。此外,ML 实验和工作流还可以在该平台上进行跟踪和存储。
您可以通过浏览他们的教程来开始使用 Netflix 的 Metaflow 。
9. MLRun
MLRun为开发人员提供了一个 AI 编排框架,用于管理机器学习和生成式人工智能 (GenAI) 应用程序,它能够自动化数据处理、模型开发、调优、验证和优化机器学习模型。该平台还允许用户在本地、混合和云环境中部署可扩展的实时数据管道,从而简化开发人员的整个机器学习项目生命周期。
开始使用 MLRun 的最佳位置是其教程和示例页面,其中演示了如何使用 MLRun 在不同阶段实现和自动化 ML 工作流程。
10. Apache SystemDS
Apache SystemDS(原名 Apache SystemML)是一个端到端的数据科学和机器学习系统,用于管理您的数据科学项目,涵盖从集成和数据清理到模型训练和部署的各个环节。这个由 Apache 软件基金会构建的平台旨在解决一个简单的问题。
通常,模型是在个人电脑上开发和运行的。虽然这对于小型数据集来说非常好,但对于大型数据集来说却不适用,因为它们需要多个节点和更广泛的分布式系统。
SystemDS 通过在 Apache Hadoop 和 Apache Spark 上提供具有分布式作业功能的大规模声明式机器学习平台来解决此问题。这种声明式语言与 R 和 Python 语法非常相似。它可以编译为本地和内存(CPU 和 GPU)操作的混合执行计划。
您可以通过尝试快速入门指南中的一些矩阵操作来探索 Apache SystemDS,以了解更多信息。
11.凯德罗
Kedro是一个机器学习开发框架,它通过创建可复现、可维护且模块化的数据科学代码,将数据科学项目从试点开发阶段推进到生产阶段。Kedro 拥有用于数据处理的数据目录、支持管道构建的功能,以及用于代码可维护性和一致性的标准化模板,从而有效地实现上述目标。其数据目录使用轻量级数据连接器来管理和跟踪数据集。这允许您使用同一条管道在整个系统中构建多个生产级代码。
除了对数据集进行版本控制和自动化管道之外,Kedro 还附带 Kedro-Viz,可帮助您可视化数据、机器学习工作流、实验及其连接。“连接”指的是数据与机器学习工作流之间的关系,例如管道如何处理任务以及模型和参数之间的关系。此工具还可以与各种数据科学和机器学习工具集成。您可以从探索Kedro 的 paceflights项目开始。
12. 法师人工智能
Mage AI是一款用于数据转换和集成的开源数据管道工具。它允许数据科学家和机器学习工程师使用交互式拖放界面构建、管理和自动化可用于生产的数据管道。该平台还在数据管道构建过程中利用了 AI 技术。
了解M age AI 的一个好方法是遵循本教程,它构建了一个 ETL 数据管道,将餐厅数据加载并转换到 DuckDB 数据库中。
模型构建和训练框架
这些工具附带用于构建和训练 ML 模型的库。
13. TensorFlow
TensorFlow是一个端到端机器学习平台,用于创建、运行、训练和部署机器学习模型到生产环境。其重点是深度神经网络。
请注意,TensorFlow 本身就是一个生态系统。该平台提供各种库、机器学习工具、API 和数据,可帮助您简化构建和部署机器学习模型的过程。这些库和工具包括:
- TensorFlow JS 用于在 Javascript 中构建 Web ML 应用程序。
- TensorFlow Lite 用于在移动设备和边缘设备上部署 ML 应用程序。
- 用于构建输入生产 ML 管道的 TensorFlow 数据。
- 适用于Keras等 API 的 TensorFlow Core 。
- 可供使用的数据集和预训练模型。
- What-If 工具和 TensorBoard 等各种工具支持并加速您的 ML 工作流程。
- 从 Dopamine 到 TensorFlow Decision Forests 和 TensorFlow Lite Model Maker 的各种库和扩展。
TensorFlow 教程是一个很好的起点,它向公众开放。
14. HuggingFace 变形金刚
HuggingFace不仅是最大的自然语言处理 (NLP) 技术开源提供商之一,还是一个 AI 和 ML 平台,致力于普及 NLP、计算机视觉和深度学习,让数据科学家和 ML 工程师能够使用预训练模型。其预训练模型是基于大数据训练的语言模型,利用了从 GPT 到 BERT 等各种 Transformer 架构。
HuggingFace 还有:
要开始使用 HuggingFace,请查看他们的ML 任务页面,其中包含各种社区教程、演示和用例。
15. H2O.ai
与榜单上的其他一些工具不同,H2O.ai更专注于创建和部署 AI 模型。该平台的工具包包含各种工具和算法,旨在帮助实现 AI 的民主化。H2O.ai 还帮助用户构建生成式 AI (Gen AI) 应用程序。
这些工具包包括:
- H2O/H2O-3 是一个分布式内存 ML 平台,具有 AutoML 功能,可用于执行 ML 任务。
- H2O Wave 是一个用于设计和部署具有交互式用户界面的应用程序的 Python 框架。
- H2O Driverless AI 是一款自动机器学习工具,具有自动特征工程、数据可视化和训练后诊断或评估模型。
- Sparkling Water 用于实现 Spark 实现和高级机器学习算法。
- H2O AI Cloud 是他们完全托管的云基础设施。
- H2O AutoDoc 用于自动创建 ML 模型的详细文档。
- H2O MLOps 用于管理您的 ML 模型。
- H2O Enterprise Puddle 用于创建云实例。
H2O.ai还可以用于各种环境和语言,包括 Java、Python、Scala 和 R。您可以通过参加他们的AI 大学课程来提升您对H2O.ai的了解。
16. Detectron2
Detectron2是由 Facebook AI Research (FAIR) 构建的机器学习平台,旨在帮助开发者构建用于物体检测、分割和其他视觉识别任务的机器学习模型。该平台支持多种新颖的计算机视觉和物体检测算法,例如 Fast R-CNN、DensePose、Panoptic FPN 和 TensorMask。这使得机器学习工程师能够轻松实现该领域的各种算法。
Dectectron2 的文档有全面但适合初学者的教程,可帮助您入门。
17. Cerebras-GPT
Cerebras-GPT 是一个平台,托管约 7 个 GPT-3 计算优化语言模型,这些模型的参数规模从 1.11 亿到 130 亿不等。这些尖端技术模型使用DeepMind 的 Chinchilla 公式进行训练,该公式影响了 OpenAI 的 GPT-4 和谷歌的 PaLM 2。由于使用该公式进行训练,它们的模型使用高质量的数据集,并使用合适的模型大小进行训练计算,从而能够执行更复杂的任务并提高性能。因此,它们最适合用于研究实验室。
查看Cerebras Model Zoo 存储库来查看他们的模型。
18. 拉萨
Rasa是一款工具,它为开发人员提供机器学习框架,用于使用 Python 和 NLP 构建基于文本和语音的对话式 AI 虚拟助手和聊天机器人。该平台自带预先训练好的模型,但开发人员也可以自行开发和训练模型,并添加自定义操作,然后再将其部署到面向公众的外部平台上。
Rasa 的核心是:
- Rasa 自然语言理解 (NLU) 是一款用于意图分类和实体提取的处理工具。它将文本转换为向量,以识别和理解消费者的输入并提取信息。
- Rasa Core 是一个管理基于机器学习对话的聊天机器人框架。它使用概率模型,例如 LSTM 神经网络。
要了解 Rasa 的功能,请查看他们的社区展示并参加他们的ML 课程以开始使用。
19. OpenCV
该平台以其实时计算机视觉编程功能库而闻名。
OpenCV是一个开源计算机视觉和机器学习软件库,允许用户执行各种机器学习任务,从处理图像和视频到识别物体、人脸或笔迹。除了物体检测之外,该平台还可以用于复杂的计算机视觉任务,例如基于几何的单目或立体计算机视觉。
您可以通过探索社区OpenCV 教程来构建您的第一个 OpenCV 项目。
数据和模型版本控制
这些工具验证数据并测试您的模型以确保生产的准确性和可靠性。
20.深度检查
Deepchecks更专注于数据验证和机器学习测试。借助 Deepchecks,您可以快速构建模型,而不会损害模型性能和数据完整性。此软件包通过在构建过程中全面、持续地验证模型来识别问题,从而实现这一点。最棒的是,您可以使用 GitHub Actions 自动执行所有这些操作,并将结果保存为工件。
通过探索交互式检查演示来了解有关 Deepchecks 的更多信息。
总结
你可能知道,开源的意义在于获取、影响,以及让技术惠及大众。开源 AI 工具则更进一步,允许每个人都能为 AI 如何大规模解决问题做出贡献。因此,尽管 AI 迄今为止的影响已经十分显著,但它才刚刚起步。
挑选出的每种工具在 ML 工作流程中都有不同的用途:
- 您拥有用于打包和部署模型的工具。
- 当谈到跟踪和版本控制时,您的数据和模型版本控制工具就派上用场了。
- 对于自动化复杂的工作流程,您的管道和工作流程编排工具非常棒!
- 模型构建和训练框架是项目的支柱,为各种 ML 任务的训练提供资源。
- 还有数据验证和测试工具可帮助确保准确性。
KitOps 擅长提供有效的解决方案,将 AI/ML 模型、数据集、代码和配置打包成可重现的工件或 ModelKit,以确保跨团队的兼容性、可重复性和协作。
立即试用KitOps来优化您的 ML 工作流程。我非常期待看到您使用这些开源 AI 工具构建、分享和运行成果。届时,别忘了在社交媒体上@我们!
文章来源:https://dev.to/kitops/20-open-source-tools-i-recommend-to-build-share-and-run-ai-projects-4ncg