当前位置:   article > 正文

文生文—— AGI(通用人工智能Artificial General Intelligence) 知识点_ai文生文

ai文生文

文生文—— AGI

对深度学习模型相关的知识点进行总结。

AGI(通用人工智能 Artificial General Intelligence)是指能够执行人类可以执行的任何智力任务的机器或计算机系统。这包括理解自然语言、学习、规划、解决问题、推理、感知环境等。

实现 AGI 是一个非常复杂的问题,目前还没有一个确定的答案。目前可能的实现方法:

  1. 深度学习:深度学习是一种机器学习技术,它可以通过训练神经网络来学习自然语言处理、图像识别、语音识别等任务。深度学习已经在许多领域取得了巨大的成功,并且是实现 AGI 的一个重要方向。
  2. 强化学习:强化学习是一种机器学习技术,它可以通过训练智能体来学习如何在环境中行动以最大化奖励。强化学习已经在游戏、机器人等领域取得了巨大的成功,并且是实现 AGI 的一个重要方向。
  3. 人工神经网络:人工神经网络是一种模仿人类大脑的机器学习技术,它可以通过训练神经网络来学习自然语言处理、图像识别、语音识别等任务。人工神经网络已经在许多领域取得了巨大的成功,并且是实现 AGI 的一个重要方向。
  4. 语义理解:语义理解是指理解自然语言的含义和意图。语义理解是实现 AGI 的一个重要方向,因为它可以帮助智能体理解人类的意图和需求。
  5. 知识图谱:知识图谱是一种用于表示知识的结构化数据,它可以帮助智能体理解人类的知识和经验。知识图谱是实现 AGI 的一个重要方向,因为它可以帮助智能体更好地理解人类的知识和经验。

实现 AGI 需要结合多种技术和方法,并且需要不断地进行研究和改进。

1. prompt提示工程是什么?

提示工程(Prompt Engineering)是指通过设计和优化提示语(Prompts)来提高人工智能模型的性能和效率。提示语是指输入给人工智能模型的文本、指令或问题,它可以影响模型的输出结果。

简单来说,可以将垂直知识相关规则加入prompt,使其AGI准确回答,占位符回答槽,从而约束prompt回答模版。

提示工程的目标是设计出能够最大限度地利用模型能力的提示语,从而提高模型的性能和效率。

提示工程的方法包括设计更好的提示语、优化提示语的格式和内容、利用模型的反馈信息来改进提示语等。

这需要对模型的能力和限制有深入的了解,以及对目标任务的需求有清晰的认识。

核心思路:

  1. 把输入的自然语言对话,转成结构化的表示
  2. 从结构化的表示,生成策略
  3. 把策略转成自然语言输出

核心结构:

  • 1. 角色与目标:给 AI 定义一个最匹配任务的角色,比如:「你是一位软件工程师」「你是一位小学老师」

  • 2. 指示与原则:对应用任务进行具体功能描述,设置相关限定(或者说明能力)、回答格式、使用工具等等。

  • 3. 限制与澄清
    限制应用哪些功能不能做,能做的限制有哪些。

  • 4. 个性化设置
    设置应用回答问题语句的一些个性化特点(如:语气、口头禅)。

  • 5. 上下文:给出与任务相关的其它背景信息(尤其在多轮交互中,支持多轮对话 DST)。

  • 6. 例子:必要时给出举例,学术中称为 one-shot learning, few-shot learning 或 in-context learning;实践证明其对输出正确性有很大帮助。

  • 输入:任务的输入信息;在提示词中明确的标识出输入

  • 输出:输出的格式描述,以便后继模块自动解析模型的输出结果,比如(JSON、XML)

提示工程的关键技术包括:

  1. 设计合适的提示:设计合适的提示需要考虑模型的能力和限制,以及目标任务的需求。提示应该尽可能清晰地表达期望的输出,同时避免过于复杂或模糊。
  2. 优化提示:优化提示可以通过调整提示的内容、格式和结构来提高模型的性能和准确性。这可能需要使用一些技术,如词向量、语言模型等。
  3. 评估提示:评估提示的效果是提示工程的重要环节。可以通过测试模型在不同提示下的输出,来评估提示的效果。
  4. 迭代优化:提示工程是一个迭代的过程,需要不断地优化和改进提示,以提高模型的性能和准确性。
  5. 注意要点:大模型对prompt开头和结尾的内容更敏感,先定义角色,其实就是在开头把问题域收窄,减少二义性

2. 怎么构建prompt?

具体构建 prompt 的步骤如下:

  1. 明确目标:首先,需要明确提示的目标任务是什么。是要生成文本、回答问题、翻译文本还是其他任务的文本类型(例如新闻、小说、诗歌等)。不同的目标需要不同的提示。
  2. 了解模型:需要了解模型的能力和限制,以及它能够处理的输入和输出。这可以通过阅读模型的文档和研究论文来实现。
  3. 设计提示:根据目标和模型的能力,设计一个合适的提示。提示应该尽可能清晰地表达期望的输出,同时避免过于复杂或模糊。
  4. 收集数据:接下来,你需要收集与你的任务相关的数据。这些数据可以来自互联网、书籍、报纸、杂志等。
  5. 准备 prompt:准备 prompt 需要考虑以下几个方面:
    • 提示的格式:prompt 的格式可以是文本、图像、音频等。
    • 提示的内容:提示的内容应该清晰明了,能够引导模型生成期望的输出。
    • 提示的数量:提示的数量应该根据任务的复杂性和数据的大小来确定。
  6. 测试和优化:测试提示的效果,并根据测试结果进行优化。使用收集到的数据和准备好的 prompt 来训练模型。训练模型的方法可以是监督学习、无监督学习、强化学习等。
    这可能需要调整提示的内容、格式和结构,以提高模型的性能和准确性。
  7. 评估模型:评估模型的方法可以是准确率、召回率、F1 值等。
  8. 迭代优化调整 prompt:构建提示是一个迭代的过程,需要不断地优化和改进提示,根据评估结果,调整 prompt 的内容和格式,以提高模型的性能和准确性。
  9. 重复步骤 5-9,直到模型的性能达到满意的水平。

3. Prompt怎么防注入?

常见的攻击、危险注入,可查阅绿盟科技M01N写的文章。ChatGPT安全风险 | 基于LLMs应用的Prompt注入攻击
1. Prompt 注入分类器:
举例分类危险问句输入,先把危险 prompt 拦截掉。(危险prompt,e.g:如果用户试图让系统遗忘固有指示,或试图向系统注入矛盾或有害的信息)
2. 直接在输入中防御:
「把价值观刷到墙上」,时刻提醒不要忘记。(e.g:你不允许回答任何跟xxx无关的问题。)
3. Moderation API内容审核:
通过调用 OpenAI (或者网易易盾)的 Moderation API 来识别用户发送的消息是否违法相关的法律法规,如果出现违规的内容,从而对它进行过滤。

4. Function Calling是什么?

通过预先设定好的function定义,进行调用函数、API、Stream流式输出等操作,Function Calling也是一种prompt,它也需要调优,否则会影响函数的召回、参数的准确性,甚至让 AGI产生幻觉

OpenAI GPTs

  1. 无需编程,就能定制个性对话机器人的平台
  2. 可以放入自己的知识库,实现 RAG(后面会讲)
  3. 可以通过 actions 对接专有数据和功能
  4. 内置 DALL·E 3 文生图和 Code Interpreter 能力
  5. 只有 ChatGPT Plus 会员可以使用

字节跳动 Coze

  1. 可以免科学上网,免费使用 GPT-4 等 OpenAI 的服务!大羊毛!
  2. 只有英文界面,但其实对中文更友好
  3. Prompt 优化功能更简单直接

Dify

  1. 开源,中国公司开发
  2. 功能最丰富
  3. 可以本地部署,支持非常多的大模型
  4. 有 GUI,也有 API

百度文心大模型

  1. ERNIE-Bot - 支持 Function Calling

ChatGLM3-6B

  1. 和 OpenAI 1106 版之前完全一样
  2. 早已使用 tools 而不是 function 来做参数

讯飞星火 3.0

  1. 和 OpenAI 1106 版之前完全一样

5. Agent是什么

将大语言模型作为一个推理引擎,根据用户输入,智能体自动规划执行步骤,自动执行每步相应动作(选择并调用工具),最终完成用户指定的功能,直到任务完成。

这里的工具,可以是一个函数或三方 API,也可以把一个 Chain 或者 Agent 的 run()作为一个 Tool

6. 如果处理添加多个Agent?

支持 Agent 相互通信
记忆能力
在开发过程中,我发现,如果没有记忆能力,对于任务间有依赖关系的任务列表,就比较难实现,所以必须加入记忆能力,将一个大的任务的执行历史作为上下文,所有相关的 Agent 需要共享这个上下文去执行自己的任务。如果拆解的任务间没有依赖关系,那么,每个 Agent 都可以独立执行任务,不需要共享上下文。

7. RAG是什么?

检索增强的生成模型(Retrieval-Augmented Generation,RAG)结合了信息检索和生成模型的优势,能够在生成文本时引入外部知识和信息。

以下是检索增强的生成模型(RAG)的基本流程:

检索增强的生成模型(Retrieval-Augmented Generation,RAG)结合了信息检索和生成模型的优势,能够在生成文本时引入外部知识和信息。以下是检索增强的生成模型(RAG)的基本流程:

构建检索增强的生成模型(RAG)涉及多个步骤,包括准备数据、将私有知识库内容经过 embedding 存入向量知识库、训练模型和优化过程、用户每一次提问,把问题也 embedding,并利用向量相关性算法(例如余弦算法)找到向量知识库最匹配的几个片段。

构建 RAG 模型的步骤:

  1. 准备数据

    • 知识库准备:准备一个包含丰富信息的知识库或文本数据集,用于信息检索阶段。
    • 查询-文本对:构建查询和相关文本的对应数据,文档加载,并按一定条件切割成片段,用于训练检索模型和生成模型。
  2. 训练信息检索模型

    • 信息检索模型:训练一个用于从知识库中检索相关文本的模型,将切割的文本片段灌入检索引擎,例如使用 BM25 算法或神经网络模型。
    • 查询表示学习:学习如何表示查询以有效检索相关文本。
  3. 训练生成模型

    • 生成模型选择:选择一个适合的生成模型,如 GPT 系列模型。
    • Fine-tuning:使用查询-文本对数据对生成模型进行微调,以使其能够更好地生成与查询相关的文本。并封装检索接口
  4. 检索阶段(Retrieval Stage)调用流程 Query -> 检索 ->

  • 输入问题(Query):用户提出一个问题或者查询。
  • 信息检索(Information Retrieval):使用训练好的信息检索模型,从知识库或文本中检索相关的信息和文本片段。
  • 候选文本(Candidate Text):根据查询,系统选择一组候选文本作为生成阶段的输入。
  1. 生成阶段(Generation Stage) -> Prompt -> LLM -> 回复
  • 生成器模型(Generator Model):使用生成模型(如 GPT 系列)作为生成器,接收候选文本和查询作为输入。
  • 信息融合(Information Fusion):生成器模型结合查询和候选文本,生成回答或文本输出。
  • 输出结果(Output):生成的文本结果可以是对查询的回答、解释、摘要等。
  1. 反馈与迭代
  • 反馈机制(Feedback Mechanism):根据生成的结果,系统可以进行反馈和迭代,进一步优化检索和生成过程。
  • 迭代优化(Iterative Optimization):根据用户反馈和系统性能,不断优化检索和生成模型,提高结果质量。

RAG 的优势和应用场景:

  • 引入外部知识:通过检索阶段引入外部知识,提高生成文本的相关性和质量。
  • 适用广泛:适用于问答系统、对话系统、摘要生成等多种自然语言处理任务。
  • 个性化输出:可以根据不同查询和候选文本生成个性化的回答或文本。
  • 提高生成质量:结合检索和生成的优势,提高生成文本的准确性和多样性。

检索增强的生成模型(RAG)的流程结合了信息检索和生成模型的优势,能够更好地应对复杂的自然语言处理任务,并在生成文本时引入外部知识,提高文本的相关性和质量。

8. 离线和在线的RAG怎么构建?

  • 离线步骤:

    1. 文档加载
    2. 文档切分
    3. 向量化
    4. 灌入向量数据库
  • 在线步骤:

    1. 获得用户问题
    2. 用户问题向量化
    3. 检索向量数据库
    4. 将检索结果和用户问题填入 Prompt 模版
    5. 用最终获得的 Prompt 调用 LLM
    6. 由 LLM 生成回复

9. 构建的RAG,效果很差怎么办?

  1. 检查预处理效果:文档加载是否正确,切割的是否合理
  2. 测试检索效果:问题检索回来的文本片段是否包含答案
  3. 测试大模型能力:给定问题和包含答案文本片段的前提下,大模型能不能正确回答问题

10. 向量模型是什么?M3E是什么?

向量模型是一种文本表示和相似度计算的方法。它将文本内容简化为向量空间中的向量运算,通过计算向量之间的相似性来度量文档间的相似性。

向量模型相对于布尔模型来说,能够分配给索引术语非二元的权重,反映每篇文档与用户查询的相关度,并按照相关度降序排列返回结果文档集。这样得到的结果集更符合用户的检索需求。

简单来说,向量模型就是一种把文本内容转化为数学向量的方式,让我们可以更方便地计算文本之间的相似度。

  • M3E模型是一个开源文本嵌入 Embedding 模型,全称Moka Massive Mixed Embedding。它是由MokaAI训练、开源和评测的。
  • M3E模型在千万级(2200w+)的中文句对数据集上进行训练,支持中英双语的同质文本相似度计算和异质文本检索等功能。
  • 未来还计划支持代码检索Embedding。包含 m3e-small、m3e-base、m3e-large 等多个版本,支持微调和本地部署。

11. 向量模型有哪些?

ChatGPT-Embedding
OpenAI 公司提供,以接口形式调用,可以支持输出不同维度的结果。

M3E
M3E模型是一个文本嵌入模型,全称Moka Massive Mixed Embedding。它是由MokaAI训练、开源和评测的。

BGE
BGE 由北京智源人工智能研究院发布,同样是一款功能强大的开源 Embedding 模型,包含了支持中文和英文的多个版本,支持微调和本地部署。

  • BGE-M3是首个集多语言(Multi-Linguality)、多粒度(Multi-Granularity)、多功能(Multi-Functionality)三大技术特征于一体的语义向量模型,极大提升了语义向量模型在现实世界的可用性。

BGE-M3支持超过100种语言的语义表示及检索任务,多语言、跨语言能力全面领先(Multi-Lingual)
BGE-M3最高支持8192长度的输入文本,高效实现句子、段落、篇章、文档等不同粒度的检索任务(Multi-Granularity)
BGE-M3同时集成了稠密检索、稀疏检索、多向量检索三大能力,一站式支撑不同语义检索场景(Multi-Functionality)

小建议:

  1. 使用场景主要中文,可以用 m3e 、bge系列的模型
  2. 数据隐私不是特别重要的场景,建议使用 openai-ada-002,测试下来效果还是最好的
  3. 代码场景,建议也使用 ada-002

12. 向量数据库是什么?

向量数据库是一种存储和检索高维向量数据的数据库系统,它使用向量模型来存储和查询数据。通过向量模型,向量数据库可以将文本、图像、音频等非结构化数据转化为向量,从而实现向量之间的相似度计算和检索。

这种数据库在处理大规模高维数据时具有优势,因此被广泛应用于信息检索、推荐系统、智能客服等领域。

向量数据库的作用:

  1. 相似性搜索:向量数据库允许用户根据数据的语义或上下文含义进行搜索,而不是依赖于精确匹配或预定义的标准查询。

  2. 多模态数据处理:它能够处理多种类型的数据,如文本、图像、音频等,并将它们转换为统一的向量表示形式。

  3. 提高效率:通过向量化,可以减少数据的存储空间,并加快搜索和检索的速度。

  4. 支持复杂查询:向量数据库支持复杂的查询操作,如范围搜索、最近邻搜索等,这些在传统数据库中难以实现。

详细解释可以查看easylikeYuan的推文,《如何挑选适合自己项目的向量数据库?一起来看看》

13. 向量数据库有哪些?

milvus
milvus向量数据库是一个开源的向量数据库,专门设计用于存储、索引和管理,由深度神经网络和其他机器学习模型生成的大规模嵌入向量。它提供了易于使用的API和良好的扩展性,它能够处理万亿级别的向量数据,在处理大规模高维数据时具有优势,也非常适用于处理复杂查询、大量数据和非结构化数据。

通过向量模型,milvus可以将文本、图像、音频等非结构化数据转化为向量,从而实现高效的相似度计算和检索。
pg:GLM推荐使用

pgvector
pgvector是PostgreSQL的开源扩展,允许你在数据库中存储和查询向量嵌入。
它带来了强大的矢量相似性搜索功能,与Postgres无缝集成,让你可以将矢量与其他数据类型一起存储,并享受Postgres的全套功能,如ACID合规性和时间点恢复。

pgvector支持精确和近似近邻搜索,以及多种度量方式,如L2距离、内积和余弦距离。

ElasticSearch
ElasticSearch是位于Elastic Stack核心的分布式搜索和分析引擎。

它能够高效地存储、索引和搜索各种类型的数据,包括结构化、非结构化文本、数字数据和地理空间数据。

ElasticSearch提供了近乎实时的搜索和分析功能,使你能够超越简单的数据检索,聚合信息以发现数据中的趋势和模式。
随着数据和查询量的增长,ElasticSearch的分布式特性使其能够无缝扩展,同时支持向量检索

13. 问答系统怎么构建知识库?

构建知识库是构建问答系统的重要步骤之一。以下是构建知识库的一般步骤:

  1. 确定知识领域:首先需要确定问答系统的知识领域,例如医学、法律、技术等。
  2. 收集知识:在确定知识领域后,需要收集相关的知识。可以通过阅读书籍、论文、网页等来收集知识。
  3. 组织知识:收集到的知识需要进行组织和分类,以便于检索和使用。可以使用分类法、标签法等方法来组织知识。
  4. 存储知识:将组织好的知识存储在知识库中。可以使用关系型数据库、文档数据库、NoSQL 数据库等来存储知识。
  5. 维护知识库:知识库需要不断维护和更新,以确保其准确性和有效性。可以通过定期审核和更新知识库来维护知识库。

14. 问答系统怎么调用知识库?

向量数据库,是专门为向量检索设计的中间件

15. LangChain 是什么

LangChain 是一个用于构建和管理 AI 应用程序的框架。它提供了一种简单的方法来构建 AI 应用程序,使用自然语言处理技术来处理文本数据。

LangChain 框架包括一系列工具和模块,用于处理自然语言、构建知识库、训练模型和部署应用程序。它还提供了一个可视化界面,用于监控和管理 AI 应用程序。

LangChain 框架可用于构建各种类型的 AI 应用程序,例如聊天机器人、问答系统、文本分类器等。它的目标是帮助开发人员快速构建和部署高质量的 AI 应用程序。

统一封装了各种模型的调用接口,包括补全型和对话型两种
2. LangChain 提供了 PromptTemplate 类,可以自定义带变量的模板
3. LangChain 提供了一些列输出解析器,用于将大模型的输出解析成结构化对象;额外带有自动修复功能。
4. 上述模型属于 LangChain 中较为优秀的部分;美中不足的是 OutputParser 自身的 Prompt 维护在代码中,耦合度较高。

16. 怎么部署LLM、调用API接口?

17. llamaindex是什么?

llamaindex 是一种用于衡量语言模型性能的指标,它衡量的是语言模型预测下一个单词的能力。它的计算方法是将模型预测的下一个单词与真实的下一个单词进行比较,然后计算它们之间的编辑距离。编辑距离越小,说明模型预测的下一个单词越接近真实的下一个单词,因此 llamaindex 得分越高。

  • 一一一一一一一一一一一一一一一一一一一一一一一
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/586244
推荐阅读
相关标签
  

闽ICP备14008679号