AGI(通用人工智能Artificial General Intelligence)知识点

通用人工智能AGI知识点

  • AGI
  • 1. prompt提示工程是什么?
  • 2. 怎么构建prompt?
  • 3. Function Calling是什么?
  • 4. RAG是什么?
      • 构建 RAG 模型的步骤:
      • RAG 的优势和应用场景:
  • 5. 离线和在线的RAG怎么构建?
  • 5. 构建的RAG,效果很差怎么办?
  • 10. m3e是什么
  • 11. 向量模型有哪些?
  • 5. 问答系统怎么构建知识库?
  • 6. 问答系统怎么调用知识库?
  • 7. 怎么部署LLM、调用API接口?
  • 8. llamaindex是什么?
  • 9. Langchain是什么?

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. 设计合适的提示:设计合适的提示需要考虑模型的能力和限制,以及目标任务的需求。提示应该尽可能清晰地表达期望的输出,同时避免过于复杂或模糊。
  2. 优化提示:优化提示可以通过调整提示的内容、格式和结构来提高模型的性能和准确性。这可能需要使用一些技术,如词向量、语言模型等。
  3. 评估提示:评估提示的效果是提示工程的重要环节。可以通过测试模型在不同提示下的输出,来评估提示的效果。
  4. 迭代优化:提示工程是一个迭代的过程,需要不断地优化和改进提示,以提高模型的性能和准确性。

注意要点:
大模型对prompt开头和结尾的内容更敏感,先定义角色,其实就是在开头把问题域收窄,减少二义性

2. 怎么构建prompt?

具体构建 prompt 的步骤如下:

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

3. 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 版之前完全一样

4. 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)的流程结合了信息检索和生成模型的优势,能够更好地应对复杂的自然语言处理任务,并在生成文本时引入外部知识,提高文本的相关性和质量。

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

  • 离线步骤:

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

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

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

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

10. m3e是什么

M3E向量模型是一款功能强大的开源 Embedding 模型,包含 m3e-small、m3e-base、m3e-large 等多个版本,支持微调和本地部署。

11. 向量模型有哪些?

ChatGPT-Embedding:
OpenAI 公司提供,以接口形式调用

M3E

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

小建议:

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

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

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

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

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

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

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

8. llamaindex是什么?

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

9. Langchain是什么?

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

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

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

  • 一一一一一一一一一一一一一一一一一一一一一一一

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/801198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SCI绘图】【热力图系列2 R】多特征相关性分析热力图指定聚类 R

SCI,CCF,EI及核心期刊绘图宝典,爆款持续更新,助力科研! 本期分享: 【SCI绘图】【热力图系列2 R】多特征相关性分析热力图指定聚类 R 1.环境准备 library(gplots) library(RColorBrewer)2.数据读取 ###…

VUE实现增删改查功能

Vue 中实现增删改查功能 增删改查(CRUD)是 Web 应用程序中的基本操作,它可以让我们在数据库中创建、读取、更新和删除数据。在 Vue.js 中实现 CRUD 功能相对简单。 创建 创建新记录时,我们将使用 v-model 双向绑定数据并向服务…

python小项目——时钟模拟

钟表是一种计时的装置,也是计量和指示时间的精密仪器。钟表的样式千变万化,但是用来显示时间的表盘相差无几,大多数钟表表盘的样式由刻度(共60个,围成圆形)、指针(时针、分针和秒针)…

SpringBoot中这样用ObjectMapper,才够优雅!

目录 背景步骤在SpringBoot项目中要实现对象与Json字符串的互转,每次都需要像如下一样new 一个ObjectMapper对象:这样的代码到处可见,有问题吗?我们要使用jmh测试几种方式的区别:所以在我们真正使用的时候不要在方法中…

JavaScript 书写位置

JS 分为三种使用方法,分别为行内,内嵌,外部。 行内式(不推荐使用) 行内就是 将 JS 代码直接写在 HTML 标签上 ,这种方式的结构、行为分离不够彻底,不利于后 期维护,复用性不强…

2024年3月30日~2024年4月7日周报

文章目录 一、前言二、创意收集2.1 多任务学习2.1.1 多任务学习的定义与优势2.1.2 多任务学习的分类 2.2 边缘检测2.2.1 基础理论2.2.2 sobel代码介绍2.2.3 canny代码介绍 三、《地震速度模型超分辨率的多任务学习》3.1 M-RUDSR架构3.2 详细介绍3.3 实验设置 四、实验五、小结5…

揭秘程序员面试技巧,助你轻松拿offer!

上文 程序员面试是求职者展现自身技术实力、沟通能力和职业素养的关键环节。为了在面试中脱颖而出,求职者需要掌握一些实用的面试技巧。以下将详细阐述程序员面试技巧,助您在面试中取得更好的成绩。 一、面试前准备 了解公司及职位 在面试前&#xff0…

操作系统与编程系列专栏(一):导言

在一间充满了键盘敲击声和低语讨论的办公室内,两位资深程序员,老马和老王,围绕着一个永恒的话题展开了讨论。他们的对话不仅引发了思考,也为那些在软件开发道路上前行的人提供了不少启示。 老马:“我觉得深入了解操作系…

【leetcode面试经典150题】18.整数转罗马数字(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

【LeetCode题解】2009. 使数组连续的最少操作数

文章目录 [2009. 使数组连续的最少操作数](https://leetcode.cn/problems/minimum-number-of-operations-to-make-array-continuous/)思路:一、排序去重滑动窗口代码: 2009. 使数组连续的最少操作数 思路:一、排序去重滑动窗口 1.对数组进行…

C语言代码块及块级作用域

代码块 所谓代码块,就是由{ }包围起来的代码。代码块在C语言中随处可见,例如函数体、选择结构、循环结构等。不包含代码块的C语言程序根本不能运行,即使最简单的C语言程序也要包含代码块。C语言允许在代码块内部定义变量,这样的变…

P8794 [蓝桥杯 2022 国 A] 环境治理

P8794 [蓝桥杯 2022 国 A] 环境治理 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include <iostream> using namespace std; #define ll long long const int N150; const int inf0x7fffffff; int n,q; int d[N][N],l[N][N]; int t[N][N]; void floyd() {for(int k0…

nandgame中的asm编程 Escape Labyrinth(逃离迷宫)

先翻译题目&#xff1a; 逃离迷宫计算机被困在火星上的迷宫中。编写一个程序&#xff0c;让它逃离迷宫。计算机配备了连接的轮子和前方障碍物探测器。与轮子和探测器的输入/输出是内存映射在地址7FFF上&#xff1a;对外设的输出信号&#xff1a; 位 设置为1代表&#xff1a; 2…

UE4_动画基础_ 使用分层动画(Using Layered Animations)

完成在移动过程中武器发射的角色制作&#xff01; 动画混合仅仅意味着在一个角色或骨架网格体上的两个或多个动画之间进行平滑过渡。在虚幻引擎4中&#xff0c;有多种方法可以应用这种混合&#xff0c;要么通过混合空间&#xff0c;或通过实际组合两个基于加权偏差或alpha值的…

C语言的数组

一、数组的赋值 对单个元素赋值 int a[3]; a[0] 3; a[1] 100; a[2] 34;整体赋值&#xff08;不指明数组长度&#xff09; float b[] { 23.3, 100.00, 10, 0.34 };整体赋值&#xff08;指明数组长度&#xff09; int m[10] { 100, 30, 234 };字符数组赋值 char str1[] &qu…

Java数组详解

​TOC 第一章、数组的概念介绍 1.1&#xff09;数组的概念 ①数组就是用来储存数据的容器,可以存储同一种类型的数据&#xff0c;是同一种数据类型的集合。实现对这些数据的统一管理。如果数组中存储的是基本类型数据&#xff0c;我就不能往里面存引用类型数据。数组中存储的…

全量知识系统 程序详细设计 “三次演算” 再探(QA)之1 (百度文库)

说明&#xff1a;以下关于全知系统中程序详细设计的沟通是基于今天正在完成中的全量知识系统 程序详细设计之“命名法” “正文”的" 前言" 之1 “前提”篇 中提出的所有程序要求的基础上的。 Q1.这些规则 在程序被设计为 λ表达式的三个转换规则&#xff0c;分别适…

CLIPSeg如果报“目标计算机积极拒绝,无法连接。”怎么办?

CLIPSeg这个插件在使用的时候&#xff0c;偶尔会遇到以下报错&#xff1a; Error occurred when executing CLIPSeg: (MaxRetryError("HTTPSConnectionPool(hosthuggingface.co, port443): Max retries exceeded with url: /CIDAS/clipseg-rd64-refined/resolve/main/toke…

【前端】深度选择器

升级vue2项目到vue3时候发现 the >>> and /deep/ combinators have been deprecated. Use :deep() instead.这是因为项目使用的 css 扩展语言是 dart-sass&#xff0c;不支持 /deep/ &#xff08;less/node-sass&#xff09;和 >>>&#xff08;css&#xff0…

14届蓝桥杯 C/C++ B组 T5 接龙排序 (最长上升子序列DP+优化)

不难发现这是一个LIS问题&#xff0c;但是如果直接套用LIS的模版&#xff0c;在数据范围到达 1 e 5 1e5 1e5 的情况下&#xff0c;就只能够得到一半的分数&#xff0c;所以我们需要对其进行优化。 首先给出暴力的代码&#xff1a; #include<iostream> using namespace…