likes
comments
collection
share

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发一、简单场景介绍 假设你需要为一个商城

作者站长头像
站长
· 阅读数 42

一、简单场景介绍

假设你需要为一个商城项目接入一个基于SpringAI的智能客服系统,现在我们来基本模拟一下:

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发一、简单场景介绍 假设你需要为一个商城

当我通过系统提问,大模型会针对我的问题进行回答。

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发一、简单场景介绍 假设你需要为一个商城

当我们通过程序提问时,SpringAI会将我们的提问封装成Prompts,即提示词,最终通过Json的格式,发送给基础大模型,并且基础大模型基于我们的提问进行回答。 那么什么是提示词呢?

二、Prompts-提示词

从概念角度上来说,提示词是用于引导语言模型生成特定响应的输入文本。它们可以是问题、指令或上下文,帮助模型理解用户的意图。

上面的场景中,"请一句话介绍一下GPT大模型",就是一句提示词。简单得说,我们向GPT输入的任何内容都能够作为Pr提示词。

三、RAG-检索增强生成

上面的场景中,我们让GPT介绍一下大模型,看起来GPT大模型为我们解答了。那么如果我换个问题呢?

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发一、简单场景介绍 假设你需要为一个商城 这下给GPT整不会了,因为GPT并没有我们想要的订单信息。但是它不会摆烂,也不会报错,依然会给我们的答复:

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发一、简单场景介绍 假设你需要为一个商城

虽然GPT给了我们回答,但是答案依然不是我们想要的,那应该怎么办呢?接下来就要介绍一下RAG-检索增强生成

3.1 什么是RAG

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合“搜索”和“生成”的技术,旨在让大模型在回答问题时更加准确和有用。

那针对我们场景中订单的问题,是如何通过RAG解决的呢? 这个时候我们需要,明白RAG中两个关键点:知识库向量数据库

3.2 知识库

知识库是存储大量信息的地方,类似于一个大数据库,里面包含文档、文章、网页等内容。在我们商城智能客服中,知识库可以包含我们的用户信息、订单信息等。

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发一、简单场景介绍 假设你需要为一个商城

3.3 向量数据库

在RAG(检索增强生成)系统中,向量数据库是一种专门用来存储和快速检索文本向量的数据库。这里的向量是由知识库中的文档或者文档片段转换而来。而文档转化为向量这个步骤叫做Embeddings

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发一、简单场景介绍 假设你需要为一个商城

3.4 RAG运行流程

当我们引入了RAG之后再来看看它在我们当前场景中是如何解决问题的。

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发一、简单场景介绍 假设你需要为一个商城

简单得来说,当我要查询10086的订单号时候,RAG会在向量数据库中帮我查找到满足条件的订单信息,并且把我问的原始问题和找到的订单信息组成新的Prompts发送给大模型,之后大模型再进行回答。

四、FineTunuing-微调

回到我们的场景,我们已经通过RAG解决了知识库的问题。但是,仍然有些地方我们可能不满意。比如我们想让大模型回复答案的语气更加贴近我们的真实客服语气。比如每句话之前增加一个“亲”,或者每句话末尾增加一个“呢”。

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发一、简单场景介绍 假设你需要为一个商城

总而言之,让大模型的答案更加贴近专业领域,让大模型更加垂直。这也是我们FineTuning-微调的目的。 一般来说,微调都是基于一个通用大模型(如GPT),使用特定任务的数据集对模型进行进一步训练。 注意,微调后大模型相较于原来会发生改变,也就是让微调的大模型会更加适合我们特定的领域。

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发一、简单场景介绍 假设你需要为一个商城

比如,我通过真实的客服对话对通用大模型进行微调,那么训练出来的大模型的回答就会更加贴近客服领域。

五、Function-call

接着上面的场景~ 现在商城搞一个活动,只要用户下单后可以根据支付后的订单号进行抽奖。也就是说,我告诉大模型我的订单号后,会返回一个奖品。这要怎么做到呢?这个时候就要用到Function-call,函数调用

当我们定义好我们通过订单号进行抽奖的API之后,大模型会根据用户的提问进行判断,如果需要则请求API,拿到结果会再次根据结果生成对应的Prompts发送给大模型,最终返回给用户。流程如下:

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发一、简单场景介绍 假设你需要为一个商城

大模型一点点基本概念就介绍完了,后面会介绍SpringAI的基本使用。

看完的同学欢迎一起交流,鄙人不才,如果有错误的地方望各位大佬指正!

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发一、简单场景介绍 假设你需要为一个商城

祝大家工作顺利,永不被裁!

转载自:https://juejin.cn/post/7423420457657172031
评论
请登录