大模型是如何工作的

近几十年来,人工智能经历了从基础算法到生成式AI的深刻演变。生成式AI通过学习大量数据可以创造出全新的内容,如文本、图像、音频和视频,这极大地推动了AI技术的广泛应用。常见的应用场景包括智能问答(如通义千问、GPT)、创意作画(如Stable Diffusion)以及代码生成(如通义灵码)等,涵盖了各个领域,让AI触手可及。

智能问答作为大模型最经典且广泛的应用之一,是我们探索大模型工作机制的最佳范例。接下来将介绍大模型在问答场景中的工作流程,帮助你更深入地理解其背后的技术原理。

1. 大模型的问答工作流程

下面以“ACP is a very”为输入文本向大模型发起一个提问,下图展示从发起提问到输出文本的完整流程。

大模型的问答工作流程有以下五个阶段:

第一阶段:输入文本分词化

分词(Token)是大模型处理文本的基本单元,通常是词语、词组或者符号。我们需要将“ACP is a very”这个句子分割成更小且具有独立语义的词语(Token),并且为每个Token分配一个ID。如有需要,你可以使用Tokenizer API计算Token。

第二阶段:Token向量化

计算机只能理解数字,无法直接理解Token的含义。因此需要将Token进行数字化转换(即转化为向量),使其可以被计算机所理解。Token向量化会将每个Token转化为固定维度的向量。

第三阶段:大模型推理

大模型通过大量已有的训练数据来学习知识,当我们输入新内容,比如“ACP is a very”时,大模型会结合所学知识进行推测。它会计算所有可能Token的概率,得到候选Token的概率集合。最后,大模型通过计算选出一个Token作为下一个输出。

这就解释了为什么当询问公司的项目管理工具时,模型无法提供内部工具的建议,这是因为其推测能力是基于已有的训练数据,对它未接触的知识无法给出准确的回答。因此,在需要答疑机器人回答私域知识时,需要针对性地解决这一问题,在本小节第3部分会进一步阐述。

第四阶段:输出Token

由于大模型会根据候选Token的概率进行随机挑选,这就会导致“即使问题完全相同,每次的回答都略有不同”。为了控制生成内容的随机性,目前普遍是通过temperature和top_p来调整的。

例如,下图中大模型输出的第一个候选Token集合为“informative(50%)”、“fun(25%)”、“enlightening(20%)”、“boring(5%)”。通过调整temperature或top_p参数,将影响大模型在候选Token集合中的选择倾向,如选择概率最高的“informative”。你可以在本小节 2.2 中进一步了解这两个参数。

特别地,“informative”会被继续送入大模型,用于生成候选Token。这个过程被称为自回归,它会利用到输入文本和已生成文本的信息。大模型采用这种方法依次生成候选Token。

第五阶段:输出文本

循环第三阶段和第四阶段的过程,直到输出特殊Token(如<EOS>,end of sentence,即“句子结束”标记)或输出长度达到阈值,从而结束本次问答。大模型会将所有生成的内容输出。当然你可以使用大模型的流式输出能力,即预测一些Token立即进行返回。这个例子最终会输出“ACP is a very informative course.”。

2 影响大模型内容生成的随机性参数

假设在一个对话问答场景中,用户提问为:“在大模型ACP课程中,你可以学习什么?”。为了模拟大模型生成内容的过程,我们预设了一个候选Token集合,这些Token分别为:“RAG”、“提示词”、“模型”、“写作”、“画画”。大模型会从这5个候选Token中选择一个作为结果输出(next-token),如下所示。

用户提问:在大模型ACP课程中,你可以学习什么?<br><br>

大模型回答:RAG <br>

在这个过程中,有两个重要参数会影响大模型的输出:temperature 和 top_p,它们用来控制大模型生成内容的随机性和多样性。下面介绍这两个参数的工作原理和使用方式。

2.1 temperature:调整候选Token集合的概率分布

在大模型生成下一个词(next-token)之前,它会先为候选Token计算一个初始概率分布。这个分布表示每个候选Token作为next-token的概率。temperature是一个调节器,它通过改变候选Token的概率分布,影响大模型的内容生成。通过调节这个参数,你可以灵活地控制生成文本的多样性和创造性。

为了更直观地理解,下图展示了不同temperature值对候选Token概率分布的影响。

图中的低、中、高温度基于通义千问Plus模型的范围[0, 2)划分。

由上图可知,温度从低到高(0.1 -> 0.7 -> 1.2),概率分布从陡峭趋于平滑,候选Token“RAG”从出现的概率从0.8 -> 0.6 -> 0.3,虽然依然是出现概率最高的,但是已经和其它的候选Token概率接近了,最终输出也会从相对固定到逐渐多样化。

针对不同使用场景,可参考以下建议设置 temperature 参数:

  • 明确答案(如生成代码):调低温度。

  • 创意多样(如广告文案):调高温度。

  • 无特殊需求:使用默认温度(通常为中温度范围)。

需要注意的是,当 temperature=0 时,虽然会最大限度降低随机性,但无法保证每次输出完全一致。如果想深入了解,可查阅 temperature的底层算法实现。

2.2 top_p:控制候选Token集合的采样范围

top_p 是一种筛选机制,用于从候选 Token 集合中选出符合特定条件的“小集合”。具体方法是:按概率从高到低排序,选取累计概率达到设定阈值的 Token 组成新的候选集合,从而缩小选择范围。

下图展示了不同top_p值对候选Token集合的采样效果。

图示中蓝色部分表示累计概率达到top_p阈值(如0.5或0.9)的Token,它们组成新的候选集合;灰色部分则是未被选中的Token。

当top_p=0.5时,模型优先选择最高概率的Token,即“RAG”;而当top_p=0.9时,模型会在“RAG”、“提示词”、“模型”这三个Token中随机选择一个生成输出。

由此可见,top_p值对大模型生成内容的影响可总结为:

  • 值越大 :候选范围越广,内容更多样化,适合创意写作、诗歌生成等场景。

  • 值越小 :候选范围越窄,输出更稳定,适合新闻初稿、代码生成等需要明确答案的场景。

  • 极小值(如 0.0001):理论上模型只选择概率最高的 Token,输出非常稳定。但实际上,由于分布式系统、模型输出的额外调整等因素可能引入的微小随机性,仍无法保证每次输出完全一致。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt常用控件之 纵向列表QListWidget

纵向列表QListWidget QListWidget 是一个纵向列表控件。 QListWidget属性 属性说明currentRow当前被选中的是第几行。count一共有多少行。sortingEnabled是否允许排序。isWrapping是否允许换行。itemAlignment元素的对齐方式。selectRectVisible被选中的元素矩形是否可见。s…

利用pdf.js+百度翻译实现PDF翻译,创建中文PDF

基于JavaScript的PDF文档解析与智能翻译系统开发实践 一、功能预览 1.1 PDF加载 1.2 PDF翻译 二、系统架构设计 2.1 PDF智能翻译系统架构设计 层级模块名称功能描述技术实现呈现层Canvas渲染器PDF文档可视化渲染PDF.js + 动态视口计算 + 矩阵变换

Java数据结构第十九期:解构排序算法的艺术与科学(一)

专栏&#xff1a;Java数据结构秘籍 个人主页&#xff1a;手握风云 目录 一、排序的概念及引用 1.1. 排序的概念 1.2. 排序的应用 1.3. 常见的排序算法 二、常见排序算法的实现 2.1. 直接插入排序 2.2. 希尔排序 一、排序的概念及引用 1.1. 排序的概念 所谓排序&#xf…

1.2TypeScript 类型系统在前端的革命性意义

文章目录 **一、前端开发的类型觉醒&#xff08;历史背景&#xff09;****二、类型系统的核心价值****三、类型系统与现代框架的化学反应****四、高级类型编程实战****五、工程化影响深度解析****六、生态系统的蝴蝶效应****七、企业级应用实践数据****八、类型系统的局限性***…

K8S学习之基础十九:k8s的四层代理Service

K8S四层代理Service 四层负载均衡Service 在k8s中&#xff0c;访问pod可以通过ip端口的方式&#xff0c;但是pod是由生命 周期的&#xff0c;pod在重启的时候ip地址往往会发生变化&#xff0c;访问pod就需要新的ip地址&#xff0c;这样就会很麻烦&#xff0c;每次pod地址改变就…

Varlens(手机上的单反)Ver.1.9.3 高级版.apk

Varlens 是一款专业级手机摄影软件&#xff0c;旨在通过丰富的功能和高自由度参数调节&#xff0c;让手机拍摄效果媲美微单相机。以下是核心功能总结&#xff1a; 一、核心功能 专业拍摄模式 支持手动/自动/程序模式&#xff0c;可调节ISO、快门速度、EV、白平衡等参数27 提供…

用Deepseek写一个 HTML 和 JavaScript 实现一个简单的飞机游戏

大家好&#xff01;今天我将分享如何使用 HTML 和 JavaScript 编写一个简单的飞机游戏。这个游戏的核心功能包括&#xff1a;控制飞机移动、发射子弹、敌机生成、碰撞检测和得分统计。代码简洁易懂&#xff0c;适合初学者学习和实践。 游戏功能概述 玩家控制&#xff1a;使用键…

物联网IoT系列之MQTT协议基础知识

文章目录 物联网IoT系列之MQTT协议基础知识物联网IoT是什么&#xff1f;什么是MQTT&#xff1f;为什么说MQTT是适用于物联网的协议&#xff1f;MQTT工作原理核心组件核心机制 MQTT工作流程1. 建立连接2. 发布和订阅3. 消息确认4. 断开连接 MQTT工作流程图MQTT在物联网中的应用 …

在Rocky Linux上安装Redis(DNF和源码安装)

一.前言 Redis 是一款高性能的 NoSQL 数据库&#xff0c;被广泛用于缓存、消息队列等场景。本教程将手把手教你如何在 Rocky Linux 上安装 Redis&#xff0c;包括使用 DNF 进行安装和源码编译安装的两种方式。 二. 使用 DNF 安装 Redis 1.安装redis sudo dnf -y install red…

江科大51单片机笔记【10】蜂鸣器(上)

一、蜂鸣器 1.原理 蜂鸣器是一种将电信号转换为声音信号的器件&#xff0c;常同来产生设备的按键音、报警音等提示信号蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器&#xff08;外观基本一样&#xff09;有源蜂鸣器&#xff1a;内部自带振荡源&#xff0c;将正负极接上直流…

Android设备是如何进入休眠的呢?

首先我们手机灭屏后&#xff0c;一般需要等一段时间CPU才真正进入休眠。即Android设备屏幕暗下来的时候&#xff0c;并不是立即就进入了休眠模式&#xff1b;当所有唤醒源都处于de-avtive状态后&#xff0c;系统才会进入休眠。在手机功耗中从灭屏开始到CPU进入休眠时间越短&…

011---UART协议的基本知识(一)

1. 摘要 文章为学习记录。主要介绍 UART 协议的概述、物理层、协议层、关键参数。 2. UART概述 通用异步收发传输器&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;&#xff0c;通常称作UART&#xff08;串口&#xff09;&#xff0c;是一种异步****串…

共绘智慧升级,看永洪科技助力由由集团起航智慧征途

在数字化洪流汹涌澎湃的当下&#xff0c;企业如何乘风破浪&#xff0c;把握转型升级的黄金机遇&#xff0c;已成为所有企业必须直面的时代命题。由由集团&#xff0c;作为房地产的领航者&#xff0c;始终以前瞻视野引领变革&#xff0c;坚决拥抱数字化浪潮&#xff0c;携手数字…

【leetcode100】组合总和Ⅱ

1、题目描述 给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意&#xff1a;解集不能包含重复的组合。 示例 1: 输入: candidates…

【cocos creator】热更新

一、介绍 试了官方的热更新功能&#xff0c;总结一下 主要用于安卓包热更新 参考&#xff1a; Cocos Creator 2.2.2 热更新简易教程 基于cocos creator2.4.x的热更笔记 二、使用软件 1、cocos creator v2.4.10 2、creator热更新插件&#xff1a;热更新manifest生成工具&…

open webui-二次开发-源码启动前后端工程-【超简洁步骤】

参考资料 openwebui docs 获取源码 git clone https://github.com/open-webui/open-webui && cd open-webui启动后端服务 cd backend conda create --name open-webui python3.11 conda activate open-webui pip install -r requirements.txt -U sh dev.sh没有cond…

软件工程笔记下

从程序到软件☆ 章节 知识点 概论☆ 软件的定义&#xff0c;特点&#xff0c;生存周期。软件工程的概论。软件危机。 1.☆软件&#xff1a;软件程序数据文档 &#xff08;1&#xff09;软件&#xff1a;是指在计算机系统的支持下&#xff0c;能够完成特定功能与性能的包括…

Manus AI Agent 技术解读:架构、机制与竞品对比

目录 1. Manus 是什么&#xff1f; 1.1 研发背景 1.2 技术特点 1.3 工具调用能力 1.4 主要应用场景 2. Manus 一夜爆火的原因何在&#xff1f; 2.1 技术突破带来的震撼 2.2 完整交付的产品体验 2.3 生态与开源策略 3. Manus 与其他 AI Agent 的对比分析 3.1 技术架构…

深入探讨 Docker 层次结构及其备份策略20250309

深入探讨 Docker 层次结构及其备份策略 本文将深入探讨 Docker 层次结构 以及在 不同场景下应选择哪种备份方式。通过本文的介绍&#xff0c;您将对如何高效地管理和迁移 Docker 容器有更深的理解。 &#x1f4cc; 什么是 Docker 层次结构&#xff1f; Docker 镜像采用了 分…

Rust语言:开启高效编程之旅

目录 一、Rust 语言初相识 二、Rust 语言的独特魅力​ 2.1 内存安全:消除隐患的护盾​ 2.2 高性能:与 C/C++ 并肩的实力​ 2.3 强大的并发性:多线程编程的利器​ 2.4 跨平台性:适配多环境的优势​ 三、快速上手 Rust​ 3.1 环境搭建:为开发做准备​ 3.2 第一个 R…