Skip to content
Bonrock
Engineering4 分钟阅读

Python 在 AI 开发里的真实位置:哪些能做,哪些做不到

Python 速度慢、动态类型、并发能力有限,但仍是 AI 开发的主流语言。理解它真正擅长什么、局限在哪里,对构建 AI 系统有直接的实践价值。

NumPy 在 2005 年把高效数组运算带进了 Python,从那时起,这门速度慢、类型松散、并发能力有限的语言,逐渐变成了 AI 开发的标准基础设施。

要理解这件事,需要先区分两件人们经常混淆的事:AI 开发用的语言和 AI 计算实际跑在的语言。Python 在前者里占主导,在后者里几乎没有角色。大多数严肃的生产 AI 系统是 Python 代码在调用 C++、CUDA 或 Rust 写的东西。Python 是接口层、编排层、研究层,在这些位置上它确实是合适的工具。

Python 怎么走到这个位置的

通常的解释是 Python 简洁易读,但这不是它主导 AI 的真实原因。

NumPy 带来了高效数组运算,SciPy 跟着来,scikit-learn 在 2007 年让机器学习对非专家也可用。等到深度学习在 2012 年突破时,Python 在科学计算上已经有了十年积累。推动那次突破的研究者(Google Brain、DeepMind、学术实验室)已经在用 Python,Theano、TensorFlow、PyTorch 的构建者是 Python 用户,他们先做 Python 接口,发论文时附 Python 代码,其他研究者用同一套库实现论文,初创公司跟着,生态就这样锁定了。

大约在 2016 年,"这个 AI 项目该用 Python 吗"就不再是真正需要考虑的问题了。

Python 在 AI 系统里真正适合做什么

编排。 代理系统调 API、处理文件、查数据库、跑 shell 命令、协调服务,这是管道工作,Python 做得顺。决定什么时候调哪个模型、传什么上下文、拿到结果怎么处理,这些都是 Python 的工作。

研究迭代。 AI 开发本质上是实验:试不同架构、超参数、提示词、预处理方式。Jupyter notebook 和动态类型让你改一行重跑,不等编译。跑五十个实验找超参数时,这个特性很重要。

从研究到生产的迁移。 notebook 跑通的代码移到生产服务,不需要换语言重写,因为同一套库两个环境都能用,大多数其他语言做不到这一点。

LLM 集成。 每个主要提供商有 Python SDK:Anthropic、OpenAI、Mistral、Cohere。工具调用、流式响应、嵌入、异步处理,和现代 LLM 协作的模式都有成熟的 Python 实现。

代理开发的实用技术栈

针对代理系统,选择基本稳定:

FastAPI 做代理运行时服务:异步原生,自动生成 API 文档,性能对大多数工作负载够用,是构建 LLM 调用的后端服务的默认起点。

LangGraph 做编排层:特别适合有分支和循环的工作流,生产里代理实际会用到的那种条件多步骤逻辑。"抽象有漏洞"的批评成立,但对于不想自己做编排层的团队是合理选择。

Pydantic 处理结构化输出:需要模型返回特定格式 JSON 时,提供带类型校验的解析,和 OpenAI、Anthropic 的结构化输出功能对接直接。

asyncio 处理并发:代理工作流经常需要并行 LLM 请求,同时查多个数据源、同时跑多个推理步骤,asyncio 在大多数情况下处理得干净。

三件 Python 真正做不到的事

模型推理的热路径不在 Python 里。 真正的矩阵乘法跑在编译过的代码里:PyTorch 的 C++ 后端、vLLM 的自定义 CUDA 内核、TensorRT。Python 坐在上面通过绑定调用。你看到的"Python 对推理太慢"的基准测试,测的是在 Python 循环里跑推理步骤;生产系统的实际做法是 Python 调用编译过的后端,计算本身在 C++ 或 CUDA 里完成。

内存管理在长期运行的服务里会出问题。 Python 的垃圾回收不是为高频处理大张量设计的。在重数据处理的长期服务里,会有内存在预期时间之后才释放,开发环境里看不出来,到生产里才暴露成缓慢泄漏。写能避免这类问题的 Python 代码,需要从一开始就刻意关注内存管理方式。

打包部署比想的复杂。 Poetry 和 uv 改善了很多,但交付 Python 应用的复杂度还是高于交付 Go 或 Rust 二进制。对部署简洁性重要的微服务或 CLI 工具,这个代价值得考量。

实际结论

编排逻辑、数据处理管道、LLM SDK 调用、代理运行时:用 Python。

神经网络推理的纯 Python 循环、没有优化后端的高吞吐推理服务、每秒处理千万 token 的代码路径:不在 Python 里做。

可行的系统让 Python 处理受益于快速迭代和生态接入的部分,让优化过的系统处理需要性能的计算。Python 在 AI 开发里真正负责的那部分工作上,它做得够好;速度慢是一个架构层面需要绕开的问题,而不是换语言的理由。

觉得有帮助?分享给朋友。