- 博客(119)
- 收藏
- 关注
原创 哈工大2024春软件工程期末回忆版
不正确, 增量模型是因为当前需求不明确或者需求任务量太大, 所以将需求划分为一系列增量, 增量模型是串行的瀑布模型, 每一阶段都按照瀑布模型的严格审查和分阶段, 以及文档化操作, 增量模型仍然不能处理需求发生变更的情况。原型模型是先设计一个工作原型, 工作原型不是增量, 他可能只是用于演示而不属于最终系统, 也可能通过演化加入最终系统, 原型模型可以最大程度上实现和用户的频繁交流互动, 并快速应对用户需求的变化。责任单一:每个类只负责一种职责,减少类的复杂度,提高代码的可理解性和可维护性。
2024-07-04 15:57:02
642
原创 哈工大2024春知识表示与推理期末题
1.传统符号人工智能研究核心A.知识表示B.知识推理C.深度学习D.知识抽取2.RDF与属性图存储的描述(关于二者是否可以一般推理,是否可以图高性能分析)3.知识表示的用途4.Dismult思想5.题目给出叙利亚哈马斯的新闻报道,然后说机构实体是什么,时间实体是什么,问这属于什么操作。我选的实体识别6.本体匹配的思想7.图数据库的一些表述有两个选项关于图数据库存储的关系是显式还是隐藏的8.使用ontology axioms属于哪种推理9.哪种不属于局部图神经网络。
2024-07-01 15:38:20
654
原创 哈工大编译原理考试经验及资源分享
首先看什么网课,大家都知道看mooc,但是,mooc根本没有讲明白,说白了只是过一遍ppt,越往后就会发现mooc根本不够用,笔者认为有价值的的是spoc后面的重难点解析(词法分析简单,看mooc就行),整理如下。sll本人拷打实验还是很严格的,cy貌似还可以,至于zqf,应该是唯一一个自己整测试样例的老师,很多火炬只能应付实验指导书的火炬,根本过不了zqf老师设计的测试样例,这点需要注意。第二,笔者老师sll也整理了习题,可以作为补充,而且答案经过多次校正,不像学长分享的习题集里,答案有很多错误;
2024-06-14 14:30:13
1260
原创 哈工大2024春编译原理期末题回忆版
4.考的活跃变量分析,具体记不清,也是最后一个选择,一个选项说的是x的定值从程序点p沿着某个路径走,发现x被引用即x是活跃的,否则x不活跃。看上面的图,已经调用了e,但这时栈没补全,需要自己画,还要画控制链的指向(题目会告诉你指向哪里,当时说的指向局部变量开始的地方)给出这个文法,赋值语句可以为a=(b=c),表示c的值给b,b又传给a;(a)=b这种也允许;1.属性依赖父节点的继承属性,则属性为A.综合属性,B.继承属性,C.L属性,D.S属性。(1)提取左公因子,并判断改造后的文法是不是LL(1)的。
2024-06-01 22:10:25
981
原创 HuggingfaceNLP笔记7.2Fine-tuning a masked language model
对于许多涉及Transformer模型的NLP应用程序,您可以简单地从Hugging Face Hub获取一个预训练模型,并直接在您的数据上对其进行微调以适应当前任务。只要用于预训练的语料库与用于微调的语料库不相差太大,迁移学习通常会产生良好的结果。然而,有一些情况下,您可能希望首先在您的数据上对语言模型进行微调,然后再训练一个特定任务的头部。例如,如果您的数据集包含法律合同或科学文章,那么像BERT这样的普通Transformer模型通常会将您语料库中的领域特定词汇视为罕见标记,导致性能可能不尽如人意。
2024-05-06 15:29:09
789
原创 HuggingfaceNLP笔记7.1Token classification
由于我们处理的是序列标注问题,我们将使用类。在定义这个模型时,主要要记住的是传递有关我们有多少标签的信息。最简单的方法是通过num_labels参数传递,但如果想要像本节开头所示的那样,有一个漂亮的推理小部件,最好设置正确的标签对应关系。它们应该通过两个字典设置,id2label和label2id现在,我们可以将它们传递给就像我们在第3章中定义时一样,创建模型时会发出警告,说明有些权重未使用(来自预训练头的权重),有些权重被随机初始化(来自新的序列标注头的权重),并且建议对模型进行训练。9。
2024-05-06 14:57:30
1000
原创 HuggingfaceNLP笔记6.8Building a tokenizer, block by block
为了回顾,这是整个过程的概述:🤗 Tokenizers 库提供了这些步骤的多种选项,您可以根据需要组合使用。在本节中,我们将学习如何从头开始构建分词器,而不是像中那样从旧分词器中训练新的分词器。这样,您就可以构建任何您能想到的分词器了!具体来说,库的架构围绕着一个核心TokenizerNormalizermodelsModelBPEWordPieceUnigramtrainersTrainerdecodersDecoder。
2024-04-29 09:06:16
791
原创 HuggingfaceNLP笔记6.7Unigram tokenization
Unigram算法常用于SentencePiece中,这是Albert、T5、mBART、Big Bird和XLNet等模型使用的分词算法。💡 本节将深入讲解Unigram,包括完整的实现过程。如果你只想了解分词算法的概要,可以跳到最后。
2024-04-29 08:51:33
1031
翻译 HuggingfaceNLP笔记6.6WordPiece tokenization
WordPiece是Google为预训练BERT开发的分词算法,它被应用于基于BERT的Transformer模型,如DistilBERT、MobileBERT、Funnel Transformers和MPNET等。它与BPE在训练方法上相似,但实际的分词过程有所不同。💡 这部分深入讲解WordPiece,甚至会展示完整的实现。如果你只想了解分词算法的概要,可以跳到最后。
2024-04-29 08:27:25
229
翻译 HuggingfaceNLP笔记6.5Byte-Pair Encoding tokenization
Byte-Pair Encoding(BPE)最初是作为一种文本压缩算法开发的,后来被OpenAI用于GPT模型的预训练时的tokenization。许多Transformer模型,如GPT、GPT-2、RoBERTa、BART和DeBERTa,都使用了BPE。💡 本节将深入讲解BPE,甚至会展示完整的实现。如果你只想了解tokenization算法的概要,可以跳到最后。
2024-04-29 08:14:30
106
原创 HuggingfaceNLP笔记6.4Normalization and pre-tokenization
在深入探讨Transformer模型中常用的三种子词分词算法(Byte-Pair Encoding [BPE]、WordPiece和Unigram)之前,我们先来看看每个分词器对文本进行预处理的步骤。这是分词流程的高级概述:和。
2024-04-27 15:42:47
752
原创 HuggingfaceNLP笔记6.3Fast tokenizers in the QA pipeline
接下来,我们将深入管道,学习如何利用offset来从上下文中获取与问题相关的确切答案,就像我们在上一节中处理分组实体一样。然后,我们将探讨如何处理非常长的上下文,即使它们被截断,也能找到答案。如果你对问答任务不感兴趣,可以跳过这一节。
2024-04-27 14:40:53
696
原创 HuggingfaceNLP笔记6.2Fast tokenizers’ special powers
在这个部分,我们将深入了解 🤗 Transformers 中的 tokenizers 的功能。到目前为止,我们只使用它们对输入进行分词或将 ID 解码回文本,但 tokenizers 特别是那些由 🤗 Tokenizers 库支持的 tokenizers,可以做更多的事情。为了展示这些额外功能,我们将探讨如何重现我们在中首次遇到的(我们称之为ner)和管道的结果。在接下来的讨论中,我们经常区分“慢”和“快”tokenizers。
2024-04-27 14:00:23
1073
原创 HuggingfaceNLP笔记6.1Training a new tokenizer from an old one
如果你对感兴趣的语言没有预训练的语言模型,或者你的语料库与模型训练的语料库差异很大,你可能需要从头开始重新训练模型,并使用适应你的数据的分词器。这需要在你的数据集上训练一个新的分词器。但这具体意味着什么呢?在中首次介绍分词器时,我们了解到大多数Transformer模型使用的是子词分词算法。为了确定哪些子词在当前语料库中最有意义且出现频率最高,分词器需要仔细查看语料库中的所有文本——这个过程我们称之为训练。选择子词的具体规则取决于所使用的分词算法,我们将在本章后面详细介绍这三种主要算法。
2024-04-27 13:32:50
996
2
原创 HuggingfaceNLP笔记5.5Semantic search with FAISS
在中,我们创建了一个来自🤗 Datasets仓库的GitHub问题和评论数据集。本节我们将使用这些信息构建一个搜索引擎,帮助我们找到关于库的最紧迫问题的答案!
2024-04-26 14:03:03
1151
1
原创 HuggingfaceNLP笔记5.4Creating your own dataset
有时候,构建NLP应用所需的数据集并不存在,因此你需要自己创建。本节将向你展示如何创建一个GitHub问题的语料库,这些问题通常用于GitHub存储库中跟踪bug或功能。多标签分类器我们将重点放在创建语料库上,下一节将探讨语义搜索应用。为了保持“元”风格,我们将使用一个流行的开源项目 🤗 Datasets 的GitHub问题。让我们看看如何获取数据并探索这些问题中的信息。
2024-04-26 13:46:59
671
原创 HuggingfaceNLP笔记5.3Big data? Datasets to the rescue!
如今,处理数GB的数据集已司空见惯,特别是当你计划从头开始预训练BERT或GPT-2这样的变压器时。在这种情况下,甚至数据都可能是一个挑战。例如,用于预训练GPT-2的WebText语料库包含超过800万个文档和40GB的文本——将这些内容加载到笔记本电脑的RAM中可能会让其崩溃!幸运的是,🤗 数据集(🤗 Datasets)设计时就考虑到了这些限制。它通过将数据集视为文件,解决了内存管理问题,通过语料库中的条目,解决了硬盘限制。在本节中,我们将使用一个巨大的825GB语料库——,来探索这些功能。
2024-04-26 13:29:43
808
原创 HuggingfaceNLP笔记5.2Time to slice and dice
大部分情况下,用于训练模型的数据可能并未准备好。本节我们将探讨🤗 Datasets提供的各种功能,帮助你清理数据。
2024-04-26 12:54:08
1025
1
原创 HuggingfaceNLP笔记5.1What if my dataset isn’t on the Hub?
您已经知道如何使用下载数据集,但您经常会在本地或远程服务器上处理数据。本节将向您展示如何使用🤗 Datasets加载不在Hub上的数据集。
2024-04-26 12:27:11
864
原创 HuggingfaceNLP笔记4.3Building a model card
模型卡可以与模型和分词器文件相提并论,对于模型仓库来说同样重要。它是模型的核心定义,确保社区成员的可重用性和结果的可重现性,同时为其他成员提供构建他们作品的平台。记录训练和评估过程有助于他人理解模型的预期表现,提供关于使用的数据、预处理和后处理的详细信息,有助于识别和理解模型的局限性、偏见和适用场景。因此,创建一个清晰定义你的模型的模型卡是至关重要的步骤。这里,我们提供一些指导,帮助你完成这个任务。创建模型卡是通过你之前看到的README.md文件,它是一个Markdown文件。
2024-04-25 23:34:30
832
原创 HuggingfaceNLP笔记4.1Hugging Face Hub
—我们的主要网站——是一个集中的平台,让任何人都可以发现、使用和贡献最先进的模型和数据集。在Hub上分享模型意味着将其开放给社区,让任何想要轻松使用的人能够访问,从而消除他们自己训练模型的需求,简化分享和使用。社区中的任何人都可以在模型页面上直接测试它,使用自定义输入和适当的控件。需要注意的是,选择的检查点必须适合它将要执行的任务。在使用预训练模型时,请务必检查其训练方式、使用的数据集、限制以及偏见。最棒的是,使用Hub上的任何公开模型是完全免费的!假设我们正在寻找一个基于法语的模型,可以进行词填空。
2024-04-25 23:28:27
870
原创 HuggingfaceNLP笔记4.2Sharing pretrained models
在下面的步骤中,我们将了解如何最简单地将预训练模型分享到🤗 Hub。已经提供了工具和实用程序,可以直接在Hub上分享和更新模型,我们将在下面详细介绍。我们鼓励所有训练模型的用户通过与社区分享来贡献,即使模型是在特定数据集上训练的,也能帮助他人,节省他们的时间和计算资源,同时提供有用的训练成果。反过来,你也可以从他人的工作中受益!创建完存储库后,你可以通过git和git-lfs上传文件。接下来我们将逐步指导你创建模型存储库并上传文件。
2024-04-25 21:37:55
840
原创 HuggingfaceNLP笔记3.3A full training
现在我们将展示如何在不使用Trainer类的情况下达到上一节中的相同结果。假设你已经在第2节中完成了数据处理。
2024-04-25 21:01:56
919
原创 HuggingfaceNLP笔记3.2Fine-tuning a model with the Trainer API
🤗 Transformers 提供了一个Trainer类,帮助你在自己的数据集上微调它提供的预训练模型。在完成了上一节中的所有数据预处理工作后,定义Trainer只需要几步。最难的部分可能是准备运行的环境,因为它在 CPU 上运行会非常慢。如果没有GPU,你可以在上获取免费的GPU或TPU。下面的代码示例假设你已经执行了上一节中的示例。
2024-04-25 20:37:24
963
原创 HuggingfaceNLP笔记3.1Processing the data
继续使用上一章的当然,仅用两个句子训练模型效果不会太好。为了获得更好的结果,你需要准备更大的数据集。在本节中,我们将使用微软研究(Microsoft Research)的同义句判别(Paraphrase Corpus)数据集(MRPC),该数据集在中由William B. Dolan和Chris Brockett介绍。数据集包含5,801对句子,标签表示它们是否是同义句(即,两个句子表达相同的意思)。我们选择这个数据集是因为它较小,便于实验。
2024-04-25 20:22:02
886
原创 HuggingfaceNLP笔记2.5Putting it all together
在过去的几个部分中,我们一直在尽力手工完成大部分工作。我们已经探索了词嵌入器的工作原理,并研究了分词、转换为输入ID、填充、截断和注意力掩码。然而,正如我们在第2节中所见,🤗 Transformers API可以为我们处理这一切,通过一个高级函数,我们将在下面深入了解。当你直接调用tokenizer在这里,变量包含了模型正常运行所需的一切。对于DistilBERT,它包括输入ID和注意力掩码。其他接受额外输入的模型也会通过分词器对象输出这些信息。如下面的示例所示,这种方法非常强大。
2024-04-25 19:27:56
288
原创 HuggingfaceNLP笔记2.4Handling multiple sequences
在上一节中,我们探讨了处理单个短序列的基本用法。让我们看看这些问题带来的挑战,以及如何使用🤗 Transformers API来解决它们。
2024-04-25 19:12:51
777
原创 HuggingfaceNLP笔记2.3Tokenizers
分词器是自然语言处理(NLP)管道的核心组件之一。它们的任务是将文本转换为模型可以处理的数据。由于模型只能处理数字,因此分词器需要将我们的文本输入转换为数值数据。本节将详细介绍分词管道中的过程。在NLP任务中,通常处理的是原始文本数据。然而,模型只能处理数字,所以我们需要找到一种方法将文本转换为数字。这就是分词器的作用,有许多方法可以实现。目标是找到对模型最有意义的表示形式,如果可能的话,是最小的表示。让我们看看一些分词算法的例子,并尝试回答你可能对分词的一些问题。
2024-04-25 17:36:38
1155
原创 HuggingfaceNLP笔记2.2Models
在本节中,我们将深入探讨如何创建和使用模型。我们将使用AutoModel类,它在您想要从检查点实例化任何模型时非常方便。AutoModel类及其所有相关类实际上是对库中提供的各种模型的简单封装。这是一个聪明的封装,因为它可以根据您的检查点自动猜测合适的模型架构,然后根据这个架构实例化模型。然而,如果您知道要使用的模型类型,可以直接使用定义其架构的类。让我们看看如何使用BERT模型来实现这一点。
2024-04-25 17:13:39
605
原创 HuggingfaceNLP笔记2.1Behind the pipeline
让我们从一个完整示例开始,回顾我们在如我们在中所见,这个管道包含了三个步骤:预处理、将输入通过模型,以及后处理。
2024-04-25 12:47:27
605
原创 HuggingfaceNLP笔记1.4: Bias and limitations
其他职业通常与一种特定性别相关——是的,妓女最终进入了该模型与“女性”和“工作”相关的前 5 种可能性。即使 BERT 是罕见的 Transformer 模型之一,这种模型不是通过从整个互联网抓取数据构建的,而是使用明显中性的数据(它是在。如果您的目的是在生产中使用预训练模型或微调版本,请注意,虽然这些模型是强大的工具,但它们也有局限性。其中最大的问题是,为了对大量数据进行预训练,研究人员经常会抓取他们能找到的所有内容,其中既包括最好的内容,也包括最差的内容。数据集上训练的),但这种情况还是发生了。
2024-04-25 11:51:29
320
原创 HuggingfaceNLP笔记1.3: Models
编码器模型仅使用Transformer模型的编码器。在每个阶段,注意力层可以访问初始句子中的所有单词。这些模型通常被描述为具有“双向”注意力,并经常被称为自编码模型。这些模型的预训练通常围绕着以某种方式破坏给定句子(例如,通过对其中的随机单词进行屏蔽)并要求模型找到或重建初始句子。编码器模型最适合需要理解完整句子的任务,例如句子分类、命名实体识别(以及更一般的单词分类)和抽取式问答。
2024-04-25 11:40:59
211
原创 HuggingfaceNLP笔记1.2:How do Transformers work?
在本节中,我们将概述Transformer模型的架构。
2024-04-25 09:25:59
572
原创 HuggingfaceNLP笔记1.1: Transformers, what can they do?
Pipeline是Huggingface的一个基本工具,可以理解为一个端到端(end-to-end)的一键调用Transformer模型的工具。它具备了数据预处理、模型处理、模型输出后处理等步骤,可以直接输入原始数据,然后给出预测结果,十分方便。给定一个任务之后,pipeline会自动调用一个预训练好的模型,然后根据你给的输入执行下面三个步骤:1. 预处理输入文本,让它可被模型读取2. 模型处理3. 模型输出的后处理,让预测结果可读还可以pipeline支持的。
2024-04-24 21:53:47
985
原创 GIT使用
什么是GITGIT是一个开源的分布式版本控制系统,用于高效的管理各种大小项目和文件。代码管理工具的用途防止代码丢失,做备份项目的版本管理和控制,可以通过设置节点进行跳转建立各自的开发环境分支,互不影响,方便合并在多终端开发时,方便代码的相互传输GIT的特点git是开源的,多在*nix下使用,可以管理各种文件git是分布式的项目管理工具(SVN是集中式的)git数据管理更多样化,分享速度快,数据安全git 拥有更好的分支支持,方便多人协调Linux下GIT安装。
2024-03-27 23:38:16
738
原创 Django框架的介绍(八)
执行该命令后,Django将项目重所有静态文件 复制到 STATIC_ROOT 中 ,包括Django内建的静态文件【如admin后台的样式】Nginx是轻量级的高性能Web服务器,提供了诸如HTTP代理和反向代理、负载均衡、缓存等一系列重要特性,在实践之中使用广泛。若要在浏览器中访问 上传的资源,runserver环境下,需要在项目得主路由下添加media路由的绑定。Django把用户上传的文件,统称为media资源。当开发结束后,完善的项目代码需要在一个高效稳定的环境中运行,这时可以使用WSGI。
2024-03-27 19:59:48
935
原创 Django框架的介绍(七)
缓存是一类可以更快的读取数据的介质统称,也指其它可以加快数据读取的存储方式。一般用来存储临时数据,常用介质的是读取速度很快的内存。
2024-03-27 19:58:31
644
原创 Django框架的介绍(五)
若要自己定义的模型类也能在/admin后台管理界中显示和管理,需要将自己的类注册到后台管理界面添加自己定义模型类的后台管理数据表的,需要用admin.site.register(自定义模型类)方法进行注册配置步骤如下:admin.site.register(自定义模型类)如: 在 bookstore/admin.py 添加如下代码对Book类进行管理...admin.site.register(models.Book) # 将Book类注册为可管理页面。
2024-03-27 19:52:13
893
原创 Django框架的介绍(四)
分组聚合是指通过计算查询结果中每一个对象所关联的对象集合,从而得出总计值(也可以是平均值或总和),即为查询集的每一项生成聚合。用法:MyModel.objects.order_by(‘-列’,‘列’)使用MyModel.objects.raw()进行 数据库查询操作查询。MyModel.objects.values(‘列1’, ‘列2’)QuerySet.annotate(名=聚合函数(‘列’))用法: MyModel.objects.all()方法:values_list(‘列1’,‘列2’)
2024-03-27 19:50:49
867
全网最全!!!哈尔滨工业大学(HIT)计算机期末复习资料(数据结构,算法,自动机,计网,OS,CSAPP,计组,数据库)
2024-01-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人