springAI

时光浅止 2024-06-15 10:31:16 阅读 54

什么是大模型

大模型,是指具有大模型参数和复杂计算结构的机器学习模型,这些模型通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数,其设计目的在于提高模型的表达能力和预测性能,以应对更加复杂的任务和数据;

大模型,简单来说,就是一个特别聪明,特别能干的‘大脑’,这个‘大脑’由很多个小小的‘神经元’组成,每个‘神经元’都能处理一部分信息,当这些‘神经元’一起工作时,大模型就能理解并回答各种问题,或者完成各种复杂的任务,就像你又一个超级聪明的助手,它能帮你写邮件,写PPT,回答你的各种问题等等,它就像是一个上知天文,下知地理,无所不知的人。

如何训练大模型

要训练一个大模型不容易,需要给它提供很多学习材料,就像我们小时候读书学习一样,而且为了让这个‘大脑’更聪明,还需要很多高级的计算机设备来帮助它学习。

训练大模型:

1.高性能的CPU和GPU,多核心和高主频的CPU以及支持CUDA的GPU加速训练过程;

2.大容量存储设备,训练大模型需要存储大量的数据集,模型参数和中间结果;

3.高速网络连接,通过网络连接将训练任务分配到多个计算节点上,

4.深度学习框架,如TensorFlow,PyTorch等,这些框架提供了构建和训练模型的工具和库;

5.分布式训练框架,为了加速大模型的训练,可以使用分布式训练框架,如Horovod,Ray等;

6.编程语言和工具,Python是深度学习领域最常用的编程语言,还有(如Git)来管理代码和版本迭代;

7.训练大模型非常耗电,高性能计算机和GPU进行长时间的工作,需要消耗大量的电力;

Sping AI

Sping AI是一个AI工程领域的应用程序框架;

它的目标是将Spring生态系统的设计原则应用于人工智能领域,比如Spring生态系统的可移植性和模块化设计,并推广使用POJO来构建人工智能领域应用程序;

Spring AI并不是要构建一个自己的AI大模型,而是让你对接各种AI大模型;

开发Spring AI程序的前期准备

1.本机电脑要可以访问OpenAI网站https://openai.com/

2,要有OpenAI的API Key;(注册账号或者购买)

API-Key:sk-3sfER03LDLG3SDFsdlwe2283JSdw023lkrmrHDND32fmREKFD 淘宝购买一个 搜索 open ai api key

开发Spring AI应用程序

Spring AI应用程序也是基于Spring Boot进行开发

1,建项目,创建一个Spring Boor项目

在这里插入图片描述

2,加依赖,加入spring-ai-openai-spring-boot-starter依赖;

ai依赖:

<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId></dependency>

开发Spring AI应用程序

pom.xml配置

1.继承父项目:

<dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>${spring-ai.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

<properties><java.version>17</java.version><spring-ai.version>1.0.0-SNAPSHOT</spring-ai.version></properties>

2.配置项目依赖下载的仓库

<!-- 配置本项目的仓库 因为maven中心仓库还没有更新spring ai的jar包 --><repositories><!-- 快照版本的仓库--><repository><id>spring-snapshot</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><releases><enabled>false</enabled></releases></repository></repositories>

3.配文件 application.yml

spring: application: name: spring-ai-01-chat ai: openai: api-key: sk-3sfER03LDLG3SDFsdlwe2283JSdw023lkrmrHDND32fmREKFD base-url: https://api.openai.com chat: options: #model: gpt-4-32k temperature: 0.3F

聊天API

4.写代码

注入OpenAiChatClient

/*** spring - ai 自动装配的,可以直接注入使用*/@Resourceprivate OpenAiChatClient openAiChatClient;

调用call方法

openAiChatClient.call(msg);

5.去运行

package com.example.controller;import jakarta.annotation.Resource;import org.springframework.ai.chat.ChatResponse;import org.springframework.ai.chat.prompt.Prompt;import org.springframework.ai.openai.OpenAiChatClient;import org.springframework.ai.openai.OpenAiChatOptions;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import reactor.core.publisher.Flux;@RestControllerpublic class ChatController { /*** spring - ai 自动装配的,可以直接注入使用*/@Resourceprivate OpenAiChatClient openAiChatClient;/*** 调用OpenAI的接口* @param msg 我们提的问题* @return*/@RequestMapping(value = "/ai/chat")public String chat(@RequestParam(value = "msg") String msg){ System.out.println(msg);String called = openAiChatClient.call(msg);return called;}/*** 调用OpenAI的接口* @param msg 我们提的问题* @return*/@RequestMapping(value = "/ai/chat2")public Object chat2(@RequestParam(value = "msg") String msg){ System.out.println(msg);



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。