《这就是ChatGPT》读书笔记

书名:这就是ChatGPT
作者:[美] 斯蒂芬·沃尔弗拉姆(Stephen Wolfram)
ChatGPT在做什么?
ChatGPT可以生成类似于人类书写的文本,它基本任务是弄清楚如何针对它得到的任何文本产生“合理的延续”。当ChatGPT写一篇文章时,它实质上只是在一遍又一遍地询问“根据目前的文本,下一个词应该是什么”,并且每次都添加一个词。更准确地说,它是每次都添加一个“标记”(token),而标记可能只是词的一部分。这就是它有时可以“造词”的原因。
可以简单的将ChatGPT做的事情看作是“单字接龙”,它总是根据概率选择下一个字,但是这些概率是从何而来的呢?
最佳思路是建立一个模型,让我们能够估计序列出现的概率。ChatGPT的核心正是所谓的“大语言模型”。
什么是模型?
假设你想(像16世纪末的伽利略一样)知道从比萨斜塔各层掉落的炮弹分别需要多长时间才能落地。当然,你可以在每种情况下进行测量并将结果制作成表格。不过,你还可以运用理论科学的本质:建立一个模型,用它提供某种计算答案的程序,而不仅仅是在每种情况下测量和记录。
模型是指有某种特定的基本结构,以及用于拟合数据的一定数量的“旋钮”(也就是可以设置的参数)。
对于ChatGPT,我们需要为人脑产生的人类语言文本建立模型。
如果函数给出的结果总是与人类的意见相符,那么我们就有了一个“好模型”。
LLM 容易产生所谓的 “幻觉”,即生成看似合理但实际并非真实的输出,这是因为 LLM 在训练时是基于训练数据中的模式预测下一个最可能的词,而非真正理解信息。
神经网络
用于图像识别等任务的典型模型到底是如何工作的呢?目前最受欢迎而且最成功的方法是使用神经网络。可以视作对大脑工作机制的简单理想化。
神经网络可以被视为根据其输入和权重计算的一个数学函数。可以执行各种任务,还可以通过逐步“根据样例训练”来学习执行这些任务
神经网络的基本思想是利用大量简单(本质上相同)的组件来创建一个灵活的“计算结构”,并使其能够逐步通过学习样例得到改进。
神经网络的一个重要特征是说到底和计算机一样只是在处理数据。
如果有一个足够大的神经网络,那么你可能能够做到人类可以轻易做到的任何事情。
嵌入
神经网络以目前的设置来说,基本上是基于数的。因此,如果要用它来处理像文本这样的东西,我们需要一种用数表示文本的方法。
可以将嵌入视为一种尝试通过数的数组来表示某些东西“本质”的方法,其特性是“相近的事物”由相近的数表示,这就是“嵌入”(embedding)的思想。我们可以将词嵌入视为试图在一种“意义空间”中布局词,其中“在意义上相近”的词会出现在相近的位置。如果测量这些向量之间的距离,就可以找到词之间的“相似度”。
如何才能构建这样的嵌入呢?大致的想法是查看大量的文本(这里查看了来自互联网的50亿个词),然后看看各个词出现的“环境”有多“相似”。例如,alligator(短吻鳄)和crocodile(鳄鱼)在相似的句子中经常几乎可以互换,这意味着它们将在嵌入中被放在相近的位置。但是,turnip(芜菁)和eagle(鹰)一般不会出现在相似的句子中,因此将在嵌入中相距很远。
ChatGPT的内部原理
从根本上说,ChatGPT是一个专门为处理语言而设置的庞大的神经网络,ChatGPT的总体目标是根据所接受的训练(查看来自互联网的数十亿页文本,等等),以“合理”的方式续写文本。它最显著的特点是一个称为Transformer的神经网络架构,Transformer引入了“注意力”的概念。
Transformer的思想是,为组成一段文本的标记序列做与此相似的事情。但是,Transformer不是仅仅定义了序列中可以连接的固定区域,而是引入了“注意力”的概念。
它的操作分为三个基本阶段:
● 第一阶段,它获取与目前的文本相对应的标记序列,并找到表示这些标记的一个嵌入(即由数组成的数组);
● 第二阶段,它以“标准的神经网络的方式”对此嵌入进行操作,值“像涟漪一样依次通过”网络中的各层,从而产生一个新的嵌入(即一个新的数组);
● 第三阶段,它获取此数组的最后一部分,并据此生成包含约50000个值的数组,这些值就成了各个可能的下一个标记的概率。(没错,使用的标记数量恰好与英语常用词的数量相当,尽管其中只有约3000个标记是完整的词,其余的则是片段。)
这条流水线的每个部分都由一个神经网络实现,其权重是通过对神经网络进行端到端的训练确定的。换句话说,除了整体架构,实际上没有任何细节是有“明确设计”的,一切都是从训练数据中“学习”来的。
当ChatGPT要生成一个新的标记时,它总是“读取”(即获取为输入)之前的整个标记序列,包括ChatGPT自己先前“写入”的标记。
个人常用的GPT工具推荐
文生文:
kimi
智谱清言
文生图
即梦
个人书评
这本书是看小红书推荐的,OpenAI的CEO称之为“对ChatGPT原理最佳的解释”,本书包含作者在ChatGPT问世后不久写的两篇长文。第一篇介绍了ChatGPT,第二篇则展望了ChatGPT的未来,第二篇我没读,只读了第一篇。第一篇介绍了ChatGPT在做什么,并且一步一步推导如何通过计算机生成语言文字解释了它为何拥有像人类一样的生成语言的能力,推导过程中还会解释重要的概念,但是个人感觉并不适合完全新手小白阅读,像我读起来很吃力,很多内容读不太懂,但是我觉得不是作者的问题,是我文化水平的问题,所以我给这本书4颗星,满分5颗星。

相关文章:
《这就是ChatGPT》读书笔记
书名:这就是ChatGPT 作者:[美] 斯蒂芬沃尔弗拉姆(Stephen Wolfram) ChatGPT在做什么? ChatGPT可以生成类似于人类书写的文本,它基本任务是弄清楚如何针对它得到的任何文本产生“合理的延续”。当ChatGPT写…...
更专业的汽车软件研发工具链,怿星重磅发布新产品
怿星科技在2024北京国际车展同期举办主题为“创新引领未来——聚焦智能汽车软件新基建”的新产品发布会,重磅推出1款绝对优势产品和4套场景解决方案。同时举行了4场热点技术研讨:国产工具链的机遇与挑战、新架构下的的车载DDS应用探索及测试方案介绍、软…...
Stable Diffusion:AI绘画的新纪元
摘要: Stable Diffusion(SD)作为AI绘画领域的新星,以其开源免费、强大的生成能力和高度的自定义性,正在引领一场艺术与技术的革命。本文旨在为读者提供Stable Diffusion的全面介绍,包括其原理、核心组件、安…...
有5个excel表,每个表有6列。用python把这5个表合成1个表。
要将五个Excel表格合并成一个表格,我们可以使用pandas库,它提供了一个简单且强大的方式来处理和分析数据。下面是一个步骤说明和示例代码: 步骤: 安装pandas和openpyxl(如果你还没有安装的话):…...
【回溯算法】【Python实现】最大团问题
文章目录 [toc]问题描述回溯算法Python实现时间复杂性 问题描述 给定无向图 G ( V , E ) G (V , E) G(V,E),如果 U ⊆ V U \subseteq V U⊆V,且对任意 u u u, v ∈ U v \in U v∈U有 ( u , v ) ∈ E (u , v) \in E (u,v)∈E,则称…...
CMakeLists.txt语法规则:foreach 循环基本用法
一. 简介 cmake 中除了 if 条件判断之外,还支持循环语句,包括 foreach()循环、while()循环。 本文学习 CMakeLists.txt语法中的循环语句。 CMakeLists.txt语法中 有两种 循环实现方式:foreach循环与 while循环。 二. CMakeLists.txt语法规则…...
redis集群-主从机连接过程
首先从机需要发送自身携带的replid和offset向主机请求连接 replid:replid是所有主机在启动时会生成的一个固定标识,它表示当前复制流的id,当从机第一次请求连接时,主机会将自己的replid发送给从机,从机在接下来的请求…...
去哪里找高清视频素材?推荐几个短视频素材免费网站
在数字时代,视频内容的质量直接影响观众的吸引力和留存率。尤其是高清、4K视频素材和可商用素材,它们在提升视觉质量和叙事深度方面起到了至关重要的作用。以下是一些国内外的顶级视频素材网站,它们提供的资源将为您的创作提供极大的支持和灵…...
从互联网医院源码到搭建:开发视频问诊小程序的技术解析
如今,视频问诊小程序作为医疗服务的一种新形式,正逐渐受到人们的关注和青睐。今天,小编将为您详解视频问诊小程序的开发流程。 一、背景介绍 互联网医院源码是视频问诊小程序开发的基础,它提供了一套完整的医疗服务系统框架&…...
【Linux】常见指令(二)
mv指令 mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files) 是Linux系统下常用的命令,经常用来备份文件或者目录 功能: 1.剪切文件或者目录 2.对文件或者目录进行重命名 常用选项: -f …...
python元类与C#、Java中的反射
Python的元类和C#中的反射 在概念上有一定的相似性,但它们的目的和使用方式有所不同。 Python的元类: 元类(Metaclass)是控制类创建的类。它们定义了类的创建过程,可以修改类的行为。元类通过定制类的创建过程&…...
Echart.js绘制时间线并绑定事件
<template><div id"app"><!-- 定义一个具有指定宽高的容器,用于渲染图表 --><div ref"timeline" style"width: 800px; height: 600px;"></div></div> </template><script> import *…...
Flutter弹窗链-顺序弹出对话框
效果 前言 弹窗的顺序执行在App中是一个比较常见的应用场景。比如进入App首页,一系列的弹窗就会弹出。如果不做处理就会导致弹窗堆积的全部弹出,严重影响用户体验。 如果多个弹窗中又有判断逻辑,根据点击后需要弹出另一个弹窗,这…...
1290.二进制链表转整数
给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。 请你返回该链表所表示数字的 十进制值 。 示例 1: 输入:head [1,0,1] 输出:5 解释:二进制数 (101) 转化为十进制…...
P8803 [蓝桥杯 2022 国 B] 费用报销
P8803 [蓝桥杯 2022 国 B] 费用报销 分析 最值问题——DP 题意分析:从N张票据中选,且总价值不超过M的票据的最大价值(背包问题) K天限制 一、处理K天限制: 1.对于输入的是月 日的格式,很常用的方式是…...
【Android】Kotlin学习之Lambda表达式
java和kotlin对比 Lambda语法 Lambda隐形参数 it 也可以不使用指定的名称it, 可以 自定义 Lambda 使用下划线...
YOLOv5-7.0改进(四)添加EMA注意力机制
前言 关于网络中注意力机制的改进有很多种,本篇内容从EMA注意力机制开始! 往期回顾 YOLOv5-7.0改进(一)MobileNetv3替换主干网络 YOLOv5-7.0改进(二)BiFPN替换Neck网络 YOLOv5-7.0改进(三&…...
TCP协议的确认应答机制
TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层协议,它在网络通信中扮演着至关重要的角色。其中,确认应答机制是TCP协议中的一个核心概念,它确保了数据的可靠传输。本文将详细介绍J…...
【论文阅读笔记】MAS-SAM: Segment Any Marine Animal with Aggregated Features
1.论文介绍 MAS-SAM: Segment Any Marine Animal with Aggregated Features MAS-SAM:利用聚合特征分割任何海洋动物 Paper Code(空的) 2.摘要 最近,分割任何模型(SAM)在生成高质量的对象掩模和实现零拍摄图像分割方面表现出卓越…...
C语言中的精确宽度类型
概述 在 C 语言标准库 <stdint.h> 中定义了一系列精确宽度的整数类型,这些类型保证了它们的位数宽度,从而允许编写跨平台的可移植代码。以下是一些常用的精确宽度整数类型: int8_t: 8位有符号整数uint8_t: 8位无符号整数int16_t: 16位…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
