[连载中]大厂Java程序员转型AI大模型开发之路-序章

60 阅读11分钟

核心理念

不做调用API的"伪AI开发",而是深入模型原理、微调优化的真正AI工程师。

大家好,我是Len。一个在互联网大厂做直播业务的Java程序员。今天我准备和大家聊聊我是如何从一个Java程序员转型成为AI开发工程师的。 在这条转型的路上,有哪些知识还能再用上,有哪些知识需要我们继续学习。 当然,这绝对不是调用一下API之类的伪AI开发工程师,而是实实在在的涉足到AI开发的领域。在这过程中我经历了哪些有趣的经历,我在这里给大家分享下。

学AI之前

我的技术栈

在接触AI之前,说下我所掌握的技术栈吧:

  1. Spring全家桶: 主要是SpringMVC,SpringBoot,其他的Spring系列用的虽然比较少,但基本也了解其原理,比如SpringDataJPA,SpringCloud等;
  2. 持久层框架: MyBatis及其变体MyBatis-Plus;
  3. 消息中间件: RocketMQ等,其他的例如RabbitMQ使用方法类似就不列举了;
  4. RPC框架: Dubbo,gRpc等;
  5. 数据库: MySQL,HBase,Redis,MemCache,搜索引擎(ELK和openSearch),分析型数据库(AnalyticDB),还有时序数据库等各类主流数据库;
  6. 大数据生态: Apache Flink,实时数据管道(类似于binlog),Hadoop + Hive等;
  7. 其他中间件: Sentinel限流中间件,Nacos配置中心等;
  8. 编程语言: 除了Java以外,还熟悉JavaScript,groovy和Python,但Python了解的相对少一些. 整体说来,这些技术栈基本涵盖了微服务时代所需的常见框架吧!

项目经历

再说下我经历的项目吧,因为在互联网大厂,比较有机会接触到一些大型项目,像我们经常说到的高并发、海量数据、秒杀峰值等都是能够亲自参与的。比如:

  1. 海量数据 + 高QPS: 在直播业务中,用户的实时评论、点赞、关注等信息将会上报到数据中心,当然,主要目的是方便给其他用户看到。这个数据量级有多大呢?平均QPS大约有1.5w,每月的数据增量都是几百TB。如此大的数据将会面临一些问题:
    • 如何快速的写入数据不至于造造成写阻塞?如果阻塞时间太长,进而引起数据库的崩溃甚至最终导致系统崩溃?
    • 如何能读取和加工这样的海量数据,比如: 针对单个直播间的海量数据做聚合分析?如果直接在Java程序中读取并分析,超时或者内存溢出也不奇怪。
  2. 直播间商品链路的复杂性: 直播间商品链路从加购、下单、付款成功的链路,又臭又长,各种满减优惠,库存等规则的限制让开发和排查过程变得异常艰辛。
  3. 秒杀场景的挑战: 如果某个主播以1499的价格上架了飞天茅台,那必然又会引起一波峰值,此时系统稳定性?如何避免超卖又是一大难题。

这里稍微解释下商品超卖的问题。假设某商品限量售卖10件,每个用户限制下单1件:

  1. 直播间锁单人数小于10人: 那没有任何问题;
  2. 直播间同时有几十人锁单: 那简单加个锁,此时用户无非就是感觉小卡了一下,大部分人提示失败,小部分人提示成功,此时有1单因为系统原因没卖出,用户多点几次就能成功把这单拿下;
  3. 直播间同时有几千人甚至上万人锁单: 这个就麻烦了,如果卖出了15件,那多出来的5件如何解决?如果系统原因导致只卖出5件,剩余的5件怎么办?

在互联网增量时代甚至是存量竞争时代早期,我所掌握的技术栈应该是非常贴合这个时代需求的,因为那个时代的核心命题就是微服务化,为什么呢?个人认为原因如下:

  1. 是针对于旧版架构的改造升级,旧版架构一般容易形成超级应用。开发人多,包体积非常大,维护难度很大,代码冲突多,各种引入的Maven依赖加起来几千个都是常态,部署慢,经常编译失败;
  2. 对于互联网还未涉足的领域,轰轰烈烈的开疆拓土那是肯定的,我们有大把落地的场景。

但是在AI改变世界的时代,这些技术迭代已经变缓甚至落后了,主要原因我认为有以下几点:

  1. 互联网已经进入存量竞争异常激烈的时代: 我们平台的用户增量必定会导致其他平台用户的减少,曾经号称的海量数据、高QPS等已经被削弱了;而且我们常用的框架也接近稳定了;
  2. 针对于旧版架构的改造的完成度已经接近尾声: 现在新起的应用架构都以微服务开发为标准,过去踩过的坑现在不会再犯了,很多应用场景基本上都是把之前的模式复用过来就行了;
  3. 业界对于AI的期待很高: 希望其能够成为软件行业的新范式,成为统治下一个时代的Windows或者MacOS。

那现在AI到底是啥样,是大家期待的样子吗?

  • 过去: 人工智能 = 有多少人工,就有多少智能。
  • 现在: 人工智能 = 自动写代码,能快速的得到很多问题的答案,能提炼总结文章等等,凡事均可AI,但是很多都是辅助能力,并不具备深入整合到系统层面的条件。
  • 未来: 人工智能=成为下一代的技术范式,真正的把AI融入到各个系统中去,而不是做一个对话框、问答助手等辅助性功能。

因此,各个国家,国内的各个厂商都在做AI竞赛,希望能成为这个行业的领头羊,能在这个行业中有主导权,可以制定这个行业的标准。

行业发展现状

这块,我们主要关注头部玩家的动态就能窥探一二。

国内

  1. 以DeepSeek为代表的技术新秀累计发布了DeepSeek-R1,DeepSeek-V3,DeepSeek-OCR等一系列具有非凡影响力的模型,可惜的是,号称是具有革命性的下一代AI推理模型并没有发布。
  2. 以阿里,字节,百度等为代表的互联网大厂均密集发布自己的模型应用,比如我们常见的豆包,文心一言,夸克AI搜索等,都号称是用户规模上涨非常快的应用,目标都是下一代的国民级应用,上一次国民级应用还是抖音。

国外

  1. 以OpenAI的chatGPT,Google的Gemini,Anthropic的‌Claude均在各自的领域有着不俗的成绩,但是GPT-5的发布还是略微让大家有点失望的,也许是大家对它的期待太高了吧;Cluade在编码领域所表现的能力应该是达到行业领头羊级别了; 同时,英伟达已宣布向OpenAI投资1000亿美元,旨在构建AI基础设施闭环并巩固行业主导权‌。虽然这份交易存在质疑,但是行业老大们对AI领域的投资表明他们对AI的持续关注。

综上,AI发展的非常快,但还远远未达到大家期待的样子。

从资本层面看,AI绝对算得上是一个投资的热门领域,有很多资本进入的话,作为一个普通人依然是很有希望在这里捞上一波的。因此,我们没有理由错过AI带来的机会,当一个行业所有业务都能标准化的时候,普通人就没有任何机会了。

在AI时代需要做的一些转变

如何找资料

在AI时代来临之前,GitHub拥有绝对的主导地位,在AI时代之后,多了一个Hugging Face,在这里可以看到各大厂商提供的各种开源模型,开源数据集等。当然,GitHub中也涌现了大量的AI开源框架。 AI也成了搜索的入口,很多知识我们均可以使用AI来得到答案,但是要注意甄别其中的一本正经的胡说八道的内容。

最新科研成果-论文

最新的科研成果必然是论文,推荐一个AI领域发论文比较多的网站。

网站: arxiv.org/ 说明:

  1. 该网站是托管于美国康奈尔大学的平台,不是论文级别的系统,用于共享尚未经过同行评审的学术论文。该网站的论文无需审核即可发稿,需要注意甄别其中的水文。
  2. 所有内容均是英文的,如果英语阅读有困难的可以配备一些AI翻译的工具。

在AI时代任然非常有用的工程能力

  1. 大数据能力: 以Flink为代表的流式数据处理的能力;
  2. 数据加工: 基于Hive的海量数据加工能力;
  3. 对业务的理解能力: 长期以来,算法工程师们对业务的理解是不如工程侧的开发工程师的,我们可以基于对业务的深入理解,在AI落地层面给出自己的见解。比如,楼主非常靠近直播间的评论链路、商品链路等。

我们应该怎么学

入门级

学会如何和写提示词(Prompt) 将AI大模型视为一个API,能通过工程代码调用这个API。 核心:

  1. 了解如何接入各大模型厂家提供的API;
  2. 了解各大模型之间的基本区别;
  3. Prompt的组成部分;
  4. 如何以流式和非流式的方式执行单轮对话。

中级(一)

依然以API的方式,配以Spring-AI这类的框架,快速复制出各种AI助手,比如:直播数据问答助手、直播间商品问答助手,直播间优惠问答助手等。

核心:

  1. 以模型提供的API为基础,以工程化的手段将AI整合到项目中;
  2. 将私域知识整合到模型中;
  3. 框架选择: Spring-AI,Spring-AI-Alibaba,LangChain,AgentScope等工程框架,可以根据自身熟悉的语言来选择;
  4. 熟悉大模型的一些核心参数并了解如何调整,比如: temperature,tok-k,top-p等。

中级(二)

熟练使用Dify、coze这样的画布式开发平台。

  1. 将这类平台的能力整合进入自己的工程中;
  2. 搭建RAG应用:将私域知识融入到大模型中;
  3. 如何管理多轮对话;
  4. 理解这类平台和工程编码调用AI大模型的区别。

中级(三)

让模型真正的与外界交互起来,怎样让模型获取世界上的实时知识或者实时查询一些数据。

  1. 将FunctionCall整合到模型中;
  2. 将MCP协议整合到模型中;
  3. MCP协议可能带来的越权问题;
  4. 了解A2A协议。

高级(一)

不在将模型视为一个API调用工具,需要深入了解模型是如何工作的,模型是怎么理解我们输入的文字的,为什么RAG有的时候会失效,如何调整RAG的质量,模型如何进行微调等,使得其更符合各个不同领域的需求。 核心:

  1. 如何提高私域知识库的回答质量;
  2. 向量数据库选型&索引&数据结构;
  3. 模型微调的方式和手段;
  4. 链式推理(CoT)&树形推理(ToT)&ReAct推理。

高级(二)

项目实战

  1. 假如我有几亿级别的工程数据,如何挖掘这些数据的价值?
  2. 假如我有一些看起来很零碎的数据,但是数据量很多,这份数据有用吗?

高级(三)

理解大模型的整个生成流程,对于常见的专业术语有一定的了解并知道如何规避这些问题以及如何调优。比如:

  1. 机器学习和深度学习;
  2. Embedding;
  3. 大模型的幻觉产生机制以及如何缓解幻觉;
  4. Transformer架构的核心原理;

当然以上只是我列举的一小部分,等我后面更新吧!

期待我后续的连载吧~