本文档提供了生成式AI的技术入门介绍,重点介绍了其工作原理和核心功能。它解释了大型语言模型(LLMs)的基本概念以及如何通过不同的API和库将它们集成到应用程序中。有关比较不同类型的LLM及其优点的具体信息,请参阅探索和比较不同的LLM。
生成式AI是指能够生成新内容的人工智能系统,包括文本、图像和其他媒体类型,这些内容基于从训练数据中学习到的模式。与专注于分类或预测任务的传统AI系统不同,生成式AI会创建模仿人类创作内容的原创输出。
生成式AI的定义特征是它能够接受自然语言提示(用人类语言书写的普通句子),并产生有意义、语境适宜的响应,而无需用户具备专业的编程知识。
标题:从用户输入到代码实现的生成式AI处理流程
来源:[01-introduction-to-genai/README.md:67-88], [06-text-generation-apps/README.md:134-141]
生成式AI经历了几个发展阶段
| 时代 | 技术 | 特性 | 局限性 |
|---|---|---|---|
| 1960年代 | 早期AI聊天机器人 | 基于规则,关键词触发 | 可扩展性差 |
| 1990年代 | 统计机器学习 | 从数据中学习模式 | 有限的上下文理解能力 |
| 2000年代-2010年代 | 神经网络和循环神经网络(RNNs) | 更好的上下文理解能力 | 长序列处理困难 |
| 2017年至今 | Transformer 架构 | 注意力机制、并行处理 | 高计算要求 |
当前生成式AI模型(包括LLM)基于Transformer架构,使用来自书籍、文章和网站等各种来源的海量文本进行训练。
来源:[01-introduction-to-genai/README.md:42-68]
标题:LLMs中的分词过程
在通过神经网络处理之前,LLMs将文本转换为数值表示
来源:[01-introduction-to-genai/README.md:74-76]
LLMs以逐个词元的方式,通过扩展窗口模式生成文本
来源:[01-introduction-to-genai/README.md:78-80]
标题:带温度参数的词元选择过程
温度参数控制词元选择的随机性
这种随机性模拟了创造性思维,并提供了多样的响应。
来源:[01-introduction-to-genai/README.md:80-81], [06-text-generation-apps/README.md:589-599]
标题:使用OpenAI库的生成式AI实现架构
来源:[06-text-generation-apps/README.md:114-128], [11-integrating-with-function-calling/README.md:55-69]
该代码库实现了几种不同类型的生成式AI应用
| 应用类型 | 主要API方法 | 描述 | 关键参数 | 出现于 |
|---|---|---|---|---|
| 文本生成 | openai.Completion.create() | 根据提示生成文本 | model, prompt, max_tokens, temperature | [06-text-generation-apps/README.md] |
| 聊天应用 | openai.ChatCompletion.create() | 通过消息历史进行对话交互 | model, messages (角色-内容对数组) | [07-building-chat-applications/README.md] |
| 函数调用 | client.chat.completions.create() 配合 functions 参数 | 提取结构化数据并调用外部函数 | model, messages, functions, function_call | [11-integrating-with-function-calling/README.md] |
| 搜索应用 | openai.Embedding.create() | 为语义搜索创建向量嵌入 | model, input | [08-building-search-applications/README.md] |
| 图像生成 | openai.Image.create() | 根据文本描述生成图像 | prompt, size, n, temperature | [09-building-image-applications/README.md] |
来源:[06-text-generation-apps/README.md:134-141], [07-building-chat-applications/README.md:74-76], [11-integrating-with-function-calling/README.md:267-273], [09-building-image-applications/README.md:136-142]
标题:文本生成应用程序流程
使用OpenAI库的基本文本生成实现
来源:[06-text-generation-apps/README.md:180-198]
聊天应用通过结构化的消息数组维护对话上下文,从而建立在文本生成之上
聊天应用通常通过在每次交互时将新消息追加到messages数组来维护对话历史。
来源:[07-building-chat-applications/README.md:74-76]
函数调用扩展了聊天界面,以实现结构化数据提取和API集成
标题:带有代码实体的函数调用实现流程
函数调用允许从用户查询中提取结构化数据以调用外部API
来源:[11-integrating-with-function-calling/README.md:267-273], [11-integrating-with-function-calling/README.md:342-392]
控制LLM行为的配置参数
| 参数 | 目的 | 值 | 效果 |
|---|---|---|---|
| model | 指定要使用的语言模型 | "gpt-3.5-turbo", "davinci-002"等 | 不同的功能、成本和性能 |
| temperature | 控制输出的随机性 | 0到1 | 较低的值:更确定性,较高的值:更具创意 |
| max_tokens | 限制响应的长度 | 整型 | 防止响应过长,控制成本 |
| n | 生成的完成次数 | 整型 | 提供多个备选响应 |
| functions | 定义结构化数据提取 | JSON 对象 | 启用函数调用功能 |
| function_call | 控制函数调用行为 | "auto", "none" 或特定函数 | 确定何时调用函数 |
来源:[06-text-generation-apps/README.md:226-237], [11-integrating-with-function-calling/README.md:222-245]
在实现生成式AI应用程序时,请注意这些限制
来源:[01-introduction-to-genai/README.md:114-115], [03-using-generative-ai-responsibly/README.md]
本生成式AI入门为您理解大型语言模型的工作原理及其如何集成到应用程序中奠定了基础。代码库演示了多种利用这些能力的方法,涵盖了从简单的文本生成到复杂的函数调用集成等不同用例。
要开发生成式AI应用程序,首先需要理解您的用例,选择合适的集成模型(文本生成、聊天、函数调用等),然后仔细考虑温度和词元限制等参数,并实现相应的OpenAI API方法。
来源:[01-introduction-to-genai/README.md], [06-text-generation-apps/README.md]