Spring推出人工智能实验项目


Spring AI是Spring生态系统中的实验项目。

目前,大多数ML/AI工具都是围绕Python生态系统构建的,Java在这个领域的作用相对较小,这主要是由于历史上对C/C++等语言开发的高效算法的依赖,而Python则是访问这些库的桥梁。

 然而,在OpenAI的ChatGPT等创新的推动下,生成式AI的最新进展已经普及了通过HTTP与预训练模型的交互。 这消除了对C/C++/Python库的大量依赖,并为使用Java等编程语言打开了大门。

Python库LangChainLlamaIndex已经成为实现生成式AI解决方案的热门工具,并且可以用其他编程语言实现。 这些Python库与Spring项目共享基础主题,例如:

  • 可移植的服务抽象
  • 模块化
  • 可扩展性
  • 简化样板代码
  • 与不同数据源集成
  • 针对常见用例的预构建解决方案

从这些库中获得灵感,Spring AI项目旨在为AI领域的Spring开发人员提供类似的体验。

模型架构
1、AI模型:一个基本特性是一个通用的客户端API,用于与生成的AI模型交互。
例如,一个通用API使您能够开发针对OpenAI的ChatGPT HTTP接口的应用程序,并轻松切换到Azure的OpenAI服务。

2、AI提示工程:利用“模板引擎”,使提示文本占位符中的数据易于替换。

3、输出解析器:AI响应通常是原始java.lang.String。输出解析器将原始字符串转换为CSV或JSON等结构化格式,以使输出可用于编程环境。 输出解析器还可以对响应字符串进行额外的后处理。

4、数据管理:生成式AI的一个重大创新涉及使模型能够理解您的专有数据,而无需重新训练模型的权重。 重新训练模型是一项复杂且计算密集型的任务。 最近的生成式人工智能模型有数十亿个参数,需要专门的硬件,这使得重新训练最大的模型几乎是不可能的。 相反,“上下文”学习技术可以让您更轻松地将数据合并到预训练模型中。 这些数据可以来自文本文件、HTML、数据库结果等。 有效地将您的数据整合到AI模型中需要特定的技术,这对于开发成功的解决方案至关重要。

5、矢量向量存储:将数据整合到AI模型中的一种广泛使用的技术是使用向量数据库。 向量数据库有助于分类文档中哪些部分与AI模型在创建响应时最相关。 矢量数据库的示例是Chroma、Pinecone、Weaviate、Mongo Atlas和RediSearch。 Spring IO抽象了这些数据库,允许轻松交换实现。

6、链Chain:许多AI解决方案需要多个AI交互来响应单个用户输入。 “链chain”组织这些交互,提供模块化的AI工作流程,促进可重用性。 虽然您可以创建针对特定用例定制的自定义链,但提供了预配置的特定于用例的链来加速您的开发。 诸如问答、文本生成和摘要之类的用例是示例。

7、内存:为了支持多个 AI 模型交互,您的应用程序必须调用之前的输入和输出。有多种算法可用于不同的场景,通常由 Redis、Cassandra、MongoDB、Postgres 等数据库和其他数据库技术支持。

8、Agents:除了链之外,代理Agent代表了更高的复杂性。代理使用人工智能模型本身来确定响应用户查询的技术和步骤。代理甚至可以动态访问外部数据源,以检索响应用户所需的信息。越来越有趣了,不是吗?

可以在参考文档中找到更多详细信息