AI开发三大神器:PyTorch、ONNX、LangChain

我认为兴趣的重要性远大于学习知识本身。

作者: AI 思享咖啡屋
分类:实用工具
8 次阅读

我们作为初学者一起建立了生成式AI的直觉,主要是对生成式AI是什么、有什么用、怎么用有一些初步认知,消除AI的神秘感。但是我们也基本没碰数学和代码,因为这个阶段主要还是希望能建立起兴趣,我认为兴趣的重要性远大于学习知识本身。

在对AI有了一定的全景认知后,如果要进阶一步,还是需要进行一些实践,积极的读者小伙伴们也给我提出了相关建议,再次感谢你们的反馈!虽然我们不是科班出身,但是也可以学习使用Python和主流库完成简单的AI项目,而且在实践中更加容易掌握和理解我们之前学到的理论。

先来介绍最最基本的一些工具清单:

——Python基础:Python是深度学习的主导语言,是所有实践的基础,我们假定你已经安装好了Python。(注:你可以官网下载Python,或者使用Anaconda等,更推荐后者,使用前者的话通常使用虚拟环境来进行管理。)

——数据三件套:Numpy, Pandas, Matplotlib。

  • NumPy:主要用于数值计算、数据处理。
  • Pandas:提供高性能、易用的数据结构(DataFrame)和数据分析工具。
  • Matplotlib:主要用于数据可视化。

你可以一次安装多个库:

pip install numpy pandas matplotlib

——传统机器学习库:Scikit-learn,进行数据清洗、特征工程、模型训练与评估。

pip install scikit-learn

在开发工具上,一是可以选择集成开发环境(IDE),比如VS Code这样的工具;另外你也可以选择Jupyter Notebook/JupyterLab这样的工具(推荐),更加初学者友好。安装(pip install jupyter notebook)完成后,终端中运行jupyter notebook来启动它。

上述安装如果报错,大家可以去询问AI,积极地运用AI工具解决问题~

今天的文章,除了需要大家做上述基础准备,还会给大家介绍AI应用开发工具的一览图。特别是对于代码小白来说(我本人就是),想学AI工具,网上素材有很多,但是根本不知道该学哪个,其实每种工具都有专长领域,往往我们看到的资料都是针对某个具体工具的学习,但是小白根本不知道为什么要学这个而不学那个,我自己作为小白学习之路上就很希望有人给我讲一讲每种工具对应什么样的应用场景,分别是什么用途,该怎么选择,所以,今天的文章我们一起来了解AI开发的“三大神器”:PyTorch、ONNX、LangChain。

PyTorch、ONNX和LangChain是我们在学习AI过程中常见的工具,打个比方来说,他们分别代表了AI开发流水线中的三个关键环节:

  • PyTorch:发动机研发与制造工厂
  • ONNX:标准化发动机制造蓝图和适配器
  • LangChain:汽车整车设计与组装厂

再结合前面的基础工具,我们按照模型项目阶段的选择画出下图,帮助理解。

PyTorch像是汽车发动机(即AI模型)的研发制造,专注内部构造,关心如何设计气缸、活塞、燃油系统(神经网络层、损失函数、优化器)。实验性质强,支持动态调整设计,适合研发和原型验证。输出的是一个特定格式的“发动机”(.pt或.pth文件),只能在PyTorch生态中直接使用。TensorFlow是和PyTorch功能相似的工具。

ONNX像是标准化蓝图和适配器,专注通用接口,定义发动机的标准化安装接口、尺寸规格。解决兼容性问题,让PyTorch制造的发动机也能安装在TensorFlow设计的车架上,并提供专门的调校工具,让发动机在不同环境下发挥最佳性能。输出的是一个标准格式的“发动机蓝图”(.onnx文件),任何支持ONNX的“汽车厂”都能使用。

LangChain像是汽车组装,专注系统集成,不制造发动机,而是采购现成的标准化发动机(通过ONNX或直接API)。关心整车功能,如何将发动机与变速箱、底盘、电子系统完美结合(链+检索+记忆+智能体)。用户体验至上:确保汽车易于驾驶、功能完整(开发者友好的API和应用架构)。输出一辆完整的“汽车”(可部署的AI应用)。

该如何选用上述工具,可以根据不同的使用角色来确定。

角色工具原因
AI研究员/算法工程师PyTorch需要灵活性来实验新模型架构和训练方法
模型优化工程师ONNX专注将训练好的模型优化并部署到各种环境
应用开发工程师LangChain需要快速构建面向用户的AI应用,不关心模型内部细节

具体来说:

PyTorch是一种深度学习框架,相较于Numpy, Pandas这样的基础库而言,深度学习框架发挥作用的地方在于,它们可以提供更高层次的整合模块,打包处理很多复杂细节,让开发者能够更高效地专注于模型的设计、训练和评估。例如深度学习框架的优点包括:自动微分(如计算梯度),优化模块(让你可以像堆积木一样,组合这些组件来构建复杂模型),GPU加速(训练深度模型计算量巨大,通过与GPU结合能执行大规模并行计算,比CPU更快)。PyTorch让研究人员和工程师能够从零开始定义、训练和调试深度学习模型,关心的是模型内部的数学计算和参数优化。

ONNX是一种开放的模型表示与交换标准,相较于PyTorch、TensorFlow这样的特定训练框架而言,ONNX发挥作用的地方在于,它提供了统一的模型格式和运行时环境,打通了不同深度学习框架之间的壁垒,让训练好的模型能够跨平台高效部署。ONNX让模型优化和部署工程师能够专注于将训练好的模型转化为标准化格式,并在各种生产环境中实现高性能推理,关心的是模型的计算图优化和跨平台兼容性。

LangChain是大语言模型应用开发框架,是应用的“组装大师”。核心优势在于:通过组件化设计,提供标准化模块,像搭乐高一样构建应用,集成各种模型、数据库、工具,极大缩短从想法到产品的时间。LangChain默认你已经有一个训练好的大语言模型,关心的是模型外部的任务流程。

通过这些介绍,希望大家能够对PyTorch、ONNX和LangChain等工具建立起一个基本的认知框架。它们不是竞争关系,而是互补的,都是AI开发流水线上不同环节的得力助手。

作为初学者,我们不需要也无法立即精通所有工具,但了解它们各自的位置和作用很重要。这能帮助我们在遇到具体问题时,知道该向哪个方向寻找解决方案。

本文由公众号“HelloGihub”授权转载| https://mp.weixin.qq.com/s/JbfJQopcn1iV7s2AuaMhkA |(编辑:ZN)