我最喜欢的用于构建 AI/ML 应用程序的 DevTools!
我来自 DevOps 领域,在加入现在的公司 SingleStore 之前,AI/ML 对我来说很陌生。加入已经 8 个月了,进展非常顺利。我从各种博客、教程、工具等学习了 AI/ML 领域所有新奇的东西。最初加入这家公司时,我了解到我们在 AI/ML 领域投入了大量资金,于是开始寻找可以简化学习过程并能进行一些实践操作的工具。顺便说一句,我们有很多内容和资料可以参考,但我想看看行业之外还有什么其他动态,并进行我自己的研究。
正如我所说,已经过去 8 个月了。在我的整个旅程中,从举办网络研讨会、在会议上发言,到撰写关于新兴技术趋势的博客,我偶然发现了一系列不可或缺的工具。在本文中,我将分享这些工具——从新兴的编程语言到 AI 框架、向量数据库,以及简化 AI/ML 应用程序创建的开发工具。让我们开始吧。
1.编程语言
翼
我尝试过很多语言,发现大多数都被过度炒作了。没错,就在那时,我在一个社区里遇到了这种为云和人工智能应用而生的新语言。那是我第一次尝试 Wing 编程语言,感觉它非常令人印象深刻。
你可能会问——为什么选择 Wing?Wing 提供了一个统一的编程模型,将基础架构和应用程序代码整合到一个紧密结合的框架中。这种独特的方法使开发人员能够简化工作流程,无需不断切换上下文,从而显著提高生产力和创造力。
这正是构建 AI/ML 应用程序时所需要的,它能让你更专注于核心功能,而不是底层基础设施。我体验了他们的 Open AI Joker 应用程序,它可以生成笑话并将其翻译成不同的语言。整个框架的流畅度令人惊叹。需要注意的是,Wing 仍在积极开发中。
您可以用最少的代码构建任何 AI/ML 应用程序。让我们看看 Joker 应用程序是如何工作的。该应用程序使用 OpenAI 生成笑话,并将其翻译成不同的语言。它包含一个喜剧演员和一个 Open AI 助手,负责生成笑话。每当它生成笑话时,笑话就会被放入/存储在一个存储桶中。它有两个翻译器,分别是西班牙语和希伯来语。这两个翻译器订阅一个主题。每当生成一个笑话时,它们都会接收并翻译。此外,它们还会将翻译好的笑话放入存储桶中。非常简单。
下面是如何使用OpenAI 的 API 与 Wing 的此示例的技术概览图。
如果你还没有尝试过 Winglang,你可以使用一个简单的命令轻松尝试
npm install -g winglang
使用此 git clone 命令将代码复制到本地计算机
git clone https://github.com/winglang/wing.git
转到示例文件夹,然后在终端中运行以下命令:
npm install
wing it
调用“从这里开始”功能,并在“笑话商店”中查看结果。
2. 矢量数据存储与分析工具
SingleStore 和笔记本
对于 AI/ML 应用,需要一个数据库来存储非结构化数据。我加入 SingleStore 大约 8 个月前,当时我对 AI/ML 和矢量数据库还很陌生。随着矢量数据库的炒作,我开始学习矢量数据库,并发现 SingleStore 作为矢量数据库对行业来说是一个令人惊叹的补充。它不仅用于存储矢量数据,公司还使用 SingleStore 进行实时分析。现在,看看矢量数据存储支持实时分析的强大功能吧,这真是一个超强的功能。
让我向大家介绍一下 SingleStore;它是一个基于云的数据库管理系统 (RDBMS),专为数据密集型应用程序而设计。它以其快速的数据提取、事务处理和查询处理而闻名。SingleStore 早在 2017 年就开始支持向量存储。
SingleStore 的 Notebook 功能基于广受欢迎的 Jupyter Notebook,该 Notebook 在数据科学和机器学习社区中得到广泛应用。SingleStore Notebook 扩展了 Jupyter Notebook 的功能,使数据专业人员能够轻松使用 SingleStore 的分布式 SQL 数据库,同时在语言和数据源方面提供出色的可扩展性。
尝试 SingleStore 并获得价值 600 美元的免费积分。
3. 数据处理和分析工具
我热爱处理数据,喜欢用公开的数据集(例如葡萄酒数据集、泰坦尼克号数据集等等)做各种实验。NumPy 和 Pandas 在数据探索和提出不同解决方案方面的能力令我着迷。
Pandas 和 NumPy 是 Python 生态系统中用于数据分析和科学计算的最流行的两个库。
Pandas 和 NumPy
任何 AI/ML 应用的核心都是数据。Pandas 和 NumPy 等工具是 Python 数据操作和分析的基础。Pandas 提供用于操作数值表和时间序列的高级数据结构和操作,使其成为在用于训练模型之前对数据进行预处理和清理的理想选择。NumPy 增加了对大型多维数组和矩阵的支持,以及大量可对这些数组进行操作的数学函数,这对于数据预处理和模型训练中性能要求高的操作至关重要。
4.人工智能和机器学习框架
我使用过 TensorFlow 和 PyTorch,最近又接触了 LangChain 和 LlamaIndex,它们能够帮助 AI/ML 工程师构建强大的应用程序,提供所需的所有工具包,例如 API、向量存储功能、逻辑、推理等,这给我留下了深刻的印象。让我们逐一了解它们,感受它们的强大功能。
TensorFlow 和 PyTorch
谷歌开发的TensorFlow和 Facebook 开发的PyTorch是构建和训练复杂机器学习模型的两个最流行的框架。TensorFlow 以其灵活性和强大的可扩展性而闻名,使其既适用于研究原型,也适用于生产部署。PyTorch 因其易用性、简洁性和动态计算图而备受赞誉,可以更直观地编写复杂的 AI 模型。这两个框架都支持广泛的 AI 模型,从简单的线性回归到复杂的深度神经网络。
朗链
LangChain由 Harrison Chase 开发,于 2022 年 10 月首次亮相,是一个开源平台,旨在构建由大型语言模型驱动的坚固应用程序,例如 ChatGPT 等聊天机器人和各种定制应用程序。
Langchain 致力于为数据工程师提供一套全面的工具包,以便在聊天机器人、自动问答、文本摘要等各种用例中使用 LLM。
骆驼指数
LlamaIndex是一个先进的编排框架,旨在增强 GPT-4 等 LLM 的功能。虽然 LLM 本身就功能强大,并且已经在海量公共数据集上进行过训练,但它们通常缺乏与私有数据或特定领域数据交互的手段。
LlamaIndex 弥补了这一差距,提供了一种结构化的方式来提取、组织和利用各种数据源——包括 API、数据库和 PDF。通过将这些数据索引为针对 LLM 优化的格式,LlamaIndex 促进了自然语言查询,使用户能够无缝地与他们的私人数据进行对话,而无需重新训练模型。
5.深度学习模型
作为一名初学者,我一直在寻找一种简单灵活的方法来开发深度学习模型,于是发现了 Keras。许多 AI/ML 专业人士都欣赏Keras在原型设计和开发深度学习模型方面的简洁性和高效性,使其成为首选,尤其对于初学者和需要快速开发的项目而言。
喀拉拉
对于寻求高级神经网络 API 的开发者来说,现已集成到 TensorFlow 中的 Keras 提供了一个更简洁的界面来构建和训练深度学习模型。Keras 简化了构建神经网络的大部分复杂性,使其即使初学者也能轻松上手,同时又具备足够的功能用于研究。
6. 开发和版本控制平台
GitHub 和 DVC
由于模型开发的迭代特性和对可重复性的需求,协作和版本控制在 AI/ML 开发项目中至关重要。GitHub是领先的源代码管理平台,支持团队协作处理代码、跟踪问题并管理项目里程碑。DVC (数据版本控制)是对 Git 的补充,它可以处理 Git 无法有效管理的大型数据文件、数据集和机器学习模型,从而实现对 AI 项目中使用的数据和模型文件的版本控制。
7. AI模型部署与监控
我构建了一些 AI/ML 应用程序,但如何以及在哪里部署它们呢?于是,我的脑海中浮现出这一类别的两个主要工具:Docker 和 Kubernetes。正如我之前所说,我来自 DevOps 领域,并且已经使用过这些工具,并且了解它们的工作原理。Docker 用于容器化您的应用程序,而 Kubernetes 用于部署您的应用程序以实现规模化。
Docker 和 Kubernetes
将 AI 模型部署到生产环境中需要能够打包应用程序并进行大规模管理的工具。Docker通过容器化 AI 应用程序简化了其部署,确保应用程序在任何环境中都能平稳运行。Kubernetes是 Docker 容器的编排系统,支持容器化应用程序的自动部署、扩展和管理,这对于需要跨多台服务器或云环境扩展的 AI 应用程序至关重要。
8.人工智能云平台
如果没有 AWS、Google 和 Azure 等云平台,任何业务都无法扩展。虽然 AWS 是我的最爱,但我也探索过其他选择,并在此提到了三大云提供商。
AWS、Google Cloud 和 Azure
亚马逊网络服务 (AWS)、谷歌云平台 (GCP) 和微软 Azure 等云平台提供了一系列人工智能和机器学习服务,这些服务抽象出了训练和部署人工智能模型所需的大部分基础设施。这些平台提供机器学习模型训练、部署和监控的托管服务,以及可根据任何人工智能项目需求扩展的大量计算资源。
9. 专用AI开发工具
虽然我仍然更喜欢使用 SingleStore Notebook 功能,但我知道你们大多数人已经在使用 Jupyter Notebook 进行数据探索和分析了。我有时会使用 Jupyter Notebook,还有一个更有趣的工具是 MLflow,它可以帮助你实现端到端的机器学习工作流。
Jupyter 笔记本
对于探索性数据分析、模型开发和文档编写,Jupyter Notebook 是不可或缺的工具。它允许开发人员创建和共享包含实时代码、方程式、可视化和叙述文本的文档,使其成为协作 AI 研究和开发的绝佳工具。
机器学习流
MLflow是一个用于管理端到端机器学习生命周期的开源平台。它包含实验跟踪、模型版本控制和部署等功能,使开发人员能够跟踪和比较实验、将模型打包成可重复的运行,以及管理跨多个环境的模型部署。
最后一些想法
AI/ML 领域发展如海洋般广阔。每天我们都会看到一种或另一种语言模型满怀期待地亮相。虽然还有很多优秀的开发工具可以列入这份名单,但就我个人经验而言,我相信这些工具对于每一位 AI/ML 工程师构建 AI/ML 应用程序来说都是一个良好的开端。
请告诉我您目前在 AI/ML ARENA 中最喜欢的工具是什么。
文章来源:https://dev.to/pavanbelagatti/my-favorite-devtools-to-build-aiml-applications-3c0c