(1)探索 SpringAI - 基本概述

2024-05-02 07:12
文章标签 概述 基本 探索 springai

本文主要是介绍(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 - 实现聊天对话

这篇关于(1)探索 SpringAI - 基本概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/953677

相关文章

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢