AI开发相关技术栈梳理0331
2025-03-31 18:27:55 4 举报
AI智能生成
AI开发相关技术栈梳理
作者其他创作
大纲/内容
1、开发语言
1、Python3.8、3.9(推荐)、3.10
1、为稳定且较常用版本
2、在实际开发过程需要配合Python第三方库进行适配
2、在实际开发过程需要配合Python第三方库进行适配
2、GO、JAVA
2、开发框架
1、服务开发
1、框架
1、langchain
用途:
1、链式工作流构建支持多任务;
2、对话系统开发支持多轮对话;
3、知识库集成生成更精准回答;
4、工具扩展与插件支持,如搜索引擎searXng扩展能力边界。
优点:
1、简单易用,学习成本低;
2、模块化设计,便于快速搭建原型或定制化解决方案;
3、兼容多种大模型,支持跨平台使用。
4、支持复杂的链式任务和多步推理,适用于多种应用场景。
缺点:
1、性能瓶颈。在处理复杂链式任务时,可能因多次调用模型而导致性能下降。
2、高并发场景下,响应速度可能受限于模型和外部工具的性能。
3、调试复杂度高。链式工作流涉及多个组件,调试和优化可能较为繁琐。
场景:聊天机器人与智能客服、、个人助手与任务自动化等
1、链式工作流构建支持多任务;
2、对话系统开发支持多轮对话;
3、知识库集成生成更精准回答;
4、工具扩展与插件支持,如搜索引擎searXng扩展能力边界。
优点:
1、简单易用,学习成本低;
2、模块化设计,便于快速搭建原型或定制化解决方案;
3、兼容多种大模型,支持跨平台使用。
4、支持复杂的链式任务和多步推理,适用于多种应用场景。
缺点:
1、性能瓶颈。在处理复杂链式任务时,可能因多次调用模型而导致性能下降。
2、高并发场景下,响应速度可能受限于模型和外部工具的性能。
3、调试复杂度高。链式工作流涉及多个组件,调试和优化可能较为繁琐。
场景:聊天机器人与智能客服、、个人助手与任务自动化等
2、openai
用途:专为OpenAI API设计的官方SDK,提供高层抽象接口(如ChatCompletion)
优点:开发效率高,无需http协议知识;支持流式响应、函数调用等高级功能
缺点:定制化程度较低
场景:开发周期紧张的项目,需要用到流式响应、函数调用等高级功能,期望自动获得API更新支持
优点:开发效率高,无需http协议知识;支持流式响应、函数调用等高级功能
缺点:定制化程度较低
场景:开发周期紧张的项目,需要用到流式响应、函数调用等高级功能,期望自动获得API更新支持
3、FastAPI
备选:flask、requests
备选:flask、requests
用途:
FastAPI 是一个基于 Python 的高性能 Web 框架,专为构建 API 服务 设计,特别适合部署大模型程序。
优点:
1、结合Uvicorn实现高性能与高并发
2、代码简洁,开发效率高
3、支持windows、linux部署,支持 Docker 容器化部署
4、与主流大模型工具(如 LangChain、vLLM、OpenAI API)无缝集成
5、支持实时交互。WebSocket 支持流式输出(如逐步生成文本)
缺点:
1、需学习异步编程asyncio
2、需手动配置身份验证、限流或 HTTPS,框架本身不提供内置安全机制
场景:
部署本地模型给第三方使用;通过 WebSocket 实现双向实时对话;结合数据库和模型生成结构化输出;支持云服务器部署
FastAPI 是一个基于 Python 的高性能 Web 框架,专为构建 API 服务 设计,特别适合部署大模型程序。
优点:
1、结合Uvicorn实现高性能与高并发
2、代码简洁,开发效率高
3、支持windows、linux部署,支持 Docker 容器化部署
4、与主流大模型工具(如 LangChain、vLLM、OpenAI API)无缝集成
5、支持实时交互。WebSocket 支持流式输出(如逐步生成文本)
缺点:
1、需学习异步编程asyncio
2、需手动配置身份验证、限流或 HTTPS,框架本身不提供内置安全机制
场景:
部署本地模型给第三方使用;通过 WebSocket 实现双向实时对话;结合数据库和模型生成结构化输出;支持云服务器部署
4、transformers
用途:加载BERT/GPT等预训练模型
优点:支持数万种社区模型、API统一
缺点:大模型加载显存占用高
场景:快速调用Hugging Face Hub模型,适合研究和探索场景
优点:支持数万种社区模型、API统一
缺点:大模型加载显存占用高
场景:快速调用Hugging Face Hub模型,适合研究和探索场景
5、pytorch
备选:tensorFlow
备选:tensorFlow
用途:
1、支持从0到1搭建一个模型
2、支持分布式训练
3、混合精度训练
4、支持模型格式转换,支持模型优化与部署
优点:
1、社区资源丰富
2、硬件加速支持
3、开发效率高
缺点:
1、生产部署挑战
性能损耗:Eager Mode相比TensorFlow Serving推理延迟高10%-20%。
依赖管理:Python环境依赖复杂,需借助Docker/Triton解决。
2、移动端支持
部署限制:Core ML/ONNX转换可能丢失部分算子支持。
性能瓶颈:ARM架构下的推理速度不及TensorFlow Lite。
应用场景:模型训练、部署推理等
1、支持从0到1搭建一个模型
2、支持分布式训练
3、混合精度训练
4、支持模型格式转换,支持模型优化与部署
优点:
1、社区资源丰富
2、硬件加速支持
3、开发效率高
缺点:
1、生产部署挑战
性能损耗:Eager Mode相比TensorFlow Serving推理延迟高10%-20%。
依赖管理:Python环境依赖复杂,需借助Docker/Triton解决。
2、移动端支持
部署限制:Core ML/ONNX转换可能丢失部分算子支持。
性能瓶颈:ARM架构下的推理速度不及TensorFlow Lite。
应用场景:模型训练、部署推理等
6、vllm
用途:专为大规模、高并发的LLM推理优化框架,支持分布式计算和内存管理,提升吞吐量和响应速度;兼容多种开源模型;提供Python API
优点:吞吐量高Transformers快24倍;支持分布式推理,适合企业级高并发场景;与OpenVINO等加速工具结合可进一步优化性能。
优点:吞吐量高Transformers快24倍;支持分布式推理,适合企业级高并发场景;与OpenVINO等加速工具结合可进一步优化性能。
7、scikit-learn
用途:加载、训练、评估机器学习模型
2、中间件
1、向量数据库
1、Milvus
用途:
分布式向量数据库,专为非结构化数据(图像、文本、音频等)的嵌入向量设计,支持高维向量存储与高效相似度搜索。
优点:
1、高性能:优化的索引结构(如GPU加速)和分布式架构,支持万亿级向量检索。
2、多语言支持:提供Python、Java、C++等SDK,开发便捷
缺点:
1、学习成本:需理解向量索引技术及分布式部署复杂性。
2、配置复杂:集群部署需较多资源与调优
场景:智能问答:结合知识库,实现文本相似度匹配与语义检索
分布式向量数据库,专为非结构化数据(图像、文本、音频等)的嵌入向量设计,支持高维向量存储与高效相似度搜索。
优点:
1、高性能:优化的索引结构(如GPU加速)和分布式架构,支持万亿级向量检索。
2、多语言支持:提供Python、Java、C++等SDK,开发便捷
缺点:
1、学习成本:需理解向量索引技术及分布式部署复杂性。
2、配置复杂:集群部署需较多资源与调优
场景:智能问答:结合知识库,实现文本相似度匹配与语义检索
2、FAISS
用途:
向量检索库:针对大规模高维向量(如文本、图像嵌入)的快速检索。
优点:
1、高性能(支持C++底层+GPU加速)。
2、开源免费,社区活跃
3、灵活选择索引结构平衡速度与内存
4、支持大规模数据(亿级)
缺点:
1、硬件依赖高(需GPU或高性能CPU)。
2、动态数据更新能力弱(适合静态/批量数据)
场景:
1、图像/视频检索,以图搜图、相似图片匹配。
2、文本相似度匹配:如知识库问答(如《三体》文本检索)
向量检索库:针对大规模高维向量(如文本、图像嵌入)的快速检索。
优点:
1、高性能(支持C++底层+GPU加速)。
2、开源免费,社区活跃
3、灵活选择索引结构平衡速度与内存
4、支持大规模数据(亿级)
缺点:
1、硬件依赖高(需GPU或高性能CPU)。
2、动态数据更新能力弱(适合静态/批量数据)
场景:
1、图像/视频检索,以图搜图、相似图片匹配。
2、文本相似度匹配:如知识库问答(如《三体》文本检索)
2、搜索引擎
searXng
智谱AI搜索(收费)
2、模型训练
1、模型训练
PyTorch(单机多卡推荐)
用途:结构化PyTorch训练流程
优点:代码简洁性、支持TPU/多GPU训练
缺点:抽象层可能限制底层控制
场景:中小规模模型快速迭代
优点:代码简洁性、支持TPU/多GPU训练
缺点:抽象层可能限制底层控制
场景:中小规模模型快速迭代
TensorFlow
用途:静态图训练与自动分布式策略
优点:tf.distribute多机多卡支持成熟
缺点:调试难度高于PyTorch
场景:工业级大规模训练(需稳定API)
优点:tf.distribute多机多卡支持成熟
缺点:调试难度高于PyTorch
场景:工业级大规模训练(需稳定API)
DeepSpeed
用途:千亿参数级分布式训练
优点:ZeRO显存优化、支持3D并行
缺点:配置复杂、需适配NVIDIA环境
场景:LLaMA/GPT-3级别大模型训练
优点:ZeRO显存优化、支持3D并行
缺点:配置复杂、需适配NVIDIA环境
场景:LLaMA/GPT-3级别大模型训练
llama-factory
用途:微调训练
优点:UI界面,操作简单
优点:UI界面,操作简单
2、模型评估
Hugging Face Evaluate
用途:NLP任务评估指标(BLEU/ROUGE等)
优点:指标标准化、与Transformers无缝集成
缺点:自定义指标扩展较复杂
优点:指标标准化、与Transformers无缝集成
缺点:自定义指标扩展较复杂
Weights & Biases (W&B)
用途:训练过程监控与结果对比
优点:可视化强大、协作功能完善
缺点:云服务依赖可能导致数据隐私问题
优点:可视化强大、协作功能完善
缺点:云服务依赖可能导致数据隐私问题
3、模型优化
推理优化
llama.cpp
增强检索RAG
RAG知识库
模型量化
llama.cpp(CPU)
3、数据处理
基础数值计算
numpy(推荐)
用途:多维数组运算、线性代数、随机数生成
优点:内存效率高、C底层优化、生态基础
缺点:仅支持数值类型、无内置数据标签
场景:矩阵运算、科学计算底层支撑
优点:内存效率高、C底层优化、生态基础
缺点:仅支持数值类型、无内置数据标签
场景:矩阵运算、科学计算底层支撑
SciPy(可选)
用途:高级数学函数(傅里叶变换、优化算法)
优点:数学工具链完整、与NumPy深度集成
缺点:接口复杂、学习曲线陡峭
场景:信号处理、统计建模
优点:数学工具链完整、与NumPy深度集成
缺点:接口复杂、学习曲线陡峭
场景:信号处理、统计建模
结构化数据处理
Pandas
用途:表格数据清洗、时间序列分析
优点:数据对齐直观、IO格式支持广泛
缺点:内存占用高(DataFrame对象开销大)、单线程局限
场景:CSV/Excel数据处理、特征工程
优点:数据对齐直观、IO格式支持广泛
缺点:内存占用高(DataFrame对象开销大)、单线程局限
场景:CSV/Excel数据处理、特征工程
json数据处理
json
json_repair
opencv
图片数据处理
soundfile
音频数据处理
数据合成
Qwen、deepseek、Llama、、chatgpt
Excel
用途:简单数据处理,数据可视化
3、开发环境
1、开发工具
1、IDE
1、pycharm
优点:内置科学模式、Jupyter深度集成、变量可视化分析
缺点:社区版不支持ssh;专业版收费
缺点:社区版不支持ssh;专业版收费
2、VsCode
优点:零成本实现远程开发,资源占用低适合服务器连接;社区插件
3、jupyter notebook
优点:适合数据工程化处理场景
2、数据库客户端
Oracle、MySQL等
业务流程设计
ProcessOn、Xmind、PPT
低开发平台
Dify
Open WebUI
FastGPT
部署工具
Xinference
优点:
1、国产工具,支持一键部署各种开源大模型,集成高性能多并发调用功能
缺点:
1、在高负载场景下,Xinference 可能出现 GPU 显存泄漏或无法释放 的问题
2、高并发场景,模型可能无返回值
3、自定义配置灵活性不足
1、国产工具,支持一键部署各种开源大模型,集成高性能多并发调用功能
缺点:
1、在高负载场景下,Xinference 可能出现 GPU 显存泄漏或无法释放 的问题
2、高并发场景,模型可能无返回值
3、自定义配置灵活性不足
Ollama
用途:主要用于 本地部署和管理大语言模型(LLM),简化模型的运行和集成流程
缺点:国外开源模型,国家安全中心警告有数据泄露风险
缺点:国外开源模型,国家安全中心警告有数据泄露风险
2、开发环境
硬件环境
Nvidia显卡
需计算模型显存占用进行适配(如7B int8大模型,推理时需最低显存14G)
软件环境
CentOS
Ubuntu20.04
docker
4、打包部署
1、服务器部署
Python程序打包
PyInstaller
用途:单文件/目录打包(跨平台)
优点:支持Windows/Linux/macOS;自动依赖分析;无需配置脚本
缺点:输出文件体积大;可能触发杀毒软件误报
场景:简单脚本快速分发
优点:支持Windows/Linux/macOS;自动依赖分析;无需配置脚本
缺点:输出文件体积大;可能触发杀毒软件误报
场景:简单脚本快速分发
cx_Freeze
用途:多平台打包(需配置文件)
优点:轻量化输出;支持复杂依赖管理
缺点:输出文件体积大;需编写setup.py,需要手动指定一些依赖项,因为它不总是能够自动识别所有的依赖;社区活跃度较低
场景:简单脚本快速分发
优点:轻量化输出;支持复杂依赖管理
缺点:输出文件体积大;需编写setup.py,需要手动指定一些依赖项,因为它不总是能够自动识别所有的依赖;社区活跃度较低
场景:简单脚本快速分发

收藏
0 条评论
下一页