从原理到实践,构建属于自己的AI客服机器人

发布时间:2025-01-14 08:02

《摄影构图原理与实战》从理论到实践全面讲解 #生活知识# #摄影技巧# #摄影构图书籍#

摘要:本文将通过构建一个简单的聊天机器人作为切入点,对AI技术中大语言模型的基本原理和核心机制进行深入剖析。

通过阅读本文,你可以快速了解市面上大部分大模型的接入原理,并具备快速对接通义大模型的能力。

前言

人工智能已经成为当今科技领域最受关注的热点话题之一。无论是技术专业人士,还是普通大众,都难以避免的与这一快速发展的技术产生关联。随着AI技术在各行各业的广泛渗透,各种创新的AI应用如雨后春笋般涌现,极大地推动了传统开发模式的转型与进步,同时也带来了无数新的机遇。

本文将通过构建一个简单的聊天机器人作为切入点,逐步探讨AI技术中大语言模型的基本原理和核心机制。

基础知识

开始之前,我们首先补充一点机器学习的基础知识。总的来说,机器学习主要分为:监督式学习(Supervised Learning)和非监督式学习(Unsupervised Learning)两种方式。

具体来看,所谓的监督学习其实是指在训练过程中,我们需要提供一组带标签的样本数据。这些样本包括了特征数据和对应的标签,机器学习算法通过分析这些数据,从而掌握知识中的规律。然后,便可以基于学到的规律运用于、那些未标注的数据进行分类或预测。

例如,假设我们需要构建一个识别手写数字的应用。我们首先需要尽可能多的收集手写数字图像,并为每张图像手动进行标注,而这些已标注的数据被称为训练数据,然后,将相关数据"喂"给机器学习算法去学习,从而让模型能够学习到不同手写数字的特征,提取出其规律和模式,进而最终利用这些规律去识别未标注的手写数字。监督式学习整个过程如下图所示:

在这里插入图片描述

无监督学习监督式学习的不同之处在于非监督式学习所用的数据是没有标签的。因此,无监督机器学习算法的任务是从这些未标注的数据中发现潜在的规律或模式。由于大部分数据未被标注,非监督式学习能够更有效地利用大量未标记的数据,从而挖掘出更多有价值的信息。

例如,假设我们有大量的用户购买数据,但我们很难直接找到用户属性和购买商品之间的关系。非监督式学习算法能够帮助我们发现这些隐藏的关联,比如某个年龄段的女性购买了某种特定品牌的肥皂,这可能意味着她处于怀孕期;或者某人购买儿童用品,可能说明他有孩子。通过这些发现,商家可以进行精准的市场营销,从而提高销售效果。无监督式学习整个过程如下图所示:

在这里插入图片描述

了解了机器学习中监督学习和无监督学习后,接下来我们便对大语言模型LLM的原理进行一个简单介绍。

LLM背后的原理

大语言模型LLM其实是用于做自然语言相关任务的深度学习模型,简单来看其原理可以归结为下图所示。即给模型一些文本输入,他可以返回相应的任务。其任务可以是生成、总结、改写等。

在这里插入图片描述

进一步来看,大语言模型首先通过大量文本进行大量文本进行无监督学习。以我们熟知的chatGpt来看其语言数据便来自于多个互联网文本语料库。在如此海量的数据量下,模型能借助算法来更好的理解单词上下的语境关系,从而更好理解文本含义。而为了能更好的实现模型效果,也就需要不断的对模型参数进行调整。

这里的参数其实有点类似我们编程语言中的变量,但在大模型中这里所谈及的变量其实更多的表示训练过程中学到的知识。从一定程度上来说,参数决定了模型如何对输入数据时的反应,也即参数对最终模型的行为有着很强的影响。这也就是为什么算法工程师有时也被称为调参工程师的原因所在。

事实上,在业内通常有这样一种共识即模型参数越多,模型所带来的表现也就更好。这也就导致如今大语言模型的参数可能达到数百万之多,以我们熟知的GPT3为例来看,其所用到的参数便高到1700亿之多。

回顾大模型的发展历史,其最早的开端可追溯于《Attention is All You Need》论文的问世,著名的Transformer结构也就是这篇文章中提出的。同时,Transformer也是无数大模型的基础。换言之,要了解大模型底层原理就无法跳过Transformer。

正如论文《Attention is All You Need》标题那样,注意力就是你所需要的一切。简单来说Transformer在处理文本输入的每个词时不仅会注意到词本身的位置以及其附近的词,其还会注意输入序列里其他的输入内容。然后为为单词赋予不一样的注意力权重。而权重则是在训练过程中通过大量文本逐渐习得的。因此,Transformer有能力知道当前这个词和其他词之间的关联性,从而更能专注于输入里真正重要的部分。

比如,“The animal didn't cross the street because it was too tired”这句话其中的it可以指期最前面的的animal也可以指靠近it的street。但通过自注意机制捕获到了其与animal之间的根强关系,所以这里的it更集中在animal之上!

在这里插入图片描述

也正是有了自注意机制,使得Transformer在捕捉长距离依赖、建模全局信息等方面尽显优势。其与传统RNN和LSTM相比,自注意力能够避免顺序计算的局限性,支持全局信息的直接交互,提升了模型的灵活性和表达能力。此外,自注意力的并行化特点和可扩展性使得Transformer在大规模训练和复杂任务中具有更高的计算效率和适应性,成为现代深度学习中的核心架构。

至此,我们就对大模型中的底层原理进行了简单的介绍。如果对这方面感兴趣的读者,可到The Illustrated Transformer对Transformer进行深入了解。

介绍完大模型的基础原理后,接下来我们就通过实践的方式来调用大模型的Api从而构建一个简易的客服机器人。

十行代码构建简易聊天机器人

注:本文通过调用阿里提供的千问大语言模型进行应用构建,当然市面上也有例如百度的千帆大模型,chatGpt等等,这些平台都有提供大模型对应的Api调用方式,感兴趣的可自行了解~

其实目前国内提供的众多大模型在使用上的方式都大同小异,基本都是通过Http调用的方式来访问其暴露出的Api,从而提供相应的AI功能。在接入阿里的千问大模型时,我们首先需要在百炼平台[1]申请相应的密钥信息,以供我们可以顺利调用相关的Api服务。当申请完毕后,接下来就是应用的构建了。

本次我们用到的核心依赖为alibaba-ai

<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-ai</artifactId> <version>2023.0.1.3</version> </dependency> 12345

这里要注意一点,如果要确保spring-cloud-starter-alibaba-ai成功集成,那么首先要确保系统的JDK版本至少是17以上。这主是因为 spring-cloud-starter-alibaba-ai 是基于Spring Boot 3.x版本开发的,而Spring Boot 3.x版本要求JDK 17或更高版本。

除此之外,当项目引入spring-cloud-starter-alibaba-ai时,如果你使用aliyun的maven进行仓库,那么当你在构建maven依赖时可能还会提示有could not find artifact org.springframework.ai:spring-ai-core:pom:0.8.1,导致这一问题主要原因在于Spring AI的0.8.1版本没有被发布到阿里云的Maven Central仓库。而为了解决这一问题,我们需要手动在pom文件中配置如下仓库信息:

<repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories>

123456789101112131415161718

当解决了上述两个问题后,接下来我们就可以进行对应用的构建了。而我们的应用其实也非常简单,无非就是一个简单的SpringBoot的Web应用。相关代码如下:

@RestController @RequestMapping("/chat") public class ChatController { @Autowired private ChatService aiService; @GetMapping("/msg") public String sendMessage(String message) { return aiService.chat(message); } } 12345678910

@Service @Slf4j public class ChatService { @Autowired private final TongYiChatModel tongYiChatModel; public String chat(String msg) { Prompt prompt = new Prompt(new UserMessage(msg)); return tongYiChatModel.call(prompt) .getResult().getOutput().getContent(); } } 1234567891011121314

上述代码其实非常简单,首先我们构建一个ChatController的控制层,以提供可以对外访问的的Api接口,而ChatController的sendMessage方法,则通过调用ChatService中的chat方法来实现对通义大模型Api接口的调用。

随后,启动我们的应用,然后尝试调用http://localhost:8080/chat/msg,其结果如下:

在这里插入图片描述

至此,我们也就完成了阿里的通义的集成,并成功构建出一个对应的聊天应用。其实整个过程还是非常简单的,与我们平时构建应用并无太大差异。细心的读者可能会注意到我们在调用通义的相关Api时,并没出现相关Http的调用。这似乎与我们开头所述相悖,接下来我们便对这其中原理进行一定分析。

通义模型调用分析

可以看到,我们在调用tongYiChatModel.call(prompt)进而获取到对应的返回结果,从而在提取其后续返回内容。那call内部又进行了哪些操作呢,我们进入到call方法内部可以看到其逻辑如下:

public ChatResponse call(Prompt prompt) { <1> 构建大模型请求参数 ConversationParam params = toTongYiChatParams(prompt); <2> 调用大模型 GenerationResult chatCompletions = this.callWithFunctionSupport(params); <3> 构建返回响应信息 List<org.springframework.ai.chat.model.Generation> generations = chatCompletions .getOutput() .getChoices() .stream() .map(choice -> new org.springframework.ai.chat.model.Generation( choice .getMessage() .getContent() ).withGenerationMetadata(generateChoiceMetadata(choice) )) .toList(); return new ChatResponse(generations); }

1234567891011121314151617181920212223

不难看出,call方法内部的逻辑其实无非就是构建参数,然后解析返回响应信息。而对于大模型的调用则在<2>处进行调用。而对于callWithFunctionSupport的内部则会调用OkHttpHttpClient中的send方法来发起http调用。具体调用信息如下:

在这里插入图片描述

不难看出,在通义模型内部,其最终会请求https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation接口,从而实现对大模型的调用。事实上,这也是ChatGp3火起来时诸多套壳Gpt应用背后的原理~

总结

回顾本文,我们首先对机器学习的中的监督学习和无监督学习进行了深入的介绍和分析,在此基础上我们对大语言模型LLM的原理和机制进行深入的拆解。在了解了LLM的工作原理后,我们以阿里通义大模型为技术选型,快速构建出一个可对话的客服机器人,同时对通义大模型背后调用的原理进行了深入剖析。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

下面这些都是我当初辛苦整理和花钱购买的资料,现在我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

网址:从原理到实践,构建属于自己的AI客服机器人 https://www.yuejiaxmz.com/news/view/711496

相关内容

【RPA】机器人流程自动化(RPA)概念、原理与实践
AI智能客服实战:带你手把手从零到一搭建智能客服系统
ai机器人客服
AI客服机器人是通过什么技术实现的?用AI客服机器人能节约成本吗?
AI对话机器人实现原理
AI大模型实战:利用AI大模型打造客服机器人,传统智能客服将成历史
AI人工智能机器人:从未来的助手到现实的伙伴
AI在线客服机器人
2025年AI助手构建器推荐:轻松打造专属智能助理
基于NLP的对话系统开发:从零构建智能客服机器人

随便看看