# 深度学习笔记(2)生成式AI
文章目录
前言
生成式AI的基础学习。
一、ChatGPT原理剖析
1.1 它的输出逻辑
ChatGPT并没有联网 ,它的内容可能没有那么有实时性。它真正做的事其实是-文字接龙。你输入的是什么是机器学习,输出的其实是一个可能的几率,比如机,好,器几率比较高(机最高,但是不一定就是机,只是在几个概率高的选择中选一个,所以chatgpt每次回答都是不一样的。)
.然后比如选择机,就把机加到原来的输入里,就会发现器的概率很高,就把器放到机后面继续输入
依次类推,chatgpt里会有一个符号提示结束,当输入这个结束符号后,chatgpt会认为结束了,就会把所有的答案输出来给你看。
1.2 它怎么考虑对话的上文呢?
它会在你输入的时候同时输入过去所有的对话内容。当然这个函数非常非常复杂,可能有几千亿个参数。
比如f(x)=ax + b这里就有两个参数a和b,那么chatgpt的参数就非常可怕了。
那么这个神奇的函数f是怎么找出来的呢?需要大量的资料和人类老师的教导
1.3 它的关键技术
Chat-GPT背后的关键技术:预选练(Pre-train)
一般的机器学习方法是这个样子的,你要去收集大量成对的中音对照例句,你要告诉机器说,如果今天输入是 i eat an apple,那你的输出就应该是我吃苹果。如果输入是 you eat an orange,那你输出应该是你吃橘子。我们要让机器学会英文翻中文,我们需要先有人类收集大量中英成对的例句,这种需要成对的东西来学习的技术叫做监督式的学习。那有了成对资料就可以找出一个函数f,那这个函数的 f 里面也许就包含了一些翻译的规则,比如说机器会知道输入是i,输出就要是我输入是you,输出会是你。那接下来给他一个句子,有 a apple,期待机器可以得到正确的翻译结果,那这是一般的机器学习的方式,又叫做监督式的学习。
那如果把监督学习的概念套用到 ChatGPT 上的话,那序列应该是这个样子的。首先要找很多的人类老师,他们去定好 ChatGPT 的输入跟输出的关系。你要告诉 ChatGPT 说有人问你世界第一高峰是哪一座,就回答珠穆朗玛峰。有人告诉你帮我修改这段文字,你就说好的,然后给他一个修改后的结果。有人说教我做坏事,那你就要说,嗯,这个是不对的啊。你要找大量的人给 ChatGPT 正确的输入跟输出。
那有了这些正确的输入跟输出以后,我们就可以让机器自动的找一个f,那找这个f 的目标是希望这个 f 可以做到,说当你输入世界第一高峰是哪一座?根据我们现在有的这些训练资料,机器就要知道说输入是世界第一高峰是哪一座,输出应该是珠穆朗玛峰的几率要比较大。然后接下来你告诉机器说台湾第一高峰是哪一座域,然后接下来输出山的几率应该要比较大,所以有了这些训练资料以后,机器就可以找到一个函式f,那这个函式 f 要满足我们的需求,让我们给一个输入的时候,它的输出会跟老师人类给的输出是接近的,但是很显然光是这样做是不够的,为什么?因为如果机器只根据老师的教导找出函式f,那他的能力会是非常有限的,因为老师可以提供的成对资料是非常有限的。
举例来说,假设这边的成对资料里面没有任何一句话提到喜马拉雅山,那当有人问机器说世界第一高峰是哪一个山峰的时候,他不可能回答喜马拉雅山,因为你在教他的过程中,他根本没看过喜马拉雅山这几个字,怎么可能让他指示出这个专有名词呢?所以今天人类可以提供给机器的资讯是很少的,所以机器如果只靠人类提供的资料来训练,那机器的知识会非常少,很多问题他就都会没有办法回答,所以怎么办呢?那 ChatGPT 的成功其实仰赖了另外一个技术,这个技术可以无痛的制造出大量成对的资料。事实上网络上的每一段文字都可以拿来教机器做文字接龙。你在网络上随便爬了一个句子,世界第一高峰是喜马拉雅山,你就把前半段当作是机器的输入,后半段管它是不是正确答案,都告诉机器说后半段就是正确答案。接下来你就叫机器去自己找一个函数f,这个函数 f 应该要做到说输入世界第一高峰是那洗的几率要越大越好,是那机器读到另外一个句子,今天天气真好。逗号,我要出去玩。那他就要知道说输入是今天天气真好,输出逗号的几率要越高越好。
GPT 做的事情就是单纯从网络上大量的资料去学习做文字接龙这件事情。原始的GPT是这样的,有个问答资料集就是你问机器一个问题,然后期待机器可以回答,给你一个正确的答案。
第一二代的GPT的回答问题正确率如图,可以看到被人类碾压。
GPT3 有570g的训练资料,能力得到了很大的提升。但是随着模型越来越大,也只有50%的正确率。
强化 GPT 3 的能力呢?那再下一步就是需要人工介入了,所以到 GPT 3 为止,它的训练是不需要人类老师的,但是从 GPT 到 ChatGPT 就需要人类老师的介入。所以 ChatGPT 其实是 GPT 系列经过监督学习以后的结果也就是找人类老师来,人类老师说,以后有人告诉你世界最高峰是哪座,你的输出就应该是珠穆朗玛峰。
然后就是通过预训练来进行自监督学习, GPT 这类像 GPT 这样子透过自督导式学习得到的模型,今天又叫做基石模型,因为它是某一个非常强大的应用的基础,所以叫做基石模型。
另外不值是用自监督学习,还使用强化学习来强化模型,不是直接给机器答案,而是告诉机器现在你的答案是好还是不好。人类付出的精力较少,可以给予更多的回馈。另外一个更重要的事情是强化学习更适合用在人类自己都不知道答案的时候。
ChatGPT 的学习基本上就是三个步骤,先做预训练,再做自监督,然后做强化学习。
1.4 生成式AI
什么样的问题不是生成式 AI 的问题呢,举一个例子,分类它的英文是classification,它就不是生成式 AI 的问题。分类这个问题里面是要让机器从有限的选项中去做选择。已经告诉机器所有哪几个选项是可以选的,当机器从有限的选项中做一个选择的时候,这不是一个生成式 AI 的问题。
二、使用步骤
1.引入库
代码如下(示例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。