当前位置: 首页 > news >正文

做教师知识网站有哪些内容wordpress 售卖插件

做教师知识网站有哪些内容,wordpress 售卖插件,国外有哪些做建筑材料的网站,移动端芯片综合性能排行榜语言模型 ​ 假设长度为 T T T的文本序列中的词元依次为 x 1 , x 2 , ⋯ , x T x_1,x_2,\cdots,x_T x1​,x2​,⋯,xT​。 于是, x T x_T xT​#xff08; 1 ≤ t ≤ T 1\le t\le T 1≤t≤T#xff09; 可以被认为是文本序列在时间步 t t t处的观测或标签。 在给定这样的文本…语言模型 ​ 假设长度为 T T T的文本序列中的词元依次为 x 1 , x 2 , ⋯ , x T x_1,x_2,\cdots,x_T x1​,x2​,⋯,xT​。 于是, x T x_T xT​ 1 ≤ t ≤ T 1\le t\le T 1≤t≤T 可以被认为是文本序列在时间步 t t t处的观测或标签。 在给定这样的文本序列时语言模型language model的目标是估计序列的联合概率: P ( x 1 , x 2 , ⋯ , x T ) P(x_1,x_2,\cdots,x_T) P(x1​,x2​,⋯,xT​) ​ 应用包括 做预训练模型(BERT,GPT-3)生成本文给定前面几个词不断的使用 x t ∼ p ( x t ∣ x 1 , ⋯ , x t − 1 ) x_t\sim p(x_t|x_1,\cdots,x_{t-1}) xt​∼p(xt​∣x1​,⋯,xt−1​)生成后续文本判断多个序列中哪个更常见 1.使用计数来建模(n_gram) ​ 假设序列长度为2我们预测 p ( x , x ′ ) p ( x ) p ( x ′ ∣ x ) n ( x ) n n ( x , x ′ ) n ( x ) p(x,x)p(x)p(x|x)\frac{n(x)}{n}\frac{n(x,x)}{n(x)} p(x,x′)p(x)p(x′∣x)nn(x)​n(x)n(x,x′)​ ​ 其中 n n n是总次数 n ( x ) , n ( x , x ′ ) n(x),n(x,x) n(x),n(x,x′)是单个单词和连续单词对的出现次数 ​ 序列长度为3的情况也很容易 p ( x , x ′ , x ′ ′ ) p ( x ) p ( x ′ ∣ x ) p ( x ′ ′ ∣ x , x ′ ) n ( x ) n n ( x , x ′ ) n ( x ) n ( x , x ′ ) n ( x , x ′ , x ′ ′ ) p(x,x,x)p(x)p(x|x)p(x|x,x)\frac{n(x)}{n}\frac{n(x,x)}{n(x)}\frac{n(x,x)}{n(x,x,x)} p(x,x′,x′′)p(x)p(x′∣x)p(x′′∣x,x′)nn(x)​n(x)n(x,x′)​n(x,x′,x′′)n(x,x′)​ ​ 显然我们得到了一种简单的建模方式 p ( x t ∣ x 1 , ⋯ , x t ) n ( x 1 , ⋯ , x t ) n p(x_t|x_1,\cdots,x_t)\frac{n(x_1,\cdots,x_t)}{n} p(xt​∣x1​,⋯,xt​)nn(x1​,⋯,xt​)​ ​ 但这样有个问题 ​ 当序列很长时因为文本量不够大很可能 n ( x 1 , ⋯ , x T ) ≤ 1 n(x_1,\cdots,x_T)\le 1 n(x1​,⋯,xT​)≤1即某些序列是合理的但文本中没有出现。可以使用马尔科夫假设缓解这个问题 一元语法 p ( x 1 , x 2 , x 3 , x 4 ) n ( x 1 ) n n ( x 2 ) n n ( x 3 ) n n ( x 5 ) n p(x_1,x_2,x_3,x_4)\frac{n(x_1)}n\frac{n(x_2)}n\frac{n(x_3)}n\frac{n(x_5)}n p(x1​,x2​,x3​,x4​)nn(x1​)​nn(x2​)​nn(x3​)​nn(x5​)​与前面无关二元语法 p ( x 1 , x 2 , x 3 , x 4 ) n ( x 1 ) n n ( x 1 , x 2 ) n ( x 1 ) n ( x 2 , x 3 ) n ( x 2 ) n ( x 3 , x 4 ) n ( x 3 ) p(x_1,x_2,x_3,x_4)\frac{n(x_1)}n \frac{n(x_1,x_2)}{n(x_1)} \frac{n(x_2,x_3)}{n(x_2)} \frac{n(x_3,x_4)}{n(x_3)} p(x1​,x2​,x3​,x4​)nn(x1​)​n(x1​)n(x1​,x2​)​n(x2​)n(x2​,x3​)​n(x3​)n(x3​,x4​)​与前面一个词有关系三元语法 p ( x 1 , x 2 , x 3 , x 4 ) p ( x 1 ) p ( x 2 ∣ x 1 ) p ( x 3 ∣ x 1 , x 2 ) p ( x 4 ∣ x 2 , x 3 ) p(x_1,x_2,x_3,x_4)p(x_1)p(x_2|x_1)p(x_3|x_1,x_2)p(x_4|x_2,x_3) p(x1​,x2​,x3​,x4​)p(x1​)p(x2​∣x1​)p(x3​∣x1​,x2​)p(x4​∣x2​,x3​)与前面两个词有关系 ​ 另一种常见的策略师执行某种形式的拉普拉斯平滑具体方法是在所有计数中添加一个小常量用 n n n表示训练集中的单词总数用 m m m表示唯一单词的数量这个方案有助于处理单元素问题 ​ 其中 ϵ 1 , ϵ 2 , ϵ 3 \epsilon_1,\epsilon_2,\epsilon_3 ϵ1​,ϵ2​,ϵ3​是超参数这样的模型很容易变得无效原因如下首先我们需要存储所有的计数 其次这完全忽略了单词的意思。 例如“猫”cat和“猫科动物”feline可能出现在相关的上下文中 但是想根据上下文调整这类模型其实是相当困难的。 最后长单词序列大部分是没出现过的 因此一个模型如果只是简单地统计先前“看到”的单词序列频率 那么模型面对这种问题肯定是表现不佳的。 2.语言模型和数据集的代码实现 import random import torch import re from d2l import torch as d2ld2l.DATA_HUB[time_machine] (d2l.DATA_URL timemachine.txt,090b5e7e70c295757f55df93cb0a180b9691891a)def read_time_machine(): # save将时间机器数据集加载到文本行的列表中with open(d2l.download(time_machine), r) as f:lines f.readlines()return [re.sub([^A-Za-z], , line).strip().lower() for line in lines]tokens d2l.tokenize(read_time_machine()) # 因为每个文本行不一定是一个句子或一个段落因此我们把所有文本行拼接到一起 corpus [token for line in tokens for token in line] vocab d2l.Vocab(corpus) print(vocab.token_freqs[:10])freqs [freq for token, freq in vocab.token_freqs] print(freqs[:10]) d2l.plot(freqs, xlabeltoken: x, ylabelfrequency: n(x),xscalelog, yscalelog) d2l.plt.show()​ 词频图词频以一种明确的方式迅速衰减将前几个单词作为例外消除后(停用词类似theaIand之类的)生育的所有单词大致遵循双对数坐标图上的一条直线这意味着单词的频率满足齐普夫定律(Zipf’s law)即第 i i i个最常用的频率 n i n_i ni​为 n i ∝ 1 n i n_i\propto \frac 1{n_i} ni​∝ni​1​ 等价于 ​ l o g n i − α l o g i c log\ n_i -\alpha log\ ic log ni​−αlog ic ​ 这意味着通过计数统计和平滑来建模单词是不可行的因为这样建模的结果会大大高估尾部单词的频率。 多元语法 ​ 注意最新的d2l库中的Vocab类好像有问题处理不了元组将库中的Vocab类替换一下再加上count_corpus函数就可以正常处理元组。 bigram_tokens [pair for pair in zip(corpus[:-1], corpus[1:])] bigram_vocab d2l.Vocab(bigram_tokens) print(二元:,bigram_vocab.token_freqs[:10])trigram_tokens [triple for triple in zip(corpus[:-2], corpus[1:-1], corpus[2:])] trigram_vocab d2l.Vocab(trigram_tokens) print(三元:,trigram_vocab.token_freqs[:10])bigram_freqs [freq for token, freq in bigram_vocab.token_freqs] trigram_freqs [freq for token, freq in trigram_vocab.token_freqs] d2l.plot([freqs, bigram_freqs, trigram_freqs], xlabeltoken: x,ylabelfrequency: n(x), xscalelog, yscalelog,legend[unigram, bigram, trigram]) d2l.plt.show()​ 发现 除了一元语法词单词序列似乎也遵循齐普夫定律 尽管公式中的指数更小 指数的大小受序列长度的影响词表中n元组的数量并没有那么大这说明语言中存在相当多的结构 这些结构给了我们应用模型的希望很多n元组很少出现这使得拉普拉斯平滑非常不适合语言建模。 作为代替我们将使用基于深度学习的模型。 随机采样 ​ # 随机采样 def seq_data_iter_random(corpus, batch_size, num_steps): #save使用随机抽样生成一个小批量子序列# num_steps意思是取多少个token来进行预测# 从随机偏移量开始对序列进行分区随机范围包括num_steps-1corpus corpus[random.randint(0, num_steps - 1):]# 减去1是因为我们需要考虑标签,最后一个样本没有可预测的数据num_subseqs (len(corpus) - 1) // num_steps# 长度为num_steps的子序列的起始索引initial_indices list(range(0, num_subseqs * num_steps, num_steps))# 在随机抽样的迭代过程中# 来自两个相邻的、随机的、小批量中的子序列不一定在原始序列上相邻print(initial_indices)random.shuffle(initial_indices) # 打乱顺序不会生成新的列表在原列表上打乱的print(initial_indices)def data(pos):# 返回从pos位置开始的长度为num_steps的序列return corpus[pos: pos num_steps]num_batches num_subseqs // batch_sizefor i in range(0, batch_size * num_batches, batch_size): #后面一个是步长# 在这里initial_indices包含子序列的随机起始索引initial_indices_per_batch initial_indices[i: i batch_size]X [data(j) for j in initial_indices_per_batch]Y [data(j 1) for j in initial_indices_per_batch]yield torch.tensor(X), torch.tensor(Y)生成一个0到34的序列假设批量大小为2时间步数为5这意味着可以生成(35-1)/5 6个特征-标签子序列对my_seq list(range(35)) for X, Y in seq_data_iter_random(my_seq, batch_size2, num_steps5):print(X: , X, \nY:, Y)顺序分区 def seq_data_iter_sequential(corpus, batch_size, num_steps): # save使用顺序分区生成一个小批量子序列# 顺序分区保证不同批次内的子序列在原始序列上是连续的不会跳过任何元素这对某些任务(语言建模)可能更合适# X: tensor([[ 1, 2, 3, 4, 5],# [17, 18, 19, 20, 21]])# Y: tensor([[ 2, 3, 4, 5, 6],# [18, 19, 20, 21, 22]])# X: tensor([[ 6, 7, 8, 9, 10], 和[1,2,3,4,5]是连续的# [22, 23, 24, 25, 26]]) 和[17,18,19,20,21]是连续的# Y: tensor([[ 7, 8, 9, 10, 11],# [23, 24, 25, 26, 27]])# X: tensor([[11, 12, 13, 14, 15],# [27, 28, 29, 30, 31]])# Y: tensor([[12, 13, 14, 15, 16],# [28, 29, 30, 31, 32]])# 从随机偏移量开始划分序列offset random.randint(0, num_steps)num_tokens ((len(corpus) - offset - 1) // batch_size) * batch_sizeXs torch.tensor(corpus[offset: offset num_tokens])Ys torch.tensor(corpus[offset 1: offset 1 num_tokens])Xs, Ys Xs.reshape(batch_size, -1), Ys.reshape(batch_size, -1)num_batches Xs.shape[1] // num_stepsfor i in range(0, num_steps * num_batches, num_steps):X Xs[:, i: i num_steps]Y Ys[:, i: i num_steps]print(X: , X, \nY:, Y)yield X, Y #返回一个值序列而不是一次性返回所有值。for X, Y in seq_data_iter_sequential(my_seq, batch_size2, num_steps5):print(X: , X, \nY:, Y) 包装 class SeqDataLoader: # save加载序列数据的迭代器def __init__(self, batch_size, num_steps, use_random_iter, max_tokens):if use_random_iter:self.data_iter_fn d2l.seq_data_iter_randomelse:self.data_iter_fn d2l.seq_data_iter_sequentialself.corpus, self.vocab d2l.load_corpus_time_machine(max_tokens)self.batch_size, self.num_steps batch_size, num_stepsdef __iter__(self):return self.data_iter_fn(self.corpus, self.batch_size, self.num_steps)def load_data_time_machine(batch_size, num_steps, # saveuse_random_iterFalse, max_tokens10000):返回时光机器数据集的迭代器和词表data_iter SeqDataLoader(batch_size, num_steps, use_random_iter, max_tokens)return data_iter, data_iter.vocab NLP BERT GPT等模型中 tokenizer 类别说明详解-腾讯云开发者社区-腾讯云 (tencent.com)
http://www.dnsts.com.cn/news/18313.html

相关文章:

  • 怎样可以有自己的网站做网站都需要买什么软件
  • 网站搭建系列教程网站 制作 工具
  • 唯品会网站建设 分析报告阿克苏网站建设公司
  • 成都h5网站建设网上商店是什么
  • 昭通公司做网站大淘客官网做的网站打不开
  • 深圳网站设计合理刻西宁做网站的
  • 郑州整站网站推广工具怎么做网站数据库备份
  • 网站开发常遇到的问题有哪些昆明企业为什么要做网站
  • 西安学校部门定制网站建设公司网页设计与制作难不难
  • 怎样制作表白网站短视频代运营方案模板
  • 戴南网站建设市场调研分析报告怎么写
  • .net 获取网站域名网站后台风格
  • 关于建设部门子网站的请示天津建设工程信息网中标公告
  • 机械设计网站推荐怎么做网站首页弹幕
  • 网站变移动网站浏览器大全下载
  • 湖北做网站哪个在家做兼职网站比较好
  • 个人网站名称创意大全登陆wordpress
  • 中网建站湖南 中小企业 网站建设
  • 温州做网店的网站新变更营业执照注册号查了发现之前有备案过网站了
  • 北京微网站制作微商城网站制作
  • 百度如何验证网站网站建设一年多少
  • 网站内容的排版布局acm网站免费做
  • 陕西天工建设有限公司官方网站做擦边球网站
  • 家禽养殖公司网站怎么做烟台快速建站有哪些公司
  • 大腕 网站建设黄骅怎么样
  • 国际域名网站网站分类目录大全
  • nas 做网站服务器wordpress首页优化
  • mq网站开发html5做网站系统
  • 提供网站建设框架公司网站百度推广
  • 网站改名 seo我是做网站的 怎么才能提高业绩