OPT: Open Pre-trained Transformer语言模型
摘要
大规模语言模型通常需要数十万计算日的训练时间,展现了在零样本和小样本学习中的显著能力。鉴于其计算成本之高,这些模型在没有大量资本投入的情况下难以复现。对于那些通过API提供的少数模型,研究者无法获取完整的模型权重,使得深入研究变得困难。我们推出了Open Pre-trained Transformers(OPT),这是一套仅包含解码器的预训练Transformers模型,参数规模从1.25亿到1750亿不等,我们致力于以负责任的方式与感兴趣的研究者全面共享这些模型。我们证明,OPT-175B与GPT-3性能相当,而开发过程中仅需其1/7的碳足迹。同时,我们公开了记录我们在基础设施方面所遇挑战的日志,以及用于实验所有发布模型的代码。
1. 引言
在大量文本数据上训练的大规模语言模型(LLMs)展现了生成文本以及进行零样本和小样本学习的惊人能力。尽管在某些情况下,公众可以通过付费API与这些模型进行交互,但目前只有少数资源充足的实验室能够完全访问这些模型。这种限制性访问阻碍了研究者深入研究这些大规模语言模型的工作原理及其原因,从而延缓了在鲁棒性、偏见和毒性等已知挑战领域的改进进展。
在本技术报告中,我们介绍了Open Pre-trained Transformers(OPT),这是一套仅包含解码器的预训练Transformers模型,参数规模从1.25亿到1750亿不等。我们的目标是以负责任的方式与感兴趣的研究者全面共享这些模型。我们训练OPT模型以大致匹配GPT-3类模型的性能和规模,同时应用了数据收集和高效训练中的最新最佳实践。我们开发这套OPT模型的目的是支持可重复且负责任的大规模研究,并让更多声音参与到研究这些LLMs的影响中。风险、危害、偏见和毒性等定义应由整个研究社区共同明确,而这只有在模型可供研究时才能实现。
我们将发布从1.25亿到660亿参数的所有模型,并根据请求向研究者提供OPT-175B的完整研究访问权限。访问权限将授予学术研究者、政府、民间社会和学术机构的附属人员,以及工业研究实验室的研究人员。我们还将发布模型创建的日志以及我们的代码库metaseq,该代码库支持在992台80GB A100 GPU上训练OPT-175B,每块GPU的利用率达到147 TFLOP/s。通过这一实现以及使用最新一代的NVIDIA硬件,我们能够以GPT-3的1/7碳足迹开发OPT-175B。尽管这是一项重大成就,但创建此类模型的能源成本仍然不容小觑,而重复复制这种规模的模型只会进一步放大这些LLMs日益增长的计算足迹。
我们相信,整个AI社区——学术研究者、民间社会、政策制定者和工业界——必须共同努力,制定关于负责任AI(尤其是负责任LLMs)的明确指导方针,因为它们在许多下游语言应用中占据核心地位。
为了让更广泛的AI社区能够进行可重复的研究并共同推动领域发展,他们需要访问这些模型。通过发布OPT-175B及较小规模的基线模型,我们希望增加定义此类技术伦理考量的多样性声音。
2. 方法
2.1 模型
我们展示了从1.25亿到1750亿参数的八种Transformer语言模型的结果。架构细节如表1所示。为了透明性并减少训练不稳定的风险,我们的模型和超参数主要遵循Brown等人的设置,主要在批量大小上进行调整以提高计算效率。
2.2 训练设置
对于权重初始化,我们遵循Megatron-LM代码库中提供的相同设置,使用均值为0、标准差为0.006的正态分布。输出层的标准差通过 a 1.0 / 2 L {\mathrm{a}}1.0/{\sqrt{2L}} a1.0/2L的比例进行缩放,其中L是总层数。所有偏置项初始化为0,所有模型均使用ReLU激活函数,序列长度为2048进行训练。
我们使用AdamW优化器,其中(β1; β2)设置为(0.9; 0.95),权重衰减为0.1。我们采用线性学习率调度,在OPT-175B的前2000步或较小基线模型中的3.75亿个token内,将学习率从0逐步增加到最大值,然后在3000亿个token内将学习率衰减至最大值的10%。在训练过程中,还需要对学习率进行多次调整(详见第2.5节)。我们的批量大小根据模型规模从50万到400万不等(见表1),并在整个训练过程中保持不变。
我们全程使用0.1的dropout,但不对嵌入层应用任何dropout。我们将梯度范数裁剪为1.0,但在训练过程中进行了一些调整,将阈值从1.0降低至0.3(详见第2.5节)。我们还引入了梯度预除因子,以减少在所有计算节点上计算梯度时出现上溢或下溢的风险(将除以世界大小N的操作拆分为两次除以 N \sqrt{N} N的操作)。
##2.3 预训练语料库
预训练语料库包含了RoBERTa、The Pile和PushShift.io Reddit中使用的数据集的组合。所有语料库之前都经过收集或过滤,主要包含英文文本,但通过CommonCrawl仍然存在少量非英文数据。
我们通过Minhash-LSH过滤掉Jaccard相似度≥0.95的文档,从而删除了所有数据集中的重复文档。我们发现The Pile中尤其存在大量重复文档,建议未来使用The Pile的研究者进行额外的去重处理。
我们使用GPT-2的字节级BPE分词器对所有语料库进行分词。最终语料库包含大约1800亿个token。
RoBERTa
我们包含了RoBERTa语料库中的BookCorpus和Stories子集,并使用了截至2021年9月28日抓取的新闻故事更新版CCNews。该CCNews v2语料库的预处理方式与原始RoBERTa CCNews相同。
The Pile
我们包含了The Pile的一个子集,包括:CommonCrawl、DM Mathematics、Project Gutenberg、HackerNews、OpenSubtitles、OpenWebText2、USPTO和Wikipedia。The Pile的其他子集被排除,因为我们发现它们增加了不稳定性风险,通过13亿规模下梯度范数突增的趋势来衡量),或者被认为不适合。所有子集都经过了额外的临时空白字符规范化处理。
PushShift.io Reddit
我们包含了Baumgartner等生成的Pushshift.io语料库的一个子集,该子集之前被Roller等(2021)使用。为了将对话树转换为语言模型可访问的文档,我们提取了每个线程中最长的评论链,并丢弃了树中的所有其他路径。这使得语料库减少了约66%。
2.4 训练效率
我们在992台80GB A100 GPU上训练OPT-175B,利用完全分片数据并行和Megatron-LM张量并行技术。我们实现了每块GPU高达147 TFLOP/s的利用率。我们将Adam状态保持在FP32,因为我们在所有主机之间分片存储,而模型权重保持在FP16。为了避免下溢,我们使用了动态损失缩放,如Micikevicius等所述。
2.5 训练过程
这里我们描述了在OPT-175B预训练过程中出现的重要训练过程调整。
硬件故障
在训练OPT-175B期间,我们的计算集群遇到了大量的硬件故障。总共,硬件故障导致了至少35次手动重启,并在2个月内更换了超过100台主机。在手动重启期间,训练任务被暂停,并进行了一系列诊断测试以检测问题节点。标记的节点被隔离,并从最后一个保存的检查点恢复训练。根据更换的主机数量和手动重启次数的差异,我们估计有70多次因硬件故障导致的自动重启。
损失发散
损失发散也是我们训练过程中的一个问题。当损失发散时,我们发现降低学习率并从较早的检查点重新启动可以使任务恢复并继续训练。我们注意到损失发散、动态损失缩放因子崩溃至0以及最后一层激活的L2范数突增之间存在相关性。
这些观察结果使我们选择了动态损失缩放因子仍处于“健康”状态(≥1.0)的重新启动点,并且在此之后激活范数会趋于下降而不是无限增长。我们的经验学习率调度如图1所示。在训练早期,我们还注意到将梯度裁剪从1.0降低到0.3有助于稳定性;详见我们发布的日志以获取具体细节。图2显示了我们的验证损失随训练迭代的变化情况。
其他训练中的调整
我们还进行了许多其他实验性调整以应对损失发散问题。这些调整包括:
-
切换到普通SGD(优化很快陷入停滞,我们随后恢复使用AdamW);
-
重置动态损失缩放因子(这有助于恢复部分但并非所有发散情况);
-
切换到更新版本的Megatron(这减轻了激活范数的压力并提高了吞吐量)。
评估
3.1 提示与少样本学习
我们遵循GPT-3的方法,使用他们的提示和整体实验设置。我们主要与GPT-3进行比较,旨在复现他们的评估设置,但在每个任务的基础上,当有其他大规模语言模型(LLMs)的报道性能时,也会将其纳入比较。
我们以准确率报告性能(为了评估指标的一致性,省略了MultiRC和ReCoRD的F1分数)。对于SuperGLUE基准中的Winograd Schema Challenge(WSC)任务,我们遵循Brown等的方法,将其表述为多项选择题,这已知会影响性能。
零样本学习
所有14个任务的平均零样本性能如图3所示。总体而言,我们的平均性能与GPT-3的趋势一致。然而,不同任务之间的性能差异可能很大:完整的分项结果见附录A。需要注意的是,我们有意从这些平均值中排除了MultiRC和WIC,因为这些数据集似乎系统性地偏向GPT-3或OPT。
我们的性能在大约10个任务上与GPT-3相当,在3个任务上表现较差(ARC Challenge和MultiRC)。
在3个任务(CB、BoolQ、WSC)中,我们发现GPT和OPT模型在规模方面表现出不可预测的行为,这可能是由于这3个任务的验证集规模较小(分别为56、277和104个样本)。在WIC中,我们发现OPT模型始终优于GPT-3模型,尽管Brown等报道的数据似乎也存在疑问,因为WIC是一个二分类任务。对于MultiRC,我们在评估设置中无法通过Davinci API复现GPT-3的结果,这表明在该任务的评估方法上存在差异。对于BoolQ和WSC,我们注意到OPT和GPT模型的表现似乎都围绕多数类准确率波动,这表明概率质量中的微小扰动可能在评估中占主导地位。
Chinchilla和Gopher在其参数规模下的表现与其他模型大致一致,而PaLM(Chowdhery等,2022)在所有设置中通常表现更好,即使在控制参数数量的情况下也是如此。我们推测PaLM的高性能主要来自于更高质量和多样性的预训练数据。
单样本和少样本学习
多样本上下文学习的平均性能如图4所示(同样省略了MultiRC和WIC),详细性能见附录A。在所有指标的平均值中,我们发现OPT模型的表现与GPT-3模型相似。然而,与零样本学习一样,按任务分解这些结果显示出不同的情况:在与零样本学习相同的10个数据集中,我们看到两个模型的表现相似。在其余的一些数据集中,OPT和GPT-3模型的表现与模型规模的关系不一致(BoolQ、CB、WSC、RTE)。在MultiRC中,我们始终看到OPT模型的表现不如GPT-3模型。与我们的零样本评估类似,我们推测我们的单样本和少样本评估设置可能与Brown等(2020)的设置存在显著差异。
##3.2 对话
鉴于大规模语言模型(LLMs)被认为是现代对话模型的核心组成部分,我们还在多个开源对话数据集上对OPT-175B进行了评估。具体来说,我们遵循Roller等的方法,在ConvAI2、Wizard of Wikipedia、Empathetic Dialogues和Blended Skill Talk上进行了评估。此外,我们还在较新的Wizard of Internet数据集上进行了评估。
我们主要将OPT-175B与现有的开源对话模型进行比较,包括微调后的BlenderBot 1及其预训练对应模型Reddit 2.7B。我们还与微调后的R2C2 BlenderBot进行了比较,这是一个由Shuster等训练的2.7B参数、类似于BlenderBot的模型。
我们报告了困惑度(Perplexity)和单字F1(Unigram F1,UF1)重叠度,遵循ConvAI2竞赛的指标。为了控制不同模型的分词差异,我们将所有困惑度归一化到GPT-2分词器的空间中。我们还注明了哪些模型在这些对话任务上是有监督的,哪些是无监督的。对于OPT-175B,所有生成均使用贪婪解码,最多生成32个token。除了交替使用“Person 1:”和“Person 2:”作为对话行外,我们没有尝试对模型进行任何提示。其余模型使用BlenderBot 1中的生成参数。
结果如表2所示。我们发现,OPT-175B在所有任务上显著优于同样无监督的Reddit 2.7B模型,并且与完全有监督的BlenderBot 1模型表现相当,尤其是在ConvAI2数据集上。在Wizard-of-Internet数据集上(所有模型均为无监督),我们看到OPT-175B获得了最低的困惑度,但其UF1仍低于具有Wizard-of-Wikipedia监督的模型。
我们对无监督的OPT-175B模型在ConvAI2数据集上的评估结果与BlenderBot 1相当感到有些惊讶。这可能表明ConvAI2数据集泄漏到了通用预训练语料库中,甚至泄漏到了表2中评估的验证数据中。为了解决泄漏问题,我们在预训练语料库中搜索了ConvAI2数据集中的第一个对话,但没有发现任何重叠。我们还在ConvAI2的隐藏测试集上评估了OPT-175B(该测试集从未公开发布),并获得了10.7的困惑度和0.185的UF1,与验证集的性能相匹配。此外,我们在类似ConvAI2的MultiSessionChat(MSC)数据集的一个子集上评估了OPT-175B,获得了9.7的困惑度和0.177的UF1,表明模型在多个类似PersonaChat的数据集上具有良好的泛化能力。由于MSC和WoI数据集都是在预训练语料库使用的CommonCrawl快照之后发布的,泄漏的风险极小。我们得出结论,OPT-175B在跨对话中保持一致性角色方面具有很强的能力,这种行为也在LaMDA(中得到了强调。
4 偏见与毒性评估
为了理解OPT-175B的潜在危害,我们评估了一系列与仇恨言论检测、刻板印象意识和有毒内容生成相关的基准测试。尽管这些基准测试可能存在一些缺陷,但这些测量为理解OPT-175B的局限性提供了第一步。我们主要与GPT-3 Davinci进行比较,因为这些基准测试在Brown等的研究中尚未被纳入。
4.1 仇恨言论检测
使用Mollas等提供的ETHOS数据集,并由Chiu和Alexander(2021)进行工具化处理,我们测量了OPT-175B识别某些英语陈述是否具有种族主义或性别歧视(或两者皆无)的能力。在零样本、单样本和少样本的二元分类情况下,模型会接收到文本,并被要求判断该文本是否具有种族主义或性别歧视,并给出“是”或“否”的回答。在少样本的多类别分类设置中,模型被要求给出“是”、“否”或“两者皆无”的回答。
结果如表3所示。在我们所有的单样本到少样本配置中,OPT-175B的表现明显优于Davinci。我们推测这源于两个原因:(1)通过Davinci API进行评估可能引入了超出Brown等中使用的原始175B GPT-3模型的安全控制机制;(2)预训练数据集中大量未经过审核的社交媒体讨论为这类分类任务提供了额外的归纳偏差。
4.2 CrowS-Pairs
CrowS-Pairs是为掩码语言模型开发的众包基准测试,旨在测量9个类别中的句子内偏见:性别、宗教、种族/肤色、性取向、年龄、国籍、残疾、外貌和社会经济地位。每个示例由一对句子组成,分别代表对某一群体的刻板印象或反刻板印象,目的是测量模型对刻板印象表达的偏好。得分越高,表明模型表现出的偏见越大。
从表4中与Davinci的比较可以看出,OPT-175B在几乎所有类别中都表现出更多的刻板印象偏见,除了宗教类别。这很可能是因为训练数据的差异;Nangia等指出,Pushshift.io Reddit语料库中刻板印象和歧视性文本的出现率高于其他语料库(例如维基百科)。鉴于这是OPT-175B的主要数据来源,模型可能学到了更多的歧视性关联,这直接影响了其在CrowS-Pairs上的表现。
##4.3 StereoSet
遵循Lieber等和Artetxe等的方法,我们使用StereoSet来测量四个类别的刻板印象偏见:职业、性别、宗教和种族。除了句子内测量(类似于CrowS-Pairs),StereoSet还包括句子间测量,以测试模型结合额外上下文的能力。为了权衡偏见检测和语言建模能力之间的潜在关系,StereoSet包含两个指标:语言建模分数(LMS)和刻板印象分数(SS),然后将两者结合形成理想化上下文关联测试分数(ICAT)。与Lieber等不同,我们通过token数量而非字符数量对分数进行归一化,他们报告称这可以改善多个模型的指标。
结果如表5所示。我们看到Davinci和OPT-175B在总体上表现出相似的分数(两者的总体ICAT非常接近)。具体而言,Davinci在职业和种族方面表现更好,而OPT-175B在性别和宗教方面表现更优。OPT-175B在SS指标上全面表现更好,而Davinci通常在LMS指标上表现更佳。
4.4 RealToxicityPrompts
我们通过RealToxicityPrompts(Gehman等,2020)数据集评估OPT-175B生成有毒语言的倾向。遵循PaLM(Chowdhery等,2022)的方法,我们对RTP中随机抽取的10,000个提示中的每一个,使用核采样(Holtzman等,2020)(p = 0.9)生成25个长度为20个token的续写,并报告续写的平均毒性概率,按原始提示的毒性分桶分层统计。为了进行比较,我们报告了Davinci和PaLM的分桶毒性率。
结果如图5所示。总体而言,我们发现OPT-175B的毒性率高于PaLM和Davinci。我们还观察到,随着提示毒性的增加,所有三个模型生成有毒续写的可能性都会增加,这与Chowdhery等(2022)的观察结果一致。与我们在仇恨言论检测实验中的推测类似,我们怀疑预训练语料库中包含未经审核的社交媒体文本提高了模型对有毒文本的熟悉度,从而增加了生成和检测有毒文本的倾向。这种对有毒语言的强烈意识是否可取,取决于下游应用的具体需求。未来使用OPT-175B的应用应考虑模型的这一特性,并采取额外的缓解措施,或根据情况完全避免使用。
4.5 对话安全性评估
最后,我们在两个对话安全性评估中比较了OPT-175B的表现。第一个评估是SaferDialogues,用于衡量模型从显式安全故障中恢复的能力,通常表现为道歉或承认错误。第二个评估是安全基准单元测试,用于衡量模型响应的不安全程度,按主题敏感性的四个层次分层:安全、现实、不安全和对抗性。与其他对话评估(第3.2节)一样,我们将其与几个现有的开源对话模型进行比较。
两项实验的结果如表6所示。我们观察到,OPT-175B在SaferDialogues和单元测试中的表现与Reddit 2.7B模型相似,OPT-175B在安全和对抗性设置中表现略好。与Roller等和Xu等(2020)的研究一致,我们发现经过精选对话数据集微调的模型总体毒性较低。我们得出结论,未来使用OPT-175B进行对话实验时,应在精选数据集上进行显式微调,以提高安全性。
5 局限性
在第3.1节和第4节中,我们对所有发布的模型在不同规模上进行了广泛的评估。我们发现,在GPT-3模型使用的标准评估数据集上,OPT模型的表现与GPT-3相当。此外,我们还进行了安全性、偏见和包容性评估,再次发现其表现与GPT-3大体相当,但在毒性和仇恨言论检测方面存在一些差异。然而,这些评估可能无法完全表征这些模型的所有局限性。总体而言,我们定性观察到OPT-175B存在与其他大规模语言模型(LLMs)相同的局限性。
特别是,我们发现OPT-175B在处理陈述性指令或直接疑问句时表现不佳。使用此类指令进行提示时,模型往往会生成以该指令开头的对话模拟,而不是执行该指令。未来在指令学习方面的研究,例如InstructGPT的方向,可能会缓解这些局限性。
OPT-175B还倾向于重复,并且容易陷入循环。虽然采样可以减少重复行为的发生率,但我们发现,当仅生成一个样本时,采样并不能完全消除重复行为。未来的研究可能会希望结合更现代的策略来减少重复并提高多样性,例如非似然训练或最佳优先解码。
与其他大规模语言模型(LLMs)类似,OPT-175B可能会生成事实错误的陈述。这在信息准确性至关重要的应用中尤其有害,例如医疗保健和科学发现。最近,多项研究表明,检索增强模型可以提高LLMs的事实正确性。我们相信OPT-175B在未来的迭代中也将受益于检索增强技术。
如第4节所示,我们还发现OPT-175B有很高的倾向生成有毒语言并强化有害的刻板印象,即使提供的提示相对无害,而对抗性提示也很容易找到。在减轻毒性和偏见方面已经有许多工作。根据下游应用的需求,未来使用OPT-175B时可能需要采用这些或新的缓解方法,尤其是在实际部署之前。鉴于我们的主要目标是复现GPT-3,我们选择在首次发布时不应用这些缓解措施。
总之,我们仍然认为这项技术尚未成熟,不适合商业部署。尽管我们提供了数据表和模型卡片,但我们认为应该对训练数据进行更多审查,增加数据特征描述和选择标准,以负责任地使用数据。目前的实践是尽可能多地向模型提供数据,并在这些数据集中进行最小限度的选择。尽管我们进行了全面的评估,但我们理想情况下希望有更简化和一致的评估设置,以确保评估场景的可重复性和可复制性。提示风格和上下文学习中的样本数量差异可能会导致不同的结果。我们希望OPT模型的公开发布将使更多研究者能够致力于解决这些重要问题。
6 发布考虑
遵循人工智能合作伙伴关系为个体研究者提出的建议7,以及美国国家标准与技术研究院(NIST)8 概述的治理指南,我们通过日志9、代码以及向研究者提供OPT-175B的模型权重,以及一系列与OPT-175B设置相匹配的较小基线模型,披露了训练OPT-175B的所有细节。我们的目标是对OPT-175B的开发生命周期完全负责,只有通过提高LLM开发的透明度,我们才能在更广泛部署之前开始理解LLM的局限性和风险。
通过分享我们日常训练过程的详细记录,我们不仅披露了训练当前版本OPT-175B所使用的计算资源,还揭示了在底层基础设施或训练过程本身在大规模下变得不稳定时所需的人力成本。这些细节通常被之前的出版物忽略,可能是由于无法完全消除训练过程中所做的更改(而不大幅增加计算预算)。我们希望通过揭示某些临时设计决策的制定过程,未来能够改进这些实践,并共同提高开发这种规模模型的实验稳健性。
除了这些记录外,metaseq代码库本身是我们许多实现细节的最终依据。通过发布我们的开发代码库,我们旨在阐明本文中可能未明确列举的任何实现细节,无论是由于这些细节被认为是该领域的标准实践,还是仅仅是我们未能考虑到的细节。此代码库也是目前唯一已知的开源实现,用于在NVIDIA GPU上训练≥175B参数的仅解码器Transformer模型,而无需使用流水线并行。
为了支持175B规模的实验,我们向研究者提供直接访问OPT-175B参数的权限。这样做的原因有两个:一是促进对LLM的负责任AI研究,二是减少在这一规模下进行研究的环境影响。越来越多的研究详细描述了大规模部署具有新兴能力的语言模型所带来的伦理和社会风险。通过将OPT-175B的访问权限限制在研究社区内,并采用非商业许可,我们的目标是首先量化LLM的局限性,然后再进行更广泛的商业部署。
此外,复制这种规模的模型需要大量的计算资源和碳排放成本。虽然OPT-175B的开发估计碳排放量(CO2eq)为75吨10,而GPT-3估计为500吨,Gopher则需要380吨。这些估计并未普遍报告,且计算方法也未标准化。此外,模型训练只是AI系统整体碳足迹的一个组成部分;我们还必须考虑实验和最终下游推理的成本,所有这些都导致了创建大规模模型的能源足迹不断增加。通过发布我们的日志,我们希望强调理论碳排放成本估计(假设没有硬件故障或训练不稳定性)与旨在涵盖整个LLM开发生命周期的实际成本之间的差距。我们需要理解这些系统在日益复杂化过程中的制造(或体现)碳排放,并希望我们的论文能够帮助未来的研究在衡量规模对环境的影响时定义更多需要考虑的因素。
同样,通过生成一系列不同规模的基线模型,我们希望使更广泛的研究社区能够研究这些模型在规模上的影响和局限性。正如Hoffmann等(2022)所报告的,许多LLM可能由于使用的训练数据量不足而训练不足,这意味着加入更多数据并继续训练这些基线模型可能会进一步提高性能。还有证据表明,能力的变化可能在远小于175B的规模上发生,这表明需要针对不同的研究应用检查更广泛的规模范围。
7 相关工作
自Transformer架构和BERT发布以来,NLP领域经历了向使用自监督预训练的大规模语言模型(LLMs)的巨大转变。包括T5和Megatron-LM在内的多种掩码语言模型通过规模扩展展示了持续的改进。这些扩展收益不仅来自模型参数总数的增加,还来自预训练数据的数量和质量。
自回归语言模型在模型规模上经历了最大的增长,从1.17亿参数到超过5000亿参数。生成流畅性和质量的显著提升首次在GPT-2中体现,并在GPT-3及后续模型中进一步改进。尽管现在已经训练了多种超大规模(超过1000亿参数)的生成模型,但它们都是闭源的,仅限内部或通过付费API服务访问。一些非营利研究组织,如EleutherAI和BigScience11,在开源LLMs方面做出了显著努力。这些模型在预训练数据、目标语言和模型规模上与OPT模型不同,使得社区能够比较不同的预训练策略。
自Brown等以来,LLMs的主要评估标准是基于提示的,本文也采用了这种方法。这主要是由于无需专门的任务特定微调即可在许多任务上进行评估的便利性。提示本身有着悠久的历史:填空评估可以追溯到几十年前。最近,提示或掩码填充被用于探测模型的知识或执行各种NLP任务。还有一些研究致力于在较小模型中激发提示行为,提高提示的灵活性,以及理解提示为何及如何有效。
最近的研究表明,通过对模型进行微调以直接响应指令式提示,可以获得改进。然而,有效的提示工程仍然是一个开放的研究挑战。结果因提示的选择而显著且不可预测地变化,模型似乎并未像我们预期的那样完全理解提示(Webson和Pavlick,2021)。此外,在没有开发集的情况下编写提示具有挑战性,这引发了关于我们在实践中实际实现零样本或少样本学习的程度的疑问。我们并未尝试解决这些提示问题,而是仅旨在在现有设置下评估OPT-175B。然而,我们希望OPT-175B的全面发布将使其他人能够在未来更好地研究这些挑战。
8 结论
在本技术报告中,我们介绍了OPT,这是一组规模从1.25亿到1750亿参数的自回归语言模型。我们的目标是复现GPT-3类模型的性能和规模,同时应用数据整理和训练效率方面的最新最佳实践。我们详细描述了训练细节,评估了在多种NLP和对话设置中的性能,并分析了模型在偏见、毒性和仇恨言论方面的行为。我们还描述了模型的许多其他局限性,并讨论了负责任发布模型的多方面考虑。我们相信,整个AI社区将从共同制定负责任LLM的指南中受益,并且我们希望广泛访问此类模型将增加定义此类技术伦理考量的多样性声音。
附录A
B 贡献
预训练
- 初始规划:Susan Zhang
- 训练基础设施和初始消融实验:Naman Goyal、Myle Ott、Stephen Roller、Sam Shleifer、Susan Zhang
- 训练效率:Naman Goyal、Myle Ott、Sam Shleifer
- 数据整理和去重:Shuohui Chen、Myle Ott、Stephen Roller
- OPT-175B的训练和监控:Mikel Artetxe、Moya Chen、Naman Goyal、Punit Singh Koura、Myle Ott、Sam Shleifer、Kurt Shuster、Daniel Simig、Stephen Roller、Susan Zhang
- 125M–66B基线模型的训练:Naman Goyal、Stephen Roller、Susan Zhang
评估
- NLP:Xian Li、Xi Victoria Lin、Todor Mihaylov、Stephen Roller、Anjali Sridhar
- 对话:Stephen Roller
- 负责任AI评估:Punit Singh Koura、Stephen Roller、Tianlu Wang
论文撰写
Moya Chen、Stephen Roller、Luke Zettlemoyer、Susan Zhang
代码发布准备
Christopher Dewan、Susan Zhang
负责任AI行为
Mona Diab、Susan Zhang
C 数据表
我们遵循Gebru等(2021)的建议,并为用于训练OPT模型的数据集提供了数据卡片。
C.1 动机
-
数据集创建的目的是什么?是否有特定的任务或需要填补的空白?
用于训练OPT-175B模型的预训练数据由五个数据集组成,包括RoBERTa(Liu等,2019b)使用的三个数据集、The Pile(Gao等,2021a)的一个子集,以及由Baumgartner等(2020)开发并由Roller等(2021)处理的Pushshift.io Reddit数据集。创建该数据集的目的是在广泛的文本语料库上预训练语言模型,重点是人工生成的文本。 -
谁创建了数据集(例如,哪个团队、研究小组)以及代表哪个实体(例如,公司、机构、组织)?
Meta AI。 -
谁资助了数据集的创建?如果有相关资助,请提供资助者名称、资助名称和编号。
Meta AI。 -
其他评论?
无。
C.2 组成
-
数据集中的实例代表什么(例如,文档、照片、人物、国家)?是否有多种类型的实例(例如,电影、用户和评分;人物及其互动;节点和边)?
实例是文本文档。数据集由以下数据集组成:- BookCorpus(Zhu等,2015):包含超过10,000本未出版的书籍。
- CC-Stories(Trinh和Le,2018):包含经过过滤的CommonCrawl数据,以匹配Winograd模式的故事风格。
- The Pile(Gao等,2021a):包括以下子集:
- Pile-CC
- OpenWebText2
- USPTO
- Project Gutenberg
- OpenSubtitles
- Wikipedia
- DM Mathematics
- HackerNews
- Pushshift.io Reddit数据集:由Baumgartner等(2020)开发并由Roller等(2021)处理。
- CCNewsV2:包含RoBERTa(Liu等,2019b)中使用的CommonCrawl新闻数据集的更新版本。
-
总共有多少实例(每种类型,如果适用)?
训练数据包含1800亿个token,对应800 GB的数据。 -
数据集是否包含所有可能的实例,还是从一个更大的集合中抽取的样本(不一定是随机的)?如果是样本,那么更大的集合是什么?样本是否具有代表性?
CC-stories数据集包含经过过滤的CommonCrawl数据子集。其余数据集从上述来源收集、重新格式化并去重。 -
每个实例由什么数据组成?“原始”数据(例如,未处理的文本或图像)还是特征?
每个实例由原始文本数据组成。 -
是否有与每个实例相关的标签或目标?
无。 -
是否有任何信息从单个实例中缺失?
无。 -
实例之间的关系是否明确(例如,用户的电影评分、社交网络链接)?
实例之间没有明确的关系。 -
是否有推荐的数据划分(例如,训练、开发/验证、测试)?
我们从预训练数据中随机抽取约200MB的验证集,按每个数据集在预训练语料库中的比例进行采样。 -
数据集中是否存在错误、噪声源或冗余?
除了数据集之间可能存在的自然重复外,没有其他冗余、错误或噪声源。 -
数据集是自包含的,还是链接到或依赖于外部资源(例如,网站、推文、其他数据集)?
数据集是自包含的。 -
数据集中是否包含可能令人反感、侮辱、威胁或引起焦虑的内容?
部分数据集来自公共Common Crawl数据和Reddit数据,可能包含令人反感的内容。 -
数据集是否与人相关?
部分文档与人相关,例如新闻文章、维基百科描述等。 -
数据集是否识别了任何子群体(例如,按年龄、性别)?
数据集未明确包含子群体识别信息。 -
其他评论?
无。
C.3 收集过程
-
如何获取与每个实例相关的数据?数据是直接观察到的(例如,原始文本、电影评分)、由受试者报告的(例如,调查响应),还是从其他数据中推断/派生的(例如,词性标签、基于模型的年龄或语言猜测)?
数据集是五个公开可用数据集的联合。 -
使用了哪些机制或程序来收集数据(例如,硬件设备或传感器、人工手动整理、软件程序、软件API)?这些机制或程序如何验证?
数据从互联网下载。 -
如果数据集是从更大集合中抽取的样本,采样策略是什么?
请参阅前面的答案了解数据集的创建方式。 -
谁参与了数据收集过程(例如,学生、众包工人、承包商)以及他们如何获得报酬?
数据由机器挖掘、过滤和采样。 -
数据收集的时间范围是什么?
CC-News数据集包含2016年9月至2021年9月期间抓取的英文新闻文章。 -
数据集是否与人相关?
否。 -
是否直接从相关个人收集数据,还是通过第三方或其他来源(例如,网站)获取?
不适用。 -
相关个人是否被告知数据收集?
不适用。 -
相关个人是否同意数据收集和使用?
不适用。 -
如果获得同意,是否提供了撤销同意的机制?
不适用。 -
是否对数据集及其使用对数据主体的潜在影响进行了分析?
进行了一些毒性和偏见评估。请参阅主文档和模型卡片了解详细信息。 -
其他评论?
无。
C.4 预处理/清理/标注
-
是否对数据进行了预处理/清理/标注?
各组件数据集经过标准清理和重新格式化,例如删除重复/非信息性文本(如“第一章”或“Project Gutenberg的电子书”)。 -
是否保存了“原始”数据以及预处理/清理/标注后的数据?
“原始”组件数据集在其各自的位置公开可用(更多详细信息请参阅参考文献中的相关论文)。 -
其他评论?
无。
C.5 使用
-
数据集是否已用于任何任务?
是,该数据集用于预训练OPT模型。 -
是否有存储库链接到使用该数据集的任何或所有论文或系统?
https://github.com/facebookresearch/metaseq -
数据集还可用于哪些(其他)任务?
该数据可用于预训练语言模型,这是许多当前和未来语言任务的基础。 -
数据集的组成或收集和预处理/清理/标注方式是否可能影响未来使用?
创建该数据集的管道为构建可扩展的数据挖掘基础设施铺平了道路。 -
是否有数据集不应使用的任务?
目前没有发现。 -
其他评论?
无。
C.6 分发
-
数据集是否会分发给创建数据集实体之外的第三方?
目前不会。 -
数据集将如何分发?
不适用。 -
数据集何时分发?
不适用。 -
数据集是否在版权或其他知识产权(IP)许可下分发,和/或适用的使用条款(ToU)下分发?
不适用。 -
是否有任何出口管制或其他法规限制适用于数据集或单个实例?
不适用。 -
其他评论?
无。
C.7 维护
-
谁支持/托管/维护数据集?
Meta AI。 -
如何联系数据集的所有者/管理者?
请参阅主文档。 -
是否有勘误表?
不适用。 -
数据集是否会更新?
目前没有更新计划。 -
如果数据集与人相关,是否有与实例相关的数据保留限制?
不适用。 -
是否会继续支持/托管/维护旧版本的数据集?
不适用。 -
如果其他人希望扩展/增强/构建/贡献数据集,是否有机制支持?
目前没有可用的机制。 -
其他评论?
无。D 模型卡片
遵循Mitchell等(2018)的建议,我们为OPT-175B提供了模型卡片。
D.1 模型详情
- 开发模型的个人或组织:OPT-175B由Meta AI开发。
- 模型日期:OPT-175B于2022年5月3日发布。
- 模型版本:本文描述的OPT-175B为版本1.0.0。
- 模型类型:OPT-175B是一个大型仅解码器Transformer语言模型。
- 关于训练算法、参数、公平性约束或其他应用方法和特征的信息:OPT-175B使用AdamW优化器训练,参数规模从1.25亿到1750亿。有关训练数据的信息请参阅数据卡片(附录C),有关训练过程的信息请参阅第2.2至2.5节。
- 更多信息的论文或其他资源:有关OPT-175B的更多详细信息,请参阅本文其余部分以及Meta AI研究博客上的相关文章。更多详细信息也可在我们的开源存储库metaseq中找到。
- 许可证:OPT-175B及较小的基线模型通过非商业用途许可协议提供,详见我们的模型许可证。
- 关于模型的问题或意见的反馈渠道:如有任何问题或意见,请联系通讯作者{susanz,roller,namangoyal}@fb.com。
D.2 预期用途
- 主要预期用途:我们发布OPT-175B用于语言模型研究,特别是负责任AI相关研究。有关发布的更多详细考虑,请参阅第6节。有关如何使用模型的信息,请参阅我们的开源存储库metaseq。
- 主要预期用户:我们主要面向研究人员及相关研究社区。
- 超出范围的用例:OPT-175B不适用于生产用途或实际部署。如第5节所述,OPT-175B与类似的大规模语言模型一样,存在多种缺陷,使其不适合商业用途。
D.3 数据、局限性和建议
- 训练数据的选择:OPT-175B的训练数据基于广度和可用性进行选择。有关训练数据的更多详细信息,请参阅我们的数据卡片(附录C)。
- 评估数据的选择:本文中的评估旨在提供与文献中类似规模模型的可比性能评估。鉴于社区对大规模语言模型安全性和公平性的关注,我们还明确提供了负责任AI的评估(见第4节)。
- 局限性:与其他大规模语言模型一样,训练数据的多样性(或缺乏多样性)对模型质量产生了下游影响,OPT-175B在偏见和安全性方面存在局限性。OPT-175B在生成多样性和幻觉方面也可能存在质量问题。总体而言,OPT-175B无法避免困扰现代大规模语言模型的诸多问题。通过以非商业许可发布,我们还希望增加对大规模语言模型问题的沟通、透明度和研究,特别是在可能与商业利益不一致的领域。有关OPT-175B局限性的更详细讨论,请参阅第5节。
-
未来工作的建议:有关我们发布考虑的更多信息,请参阅第6节,包括通过向更多研究社区开放模型而启发的潜在研究方向的讨论。我们希望OPT-175B的发布以及有关模型训练过程的信息,能够增加对大规模语言模型(特别是)以及自然语言处理和深度学习(一般而言)的开放科学研究。
相关文章:
OPT: Open Pre-trained Transformer语言模型
摘要 大规模语言模型通常需要数十万计算日的训练时间,展现了在零样本和小样本学习中的显著能力。鉴于其计算成本之高,这些模型在没有大量资本投入的情况下难以复现。对于那些通过API提供的少数模型,研究者无法获取完整的模型权重,…...
开源模型应用落地-LangChain高阶-记忆组件-RedisChatMessageHistory正确使用(八)
一、前言 LangChain 的记忆组件发挥着至关重要的作用,其旨在协助大语言模型(LLM)有效地留存历史对话信息。通过这一功能,使得大语言模型在对话过程中能够更出色地维持上下文的连贯性和一致性,进而能够像人类的记忆运作方式那样,进行更为自然、流畅且智能化的交互。 它仿佛…...
http和https有哪些不同
http和https有哪些不同 1.数据传输的安全性:http非加密,https加密 2.端口号:http默认80端口,https默认443端口 3.性能:http基于tcp三次握手建立连接,https在tcp三次握手后还有TLS协议的四次握手确认加密…...
UML系列之Rational Rose笔记七:状态图
一、新建状态图 依旧是新建statechart diagram; 二、工作台介绍 接着就是一个状态的开始:开始黑点依旧可以从左边进行拖动放置: 这就是状态的开始,和活动图泳道图是一样的;只能有一个开始,但是可以有多个…...
一个使用 Golang 编写的新一代网络爬虫框架,支持JS动态内容爬取
大家好,今天给大家分享一个由ProjectDiscovery组织开发的开源“下一代爬虫框架”Katana,旨在提供高效、灵活且功能丰富的网络爬取体验,适用于各种自动化管道和数据收集任务。 项目介绍 Katana 是 ProjectDiscovery 精心打造的命令行界面&…...
mycat介绍与操作步骤
文章目录 1.分库分表2.mycat 入门2.1 概述2.2 案例:水平分表1)准备工作2)配置3)启动并测试 3.mycat 配置详解3.1 schema.xml3.2 rule.xml3.3 server.xml 4.mycat 分片:垂直拆分1)准备工作2)配置…...
【Go】:图片上添加水印的全面指南——从基础到高级特性
前言 在数字内容日益重要的今天,保护版权和标识来源变得关键。为图片添加水印有助于声明所有权、提升品牌认知度,并防止未经授权的使用。本文将介绍如何用Go语言实现图片水印,包括静态图片和带旋转、倾斜效果的文字水印,帮助您有…...
R语言的语法糖
R语言的语法糖 引言 在编程语言中,所谓的“语法糖”是指那些使得程序员能够以更简洁、直观的方式书写代码的语法形式。R语言作为一种用于统计分析和数据可视化的编程语言,具有丰富的功能和灵活的语法。本文将深入探讨R语言中的语法糖,帮助读…...
乙游的尽头是虚拟偶像吗?
眼花了,竟然看到二次元乙游男主角走红毯了。 12月20日,某国际知名奢侈品品牌宣布,《恋与深空》四位男主将受邀出席品牌在上海举办的TF戏瘾之夜活动,并公开了四位男主的红毯照片。 没有真人实体的乙游男主走红毯?这是…...
【源码+文档+调试讲解】农产品研究报告管理系统
摘 要 农产品研究报告管理系统是一个旨在收集、整理、存储和分析农产品相关研究数据的综合性平台。农产品研究报告管理系统通常包含一个强大的数据库,它能够处理大量的研究数据,并对这些数据进行有效的管理和备份。农产品研究报告管理系统是现代农业科学…...
SQL UNION 操作符
SQL UNION 操作符 SQL UNION 操作符用于合并两个或多个 SELECT 语句的结果集。它将多个结果集组合成一个单独的结果集,并去除重复的行。为了使用 UNION,每个 SELECT 语句必须具有相同的列数,并且对应列的数据类型必须兼容。 语法 SELECT c…...
springboot vue uniapp 仿小红书 1:1 还原 (含源码演示)
线上预览: 移动端 http://8.146.211.120:8081/ 管理端 http://8.146.211.120:8088/ 小红书凭借优秀的产品体验 和超高人气 目前成为笔记类产品佼佼者 此项目将详细介绍如何使用Vue.js和Spring Boot 集合uniapp 开发一个仿小红书应用,凭借uniapp 可以在h5 小程序 app…...
扩散模型学习
扩散模型学习 DDPM(参考1) DDIM(参考1,参考2)...
【面试】MySQL 最左匹配原则
MySQL的最左匹配原则是在使用联合索引时非常重要的概念,理解并合理运用该原则能显著提升查询性能。以下从多个方面详细介绍: 1. 联合索引结构基础 联合索引是对多个列创建的索引。在MySQL中,联合索引以多列值的组合形式,按照创建…...
Mac 删除ABC 输入法
参考链接:百度安全验证 Mac下删除系统自带输入法ABC,正解!_mac删除abc输入法-CSDN博客 ABC 输入法和搜狗输入法等 英文有冲突~~ 切换后还会在英文状态,可以删除 ;可能会对DNS 输入有影响,但是可以通过复…...
Nginx代理同域名前后端分离项目的完整步骤
前后端分离项目,前后端共用一个域名。通过域名后的 url 前缀来区别前后端项目。 以 vue php 项目为例。直接上 server 模块的 nginx 配置。 server{ listen 80; #listen [::]:80 default_server ipv6onlyon; server_name demo.com;#二配置项目域名 index index.ht…...
21、Transformer Masked loss原理精讲及其PyTorch逐行实现
1. Transformer结构图 2. python import torch import torch.nn as nn import torch.nn.functional as Ftorch.set_printoptions(precision3, sci_modeFalse)if __name__ "__main__":run_code 0batch_size 2seq_length 3vocab_size 4logits torch.randn(batch…...
CNN张量输入形状和特征图
CNN张量输入形状和特征图 这个是比较容易理解的张量的解释,比较直观 卷积神经网络 在这个神经网络编程系列中,我们正在逐步构建一个卷积神经网络(CNN),所以让我们看看CNN的张量输入。 在最后两篇文章中&…...
RK3399开发板Linux实时性改造
本次测试基于NanoPC-T4开发板(国产化处理器RK3399),4.19.111内核Xenomai实时性改造测试。 Xenomai下载网站:https://xenomai.org/downloads/ NanoPC-T4网站:https://wiki.friendlyarm.com/wiki/index.php/NanoPC-T4/z…...
ASP.NET Core 中的高效后台任务管理
一、引言 在当今快速发展的 Web 开发领域,ASP.NET Core 凭借其卓越的性能、强大的功能和高度的灵活性,已然成为众多开发者构建现代 Web 应用程序的首选框架。它不仅能够高效地处理各种复杂的业务逻辑,还为开发者提供了丰富多样的工具和功能&…...
Spring Boot 2 学习指南与资料分享
Spring Boot 2 学习资料 Spring Boot 2 学习资料 Spring Boot 2 学习资料 在当今竞争激烈的 Java 后端开发领域,Spring Boot 2 凭借其卓越的特性,为开发者们开辟了一条高效、便捷的开发之路。如果你渴望深入学习 Spring Boot 2,以下这份精心…...
知识追踪模型DKT,DLKT详解及代码复现
定义与应用 知识追踪是一种 教育技术领域的重要方法 ,旨在通过分析学生的学习行为和表现,预测其掌握特定知识点的程度。这种方法的核心在于建立能够反映学习者认知状态的动态模型,从而实现对学生学习进度的实时监控和个性化指导。 DKT模型 DKT模型 是最早的知识追踪模型之…...
一类特殊积分的计算
一类特殊积分的计算 前言一、第一个引理二、第二个引理三、积分的计算后记 前言 今天讨论的这类积分是十分有趣的,在 Mathematics Stack Exchange 看见后,便打算在此将其中的计算过程完善一下。在本篇文章中,我们重点考虑求解如下积分&#…...
VScode 配置 C语言环境
遇到的问题集合 mingw官方下载网站(https://sourceforge.net/projects/mingw-w64/files/)更新之后,与网上大多数教程上写的界面不同了。 网上大多数教程让下载这个: 但是现在找不到这个文件。 写hello.c文件时,报错&…...
spring mvc源码学习笔记之十一
pom.xml 内容如下 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…...
小结:路由器和交换机的指令对比
路由器和交换机的指令有一定的相似性,但也有明显的区别。以下是两者指令的对比和主要差异: 相似之处 基本操作 两者都支持类似的基本管理命令,比如: 进入系统视图:system-view查看当前配置:display current…...
ffmpeg7.0 aac转pcm
#pragma once #define __STDC_CONSTANT_MACROS #define _CRT_SECURE_NO_WARNINGSextern "C" { #include "libavcodec/avcodec.h" }//缓冲区大小(缓存5帧数据) #define AUDIO_INBUF_SIZE 40960 /*name depthu8 8s16 …...
C#读取本地网络配置信息全攻略
一、引言 在当今数字化时代,网络已深度融入我们生活与工作的方方面面。对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键。想象一下,你正在开发一款网络诊断工具,需要精准定位网络连接问题,此时 IP 地址、…...
解决aerich init -t xx 报错ModuleNotFoundError: No module named ‘tomli_w‘
今天在学习fastapi的时候,发现一款数据库迁移工具,通过这个工具可以根据模型类来对数据库做出改变。 随跟着学: 在执行 aerich init -t settings.TORTOISE_ORM的时候, 彼其娘之。。 报了一些错误: Traceback (most recent ca…...
python检测gitlab中某个标签在一个月内添加和移除了多少次
可以通过 Python 脚本和 GitLab API 检测一个标签在一个月内被添加和移除的次数。以下是实现的步骤和示例代码: 步骤 获取 GitLab API 访问令牌:在 GitLab 中生成一个 Personal Access Token。设置时间范围:确定一个月的时间范围。调用 Git…...
学习模板之一
学习目标: 提示:这里可以添加学习目标 例如: 一周掌握 Java 入门知识 学习内容: 提示:这里可以添加要学的内容 例如: 搭建 Java 开发环境掌握 Java 基本语法掌握条件语句掌握循环语句 学习时间&#x…...
2025-微服务—SpringCloud-1~3
2025-微服务—SpringCloud 第一章、从Boot和Cloud版本选型开始说起1、Springboot版本2、Springcloud版本3、Springcloud Alibaba4、本次讲解定稿版 第二章 关于Cloud各种组件的停更/升级/替换1、微服务介绍2、SpringCloud是什么?能干吗?产生背景…...
centos7.6 安装nginx 1.21.3与配置ssl
1 安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel2 下载Nginx wget http://nginx.org/download/nginx-1.21.3.tar.gz3 安装目录 mkdir -p /data/apps/nginx4 安装 4.1 创建用户 创建用户nginx使用的nginx用户。 #添加www组 # groupa…...
PL/SQL语言的数据库交互
PL/SQL语言的数据库交互 引言 在当今的信息化时代,数据库管理系统(DBMS)在各行各业中扮演着至关重要的角色。为了高效地与数据库进行交互,许多程序员、数据库管理员和系统分析师选择使用PL/SQL(Procedural Language/…...
ARP欺骗
文章目录 ARP协议ARP欺骗原理断网攻击ARP欺骗(不断网) ARP协议 在局域网中,网络传输的是帧,帧里面有目标主机的MAC地址。arp协议负责将IP地址解析成对应的MAC地址 ARP欺骗原理 即通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量…...
Genymotion配套VirtualBox所在地址
在 Genymotion打开虚拟机前需要先打开VirtualBox中的虚拟机 C:\Program Files\Oracle\VirtualBox\VirtualBox.exe 再开启genymotion中的虚拟机开关...
TPS61022 PFM的机制以及TPS61xxx转换器的PFM与PWM之间的负载阈值
引言 TI 的大多数 TPS61xxx 低压升压转换器都配备了 PSM(省电模式),以帮助提高轻负载效率。但是,当它处于重负载状态时,输出纹波通常会高于 PWM。此外,PSM 和 PWM 之间的负载电流阈值不会直观地写入数据表中…...
1. npm 常用命令详解
npm 常用命令详解 npm(Node Package Manager)是 Node.js 的包管理工具,用于安装和管理 Node.js 应用中的依赖库。下面是 npm 的一些常用命令及其详细解释和示例代码。 镜像源 # 查询当前使用的镜像源 npm get registry# 设置为淘宝镜像源 …...
黑马linux入门笔记(01)初始Linux Linux基础命令 用户和权限 实用操作
B站 黑马程序员 的视频 BV1n84y1i7td 黑马程序员新版Linux零基础快速入门到精通,全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等 增强自控力 冥想慢呼吸绿色锻炼充分休息减少决策次数优先做重要的事情(早晨)融入强自控群控…...
Markdown中甘特图的使用
Markdown中甘特图的使用 1. 前言2. 语法详解2.1 甘特图语法 3. 使用场景及实例4. 小结5. 其他文章快来试试吧🖊️ Markdown中甘特图的使用 👈点击这里也可查看 1. 前言 Markdown 的原生语法不支持绘制图形,但通过扩展模块,我们可…...
Django创建数据表、模型、ORM操作
1、创建项目 django-admin startproject PersonInfosProject 2、创建项目应用,进入PersonInfosProject文件夹,新建index应用,使用命令 cd PersonInfosProject python manage.py startapp 新建完成之后的目录结构 3、新建数据模型…...
No. 31 笔记 | Web安全-SQL手工注入技术学习 Part 2
一、研究背景 背景介绍 SQL注入是一种常见且高危的Web安全漏洞。攻击者可以通过构造恶意SQL查询语句来绕过验证机制,执行未授权操作,如获取敏感信息、篡改数据库内容甚至控制服务器。 研究内容 本笔记探讨以下数据库的手工注入技术: MySQLAc…...
Spring Boot中的扫描注解如何使用
在 Spring Boot 中,扫描注解是指通过注解来告诉 Spring 框架应该扫描哪些包、哪些类或哪些特定的组件,并将其作为 Spring 容器中的 bean 进行管理。Spring Boot 主要通过以下几种注解来实现自动扫描: ComponentScanSpringBootApplicationCom…...
用 Python 从零开始创建神经网络(十九):真实数据集
真实数据集 引言数据准备数据加载数据预处理数据洗牌批次(Batches)训练(Training)到目前为止的全部代码: 引言 在实践中,深度学习通常涉及庞大的数据集(通常以TB甚至更多为单位)&am…...
深入探讨 Vue.js 的动态组件渲染与性能优化
Vue.js 作为一款前端领域中备受欢迎的渐进式框架,以其简单优雅的 API 和灵活性受到开发者的喜爱。在开发复杂应用时,动态组件渲染是一项极其重要的技术,它能够在页面中动态地加载或切换组件,从而显著提升应用的灵活性与用户体验。…...
qml TextArea、TextEdit、TextField、TextInput的区别于联系
在 QML 中,TextArea、TextEdit、TextField 和 TextInput 都是用来接收用户输入的控件,但它们之间有一些区别和联系。 区别: TextArea:用于多行文本输入,可以接收多行文本输入。TextEdit:也用于多行文本输入…...
《探索 PC 端的开源神经网络多模态模型宝藏》
《探索 PC 端的开源神经网络多模态模型宝藏》 一、多模态模型:开启智能交互新纪元二、主流 PC 端开源多模态模型大赏1. Obsidian:轻量级多模态先锋2. GLM-Edge 系列:移动端与 PC 端的全能选手3. Minicpm-llama3-v2.6:紧凑高效的多…...
centos 搭建nginx+配置域名+windows访问
准备工作:一个完整的centos环境,nginx安装包(可以从官网下载)nginx: download 一:centos可能有精简版,部分环境没有相关依赖包, 需要检查以下项: 1.gcc检查:gcc -v(回车后应当有版…...
docker的数据卷和自定义镜像
docker的数据卷: 容器与宿主机之间,或者容器和容器之间的数据共享(目录)。 创建容器的时间,通过指定目录,实现容器于宿主机之间,或者容器和容器之间的数据共享。 容器的生命周期有限,…...
在 Linux 下Ubuntu创建同权限用户
我是因为不小心把最开始创建的用户的文件夹颜色搞没了,再后来全白用习惯了,就不想卸载了,像创建一个和最开始创建的用户有一样的权限可以执行sudo -i进入root一样的用户 如图这是最原始的样子 第一步 创建新用户,我这里是因为之前…...