开篇介绍
本套教程会以SpringAI为基础,讲解传统Java应用与DeepSeek这样的大模型开发结合的方案,科普一下AI大模型开发的知识,促进传统项目智能化。
如果觉得文章有帮助的话,希望大家关注、推荐学弟学妹学习黑马课程。
AI时代Java程序员的出路在哪里?
2022年11月30日,OpenAI公司发布了GPT3.5模型,同时对外开放了ChatGPT产品。人工智能突然进入了普通人的生活中,各种AI应用如雨后春笋般出现。
不过,由于大模型研究的成本很高,大部分中小型企业只能望而却步,参与者有限,AI的发展也似乎陷入了瓶颈。
2025年1月20日,位于杭州的DeepSeek公司正式发布了具有划时代意义的DeepSeek-R1模型,该模型在数学、代码、自然语言推理等任务上,性能比肩 OpenAI o1 正式版,且训练成本仅为 560 万美元,远低于美国科技巨头的数亿美元乃至数十亿美元投入,这一突破彻底震惊了全球科技界。
DeepSeek的出现像是向一潭死水的AI领域投入了一颗巨石,引起了巨大的波澜。特别是其低廉的训练成本,让中小型企业有了参与AI开发的资格。
毫无疑问,接下来各行各业都将进入传统应用AI化、智能化的变革之中。Java更应该成为这场变革的引领者!要知道,全球有25亿+的Java应用正在运行,超过90的服务端应用都是采用Java语言!传统应用要向AI领域进军,最好的办法一定是使用Java语言。
然而,一直以来,AI开发似乎都是Python的强项,传统Java应用想要AI化,缺少完善的解决方案和即懂Java、又懂AI的人才,而这就是最大的机会!
为什么是SpringAI
目前大模型应用开发最常见的框架就是LangChain,然而LangChain是基于Python语言,虽然有LangChain4j,但是对于大量使用Spring生态的应用来说,适配性就稍微差了些。
而Spring公司推出的SpringAI框架,充分利用了Spring框架中AOP、IOC的能力,可以与现有的Java项目无缝融合,非常方便。
当然,SpringAI要求的JDK版本至少是JDK17,SpringBoot也必须是3.x的版本才可以,所以如果想要使用SpringAI,必须先升级JDK和SpringBoot版本才行。
如果是比较老的项目,也可以考虑采用LangChain4j,它要求的最低JDK版本为JDK8.
接下来我会带着大家从Java程序员的角度,学习大模型开发的基本知识以及SpringAI的用法,走出AI大模型应用开发的第一步。
3.课程目录
Chap01. 认识AI
Chap02. 大模型应用开发
Chap03. SpringAI
⭐️ 常用文档和链接
SpringAI官方文档:Spring AI
Chap01. 认识AI
本篇介绍了AI的一些核心概念,有利于你理解大模型开发的一些原理。
1.人工智能发展
AI,人工智能(Artificial Intelligence),使机器能够像人类一样思考、学习和解决问题的技术。
AI发展至今大概可以分为三个阶段:
其中,深度学习领域的自然语言处理(Natural Language Processing, NLP)有一个关键技术叫做Transformer,这是一种由多层感知机组成的神经网络模型,是现如今AI高速发展的最主要原因。
我们所熟知的大模型(Large Language Models, LLM),例如GPT、DeepSeek底层都是采用Transformer神经网络模型。以GPT模型为例,其三个字母的缩写分别是Generative、Pre-trained、Transformer:
那么问题来, Transformer神经网络有什么神奇的地方,可以实现如此强大的能力呢?
2.大模型原理
其实,最早Transformer是由Google在2017年提出的一种神经网络模型,一开始的作用是把它作为机器翻译的核心:
Transformer中提出的注意力机制使得神经网络在处理信息时可以根据上下内容调整对数据的理解,变得更加智能化。这不仅仅是说人类的文字,包括图片、音频数据都可以交给Transformer来处理。于是,越来越多的模型开始基于Transformer实现了各种神奇的功能。
例如,有的模型可以根据音频生成文本,或者根据文本生成音频:
还有的模型则可以根据文字生成图片,比如Dall-E、MidJourney:
不过,我们今天要聊的大语言模型(Large Language Models, 以下简称LLM)是对Transformer的另一种用法:推理预测。
LLM在训练Transformer时会尝试输入一些文本、音频、图片等信息,然后让Transformer推理接下来跟着的应该是什么内容。推理的结果会以概率分布的形式出现:
可能大家会有疑问:
仅仅是推测接下来的内容,怎么能让ChatGPT在对话中生成大段的有关联的文字内容呢?
其实LLM采用的就是笨办法,答案就是:持续生成
根据前文推测出接下来的一个词语后,把这个词语加入前文,再次交给大模型处理,推测下一个字,然后不断重复前面的过程,就可以生成大段的内容了:
这就是为什么我们跟AI聊天的时候,它生成的内容总是一个字一个字的输出的原因了。
以上就是LLM的核心技术,Transformer的原理了~
如果大家想要进一步搞清楚Transformer机制,可以参考以下两个视频:
https://www.bilibili.com/video/BV1atCRYsE7x
https://www.youtube.com/watch?v=wjZofJX0v4M&t=1169s