跳转至

AI小词典⚓︎

约 5401 个字 预计阅读时间 18 分钟

感谢GPT-4在本页面编写过程中的协助

  • AI : Artificial Intelligence
  • AIGC: Artificial Intelligence Generated Contents AI生成内容

RLHF: Reinforcement learning from human feedback

Link.

是一种机器学习技术,其中“奖励模型(reward model)”通过直接的人类反馈进行训练,然后通过强化学习来优化人工智能Agent的性能。

  • LLaMa: Large Language Model Meta AI:参数更少60 ~ 数百亿个参数实现更好的模型效果;一个Meta开源的模型。分7B,13B,34B,70B,和text/chat/code/instruct等多种不同的微调版本。

LlamaIndex

简单来说,LlamaIndex 是一个方便的工具,可以充当您的自定义数据和 GPT-4 等大型语言模型 (LLM) 之间的桥梁,GPT-4 是能够理解类人文本的强大模型。无论您的数据存储在 API、数据库还是 PDF 中,LlamaIndex 都可以轻松地将这些数据与这些智能机器进行对话。这种桥梁构建使您的数据更易于访问和使用,为创建强大的自定义 LLM 应用程序和工作流铺平了道路。

  • data connectors 数据连接器 | data index 数据索引 | 引擎(翻译器?)

LlamaIndex 是您的首选平台,用于在自定义数据上创建由大型语言模型 (LLM) 提供支持的强大应用程序。无论是复杂的问答系统、交互式聊天机器人还是智能代理,LlamaIndex 都为您进入检索增强生成 (RAG) 领域的冒险奠定了基础。

什么是微调(Fine-tuning)

微调是指调整大型语言模型(LLM)的参数以适应特定任务的过程。

指令微调是指通过构建指令格式的实例,然后以有监督的方式对大语言模型进行微调。指令格式通常包含任务描述,一对输入输出以及示例(可选)。

什么是检索增强生成(RAG)

检索增强生成 (Retrieval Augmented Generation, invented in 2020) 用于使用从外部来源获取的事实来提高生成式 AI 模型的准确性和可靠性是一种技术。数据来源可以是私有或者专有数据源。它将检索模型(设计用于搜索大型数据集或知识库)和生成模型(例如大型语言模型 (LLM),此类模型会使用检索到的信息生成可供阅读的文本回复)结合在一起。

通过从更多数据源添加背景信息,以及通过训练来补充 LLM 的原始知识库,检索增强生成能够提高搜索体验的相关性。这能够改善大型语言模型的输出,但又无需重新训练模型。

对于诸如回答问题和内容生成等任务,具有极大价值,因为它能支持生成式 AI 系统使用外部信息源生成更准确且更符合语境的回答。它会实施搜索检索方法(通常是语义搜索或混合搜索)来回应用户的意图并提供更相关的结果。


Procedures:

  1. 检索:

RAG 从输入查询开始。这可以是用户的问题,也可以是需要详细回复的任意一段文本。

检索模型会从知识库、数据库或外部来源(或者同时从多个来源)抓取相关信息。模型在何处搜索取决于输入查询所询问的内容。检索到的这一信息现在可以作为模型所需要的任何事实或背景信息的参考来源。

检索到的信息会被转化为高维度空间中的向量。这些知识向量会被存储在向量数据库中。

向量模型会基于与输入查询的相关性,对检索到的信息进行排序。分数最高的文档或段落会被选中,以进行进一步的处理。

  1. 生成

接下来,生成模型(例如 LLM)会使用检索到的信息来生成文本回复。 生成的文本可能会经过额外的后处理步骤,以确保其语法正确,语义连贯。 整体而言,这些回复更加准确,也更符合语境,因为这些回复使用的是检索模型所提供的补充信息。在缺少公共互联网数据的专业领域,这一功能尤其重要。

  • LLM:Large Language Model;
  • Vercel:?
  • Wolfram Alpha: 这是一款在线问答工具,与常见搜索引擎的最大不同之处,就是它能直接返回问题的答案,并附上详尽的答案数据与图表信息供用户参考。这些数据均来自各大学术网站、出版刊物与科学机构,因此其专业性毋庸置疑。

    🐌:可以补充的一些功能:数学计算、理论和方法

  • CI / CD?

  • Codium
  • Emacs:

    Emacs ,最初名为 EMACS(“Editor MACroS”的首字母缩写词),是一个以可扩展性为特征的文本编辑器家族。 使用最广泛的变体 GNU Emacs 的手册将其描述为“可扩展、可定制、自文档化、实时显示编辑器”。 第一个 Emacs 的开发始于 20 世纪 70 年代中期,其直接后代 GNU Emacs 的工作仍在积极进行;最新版本为 28.2,于 2022 年 9 月发布。 Emacs 有超过 10,000 个内置命令,其用户界面允许用户将这些命令组合成宏以自动执行工作。 Emacs 的实现通常具有 Lisp 编程语言的方言,允许用户和开发人员为编辑器编写新的命令和应用程序。

  • Neovim: 类似Emacs?

    Embedding:词嵌入

什么是LLM中的Quantization

量化是一种表示模型权重的技术,通常以 32 位浮点数表示,具有较低精度的数据,例如 16 位浮点数、16 位整数、8 位整数甚至 4/3/2 位整数,节省内存带宽。量化的好处包括更小的模型大小、更快的微调和更快的推理。在资源受限的环境中,例如单 GPU 或 Mac 或移动设备(例如 https://github.com/ggerganov/llama.cpp),量化对于微调模型或运行推理是必需的。参考PyTorch写的权威介绍

有关大模型的prompt见

clickbait: 标题党

  • AutoGPT

    AI 驱动的一个应用程序;LLM自动创建和处理各种工作、简化数据分析、报告等内容;甚至可以分解->把任务分解后逐个完成;

  • ChatGPT: Generative Pre-trained Transformer
    • GPT 3.5 ~ GPT 4
  • Claude: 类ChatGPT软件。需要🪜。

    安装教程:https://www.jianshu.com/p/b4a0211cae97。支持Google mail和Apple ID登录。类似于加入群组的讨论方式。

    他们的API挺难搞的,但是Claude的情商看起来还不错

    我个人是直接在Slack上使用。感觉很不错

什么是LoRA(Low Rank Adaptation)

是大型语言模型中使用的一种方法,用于提高其下游任务的性能,特别是那些需要生成连贯且流畅的文本的任务。

LoRA 背后的关键思想是通过在包含特定任务输出示例的小数据集上微调模型,使语言模型的响应适应当前的特定任务。 例如,如果我们想使用语言模型来生成产品评论,我们可以在现有产品评论的数据集上微调模型,以教会它生成更连贯和相关的评论。

LoRA 的工作原理是在模型的训练过程中添加分类任务。 在训练期间,模型会显示成对的输入文本和相应的标签,指示输入文本是否与当前任务相关。 该模型经过训练来预测每对的标签,这鼓励它学习有助于区分相关文本和不相关文本的特征。 一旦以这种方式对模型进行了微调,它就可以用于生成更可能与目标任务相关且连贯的文本。

在实践中,LoRA 通常与其他技术(例如掩码语言建模和下一句预测)相结合,以创建多任务学习设置。 这个想法是使用多个任务来鼓励模型学习对各种 NLP 任务有用的丰富特征。 通过将 LoRA 与其他技术相结合,可以训练大型语言模型,这些模型可以在多种任务上表现良好,而无需特定于任务的架构或大量特定于任务的训练数据。

内容来自Llama 2

  • cloudflare:
  • LangChain: 旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。

    • 词嵌入(文本相似性、分类)
    • 聊天机器人
    • 大型语言模型(LLM)
    • 特性:
      1. LLM 和提示:LangChain 使管理提示、优化它们以及为所有 LLM 创建通用界面变得容易。此外,它还包括一些用于处理 LLM 的便捷实用程序。
      2. 链(Chain):这些是对 LLM 或其他实用程序的调用序列。LangChain 为链提供标准接口,与各种工具集成,为流行应用提供端到端的链。
      3. 数据增强生成:LangChain 使链能够与外部数据源交互以收集生成步骤的数据。例如,它可以帮助总结长文本或使用特定数据源回答问题。
      4. Agents:Agents 让 LLM 做出有关行动的决定,采取这些行动,检查结果,并继续前进直到工作完成。LangChain 提供了代理的标准接口,多种代理可供选择,以及端到端的代理示例。
      5. 内存:LangChain 有一个标准的内存接口,有助于维护链或代理调用之间的状态。它还提供了一系列内存实现和使用内存的链或代理的示例。
      6. 评估:很难用传统指标评估生成模型。这就是为什么 LangChain 提供提示和链来帮助开发者自己使用 LLM 评估他们的模型。
  • Azure: 云计算、云服务;微软公司

    Microsoft Azure是微软基于云计算的操作系统,原名“Windows Azure”,和Azure Services Platform一样,是微软“软件和服务”技术的名称。Microsoft Azure的主要目标是为开发者提供一个平台,帮助开发可运行在云服务器、数据中心、Web和PC上的应用程序。云计算的开发者能使用微软全球数据中心的储存、计算能力和网络基础服务。Azure服务平台包括了以下主要组件:Microsoft Azure,Microsoft SQL数据库服务,Microsoft .Net服务,用于分享、储存和同步文件的Live服务,针对商业的Microsoft SharePoint和Microsoft Dynamics CRM服务

    网站、虚拟机、云服务、移动应用服务、大数据支持以及媒体功能的支持

卡!

  • 显卡 :(Video card,Graphics card)全称显示接口卡,又称显示适配器,是计算机最基本配置、最重要的配件之一。就像电脑联网需要网卡,主机里的数据要显示在屏幕上就需要显卡。因此,显卡是电脑进行数模信号转换的设备,承担输出显示图形的任务。具体来说,显卡接在电脑主板上,它将电脑的数字信号转换成模拟信号让显示器显示出来。
    • 原始的显卡一般都是集成在主板上,只完成最基本的信号输出工作,并不用来处理数据。随着显卡的迅速发展,就出现了GPU的概念,显卡也分为独立显卡和集成显卡。
  • 计算机指令集:指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。而指令集的先进与否,也关系到CPU的性能发挥,它也是CPU性能体现的一个重要标志。
    • (x86 (主流电脑的)/ ARM ):CPU架构,如何操纵、控制CPU;X86更快;此外,ARM具有其与X86架构电脑不可对比的优势,该优势就是:功耗。Apple M2用的也是ARM架构;
    • 复杂指令集(CISC)和精简指令集(RISC);
  • CPU:显卡之前进行处理(运算、建模,显卡负责后面的显示等步骤):CPU和显卡在一个程序的运行中各司其职,有先有后,互相影响。CPU的处理速度决定了显卡能否全速运行,显卡的处理速度也影响着最终呈现的效果。GPU之于显卡,就相当于CPU之于电脑的关系。
    • 也就是说电脑运行的软件有的对CPU要求高,有的对CPU要求低。如果使用i5+GTX 1070的配置运行一款对CPU要求高而对显卡要求低的程序,那么CPU满载而显卡不满载,是很正常的;相反,如果运行一款对CPU要求低而对显卡要求高的程序,CPU就不会满载而显卡则会满载
  • GPU:GPU是显卡上的一块芯片,就像CPU是主板上的一块芯片。那么1999年之前显卡上就没有GPU吗?当然有,只不过那时候没有人给它命名,也没有引起人们足够的重视,发展比较慢。 自Nvidia提出GPU这个概念后,GPU就进入了快速发展时期。简单来说,其经过了以下几个阶段的发展:1)仅用于图形渲染,此功能是GPU的初衷,这一点从它的名字就可以看出:Graphic Processing Unit,图形处理单元;2)后来人们发现,GPU这么一个强大的器件只用于图形处理太浪费了,它应该用来做更多的工作,例如浮点运算。怎么做呢?直接把浮点运算交给GPU是做不到的,因为它只能用于图形处理(那个时候)。最容易想到的,是把浮点运算做一些处理,包装成图形渲染任务,然后交给GPU来做。这就是GPGPU(General Purpose GPU)的概念。不过这样做有一个缺点,就是你必须有一定的图形学知识,否则你不知道如何包装。
    • 在没有GPU之前,基本上所有的任务都是交给CPU来做的。有GPU之后,二者就进行了分工,CPU负责逻辑性强的事物处理和串行计算,GPU则专注于执行高度线程化的并行处理任务(大规模计算任务)。为什么这么分工?这是由二者的硬件构成决定的。

CUDA

CUDA(Compute Unified Device Architecture),通用并行计算架构,是一种运算平台。它包含CUDA指令集架构以及GPU内部的并行计算引擎。你只要使用一种类似于C语言的CUDA C语言,就可以开发CUDA程序,从而可以更加方便的利用GPU强大的计算能力,而不是像以前那样先将计算任务包装成图形渲染任务,再交由GPU处理。

  • NVIDA :创始人黄仁勋(美籍华人);1999年,NVIDIA定义了GPU,这极大地推动了PC游戏市场的发展,重新定义了现代计算机图形技术,并彻底改变了并行计算。2017年6月,入选《麻省理工科技评论》“2017 年度全球50大最聪明公司”榜单。
    • NVIDIA公司专门打造面向计算机、消费电子和移动终端,能够改变整个行业的创新产品。这些产品家族正在改变视觉丰富和运算密集型应用例如视频游戏、电影产业、广播、工业设计、财政模型、空间探索以及医疗成像;
  • AMD:AMD半导体公司专门为计算机、通信和消费电子行业设计和制造各种创新的微处理器(CPU、GPU、主板芯片组、电视卡芯片等),以及提供闪存和低功率处理器解决方案;

  • RTX 3090 / RTX 4090 / 2080: NVIDA 的显卡的型号;里面集成了CUDA 和 GPU 等上述内容;RTX的意思就是实时光线追踪。

    P.S. 了解一下:电竞显卡。4k~6k RMB起步? 建模、光线追踪、求导运算

  • Amphere 架构和图灵架构:新的GPU的架构

  • NVIDIA A100是首款基于NVIDIA Ampere架构的GPU。作为一款通用型工作负载加速器,A100还被设计用于数据分析、科学计算和云图形。

  • HuggingFace。开源框架transformers.

    1. Datasets:数据集,以及数据集的下载地址
    2. Models:各个预训练模型
    3. course:免费的nlp课程,可惜都是英文的
    4. docs:文档
  • Transformers:利用注意力机制来提高模型训练速度的模型(Attention is all you need)。

    • Attention: 注意力机制: 一般transformer模型有三个部分组成:
    • 1.tokennizer;Tokenizer就是把输入的文本做切分,然后变成向量
    • 2.Model;Model负责根据输入的变量提取语义信息,输出logits;Model又可以分为三种模型,针对不同的NLP任务,需要选取不同的模型类型:
      • Encoder模型(如Bert,常用于句子分类、命名实体识别(以及更普遍的单词分类)和抽取式问答。),
      • Decoder模型(如GPT,GPT2,常用于文本生成),
      • sequence2sequence模型(如BART,常用于摘要,翻译,生成性问答等)
    • 3.Post processing。最后Post Processing根据模型输出的语义信息,执行具体的nlp任务,比如情感分析,文本自动打标签等;可见Model是其中的核心部分,
  • PyTorch:

  • 什么是QKV?
  • Bert / Transformers /
  • PyTorch / Tensorflow
  • LLM : Large Language Model

discord⚓︎

  • discord: (我的midjourney 和 网页版zlibrary都跳转到这个软件上了

  • https://zhuanlan.zhihu.com/p/540400071

  • Discord 是一款免费的通讯软件,让你可以与你的好友,游戏社群以及游戏开发者们进行语音,视频及文字聊天。这款软件有着数亿用户,使其成为了世界上最受欢迎的与线上的好友建立连接的方式之一。Discord 可以在几乎全部流行的平台与设备上使用,例如 Windows、macOS、Linux、iOS、iPadOS 和 Android,也可以通过网页浏览器运行。
  • 可以建立自己相应的服务器
  • 你也可以创建一个链接,让任何持有链接的人无需直接被你邀请,而是通过该链接加入服务器。当其他人将该链接输入浏览器地址栏时,将会在应用中跳转到你的服务器

  • DNN

  • CNN

  • RNN

  • GCN

关于论文及其写作⚓︎

  • 什么是arxiv:arXiv是由康奈尔大学运营维护的一个非盈利的数据库,由于免费,学术研究人员可以在其他顶会或者期刊没有录用之前,将自己最新的研究成果发布到该平台上,一方面是为了扩大宣传提升自己的影响力;另外一方面是为了保护自己的科研成果,因为无论会议和期刊从投出到最终可以检索,都需要长时间的等待,很难保证期间自己成果不被别人剽窃,arXiv可以证明论文的原创性。 arXiv主要涉及物理、数学、计算机科学、定量生物学、定量金融、统计学、电气工程与系统科学、经济学等领域。

    • 预印本(Preprint)指尚未经过同行评议,没有在正规科学期刊上正式发表的论文初稿。它可以是完全没有投稿的论文,或者是投稿了但并未被期刊接受(正在评审等环节、或已经拒稿)的论文。需要注意的是:arxiv平台上是没有同行参与评议的,所以预印本的质量完全没有保证,论文初稿挂在arXiv上并不代表你正式发表了论文。
  • 什么是PineCone?

  • JAR(Java Archive ,)是一种与平台无关的文件格式,可将多个文件合成一个文件。用户可将多个 Java applet 及其所需组件(.class 文件、图像和声音)绑定到 JAR 文件中,而后作为单个的简单 HTTP(Hypertext Tranfer Protocal,超文本传输协议)事务下载到浏览器中,从而大大提高下载速度。JAR 格式也支持压缩,从而减小了文件的大小,进一步缩短下载时间。另外,applet 编写者也可在 JAR 文件中用数字签名的方式签写各项以确认其来源。它用 Java 编写,可与现有的 applet 代码完全向后兼容且可充分扩展。

  • JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。

  • .class

  • JVM

  • javac

  • cmake

  • Google Colab:我的神!