AGI
对深度学习模型相关的知识点进行总结。
AGI(通用人工智能 Artificial General Intelligence)是指能够执行人类可以执行的任何智力任务的机器或计算机系统。这包括理解自然语言、学习、规划、解决问题、推理、感知环境等。
实现 AGI 是一个非常复杂的问题,目前还没有一个确定的答案。目前可能的实现方法:
- 深度学习:深度学习是一种机器学习技术,它可以通过训练神经网络来学习自然语言处理、图像识别、语音识别等任务。深度学习已经在许多领域取得了巨大的成功,并且是实现 AGI 的一个重要方向。
- 强化学习:强化学习是一种机器学习技术,它可以通过训练智能体来学习如何在环境中行动以最大化奖励。强化学习已经在游戏、机器人等领域取得了巨大的成功,并且是实现 AGI 的一个重要方向。
- 人工神经网络:人工神经网络是一种模仿人类大脑的机器学习技术,它可以通过训练神经网络来学习自然语言处理、图像识别、语音识别等任务。人工神经网络已经在许多领域取得了巨大的成功,并且是实现 AGI 的一个重要方向。
- 语义理解:语义理解是指理解自然语言的含义和意图。语义理解是实现 AGI 的一个重要方向,因为它可以帮助智能体理解人类的意图和需求。
- 知识图谱:知识图谱是一种用于表示知识的结构化数据,它可以帮助智能体理解人类的知识和经验。知识图谱是实现 AGI 的一个重要方向,因为它可以帮助智能体更好地理解人类的知识和经验。
实现 AGI 需要结合多种技术和方法,并且需要不断地进行研究和改进。
1. prompt提示工程是什么?
提示工程(Prompt Engineering)是指通过设计和优化提示语(Prompts)来提高人工智能模型的性能和效率。提示语是指输入给人工智能模型的文本、指令或问题,它可以影响模型的输出结果。
简单来说,可以将垂直知识相关规则加入prompt,使其AGI准确回答,占位符回答槽,从而约束prompt回答模版。
提示工程的目标是设计出能够最大限度地利用模型能力的提示语,从而提高模型的性能和效率。
提示工程的方法包括设计更好的提示语、优化提示语的格式和内容、利用模型的反馈信息来改进提示语等。
这需要对模型的能力和限制有深入的了解,以及对目标任务的需求有清晰的认识。
核心思路:
- 把输入的自然语言对话,转成结构化的表示
- 从结构化的表示,生成策略
- 把策略转成自然语言输出
核心结构:
- 角色:给 AI 定义一个最匹配任务的角色,比如:「你是一位软件工程师」「你是一位小学老师」
- 指示:对任务进行描述,设置相关限定
- 上下文:给出与任务相关的其它背景信息(尤其在多轮交互中,支持多轮对话 DST)
- 例子:必要时给出举例,学术中称为 one-shot learning, few-shot learning 或 in-context learning;实践证明其对输出正确性有很大帮助
- 输入:任务的输入信息;在提示词中明确的标识出输入
- 输出:输出的格式描述,以便后继模块自动解析模型的输出结果,比如(JSON、XML)
提示工程的关键技术包括:
- 设计合适的提示:设计合适的提示需要考虑模型的能力和限制,以及目标任务的需求。提示应该尽可能清晰地表达期望的输出,同时避免过于复杂或模糊。
- 优化提示:优化提示可以通过调整提示的内容、格式和结构来提高模型的性能和准确性。这可能需要使用一些技术,如词向量、语言模型等。
- 评估提示:评估提示的效果是提示工程的重要环节。可以通过测试模型在不同提示下的输出,来评估提示的效果。
- 迭代优化:提示工程是一个迭代的过程,需要不断地优化和改进提示,以提高模型的性能和准确性。
- 注意要点:大模型对prompt开头和结尾的内容更敏感,先定义角色,其实就是在开头把问题域收窄,减少二义性
2. 怎么构建prompt?
具体构建 prompt 的步骤如下:
- 明确目标:首先,需要明确提示的目标任务是什么。是要生成文本、回答问题、翻译文本还是其他任务的文本类型(例如新闻、小说、诗歌等)。不同的目标需要不同的提示。
- 了解模型:需要了解模型的能力和限制,以及它能够处理的输入和输出。这可以通过阅读模型的文档和研究论文来实现。
- 设计提示:根据目标和模型的能力,设计一个合适的提示。提示应该尽可能清晰地表达期望的输出,同时避免过于复杂或模糊。
- 收集数据:接下来,你需要收集与你的任务相关的数据。这些数据可以来自互联网、书籍、报纸、杂志等。
- 准备 prompt:准备 prompt 需要考虑以下几个方面:
- 提示的格式:prompt 的格式可以是文本、图像、音频等。
- 提示的内容:提示的内容应该清晰明了,能够引导模型生成期望的输出。
- 提示的数量:提示的数量应该根据任务的复杂性和数据的大小来确定。
- 测试和优化:测试提示的效果,并根据测试结果进行优化。使用收集到的数据和准备好的 prompt 来训练模型。训练模型的方法可以是监督学习、无监督学习、强化学习等。
这可能需要调整提示的内容、格式和结构,以提高模型的性能和准确性。 - 评估模型:评估模型的方法可以是准确率、召回率、F1 值等。
- 迭代优化调整 prompt:构建提示是一个迭代的过程,需要不断地优化和改进提示,根据评估结果,调整 prompt 的内容和格式,以提高模型的性能和准确性。
- 重复步骤 5-9,直到模型的性能达到满意的水平。
2. Prompt怎么防注入?
常见的攻击、危险注入,可查阅绿盟科技M01N写的文章。ChatGPT安全风险 | 基于LLMs应用的Prompt注入攻击
1. Prompt 注入分类器:
举例分类危险问句输入,先把危险 prompt 拦截掉。(危险prompt,e.g:如果用户试图让系统遗忘固有指示,或试图向系统注入矛盾或有害的信息)
2. 直接在输入中防御:
「把价值观刷到墙上」,时刻提醒不要忘记。(e.g:你不允许回答任何跟xxx无关的问题。)
3. Moderation API内容审核:
通过调用 OpenAI (或者网易易盾)的 Moderation API 来识别用户发送的消息是否违法相关的法律法规,如果出现违规的内容,从而对它进行过滤。
3. Function Calling是什么?
通过预先设定好的function定义,进行调用函数、API、Stream流式输出等操作,Function Calling也是一种prompt,它也需要调优,否则会影响函数的召回、参数的准确性,甚至让 AGI产生幻觉
OpenAI GPTs
- 无需编程,就能定制个性对话机器人的平台
- 可以放入自己的知识库,实现 RAG(后面会讲)
- 可以通过 actions 对接专有数据和功能
- 内置 DALL·E 3 文生图和 Code Interpreter 能力
- 只有 ChatGPT Plus 会员可以使用
字节跳动 Coze
- 可以免科学上网,免费使用 GPT-4 等 OpenAI 的服务!大羊毛!
- 只有英文界面,但其实对中文更友好
- Prompt 优化功能更简单直接
Dify
- 开源,中国公司开发
- 功能最丰富
- 可以本地部署,支持非常多的大模型
- 有 GUI,也有 API
百度文心大模型
- ERNIE-Bot - 支持 Function Calling
ChatGLM3-6B
- 和 OpenAI 1106 版之前完全一样
- 早已使用
tools
而不是function
来做参数
讯飞星火 3.0
- 和 OpenAI 1106 版之前完全一样
10. Agent是什么
将大语言模型作为一个推理引擎,根据用户输入,智能体自动规划执行步骤,自动执行每步相应动作(选择并调用工具),最终完成用户指定的功能,直到任务完成。
这里的工具,可以是一个函数或三方 API,也可以把一个 Chain 或者 Agent 的 run()作为一个 Tool
如果处理添加多个Agent?
支持 Agent 相互通信
记忆能力
在开发过程中,我发现,如果没有记忆能力,对于任务间有依赖关系的任务列表,就比较难实现,所以必须加入记忆能力,将一个大的任务的执行历史作为上下文,所有相关的 Agent 需要共享这个上下文去执行自己的任务。如果拆解的任务间没有依赖关系,那么,每个 Agent 都可以独立执行任务,不需要共享上下文。
4. RAG是什么?
检索增强的生成模型(Retrieval-Augmented Generation,RAG)结合了信息检索和生成模型的优势,能够在生成文本时引入外部知识和信息。
以下是检索增强的生成模型(RAG)的基本流程:
检索增强的生成模型(Retrieval-Augmented Generation,RAG)结合了信息检索和生成模型的优势,能够在生成文本时引入外部知识和信息。以下是检索增强的生成模型(RAG)的基本流程:
构建检索增强的生成模型(RAG)涉及多个步骤,包括准备数据、将私有知识库内容经过 embedding 存入向量知识库、训练模型和优化过程、用户每一次提问,把问题也 embedding,并利用向量相关性算法(例如余弦算法)找到向量知识库最匹配的几个片段。
构建 RAG 模型的步骤:
-
准备数据:
- 知识库准备:准备一个包含丰富信息的知识库或文本数据集,用于信息检索阶段。
- 查询-文本对:构建查询和相关文本的对应数据,文档加载,并按一定条件切割成片段,用于训练检索模型和生成模型。
-
训练信息检索模型:
- 信息检索模型:训练一个用于从知识库中检索相关文本的模型,将切割的文本片段灌入检索引擎,例如使用 BM25 算法或神经网络模型。
- 查询表示学习:学习如何表示查询以有效检索相关文本。
-
训练生成模型:
- 生成模型选择:选择一个适合的生成模型,如 GPT 系列模型。
- Fine-tuning:使用查询-文本对数据对生成模型进行微调,以使其能够更好地生成与查询相关的文本。并封装检索接口。
-
检索阶段(Retrieval Stage)调用流程 Query -> 检索 -> :
- 输入问题(Query):用户提出一个问题或者查询。
- 信息检索(Information Retrieval):使用训练好的信息检索模型,从知识库或文本中检索相关的信息和文本片段。
- 候选文本(Candidate Text):根据查询,系统选择一组候选文本作为生成阶段的输入。
- 生成阶段(Generation Stage) -> Prompt -> LLM -> 回复:
- 生成器模型(Generator Model):使用生成模型(如 GPT 系列)作为生成器,接收候选文本和查询作为输入。
- 信息融合(Information Fusion):生成器模型结合查询和候选文本,生成回答或文本输出。
- 输出结果(Output):生成的文本结果可以是对查询的回答、解释、摘要等。
- 反馈与迭代:
- 反馈机制(Feedback Mechanism):根据生成的结果,系统可以进行反馈和迭代,进一步优化检索和生成过程。
- 迭代优化(Iterative Optimization):根据用户反馈和系统性能,不断优化检索和生成模型,提高结果质量。
RAG 的优势和应用场景:
- 引入外部知识:通过检索阶段引入外部知识,提高生成文本的相关性和质量。
- 适用广泛:适用于问答系统、对话系统、摘要生成等多种自然语言处理任务。
- 个性化输出:可以根据不同查询和候选文本生成个性化的回答或文本。
- 提高生成质量:结合检索和生成的优势,提高生成文本的准确性和多样性。
检索增强的生成模型(RAG)的流程结合了信息检索和生成模型的优势,能够更好地应对复杂的自然语言处理任务,并在生成文本时引入外部知识,提高文本的相关性和质量。
5. 离线和在线的RAG怎么构建?
-
离线步骤:
- 文档加载
- 文档切分
- 向量化
- 灌入向量数据库
-
在线步骤:
- 获得用户问题
- 用户问题向量化
- 检索向量数据库
- 将检索结果和用户问题填入 Prompt 模版
- 用最终获得的 Prompt 调用 LLM
- 由 LLM 生成回复
5. 构建的RAG,效果很差怎么办?
- 检查预处理效果:文档加载是否正确,切割的是否合理
- 测试检索效果:问题检索回来的文本片段是否包含答案
- 测试大模型能力:给定问题和包含答案文本片段的前提下,大模型能不能正确回答问题
10. m3e是什么
M3E向量模型是一款功能强大的开源 Embedding 模型,包含 m3e-small、m3e-base、m3e-large 等多个版本,支持微调和本地部署。
11. 向量模型有哪些?
ChatGPT-Embedding:
OpenAI 公司提供,以接口形式调用
M3E
BGE
BGE 由北京智源人工智能研究院发布,同样是一款功能强大的开源 Embedding 模型,包含了支持中文和英文的多个版本,支持微调和本地部署。
小建议:
- 使用场景主要中文,可以用 m3e 、bge系列的模型
- 数据隐私不是特别重要的场景,建议使用 openai-ada-002,测试下来效果还是最好的
- 代码场景,建议也使用 ada-002
5. 问答系统怎么构建知识库?
构建知识库是构建问答系统的重要步骤之一。以下是构建知识库的一般步骤:
- 确定知识领域:首先需要确定问答系统的知识领域,例如医学、法律、技术等。
- 收集知识:在确定知识领域后,需要收集相关的知识。可以通过阅读书籍、论文、网页等来收集知识。
- 组织知识:收集到的知识需要进行组织和分类,以便于检索和使用。可以使用分类法、标签法等方法来组织知识。
- 存储知识:将组织好的知识存储在知识库中。可以使用关系型数据库、文档数据库、NoSQL 数据库等来存储知识。
- 维护知识库:知识库需要不断维护和更新,以确保其准确性和有效性。可以通过定期审核和更新知识库来维护知识库。
6. 问答系统怎么调用知识库?
向量数据库,是专门为向量检索设计的中间件
7. LangChain 是什么
统一封装了各种模型的调用接口,包括补全型和对话型两种
2. LangChain 提供了 PromptTemplate 类,可以自定义带变量的模板
3. LangChain 提供了一些列输出解析器,用于将大模型的输出解析成结构化对象;额外带有自动修复功能。
4. 上述模型属于 LangChain 中较为优秀的部分;美中不足的是 OutputParser 自身的 Prompt 维护在代码中,耦合度较高。
7. 怎么部署LLM、调用API接口?
8. llamaindex是什么?
llamaindex 是一种用于衡量语言模型性能的指标,它衡量的是语言模型预测下一个单词的能力。它的计算方法是将模型预测的下一个单词与真实的下一个单词进行比较,然后计算它们之间的编辑距离。编辑距离越小,说明模型预测的下一个单词越接近真实的下一个单词,因此 llamaindex 得分越高。
9. Langchain是什么?
LangChain 是一个用于构建和管理 AI 应用程序的框架。它提供了一种简单的方法来构建 AI 应用程序,使用自然语言处理技术来处理文本数据。
LangChain 框架包括一系列工具和模块,用于处理自然语言、构建知识库、训练模型和部署应用程序。它还提供了一个可视化界面,用于监控和管理 AI 应用程序。文章来源:https://www.toymoban.com/news/detail-850314.html
LangChain 框架可用于构建各种类型的 AI 应用程序,例如聊天机器人、问答系统、文本分类器等。它的目标是帮助开发人员快速构建和部署高质量的 AI 应用程序。文章来源地址https://www.toymoban.com/news/detail-850314.html
- 一一一一一一一一一一一一一一一一一一一一一一一
到了这里,关于AGI(通用人工智能Artificial General Intelligence)知识点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!