(1)探索 SpringAI - 基本概述

人工智能简介

A system is ability to correctly interpret external data, to learn from such data, and to use those learnings to achieve specific goals and tasks through flexible adaptation.

翻译:系统正确解释外部数据的能力,从这些数据中学习的能力,以及通过灵活的适应利用这些学习来实现特定目标和任务的能力。

人工智能的发展经过了几个重要阶段,从早期的概念和实验室研究,到如今的广泛应用和商业化,AI 已成为科技领域的一个重要分支。起初,人们对于机器能否模拟人类智能持怀疑态度,但随着技术的不断进步,这些早期的概念如今已变为现实。

在20世纪50年代和60年代,人工智能作为一个学术概念开始形成,那时的研究者设想通过编程来模拟人类思维。然而,在70年代,由于技术和理论的局限,人工智能进入了一个相对沉寂的时期。到了80年代,随着计算机技术的发展,尤其是专家系统的出现,人工智能开始应用于商业和工业领域,从而得到了复苏。

进入21世纪,特别是2010年之后,随着大数据和计算能力的飞速发展,加之机器学习算法的突破,AI开始进入一个全新的发展时期。特别是深度学习的兴起,使得机器能够自我学习和适应,大大提高了AI的能力。从图像识别到自然语言处理,人工智能在许多领域都取得了突破性进展。

到了2020年代,AI 的发展更加迅猛。2022年,OpenAI 推出的 ChatGPT 让人工智能走进了普通人的视野,让人们看到了 AI 在交流、创作和多种任务执行上的潜力。随后,2023年 OpenAI 发布的 ChatGPT 4.0 版本进一步提升了这种技术的性能和应用范围。

与此同时,中国的科技公司也在 AI 领域取得了显著成就。百度的文心一言(ERNIE Bot)、华为的盘古大模型、京东的言犀大模型等,都是基于大规模预训练模型的人工智能产品,它们可以理解和生成自然语言,用于交互、搜索和其他多种应用。

大模型简介

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

大模型的训练和应用确实涉及到一系列技术挑战和资源要求。这些模型能够进行复杂的任务处理,比如自然语言理解、图像识别、语音识别等等。为了让这些模型达到高效的性能水平,研究人员和工程师们需要大量的数据来训练它们,以及强大的硬件资源来支持这一训练过程。

大模型背后的高性能计算资源是非常重要的,因为它们可以处理和分析的数据量成指数级增长。为了训练它们,需要有一个能够支持大量并行计算的系统。GPU 因其并行处理能力在深度学习训练中变得非常流行,因为它们可以显著提高训练速度。

除了硬件之外,软件工具和框架也是训练大模型不可或缺的一部分。深度学习框架如 TensorFlow 和 PyTorch 提供了构建模型的块和自动化梯度计算的能力,而分布式训练框架有助于利用多个处理器或服务器来并行化训练过程,从而缩短训练时间。

大模型的训练不仅资源密集型,而且能耗也非常高。这是因为 GPU 和其他计算资源在进行复杂计算时会消耗大量电力。随着 AI 模型变得越来越大,如何减少它们对环境的影响成了一个重要的研究课题。

尽管大模型的开发和运营成本高昂,但它们在提供精准的分析、高效的自动化解决方案以及增强决策支持系统方面具有巨大潜力。这些模型正在变革医疗、金融、交通、娱乐等多个领域,有助于推动人类社会的技术进步。

Spring AI 简介

什么是 Spring AI?

官网:https://spring.io/projects/spring-ai

官方介绍:⬇️

Spring AI is an application framework for AI engineering. Its goal is to apply to the AI domain Spring ecosystem design principles such as portability and modular design and promote using POJOs as the building blocks of an application to the AI domain.

Spring AI 是一个 AI 工程领域的应用程序框架,它的目标是将 Spring 生态系统的设计原则应用于人工智能领域,比如 Spring 生态系统的可移植性和模块化设计,并推广使用 POJO 来构建人工智能领域应用程序。Spring AI 并不是要构建一个自己的 AI 大模型,而是让你对接各种 AI 大模型

Spring AI 的特点

Spring AI 提供的 API 支持跨人工智能提供商的 聊天,文本到图像,和嵌入模型等,同时支持同步和流 API 选项。

  1. Chat Models(聊天模型):
    • OpenAI
    • Azure Open AI
    • Amazon Bedrock
    • Cohere’s Command
    • AI21 Labs’ Jurassic-2
    • Meta’s LLama 2
    • Amazon’s Titan
    • Google Vertex AI Palm
    • Google Gemini
    • HuggingFace - access thousands of models, including those from Meta such as Llama2
    • Ollama - run AI models on your local machine
    • MistralAI
  2. Text-to-image Models(文本到图像模型):
    • OpenAI with DALL-E
    • StabilityAI
  3. Transcription (audio to text) Models(转录(音频到文本)模型):
    • OpenAI
  4. Embedding Models(嵌入模型):
    • OpenAI
    • Azure OpenAI
    • Ollama
    • ONNX
    • PostgresML
    • Bedrock Cohere
    • Bedrock Titan
    • Google VertexAI
    • Mistal AI
  5. Vector Store API 提供了跨不同提供商的可移植性,其特点是提供了一种新颖的类似 SQL 的元数据过滤 API,以保持可移植性。
  6. 矢量数据库:
    • Azure Vector Search
    • Chroma
    • Milvus
    • Neo4j
    • PostgreSQL/PGVector
    • PineCone
    • Redis
    • Weaviate
    • Qdrant
  7. 用于 AI 模型和矢量存储的 Spring Boot 自动配置和启动器;(xxxx-spring-ai-starter)
  8. 函数调用,您可以声明 java.util.Function 的 OpenAI 模型的函数实现,用于其提示响应。如果在应用程序上下文中注册为@Bean,则可以直接将这些函数作为对象提供,或者引用它们的名称。这一功能最大限度地减少了不必要的代码,并使人工智能模型能够要求更多信息来完成其响应;
  9. 支持的模型有:
    • OpenAI
    • Azure OpenAI
    • VertexAI
    • Mistral AI
  10. 用于数据工程的 ETL 框架:
    • ETL 框架的核心功能是使用 Vector Store 促进文档向模型提供者的传输。ETL 框架基于 Java 函数式编程概念,可帮助您将多个步骤链接在一起;
    • 支持阅读各种格式的文档,包括 PDF、JSON 等;
    • 该框架允许数据操作以满足您的需求。这通常包括拆分文档以遵守上下文窗口限制,并使用关键字增强它们以提高文档检索效率;
    • 最后,处理后的文档存储在矢量数据库中,以便将来检索;
  11. 广泛的参考文档、示例应用程序和研讨会/课程材料;
    • 未来的版本将在此基础上提供对其他人工智能模型的访问。例如,谷歌刚刚发布的 Gemini 多模式模态,一个评估人工智能应用程序有效性的框架,更方便的 API,以及帮助解决 “查询/汇总我的文档” 用例的功能。有关即将发布的版本的详细信息,请查看官方 GitHub;

推荐阅读:(2)探索 SpringAI - 实现聊天对话

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/587943.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity MeshRenderer 入门

概述 在项目制作过程中,肯定缺少不了模型的使用,那就一定接触过MeshRenderer,也许还有你不理解的地方,接下来让我们来学习一下这部分的内容吧。 Mesh Filter(网格过滤器) Mesh:提供一个网格的参考&#xf…

H.265 与 H.264 的主要区别

H.265 与 H.264 的主要区别 H.265 与 H.264 的主要区别各模块技术差异汇总宏块划分帧内预测模式帧间预测模式去块滤波ALF自适应环路滤波采样点自适应偏移(Sample Adaptive Offset)滤波并行化设计TileEntropy sliceDependent SliceWPP(Wavefro…

WORD排版常见问题与解决方案

前言 近期使用word软件进行论文排版工作,遇到了一些常见的问题,记录一下,避免遗忘。 基本配置 系统环境:win10/win11 word版本:Microsoft Office LTSC 专业增强版 2021 问题与解决方案 问题1:页眉显示内…

Java IO流(一)

1. IO流概述 1.1 什么是IO流 在计算机中,input/output(I/O、i/o 或非正式的 io 或 IO)是信息处理系统(例如计算机)与外界(可能是人类或其他信息处理系统)之间的通信。 输入是系统接收到的信号或…

c#Excel:2.写入Excel表 3.读取Excel表

--写入Excel表-- 该例首先从数据库aq中读取学生信息表staq(参考数据库章节),然后将学生信息表中的数据写入Excel表格中 (1)在OfficeOperator项目的ExcelOperator类中定义索引器,用于获取Excel表格中的单元格,代码如下…

理解Linux文件系统

文章目录 一、引言二、Linux文件系统概述1、文件系统的结构2、文件系统目录树的逻辑结构 二、文件系统的特性1、super block:文件系统的超级块2、inode:文件系统的索引节点3、inode table4、block:文件系统的数据块5、块组描述符表&#xff0…

QT:核心控件-QWidget

文章目录 控件enableobjectNamegeometrysetWindowTitleopacitycursorFonttooltipstyleSheet 控件 什么是控件? 如上所示,就是控件,而本篇要做的就是对于这些控件挑选一些比较有用的常用的进行讲解分析 在QT的右侧,会有对应的空间…

第 8 章 机器人平台设计(自学二刷笔记)

重要参考: 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 学习到当前阶段大家对ROS已经有一定的认知了,但是之前的内容更偏理论,尤其是介绍完第6…

ccpc热身赛题目1:中文系Roliy的困惑

代码 import java.util.ArrayList; import java.util.Scanner;public class Main {public static void main(String[] args) {ArrayList<String> list new ArrayList<>();char [] charArr new char[32];for (int i 0; i < charArr.length; i) {charArr[i] 0…

python 怎么调用R

如何在python中调用R&#xff1f;这其中包括了如何调用R的对象&#xff08;函数和包&#xff09;&#xff0c;R和python的对象如何互相转换&#xff0c;以及如何调用R的脚本&#xff08;外界参数的输入&#xff09;。python提供了一个模块rpy2&#xff0c;可以较好地完成这项工…

RCE学习(一)

一.知识点 RCE&#xff1a;远程命令/代码执行漏洞&#xff0c;简称为RCE漏洞&#xff0c;可以直接向服务器后台远程注入操作系统的命令或者代码&#xff0c;从而拿到服务器后台的权限。RCE分为远程执行命令&#xff08;执行ping命令&#xff09;和远程代码执行eval 简单来说就…

Python-Socket编程实现tcp-udp通信

本文章是记录我准备大创项目时学的socket编程的用法&#xff0c;纯属记录生活&#xff0c;没有教学意义&#xff0c;视频我是看b站up主王铭东学的&#xff0c;讲的很详细&#xff0c;我只粗略学了个大概&#xff0c;我想要通过tcp&#xff0c;udp传输yolo目标检测中的物体坐标信…

java面试(微服务)

SpringCloud五大组件 Nacos&#xff1a;注册中心Ribbon&#xff1a;负载均衡Feign&#xff1a;远程调用sentinel&#xff1a;服务熔断Gateway&#xff1a;网关 注册中心 Eureka Nacos 负载均衡 Ribbon负载均衡流程 Ribbon的负载均衡策略 RoundRobinRule&#xff1a;简单的…

分类预测 | MATLAB实现LSSVM最小二乘支持向量机多分类预测

分类预测 | MATLAB实现LSSVM最小二乘支持向量机多分类预测 目录 分类预测 | MATLAB实现LSSVM最小二乘支持向量机多分类预测分类效果基本介绍程序设计参考资料分类效果 基本介绍 MATLAB实现LSSVM最小二乘支持向量机多分类预测。最小二乘支持向量机(Least Squares Support Vecto…

网络应用层之(6)L2TP协议详解

网络应用层之(6)L2TP协议 Author: Once Day Date: 2024年5月1日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文档可参考专栏&#xff1a;通信网络技术_Once-Day的…

python算法题

需求 代码 class Solution:def searchInsert(self, nums: List[int], target: int) -> int:if max(nums) >target:for i in range(len(nums)-1):if nums[i1] > target and nums[i] <target:return i1if max(nums) <target:return len(nums)if min(nums) > …

kubectl_入门_Pod控制器

Pod控制器 在k8s中&#xff0c;按照pod的创建方式可以将其分为两类 自主式pod&#xff1a;k8s直接创建出来的pod&#xff0c;这种pod删除后就没有了&#xff0c;也不会重建控制器创建的pod&#xff1a;通过控制器创建的pod&#xff0c;这种pod删除了之后还会自动重建 1. 什么…

【docker 】 push 镜像提示:denied: requested access to the resource is denied

往 Docker Registry &#xff08;私服&#xff09;push 镜像提示&#xff1a;denied: requested access to the resource is denied 镜像push 语法&#xff1a;docker push <registry-host>:<registry-port>/<repository>:<tag> docker push 192.16…

C语言 | Leetcode C语言题解之第61题旋转链表

题目&#xff1a; 题解&#xff1a; struct ListNode* rotateRight(struct ListNode* head, int k) {if (k 0 || head NULL || head->next NULL) {return head;}int n 1;struct ListNode* iter head;while (iter->next ! NULL) {iter iter->next;n;}int add n…

第12章 软件测试基础(第一部分)概念、质量保证、测试用例、测试执行过程

一、软件测试 &#xff08;一&#xff09;定义 动态验证计算机程序对有限的测试用例集是否可产生期望的结果的过程。测试计划是描述了要进行的测试活动的范围、方法、资源和进度的文档。编写测试计划目的&#xff1a;使测试工作顺利进行、使项目参与人员沟通更舒畅、使测试工…