你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure Database for PostgreSQL 生成 AI

适用于: Azure Database for PostgreSQL 灵活服务器

生成 AI 是指一类 AI 算法,这些算法可以从现有多媒体内容中学习并生成新内容。 可以通过提示和微调等技术自定义生成的内容。 生成 AI 算法应用特定的机器学习模型:

  • 用于生成文本的转换器和递归神经网络(RNN)
  • 用于图像生成的生成对抗网络(GAN)和变分自编码器(VAE)

生成 AI 用于图像和音乐合成以及医疗保健,以及文本自动完成、文本摘要和翻译等常见任务。 生成 AI 技术支持有关数据的功能,例如聚类分析、语义搜索和建议、主题建模、问答和异常情况检测。

以下视频演示了如何将生成 AI 与 Azure Database for PostgreSQL 和 pgvector 扩展配合使用,从而帮助你了解本文中的概念。

开放人工智能

OpenAI 是一家以 AI 和机器学习领域的开创性工作而闻名的研究组织和科技公司。 其任务是确保人工智能(AGI),它指的是高度自治的 AI 系统,这些系统在最经济上有价值的工作中能够优于人类,有利于所有人。 OpenAI 带来了最先进的生成模型,如 GPT-3、GPT-3.5 和 GPT-4。

Azure OpenAI 是 Microsoft 提供的一项服务,通过使用 Azure 来帮助构建生成式 AI 应用程序。 Azure OpenAI 为客户提供具有 OpenAI GPT-4、GPT-3、Codex、DALL-E 和 Whisper 模型的高级语言 AI,以及 Azure 的安全性和企业功能。 Azure OpenAI 与 OpenAI 共同开发 API,以确保兼容性并实现平稳过渡。

使用 Azure OpenAI,客户可在运行与 OpenAI 相同的模型时获得 Microsoft Azure 的安全功能。 Azure OpenAI 提供专用网络、区域可用性和负责任 AI 内容筛选功能。

详细了解 Azure OpenAI

大型语言模型

大型语言模型(LLM)是一种基于大量文本数据训练的 AI 模型,用于理解和生成类似人类的语言。 LLM 通常基于深度学习体系结构,例如转换器。 他们以执行各种自然语言理解和生成任务的能力而闻名。 Azure OpenAI 服务和 OpenAI 的 ChatGPT 是 LLM 产品/服务的示例。

LLM 的主要特征和功能包括:

  • 缩放:LLM 在其体系结构使用的参数数量方面的缩放性是巨大的。 GPT-3 等模型包含从数亿到数万亿个参数,从而允许它们以语言捕获复杂的模式。
  • 预训练:LLM 使用收集自 Internet 的海量文本数据语料进行了预训练。 通过这种预先训练,他们能够学习语法、语法、语义以及有关语言和世界的广泛知识。
  • 微调:经过预训练后,可使用较小的特定于任务的数据集针对特定任务或领域对 LLM 进行微调。 通过这种微调过程,它们能够适应更专业化的任务,例如文本分类、翻译、汇总和问答。

GPT

GPT 代表生成预训练转换器,它指的是 OpenAI 开发的一系列大型语言模型。 GPT 模型是基于来自 Internet 的大量数据预先训练的神经网络,因此它们能够理解和生成类似人类的文本。

以下概括性介绍了主要 GPT 模型及其主要特征:

  • GPT-3:于 2020 年 6 月发布,GPT 系列中为知名模型。 它具有 1750 亿个参数,使其成为存在的最大和最强大的语言模型之一。

    GPT-3 在广泛的自然语言理解和生成任务中表现卓著。 它可以执行文本补全、翻译和问题解答等广泛任务,并且达到人类水平的流畅度。

    GPT-3 分为各种模型大小,从最小的(1.25 亿个参数)到最大的 (1750 亿个参数)。

  • GPT-4:OpenAI 的最新 GPT 模型。 它具有 1.76 万亿个参数。

向量

矢量是一个数学概念,用于线性代数和几何图形来表示具有数量级和方向的数量。 在机器学习上下文中,矢量通常用于表示数据点或特征。

矢量的关键属性和操作包括:

  • 数量级:矢量的长度或大小(通常表示为其规范)表示数据的大小。 它是一个非负实数。
  • 方向:指示相对于引用点或坐标系所表示的数量的方向或角度。
  • 组件:矢量可以分解为沿不同轴或维度的组件。 在二维笛卡尔坐标系中,矢量可以分别表示为(xy),其中 xy 是沿 x 轴和 y 轴的组件。 维数为 n 的向量是一个 n 元组({x1, x2… xn})。
  • 加法和标量乘法:矢量可以加在一起以形成新的向量,它们可以乘以标量(实数)。
  • 点产品和交叉产品:矢量可以通过点产品(标量产品)和跨产品(矢量产品)进行组合。

矢量数据库

矢量数据库(也称为矢量数据库管理系统(DBMS)是一种数据库系统,旨在有效地存储、管理和查询矢量数据。 传统的关系数据库主要处理表中的结构化数据,而矢量数据库则针对表示为矢量的多维数据点的存储和检索进行了优化。 对于涉及相似性搜索、地理空间数据、建议系统和聚类分析等操作的应用程序,这些数据库非常有用。

矢量数据库的主要特征包括:

  • 矢量存储:矢量数据库将数据点存储为具有多个维度的矢量。 每个维度表示数据点的一个特征或属性。 这些向量可以表示各种数据类型,包括数字、分类和文本数据。
  • 高效的矢量作:矢量数据库针对执行向量运算进行优化,例如向量加法、减法、点积和相似性计算(例如余弦相似性或欧几里德距离)。
  • 高效搜索:高效的索引机制对于快速检索类似的向量至关重要。 矢量数据库使用多种不同索引机制来实现快速检索。
  • 查询语言:矢量数据库提供针对矢量作和相似性搜索定制的查询语言和 API。 这些查询语言使用户能够有效表达其搜索条件。
  • 相似性搜索:矢量数据库在相似性搜索中表现突出,允许用户查找类似于提供的查询点的数据点。 此特征在搜索和建议系统中很有价值。
  • 地理空间数据处理:某些矢量数据库专为地理空间数据设计,因此非常适合基于位置的服务、地理信息系统(GIS)和地图相关任务等应用程序。
  • 支持多种数据类型:矢量数据库可以存储和管理各种类型的数据,例如矢量、图像和文本。

PostgreSQL 可借助pgvector扩展拥有矢量数据库的功能。

嵌入

嵌入是机器学习和自然语言处理中的一个概念,涉及将对象(如单词、文档或实体)表示为多维空间中的矢量。

这些向量通常是密集的。 也就是说,它们具有大量维度。 他们通过各种技术(包括神经网络)学习。 嵌入的目的是捕获连续矢量空间中对象之间的语义关系和相似性。

常见的嵌入类型包括:

  • Word:在自然语言处理中,单词嵌入将单词表示为矢量。 每个单词被映射为高维空间中的一个矢量,在空间中具有相似含义或上下文的单词在位置上彼此接近。 Word2VecGloVe 是常用的词嵌入技术。
  • 文档:文档嵌入将文档表示为矢量。 Doc2Vec 非常适合用于创建文档嵌入。
  • 图像:图像可以表示为嵌入内容,以捕获对象识别等任务的视觉特征。

嵌入是以机器学习模型可以轻松处理的形式表示复杂、高维数据的核心。 可以在大型数据集上对它们进行训练,然后将其作为各种任务的特征使用。 LLM 使用它们。

PostgreSQL 可获得使用 Azure AI 扩展 OpenAI 集成生成矢量嵌入的功能。

方案

Generative AI 在各种领域和行业都有广泛的应用,包括技术、医疗保健、娱乐、金融、制造等。 以下是人们可以使用生成 AI 完成的一些常见任务:

  • 语义搜索
    • 生成 AI 支持对数据进行语义搜索,而不是词法搜索。 后者寻找与查询的完全匹配项,而语义搜索则寻找能够满足搜索查询意图的内容。
  • 聊天机器人和虚拟助手:
    • 开发可以参与自然上下文感知对话的聊天机器人;例如,为客户实现自助。
  • 建议系统:
    • 通过生成各项或用户的嵌入或表示形式来改进建议算法。
  • 聚类分析和分段:
    • 生成式 AI 的嵌入允许聚类算法对数据进行聚类,以便将类似的数据组合在一起。 此聚类分析支持客户分段等方案,使广告商可以根据客户的属性以不同的方式面向客户。
  • 内容生成:
    • 为聊天机器人、小说或诗歌创作以及自然语言理解等应用生成拟人化文本。
    • 为图形、娱乐和广告创建逼真的图像、艺术品或设计。
    • 为电影、游戏和营销生成视频、动画或视频效果。
    • 生成音乐。
  • 翻译:
    • 将文本从一种语言翻译为另一种语言。
  • 摘要生成:
    • 对长篇文章或文档进行归纳总结以提取关键信息。
  • 数据扩充:
    • 生成额外的数据示例以扩展和改进机器学习模型的训练数据集。
    • 为所需场景创建现实世界中难以收集或收集成本昂贵的合成数据(例如医学成像)。
  • 药物发现:
    • 为药物研究生成分子结构和预测可能的候选药。
  • 游戏开发:
    • 创建游戏内容,包括级别、角色和纹理。
    • 生成逼真的游戏内环境和景观。
  • 数据降噪和完整化:
    • 通过生成干净数据示例来清除干扰数据。
    • 填写数据集中缺失或不完整的数据。