由大型语言模型(LLM)提供支持的生成 AI 为开发人员和组织带来了新的机会。 Azure OpenAI 等服务使 AI 可以轻松地与简单的 API 一起使用。 所有技能级别的开发人员都可以向其应用添加高级 AI 功能,而无需特殊知识或硬件。
作为开发人员,你可能想知道你的角色是什么以及你所处的位置。 也许你想知道要关注的“AI 堆栈”的哪一部分,或者可以使用当今的技术进行构建。
若要回答这些问题,请首先构建一个将新术语和技术连接到你已经知道的内容的精神模型。 此方法可帮助你设计和向应用添加生成 AI 功能。
在本系列中,我们将展示当前软件技能如何应用于生成 AI。 我们还介绍了关键术语和概念,帮助你开始构建第一个生成式 AI 解决方案。
企业如何受益于使用生成式人工智能
若要查看软件技能如何适应生成 AI,请首先了解企业如何使用它。
企业使用生成式 AI 提高客户参与度,更高效地工作,以创造性的方式解决问题。 向现有系统添加生成 AI 可让企业改进其软件。 它可以添加个性化建议或智能代理等功能,以回答有关公司或其产品的问题。
生成 AI 帮助企业的常见方法:
内容生成:
- 创建用于营销、销售、IT 和内部通信的文本、代码、图像和声音。
自然语言处理:
- 编写或改进业务消息。
- 让用户通过根据公司文档提问来与其数据聊天。
- 汇总、组织和简化大量内容。
- 使用语义搜索查找没有确切关键字的信息。
- 翻译内容以联系更多人。
数据分析:
- 在数据中查找趋势并分析市场。
- 为“假设”方案建模,以帮助规划更改。
- 查看代码以建议改进、修复 bug 和创建文档。
作为开发人员,可以通过向组织使用的软件添加生成 AI 功能来做出重大改进。
如何构建生成式 AI 应用程序
尽管 LLM 执行了繁重的工作,但你构建了集成、协调和监视结果的系统。 有很多可以学习的知识,但你可以应用你已有的技能,包括如何:
- 使用 REST、JSON 或特定于语言的软件开发工具包(SDK)调用 API
- 协调对 API 的调用并执行业务逻辑
- 存储到数据存储并从数据存储中检索
- 将输入和输出集成到用户体验中
- 创建可以从 LLM 调用的 API
利用现有技能开发生成式 AI 解决方案。
开发人员工具和服务
Microsoft生成工具、服务、API、示例和学习资源,以帮助你从生成 AI 开始。 每个解决方案都包含构建生成 AI 解决方案的关键部分。 若要很好地使用这些资源,请确保:
- 了解每种生成式 AI 功能的主要功能、角色和职责。 例如,在基于 RAG 的聊天系统中,需要先了解问题及其限制,然后再设计解决方案。
- 了解每个函数或角色的 API、服务和工具。 了解问题后,可以使用代码自行生成、使用低代码/无代码工具或调用现有服务。
- 浏览选项,包括代码、低代码和无代码解决方案。 你可以自行构建所有内容,但有时合并不同的工具和方法会更快、更容易。
没有向应用添加生成 AI 功能的唯一正确方法。 可以从许多工具和方法中进行选择。 始终权衡每个优点和缺点。
从应用程序层开始
无需了解有关生成 AI 的一切知识即可开始使用。 你可能已经具备了所需的技能。 使用 API 和当前知识开始。
无需训练自己的 LLM。 对于大多数公司来说,培训 LLM 需要太多的时间和金钱。 而是通过对托管服务(如 Azure OpenAI API)进行 API 调用,使用现有的预训练模型(如 GPT-4o)。 向应用添加生成 AI 功能就像添加使用 API 的任何其他功能一样。
你可能想要了解 LLM 的训练方式或其工作原理。 但完全理解 LLM 需要深入了解数据科学和数学知识,通常是在研究生级别。
如果你有计算机科学背景,你知道大多数应用开发发生在技术堆栈的较高层。 你可能对每个层有一点了解,但你可能专注于应用开发,使用特定的语言、平台、API 和工具。
相同的想法适用于 AI。 可以了解 LLM 背后的理论,但应专注于构建应用或创建公司中生成 AI 的模式和流程。
下面是向应用添加生成 AI 功能所需的知识层的简单视图:
在最低级别,数据科学家使用高级数学(如统计和概率)进行研究,以提高 AI。
一层上,数据科学家使用理论来构建 LLM。 它们创建神经网络并训练它们以接受提示并生成结果(完成)。 从提示生成结果的过程称为推理。 数据科学家决定神经网络如何预测下一个单词或像素。
由于训练和运行模型具有重要的计算能力,因此大多数模型都是在大型数据中心训练和托管的。 可以在自己的计算机上训练或托管模型,但速度很慢。 专用 GPU 使此训练更快、更高效。
模型在数据中心运行时,可以通过 REST API 访问它们。 SDK 通常包装这些 API,使其更易于开发人员使用。 其他工具有助于监视和其他任务。
应用开发人员使用这些 API 构建业务功能。
除了调用模型之外,新的模式和流程还有助于组织构建可靠的生成 AI 功能。 例如,某些模式有助于确保生成的内容符合道德、安全和隐私标准。
如果你是应用开发人员,请考虑关注以下应用层主题:
- API 和 SDK:了解可用内容以及每个终结点的作用。
- 工具和服务:了解如何构建生产就绪的生成 AI 解决方案所需的功能。
- 提示工程:了解如何通过提问或重新描述问题来获得最佳结果。
- 瓶颈和缩放:查找出现减速的位置以及如何缩放。 了解如何在不违反隐私的情况下记录和获取应用程序数据。
- LLM 特征:了解模型和供应商之间的优势、用例、基准和差异。 此知识可帮助你根据需要选择正确的模型。
- 模式和工作流:随时了解在应用中构建有效可靠的生成 AI 功能的最新方法。
来自Microsoft的工具和服务
可以使用Microsoft中的低代码和无代码生成 AI 工具和服务来帮助你构建部分或全部解决方案。 各种 Azure 服务可以发挥关键作用。 每个解决方案都有助于解决方案的效率、可伸缩性和稳定性。
用于以代码为中心的方法的 API 和 SDK
每个生成 AI 解决方案都使用 LLM。 Azure OpenAI 提供 GPT-4 等模型中的所有功能。
产品 | 说明 |
---|---|
Azure OpenAI | 一种托管服务,可让你访问强大的语言模型,如 GPT-4。 使用 API 创建嵌入、生成聊天功能并自定义结果以满足你的需求。 |
执行环境
你需要一个服务来运行应用中的业务逻辑、演示逻辑或 API,以便生成 AI。
产品 | 说明 |
---|---|
Azure 应用服务(或其他基于容器的云服务) | 为用户托管 Web 界面或 API,以便用户与 RAG 聊天系统交互。 快速开发、部署和缩放 Web 应用。 轻松管理系统的前端。 |
Azure 函数 | 对 RAG 聊天系统中的事件驱动任务使用无服务器计算。 触发数据检索、处理用户查询或处理后台任务,例如同步和清理。 构建模块化、可缩放的后端。 |
低代码和无代码解决方案
您可以使用低代码或无代码解决方案快速构建实现生成AI愿景所需的一些逻辑,并可靠地托管这些逻辑。
产品 | 说明 |
---|---|
Azure AI Foundry | 可以使用 Azure AI Foundry 来训练、测试和部署自定义机器学习模型,以增强 RAG 聊天系统。 例如,使用 Azure AI Foundry 自定义响应生成或改进检索到的信息的相关性。 |
有关生成低代码解决方案的指导,请参阅 Azure 上的低代码应用程序开发。
矢量数据库
某些生成式 AI 解决方案需要存储和检索数据,以提高结果。 例如,基于 RAG 的聊天系统允许用户与公司的数据聊天。 在这种情况下,需要矢量数据库。
产品 | 说明 |
---|---|
Azure AI 搜索 | 搜索大型数据集以查找语言模型的信息。 将其用于 RAG 系统的检索部分,使响应更加相关且有用。 |
Azure Cosmos DB | 存储 RAG 聊天系统的大量结构化和非结构化数据。 快速读取和写入速度有助于提供实时数据和存储用户交互。 |
Azure Redis 缓存 | 缓存常用信息以减少延迟并加快 RAG 聊天系统的速度。 存储会话数据、用户首选项和常见查询。 |
Azure Database for PostgreSQL 灵活服务器 | 存储应用数据,例如日志、用户配置文件和聊天历史记录。 其灵活性和可伸缩性使数据保持可用和安全。 |
其中每个 Azure 服务都有助于构建可缩放、高效的生成 AI 解决方案。 它们使你能够充分利用 Azure 的云和 AI 功能。 有关详细信息,请参阅 选择矢量数据库。
使用 Azure OpenAI API 以代码为中心的生成 AI 开发
本部分介绍 Azure OpenAI API。 使用 REST API 访问 LLM 功能。 可以从任何新式编程语言调用这些 API。 多种语言都有 SDK,可简化 API 调用。
下面是 Azure OpenAI REST API 包装器的列表:
- 适用于 .NET 的 Azure OpenAI 客户端库
- 适用于 Java 的 Azure OpenAI 客户端库
- 适用于 JavaScript 的 Azure OpenAI 客户端库
- 适用于 Go 的 Azure OpenAI 客户端模块
- 使用 OpenAI Python 包 并更改多个选项。 Python 不提供特定于 Azure 的客户端库。
如果没有适用于语言或平台的 SDK,请直接对 Web API 进行 REST 调用:
大多数开发人员知道如何调用 Web API。
Azure OpenAI 为 不同的 AI 任务提供了多个 API。 下面是主要 API 的概述:
- 聊天完成 API:生成文本、聊天和回答问题。 将其用于聊天机器人、虚拟助手、摘要、写作和翻译。 它还支持视觉功能(如上传图像和提问)。
- 内容审查 API:在文本中查找和筛选有害或不安全的内容。 使用它可以保护用户交互的安全。
- 嵌入 API:将文本转换为用于搜索、聚类分析和查找类似内容的矢量。 使用它捕获文本中的含义和关系。
- 图像生成 API:从文本提示创建图像和艺术。 基于 DALL·E 模型。
- 语音转文本 REST API:使用多种语言将语音转换为文本或文本转换为语音。 将其用于语音命令和音频听录。
本文重点介绍基于文本的生成 AI,例如聊天和摘要,但你可以将这些 API 用于许多类型的媒体。
开始开发生成式 AI 应用
了解新语言、API 或技术时,请先学习教程或培训,演示如何生成小型应用。 一些开发人员更喜欢通过构建自己的小型项目来学习。 这两种方法都效果不错。
从小开始,设置简单的目标,并逐步构建技能。 生成 AI 开发不同于传统软件。 在常规软件中,每次都会获得相同输入的相同输出。 使用生成式 AI,你可以获得相同提示的不同答案,这带来了新的挑战。
开始时,请记住这些提示。
提示 1:明确目标
- 定义要解决的问题。 生成 AI 可以执行许多作,但如果确切地了解所需内容,例如生成文本、图像或代码,可以获得更好的结果。
- 了解受众。 定制 AI 的输出,以匹配使用 AI 的用户,无论是休闲用户还是专家。
提示 2:使用 LLM 优势
- 了解 LLM 的限制和偏差。 他们是强大的,但不是完美的。 规划他们的弱点。
- 使用 LLM 执行最佳作,例如创建内容、汇总或翻译。 有时,另一种类型的 AI 可能更适合你的需求。
提示 3:编写良好的提示
- 了解提示工程。 请尝试不同的提示来查看最适合哪些内容。 明确和具体。
- 优化提示。 第一次迭代可能不起作用。 使用结果改进下一个提示。
构建第一个生成 AI 解决方案
若要尝试构建生成 AI 解决方案,请 从使用自己的 Python 数据示例开始聊天。 还可以查找 适用于 .NET、 Java 和 JavaScript 的教程。
应用程序设计的最终注意事项
下面是本文要考虑的事项和其他要点的简短列表,这些内容可能会影响应用程序设计决策:
- 明确定义问题空间和受众,使 AI 的功能与用户期望保持一致。 针对预期用例优化解决方案的有效性。
- 如果低代码/无代码平台满足项目要求,则使用低代码/无代码平台进行快速原型制作和开发。 评估开发速度和可自定义性之间的权衡。 尝试对应用的各个部分使用低代码和无代码工具,以加快开发速度,让非技术团队成员提供帮助。