通用人工智能AGI知识点
AGI
对深度学习模型相关的知识点进行总结。
AGI(通用人工智能 Artificial General Intelligence)是指能够执行人类可以执行的任何智力任务的机器或计算机系统。这包括理解自然语言、学习、规划、解决问题、推理、感知环境等。
实现 AGI 是一个非常复杂的问题,目前还没有一个确定的答案。目前可能的实现方法:
- 深度学习:深度学习是一种机器学习技术,它可以通过训练神经网络来学习自然语言处理、图像识别、语音识别等任务。深度学习已经在许多领域取得了巨大的成功,并且是实现 AGI 的一个重要方向。
- 强化学习:强化学习是一种机器学习技术,它可以通过训练智能体来学习如何在环境中行动以最大化奖励。强化学习已经在游戏、机器人等领域取得了巨大的成功,并且是实现 AGI 的一个重要方向。
- 人工神经网络:人工神经网络是一种模仿人类大脑的机器学习技术,它可以通过训练神经网络来学习自然语言处理、图像识别、语音识别等任务。人工神经网络已经在许多领域取得了巨大的成功,并且是实现 AGI 的一个重要方向。
- 语义理解:语义理解是指理解自然语言的含义和意图。语义理解是实现 AGI 的一个重要方向,因为它可以帮助智能体理解人类的意图和需求。
- 知识图谱:知识图谱是一种用于表示知识的结构化数据,它可以帮助智能体理解人类的知识和经验。知识图谱是实现 AGI 的一个重要方向,因为它可以帮助智能体更好地理解人类的知识和经验。
实现 AGI 需要结合多种技术和方法,并且需要不断地进行研究和改进。
1. prompt提示工程是什么?
提示工程(Prompt Engineering)是指通过设计和优化提示语(Prompts)来提高人工智能模型的性能和效率。提示语是指输入给人工智能模型的文本、指令或问题,它可以影响模型的输出结果。
简单来说,可以将垂直知识相关规则加入prompt,使其AGI准确回答,占位符回答槽,从而约束prompt回答模版。
提示工程的目标是设计出能够最大限度地利用模型能力的提示语,从而提高模型的性能和效率。提示工程的方法包括设计更好的提示语、优化提示语的格式和内容、利用模型的反馈信息来改进提示语等。这需要对模型的能力和限制有深入的了解,以及对目标任务的需求有清晰的认识。
提示工程的关键技术包括:
- 设计合适的提示:设计合适的提示需要考虑模型的能力和限制,以及目标任务的需求。提示应该尽可能清晰地表达期望的输出,同时避免过于复杂或模糊。
- 优化提示:优化提示可以通过调整提示的内容、格式和结构来提高模型的性能和准确性。这可能需要使用一些技术,如词向量、语言模型等。
- 评估提示:评估提示的效果是提示工程的重要环节。可以通过测试模型在不同提示下的输出,来评估提示的效果。
- 迭代优化:提示工程是一个迭代的过程,需要不断地优化和改进提示,以提高模型的性能和准确性。
2. 怎么构建prompt?
构建一个有效的提示需要考虑以下几个因素:
- 明确目标:首先,需要明确提示的目标是什么。是要生成文本、回答问题、翻译文本还是其他任务?不同的目标需要不同的提示。
- 了解模型:需要了解模型的能力和限制,以及它能够处理的输入和输出。这可以通过阅读模型的文档和研究论文来实现。
- 设计提示:根据目标和模型的能力,设计一个合适的提示。提示应该尽可能清晰地表达期望的输出,同时避免过于复杂或模糊。
- 测试和优化:测试提示的效果,并根据测试结果进行优化。这可能需要调整提示的内容、格式和结构,以提高模型的性能和准确性。
- 迭代优化:构建提示是一个迭代的过程,需要不断地优化和改进提示,以提高模型的性能和准确性。
具体构建 prompt 的步骤如下:
- 确定任务:首先,你需要确定你要构建 prompt 的任务。例如,如果你要构建一个文本生成 prompt,你需要确定你要生成的文本类型(例如新闻、小说、诗歌等)。
- 收集数据:接下来,你需要收集与你的任务相关的数据。这些数据可以来自互联网、书籍、报纸、杂志等。
- 准备 prompt:准备 prompt 需要考虑以下几个方面:
- 提示的格式:prompt 的格式可以是文本、图像、音频等。
- 提示的内容:提示的内容应该清晰明了,能够引导模型生成期望的输出。
- 提示的数量:提示的数量应该根据任务的复杂性和数据的大小来确定。
- 训练模型:使用收集到的数据和准备好的 prompt 来训练模型。训练模型的方法可以是监督学习、无监督学习、强化学习等。
- 评估模型:评估模型的方法可以是准确率、召回率、F1 值等。
- 调整 prompt:根据评估结果,调整 prompt 的内容和格式,以提高模型的性能。
- 重复步骤 4-6,直到模型的性能达到满意的水平。
以上是构建 prompt 的基本步骤,具体的步骤可能会根据任务的不同而有所不同。
核心思路:
- 把输入的自然语言对话,转成结构化的表示
- 从结构化的表示,生成策略
- 把策略转成自然语言输出
注意要点:
- 大模型对prompt开头和结尾的内容更敏感,先定义角色,其实就是在开头把问题域收窄,减少二义性
3. Function Calling是什么?
通过预先设定好的function定义,进行调用函数、API、Stream流式输出等操作,Function Calling也是一种prompt,它也需要调优,否则会影响函数的召回、参数的准确性,甚至让 AGI产生幻觉
- 无需编程,就能定制个性对话机器人的平台
- 可以放入自己的知识库,实现 RAG(后面会讲)
- 可以通过 actions 对接专有数据和功能
- 内置 DALL·E 3 文生图和 Code Interpreter 能力
- 只有 ChatGPT Plus 会员可以使用
- 可以免科学上网,免费使用 GPT-4 等 OpenAI 的服务!大羊毛!
- 只有英文界面,但其实对中文更友好
- Prompt 优化功能更简单直接
- 开源,中国公司开发
- 功能最丰富
- 可以本地部署,支持非常多的大模型
- 有 GUI,也有 API
- ERNIE-Bot - 支持 Function Calling
- 和 OpenAI 1106 版之前完全一样
- 早已使用
tools
而不是function
来做参数
- 和 OpenAI 1106 版之前完全一样
4. RAG是什么?
检索增强的生成模型(RAG)
搭建过程:
- 文档加载,并按一定条件切割成片段
- 将切割的文本片段灌入检索引擎
- 封装检索接口
- 构建调用流程:Query -> 检索 -> Prompt -> LLM -> 回复
离线步骤:
- 文档加载
- 文档切分
- 向量化
- 灌入向量数据库
在线步骤:
- 获得用户问题
- 用户问题向量化
- 检索向量数据库
- 将检索结果和用户问题填入 Prompt 模版
- 用最终获得的 Prompt 调用 LLM
- 由 LLM 生成回复
将私有知识库内容经过 embedding 存入向量知识库
用户每一次提问,把问题也 embedding,并利用向量相关性算法(例如余弦算法)找到向量知识库最匹配的几个片段
5. 构建的RAG,效果很差怎么办?
- 检查预处理效果:文档加载是否正确,切割的是否合理
- 测试检索效果:问题检索回来的文本片段是否包含答案
- 测试大模型能力:给定问题和包含答案文本片段的前提下,大模型能不能正确回答问题
5. 问答系统怎么构建知识库?
构建知识库是构建问答系统的重要步骤之一。以下是构建知识库的一般步骤:
- 确定知识领域:首先需要确定问答系统的知识领域,例如医学、法律、技术等。
- 收集知识:在确定知识领域后,需要收集相关的知识。可以通过阅读书籍、论文、网页等来收集知识。
- 组织知识:收集到的知识需要进行组织和分类,以便于检索和使用。可以使用分类法、标签法等方法来组织知识。
- 存储知识:将组织好的知识存储在知识库中。可以使用关系型数据库、文档数据库、NoSQL 数据库等来存储知识。
- 维护知识库:知识库需要不断维护和更新,以确保其准确性和有效性。可以通过定期审核和更新知识库来维护知识库。
6. 问答系统怎么调用知识库?
向量数据库,是专门为向量检索设计的中间件
7. 怎么部署LLM、调用API接口?
8. llamaindex是什么?
llamaindex 是一种用于衡量语言模型性能的指标,它衡量的是语言模型预测下一个单词的能力。它的计算方法是将模型预测的下一个单词与真实的下一个单词进行比较,然后计算它们之间的编辑距离。编辑距离越小,说明模型预测的下一个单词越接近真实的下一个单词,因此 llamaindex 得分越高。
9. Langchain是什么?
LangChain 是一个用于构建和管理 AI 应用程序的框架。它提供了一种简单的方法来构建 AI 应用程序,使用自然语言处理技术来处理文本数据。
LangChain 框架包括一系列工具和模块,用于处理自然语言、构建知识库、训练模型和部署应用程序。它还提供了一个可视化界面,用于监控和管理 AI 应用程序。
LangChain 框架可用于构建各种类型的 AI 应用程序,例如聊天机器人、问答系统、文本分类器等。它的目标是帮助开发人员快速构建和部署高质量的 AI 应用程序。
10. m3e是什么
M3E向量模型是一款功能强大的开源 Embedding 模型,包含 m3e-small、m3e-base、m3e-large 等多个版本,支持微调和本地部署。
11. 向量模型有哪些?
ChatGPT-Embedding:
OpenAI 公司提供,以接口形式调用
BGE
BGE 由北京智源人工智能研究院发布,同样是一款功能强大的开源 Embedding 模型,包含了支持中文和英文的多个版本,支持微调和本地部署。
小建议:
- 使用场景主要中文,可以用 m3e 、bge系列的模型
- 数据隐私不是特别重要的场景,建议使用 openai-ada-002,测试下来效果还是最好的
- 代码场景,建议也使用 ada-002
- 一一一一一一一一一一一一一一一一一一一一一一一