[版权申明] 非商业目的注明出处可自由转载 出自:shusheng007
AI技术概述与发展趋势
AI的概念与核心技术
人工智能(AI)是通过计算机系统模拟人类智能行为的技术集合,其核心包括机器学习(ML)、深度学习(DL)、自然语言处理(NLP)、计算机视觉(CV)等领域。近年来,生成式AI(如GPT系列、Stable Diffusion)和多模态模型(如DALL·E、Gemini)的突破,使得AI能够生成文本、图像、语音甚至视频内容,极大拓展了应用场景。
例如,生成式AI通过预训练模型(如ChatGPT)实现了通用化能力,开发者无需深入机器学习理论即可调用其API完成复杂任务。这一特性使得AI成为“平民化”开发工具,加速了企业智能化转型。
AI的未来发展方向
下面是ChatGpt给出的预测:
1. 自主智能与智能代理
未来的AI将从“工具”向“自主代理”转变,这类系统能够独立规划任务、执行多步骤操作,从而在办公自动化、软件工程、客户服务等领域发挥巨大作用。业内普遍认为,AI代理是生成式AI下一个重要的应用方向
2. 多模态与超个性化
随着技术的进步,AI正逐步打破仅处理单一数据类型的局限。多模态模型将整合文本、图像、语音、视频等多种信息,使人机交互更加自然、智能;同时,超个性化技术将帮助企业提供更加定制化的服务,满足个体需求
3. 边缘智能与低功耗部署
为了应对实时性和成本的挑战,未来AI将更多地向边缘设备延伸,实现在手机、物联网设备甚至家居产品上高效、低延迟的运算,从而推动普及与应用
4. 量子人工智能与新算法突破
量子计算的引入有望极大提升AI在复杂问题求解上的能力。此外,结合强化学习、混合专家模型(MoE)等新算法的不断突破,将使AI在推理和创造性任务上获得更大进步
5. 安全、伦理与治理
随着AI技术影响范围的扩大,其潜在的风险与伦理问题日益受到关注。未来的发展方向中,将建立更完善的监管框架、伦理标准和安全措施,以确保AI在造福社会的同时不会带来负面影响
6. 跨行业深度融合与应用创新
AI技术将进一步渗透到医疗、金融、法律、制造业、自动驾驶等各个领域,通过与传统产业的深度融合,推动产业升级和商业模式创新
AI主流开发生态
说起这个,还的首推人家Python,这几年绝对是当红炸子鸡。我个人认为这货这么火,主要是得益于其长期积累的包罗万象的工具库,跟着出了很多杀手级的框架,例如:PyTorch/TensorFlow/LangChain/LlamaIndex...
不过Java也是有机会的,毕竟其在企业级应用领域还是扛把子的存在,那企业服务要集成AI自然而然的也会想到Java。无论如何啊,我们讲的都是在应用层,而且行业的概念都是相通的,如果java实在是没有机会转到Python也会很顺利
核心概念
首先声明,这些概念背后都有着非常复杂和高深的领域知识,这里只是做了一些浅薄的讲解,目的是为了能从应用层面来更好的使用他们,还有一点就是,本人也是二把刀,也是在不断地学习中...
AI模型(Model)
模型可以简单理解为是一个魔盒,你揭开盖子放进入一块石头,等一会再打开拿出来有可能就变成一块金子了。如果用数学的概念来说,模型就是一个功能特别强大的函数,你给它一个input,它还你一个output。
我们现在接触比较多的有:
Large Language Model (LLM), 大语言模型。例如Chat-GPT, deepseek等
Image Generation Model,图形生成模型。
Embedding Moel。 用于将文本,图形等等转化为向量(vector)的模型
...
Prompts
上面提到AI模型就是一个魔盒,你放入一个东西它就会产出一个东西。那个这个Prompts就是解决放入的是什么,以什么方式放的问题。例如同样是一块石头,你竖着放魔盒给你一块金子,你横着放魔盒给你一泡屎...
这块大家应该花时间学习一下,虽然模型在朝着自然语言交互的方向不断进化,但是你提问的方式至始至终都会很重要。这就像你平时与人交流,如何提高交流的效率怎么重视都不为过。
Embeddings
简单来说,它是一float数组
,例[0.638, 0.795, -0.994,...] ,
也叫vector(向量) 。那这个数组怎么生成的呢?它就是通过我们前面说的`beddings Model` , 你把一段文本,图片,音视频什么就给你生一个vector。 vector有一个特别重要的信息就是维度(dimension),数组的长度就是维度。例如OpenAi的Embedding模型生成ector的维度就是1536
那至于是怎么生成的那道道就多了,有各种算法,我也不太懂。这里有一篇扫盲的文章讲的特别好,推荐阅读:primer-llm-embedding
,有兴趣的或者工作学习中遇到了再深入学习。
对于我们来说,Embedding主要用在 Retrieval Augmented Generation (RAG)的情景中。当文本转化为Vector后,就可以进行语义查找了,而不是全文比较查找了。例如"I love cuihuaNiu forever"
转化为Vector后变为[0.333,0.9455,0.2234,0.13334,...]
,当我们查询cuihuaNiu的信息时,就可以先将cuihuaNiu转化为Vector,然后进行语义查询,查询到以后再转化为文本。
Token
Token是大语言模型处理文本时的最小语义单元,目前大模型收费都是基于Token的,输入输出都收费,输出费用更高。Token是经过相关算法划分的,例如BPE(Byte-Pair Encoding)与WordPiece(BERT采用)。
一个token的表现形式有很多,例如:模型是一个token,我是一个token,一个。
是一个token...
每种大模型的语义窗口是不一样的,有的竟然能达到丧心病狂的100万token。也就是说100万token以内的语义它都能记住,你在开头说王二狗喜欢吃煎饼果子,中间输入了一本小说,然后末尾你再问他王二狗喜欢吃啥,它还记得!
我们需要知道中英文Token换算比例:
Tool Calling
这是一个极其强大的功能!!!
如果你让DeepSeek帮你在丑团上定个外卖,Deepseek需要做什么呢?首先你的告诉他你要吃啥,送到哪里,然后调用丑团外卖服务平台来完成下单。 调用丑团外卖服务下单这个过程就是Tool Calling。
AI竟然会使用工具了?要知道人与动物最大的区别是人会使用工具!现在AI会使用工具了,那人类离被奴役的日子还远吗?如果现在不采取措施,以后最好的结局也许就是一部分命硬的被圈养在野生自然保护区内... 希望人类的未来是光明的。
SpringAI Tool Calling 如下图所示:
多说一句,这个功能需要大模型去支持,有的大模型不支持。
Retrieval Augmented Generation(RAG)
这又是一个比较重量级的功能,特别是在企业应用中
首先,大语言模型训练所使用的数据是有截止日期的,此日期后产生的数据它是不知道的。其次训练的数据集也是有限的,例如你在8岁那年偷看隔壁李寡妇洗澡这件事只要没出现在互联网上,大模型是铁定不知道的,有人问它的时候它会一脸茫然。每个企业都有自己的私有数据,俗称数据资产,所以说AI要想在企业级应用中发挥作用,必须能利用这些私有数据。
目前有两个方式:
使用企业的私有数据对现有模型进行训练
在调用时将企业的私有数据提供给模型
二者结合
其中第二种就是我们这里谈论的Retrieval Augmented Generation(RAG)。
SpringAI的Retrieval Augmented Generation流程图如下
总体来说RAG是比较复杂的,但是只要明白它的目标和策略,剩下的都是战术。
目标:在请求时将Context数据与问题一起提交给大模型,让大模型可以基于你提供的Context数据来回答问题。
策略:先将数据处理好,然后存起来,请求时再查出来。如图所示,整个RAG分两步。
等到我们单门讲RAG时再详谈。
SpringAI简介
OenAI,DeepSeek等开发出了GPT大模型,这些通用大语言模型瞬间颠覆了人类以往的认知,所以各行各业都想利用他们产生价值。于是这些大模型厂商开始对外提供服务,最常见的就是以API的形式。所以说对于我们来说,AI开发和调用第三方服务的API没有啥区别,例如下面是DeepSeek的API
调用deepseek-r1模型API:
curl --location 'https://api.deepseek.com/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: ••••••' \
--data '{
"model": "deepseek-reasoner",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "小孩不爱写作业怎么办?"
}
],
"stream": false
}'
可见其就是个HTTPS的Post请求,我将其设定为一个助手(You are a helpful assistant),然后问他"小孩不爱写作业怎么办?"。回答如下:
`{
"id": "5c2bcfcd-fb92-401f-a47b-cfbe2d7a3de3",
"object": "chat.completion",
"created": 1743340773,
"model": "deepseek-reasoner",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "孩子不爱写作业是许多家长面临的挑战,以下是分步解决方案,帮助您有针对性地引导孩子...",
"reasoning_content": "嗯,用户问的是小孩不爱写作业怎么办,这个问题挺常见的。..."
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 17,
"completion_tokens": 909,
"total_tokens": 926,
"prompt_tokens_details": {
"cached_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 332
},
"prompt_cache_hit_tokens": 0,
"prompt_cache_miss_tokens": 17
},
"system_fingerprint": "fp_5417b77867_prod0225"
}
由于我使用的是deepseek-r1推理模型,所以返回值里面有"reasoning_content"
这个属性。使用deepseek-v3也差不多,就是在request时换个模型名称,然后response中没有推理相关的属性了
request
curl --location 'https://api.deepseek.com/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: ••••••' \
--header 'Cookie: HWWAFSESID=f10421b478ccdf4acce; HWWAFSESTIME=1742911657329' \
--data '{
"model": "deepseek-chat",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "小孩不爱写作业怎么办?"
}
],
"stream": false
}'
response:
{
"id": "5e509db2-d841-4570-952c-478273fe1ad9",
"object": "chat.completion",
"created": 1742912114,
"model": "deepseek-chat",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "孩子不爱写作业是许多家长面临的常见问题,但通过理解原因、耐心引导和建立合适的习。"
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 15,
"completion_tokens": 666,
"total_tokens": 681,
"prompt_tokens_details": {
"cached_tokens": 0
},
"prompt_cache_hit_tokens": 0,
"prompt_cache_miss_tokens": 15
},
"system_fingerprint": "fp_3d5141a69a_prod0225"
}
如上可见,就是简单的API调用。但是要将其集成到现有的服务中却需要解决大量的问题,例如如何实现Tool calling, 如何实现RAG,如何实现聊天的memory,如何切换不同的模型等等问题
SpringAI的愿景就是要将这些繁杂的步骤抽象成一套标准流程,屏蔽掉其中的细节,进而协助我们对现有服务高效的实现AI赋能。
总结
本篇介绍了AI的基础概念,下篇开始实践,敬请关注
源码
一如既往,你可以在Github上找到相应的源码: