(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 - 实现聊天对话

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《武林秘籍》——闪侠惠递如何让消费者寄快递更安心!

现如今,网上下单寄快递的便利性让众多人享受到了电商物流飞速发展带来的红利性。今天小编直接介绍一款寄快递特别省钱的利器,就是利用闪侠惠递来寄快递。闪侠惠递寄快递,真正的实现了便宜寄快递发物流的便捷性,开创了低价发快递的…

Baidu Comate智能编码助手:提升软件生产力的高效工具使用教程

目录 一、前言 二、Comate助手概览 三、核心功能详解 智能推荐与自动补全 生成单元测试 代码注释生成 四、使用场景与优势 五、总结与展望 一、前言 随着信息技术的飞速发展,编程已经成为许多行业不可或缺的一部分。然而,编程过程中的繁琐和重复…

【linux软件基础知识】-死锁问题

死锁问题 当两个或多个线程由于每个线程都在等待另一个线程持有的资源而无法继续时,就会发生死锁 如下图所示, 在线程 1 中,代码持有了 L1 上的锁,然后尝试获取 L2 上的锁。 在线程 2 中,代码持有了 L2 上的锁,然后尝试获取 L1 上的锁。 在这种情况下,线程 1 已获取 L…

第一天复习Qt文件读取

Qt文件操作: 1、QFile QTextStream操作文件案例: 1、打开文件 QFile file(absolute filepath | relative path); file.readLine()返回内容长度,如果为-1就是读取失败 file. Close()读取后关闭 file.errorString()返回文件打开发生的错误2、…

怎么解决端口被占用

目录 一、引言 二、解决方法 一、引言 最近用vscode写网页,老是遇见端口被占用,报错如下: listen tcp :8080: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted. 二、解决方法 1.换…

渗透之sql注入实战2(二次注入)

目录 平台地址: 开始: 方法1: 方法二 找提示 这里存在一个文件包含(file)。 爆源码 index.php源码 confirm.php源码: search.php源码: change.php源码: delete.php源码&…

【vue+el-upload】当action=“#“,代表不使用默认上传,使用自定义上传,http-request获取文件流

el-upload有多种上传行为: 1、立即上传: 当 action 属性被赋予一个有效的 URL 时,一旦用户选择了文件,el-upload 组件会立即自动将文件上传到指定的服务器地址。 2、不立即上传(自定义触发): 如…

网贷大数据查询要怎么保证准确性?

相信现在不少人都听说过什么是网贷大数据,但还有很多人都会将它跟征信混为一谈,其实两者有本质上的区别,那网贷大数据查询要怎么保证准确性呢?本文将为大家总结几点,感兴趣的朋友不妨去看看。 想要保证网贷大数据查询的准确度&am…

【第13章】spring-mvc之validator

文章目录 前言一、准备1. 引入库2. add.jsp3. show.jsp 二、代码部分1.实体类2. 控制器类3. 效果4. 展示 总结 前言 【第20章】spring-validator 虽然前面已经在spring介绍过,但是为了保证代码可用,还是会从头讲到尾,尽量把关键点列出来讲给…

vue3实现电子签名的方法

vue3实现电子签名且对电子签名可进行修改画笔粗细、画笔颜色、撤销、清屏、保存等功能。 实现效果&#xff1a;查看源码 第一种&#xff1a;通过canvas <div class"signaturePad-Box w100 h100 flex-center"><el-space class"mb10" size"…

【大模型认识】警惕AI幻觉,利用插件+微调来增强GPT模型

文章目录 一. 大模型的局限1. 大模型不会计算2. 甚至明目张胆的欺骗 二. 使用插件和微调来增强GPT模型1. 模型的局限性2. 插件来增强大模型的能力3. 微调技术-提高特定任务的准确性 一. 大模型的局限 1. 大模型不会计算 LLM根据给定的输入提示词逐个预测下一个词&#xff08;…

【人工智能基础】RNN实验

一、RNN特性 权重共享 wordi weight bais 持久记忆单元 wordi weightword baisword hi weighth baish 二、公式化表达 ht f(ht - 1, xt) ht tanh(Whhht - 1 Wxhxt) yt Whyht 三、RNN网络正弦波波形预测 环境准备 import numpy as np import torch from tor…

OpenNJet产品体验-手把手在Ubuntu20.04系统从零部署到应用OpenNJet

目录 一、引言 二、OpenNJet产品安装 2.1下载OpenNJet安装包 2.2安装OpenNJet V2.0.1 ​2.3快速启动并测试OpenNJet 三、OpenNJet产品应用体验 3.1配置OpenNJet 3.2 部署 Web 应用程序 3.3启动 NJet 3.4访问 Web 应用程序 四、总结 一、引言 OpenNJet应用引擎是高性…

[iOS]从拾遗到Runtime(上)

[iOS]从拾遗到Runtime(上) 文章目录 [iOS]从拾遗到Runtime(上)写在前面名词介绍instance 实例对象class 类对象meta-class 元类对象为什么要有元类&#xff1f; runtimeMethod(objc_method)SEL(objc_selector)IMP 类缓存(objc_cache)Category(objc_category) 消息传递消息传递的…

大模型微调之 在亚马逊AWS上实战LlaMA案例(四)

大模型微调之 在亚马逊AWS上实战LlaMA案例&#xff08;四&#xff09; 在 Amazon SageMaker JumpStart 上微调 Llama 2 以生成文本 Meta 能够使用Amazon SageMaker JumpStart微调 Llama 2 模型。 Llama 2 系列大型语言模型 (LLM) 是预先训练和微调的生成文本模型的集合&#x…

C++string续

一.find_first_of与find 相同&#xff1a;都是从string里面找字符&#xff0c;传参格式一样(都可以从某个位置开始找) 不同&#xff1a;find_first_of只能找字符&#xff0c;find可以找字符串 find_first_of参数里面的string与char*是每个字符的集合&#xff0c;指找出string…

普通组件的注册-局部注册和全局注册

目录 一、局部注册和全局注册-概述 二、局部注册的使用示例 三、全局注册的使用示例 一、局部注册和全局注册-概述 组件注册有两种方式&#xff1a; 局部注册&#xff1a;只能在注册的组件内使用。使用方法&#xff1a;创建.vue文件&#xff0c;在使用的组件内导入并注册。…

QX-mini51单片机学习-----(3)流水灯

目录 1宏定义 2函数的定义 3延时函数 4标准库函数中的循环移位函数 5循环移位函数与左移和右移运算符的区别 6实例 7keil中DeBug的用法 1宏定义 是预处理语句不需要分号 #define uchar unsigned char//此时uchar代替unsigned char typedef是关键字 后面是接分号…

Java特性之设计模式【代理模式】

一、代理模式 概述 在代理模式&#xff08;Proxy Pattern&#xff09;中&#xff0c;一个类代表另一个类的功能。这种类型的设计模式属于结构型模式 在代理模式中&#xff0c;我们创建具有现有对象的对象&#xff0c;以便向外界提供功能接口 主要解决&#xff1a; 在直接访问…

项目管理-项目资源管理2/2

项目管理&#xff1a;每天进步一点点~ 活到老&#xff0c;学到老 ヾ(◍∇◍)&#xff89;&#xff9e; 何时学习都不晚&#xff0c;加油 资源管理&#xff1a;6个过程“硅谷火箭管控” ①规划资源管理&#xff1a; 写计划 ②估算活动资源&#xff1a;估算团队资源&…