究诸经典,探寻大模型演变之踪迹

news2025/1/10 16:39:14

编者按:在仅仅五年的时间里,大语言模型、transformers几乎完全改变了自然语言处理领域。

为了便于快速、扎实、深入地学习大语言模型,本文整理一个简单的经典学术资料列表,供正在入门中的机器学习研究人员和开发者参考。

以下是译文,Enjoy!

本文经原作者授权,由Baihai IDP编译。如需转载译文,请联系获取授权。

原文链接:

https://magazine.sebastianraschka.com/p/understanding-large-language-models

作者 | SEBASTIAN RASCHKA

编译 | 岳扬

大语言模型已经风靡全球——这并非妄言。在仅仅五年的时间里,大语言模型、transformers几乎完全改变了自然语言处理领域。而且,它们也已经开始为计算机视觉(computer vision)和计算生物学(computational biology) 等领域带来变革性的改变。

由于transformers对每大家的研究安排(research agenda)都有比较大的影响,我想整理一个简单的经典学术资料列表,供正在入门中的机器学习研究人员和开发者参考。

下文的学术资料主要是按时间顺序排列的,主要是学术研究论文。当然,还有许多其它有用的学术资料。例如:

  1. Jay Alammar的《The Illustrated Transformer》[1]
  2. Lilian Weng的一篇更有技术深度的博客《The Transformer Family》[2];
  3. Xavier Amatriain的《Transformer models: an introduction and catalog — 2023 Edition》介绍了所有重要的Transformer models及其系谱图(family tree)[3];
  4. Andrej Karpathy 介绍了实现生成语言模型(generative language model)的最简单方法[4];

以及我自己(原文作者)的一系列讲座[5]和书籍相关章节[6]。

01 了解主要的模型架构和task

如果您之前从未接触过transformer模型或大语言模型领域,最好从头开始学习。

(1) Neural Machine Translation by Jointly Learning to Align and Translate (2014) by Bahdanau, Cho, and Bengio, https://arxiv.org/abs/1409.0473

如果您有能抽出较多空闲时间来学习,我建议从上面这篇的论文开始阅读。其介绍了一种注意机制(attention mechanism),可用于改进循环神经网络(RNN)的长序列建模(long-range sequence modeling)能力。这使得RNN能够更准确地翻译更长的句子——这也是后来开发原始transformer模型架构的动机。

图片

Source: https://arxiv.org/abs/1409.0473

(2) Attention Is All You Need (2017) by Vaswani, Shazeer, Parmar, Uszkoreit, Jones, Gomez, Kaiser, and Polosukhin, https://arxiv.org/abs/1706.03762

上述论文介绍了最初的Transformer架构,由编码器(encoder)和解码器(decoder)组成,这两部分将在之后作为独立的模块而变得相关。此外,该论文引入了一些概念,如缩放点积注意力机制(scaled dot product attention mechanism)、多头注意力块(multi-head attention blocks)和位置编码(positional input encoding),它们仍然是现代Transformer系列模型的基础。

图片

Source: https://arxiv.org/abs/1706.03762

(3) BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (2018) by Devlin, Chang, Lee, and Toutanova, https://arxiv.org/abs/1810.04805

  • 基于原始的transformer架构,大型语言模型研究开始分为两个方向:
  • encoder-style transformers:用于预测语言建模任务,如文本分类;decoder-style transformers:用于生成语言建模任务,如翻译、生成摘要和其他形式的文本创作。

上面那篇BERT论文介绍了掩码语言建模(masked-language modeling)的原始概念(original concept),而next-sentence prediction(下一句预测)仍然是一个具有影响力的解码器式架构(decoder-style architecture)。如果您对这个研究方向感兴趣,我推荐您继续阅读RoBERTa[7],该模型通过删除下一句预测任务(next-sentence prediction tasks)简化了预训练目标(pretraining objectives)。

图片

Source: https://arxiv.org/abs/1810.04805

(4) Improving Language Understanding by Generative Pre-Training (2018) by Radford and Narasimhan, https://www.semanticscholar.org/paper/Improving-Language-Understanding-by-Generative-Radford-Narasimhan/cd18800a0fe0b668a1cc19f2ec95b5003d0a5035

GPT论文引入了现在流行的解码器式架构(decoder-style architecture),并通过next-word prediction(下一个单词的预测)进行预训练。因其使用掩码语言建模预训练目标(masked language model pretraining objective),BERT可以被视为双向transformer,而GPT是一个单向、自回归的模型。虽然GPT嵌入(GPT embeddings)也可用于分类,但GPT这种方法是当下最具影响力的LLMs核心,比如ChatGPT。

如果您对这个研究方向感兴趣,我推荐您接下来阅读GPT-2和GPT-3论文。这两篇论文表明,LLMs能够实现零样本和小样本学习(zero- and few-shot learning),并突显了LLMs的“涌现”能力。GPT-3仍然是当前ChatGPT等最新一代LLM的baseline和基础模型,我们将在后续的文章中单独介绍InstructGPT方法,它是ChatGPT的关键所在。

图片

Source: https://www.semanticscholar.org/paper/Improving-Language-Understanding-by-Generative-Radford-Narasimhan/cd18800a0fe0b668a1cc19f2ec95b5003d0a5035

(5) BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension (2019), by Lewis, Liu, Goyal, Ghazvininejad, Mohamed, Levy, Stoyanov, and Zettlemoyer, https://arxiv.org/abs/1910.13461.

正如前面提到的,BERT-type encoder-style的LLMs通常更适用于预测建模任务,而GPT-type decoder-style的LLMs则更擅长生成文本。为了兼顾两者优势,上述那篇BART论文将编码器(encoder)和解码器(decoder)部分结合起来(类似于原始的transformer——该清单中的第二篇论文)。

图片

Source: https://arxiv.org/abs/1910.13461

(6) Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond (2023) by Yang, Jin, Tang, Han, Feng, Jiang, Yin, and Hu, https://arxiv.org/abs/2304.13712

这不是一篇研究性的论文,但可能是迄今最好的关于当前主要模型架构的调查,展示了不同的架构是如何演变的。然而,在讨论 BERT-style 掩码语言模型(编码器)和GPT-style自回归语言模型(解码器)的同时,该篇文章还提供了一些有关预训练和微调数据的有价值讨论和指导。

图片

The evolutionary tree of modern LLMs via https://arxiv.org/abs/2304.13712.

02 缩放定律和提高效率 Scaling Laws and Improving Efficiency

如果您想要了解那些有助于提高transformer的效率的技术,我建议您阅读2020年发表的这篇论文——《Efficient Transformers: A Survey》[8],以及2023年发表的《A Survey on Efficient Training of Transformers》[9]。

另外,还有一些我认为特别有趣并值得阅读的论文。

(7) FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness (2022), by Dao, Fu, Ermon, Rudra, and Ré, https://arxiv.org/abs/2205.14135.

尽管大多数有关transformer的论文并不涉及取代原来的缩放点积机制(scaled dot product mechanism)来实现自注意力,但FlashAttention是我最近经常看到被提到或引用的一种机制。

图片

Source: https://arxiv.org/abs/2205.14135

(8) Cramming: Training a Language Model on a Single GPU in One Day (2022) by Geiping and Goldstein, https://arxiv.org/abs/2212.14034.

在这篇论文中,研究人员花24小时在单个GPU上训练了一种掩码语言模型encoder-style LLM(这里说的是BERT)。相比之下,2018年最初的BERT论文是在16个TPU上进行了为期四天的训练。有趣的一点是,虽然较小的模型具有更高的吞吐量(throughput),但较小的模型学习效率也较低。因此,更大的模型并不需要更多的训练时间就能够达到特定的预测性能阈值(predictive performance threshold)。

图片

Source: https://arxiv.org/abs/2212.14034

(9) LoRA: Low-Rank Adaptation of Large Language Models (2021) by Hu, Shen, Wallis, Allen-Zhu, Li, L Wang, S Wang, and Chen, https://arxiv.org/abs/2106.09685.

低秩自适应(LoRA)是参数高效性(parameter-efficient manner)微调大型语言模型最具影响力的方法之一。虽然还有其他参数高效性微调方法(请参见下面的内容),但需要特别注意的是,LoRA既是一个优雅的(elegant)方法,也是一个非常通用的(very general)方法,可适用于其他类型的模型。

尽管预训练模型的权重在预训练任务上具有Full rank(满秩),但LoRA的作者指出,当它们适应新任务时,预训练的大型语言模型具有较低的“本征维度(intrinsic dimension)”。因此,LoRA的主要思想是将权重变化ΔW分解为lower-rank(低秩)表示,这样使得参数效率更高。

图片

LoRA示意图及其性能表现 来自https://arxiv.org/abs/2106.09685

(10) Scaling Down to Scale Up: A Guide to Parameter-Efficient Fine-Tuning (2022) by Lialin, Deshpande, and Rumshisky, https://arxiv.org/abs/2303.15647.

如今的大语言模型在大型数据集上进行预训练,展现出了“涌现”能力,还能够在各种任务中表现良好,包括语言翻译(language translation)、摘要(summarization)、编码(coding)和问答(Q&A)。然而,如果我们希望提高transformer在特定领域数据和专业任务上的能力,微调transformer是值得的。本文回顾了40多篇有关参数高效性微调方法的论文(包括时下热门的技术,如Prefix-tuning(前缀微调)、adapters和Low-Rank Adaptation (LoRA,低秩自适应)),以使微调能够拥有非常高的计算效率。

图片

Source: https://arxiv.org/abs/1910.13461

(11) Training Compute-Optimal Large Language Models (2022) by Hoffmann, Borgeaud, Mensch, Buchatskaya, Cai, Rutherford, de Las Casas, Hendricks, Welbl, Clark, Hennigan, Noland, Millican, van den Driessche, Damoc, Guy, Osindero, Simonyan, Elsen, Rae, Vinyals, and Sifre, https://arxiv.org/abs/2203.15556.

该论文介绍了拥有700亿参数的Chinchilla 模型,其在生成式建模任务(generative modeling tasks)上优于时下流行的1750亿参数的 GPT-3 模型。然而,该论文的主要观点是当下的大型语言模型“训练程度不足”。

该论文定义了大语言模型训练的Linear Scaling Law。例如,虽然Chinchilla 的大小仅为GPT-3的一半,但它的表现优于GPT-3,因为它训练的token数目为1.4万亿(而不仅仅是3000亿)。换句话说,训练的token数目与模型大小一样重要。

图片

Source: https://arxiv.org/abs/2203.15556

(12) Pythia: A Suite for Analyzing Large Language Models Across Training and Scaling (2023) by Biderman, Schoelkopf, Anthony, Bradley, O’Brien, Hallahan, Khan, Purohit, Prashanth, Raff, Skowron, Sutawika, and van der Wal, https://arxiv.org/abs/2304.01373

Pythia是一套开源的LLM套件(70M至12B参数),可用于研究LLMs在训练过程中如何演变。

该架构类似于GPT-3,但拥有一些改进,例如Flash Attention(类似于LLaMA[10])和Rotary Positional Embeddings(类似于PaLM[11])。Pythia在The Pile数据集[12](825 Gb)上进行了300 B个token的训练(~1 epoch on regular PILE, ~1.5 epochs on deduplicated PILE)。

图片

Pythia大模型套件 via https://arxiv.org/abs/2304.01373

Pythia相关研究的主要结论如下:

  • 在重复的数据上进行训练(由于LLMs的训练方式特性,这意味着训练超过一个epoch)对性能没有好处也没有坏处。

  • 训练顺序不影响模型的记忆能力(memorization)。这其实是不太好的,因为如果是相反的情况,我们就可以通过重新排序训练数据来减轻效果不好的逐字逐句记忆问题(verbatim memorization issues)。

  • 预训练时的词频(term frequency)影响任务性能。例如,小样本的准确率往往对于更常见的词语更高。

  • 加倍batch size可以使得训练时间减半,但不会影响收敛性(convergence)。

03 Alignment - 引导大语言模型达成预期的Goals和Interests

近年来,我们看到许多相对有能力的大语言模型,能够生成逼真的文本(例如GPT-3和Chinchilla等)。就我们常用的预训练范式(pretraining paradigms)所能达到的效果而言,我们似乎已经达到了一个上限。

为了使语言模型对人类更加有帮助,并减少错误信息和有害言论,研究人员设计了额外的训练范式(training paradigms)来微调预训练的基础模型(base models)。

(13) Training Language Models to Follow Instructions with Human Feedback (2022) by Ouyang, Wu, Jiang, Almeida, Wainwright, Mishkin, Zhang, Agarwal, Slama, Ray, Schulman, Hilton, Kelton, Miller, Simens, Askell, Welinder, Christiano, Leike, and Lowe, https://arxiv.org/abs/2203.02155.

在这篇所谓的InstructGPT论文中,研究人员使用了一种有人类参与的强化学习机制(RLHF)。他们从预先训练好的GPT-3基础模型开始,并使用人类提供的提示-响应对(prompt-response pairs)进行监督学习来进一步微调它(步骤1)。接下来,需要人类对模型输出内容进行排名,以训练一个奖励模型(步骤2)。最后,使用奖励模型通过近端策略优化(proximal policy optimization)来更新预训练和微调的GPT-3模型(步骤3)。

顺带一提,这篇论文也被称为ChatGPT背后核心思想的论文——根据最近的传言,ChatGPT是一个对InstructGPT进行大规模数据集微调的扩展版本。

图片

Source: https://arxiv.org/abs/2203.02155

(14) Constitutional AI: Harmlessness from AI Feedback (2022) by Yuntao, Saurav, Sandipan, Amanda, Jackson, Jones, Chen, Anna, Mirhoseini, McKinnon, Chen, Olsson, Olah, Hernandez, Drain, Ganguli, Li, Tran-Johnson, Perez, Kerr, Mueller, Ladish, Landau, Ndousse, Lukosuite, Lovitt, Sellitto, Elhage, Schiefer, Mercado, DasSarma, Lasenby, Larson, Ringer, Johnston, Kravec, El Showk, Fort, Lanham, Telleen-Lawton, Conerly, Henighan, Hume, Bowman, Hatfield-Dodds, Mann, Amodei, Joseph, McCandlish, Brown, Kaplan, https://arxiv.org/abs/2212.08073.

在这篇论文中,研究人员将对齐思想(alignment idea)推进了一步,提出了一种可用于创建“无危害”AI系统的训练机制。与直接的人类监督不同,研究人员提出了一种基于人类提供的规则的自我训练机制。与上述InstructGPT论文类似,所提出的方法采用强化学习方法。

图片

Source: https://arxiv.org/abs/2212.08073

(15) Self-Instruct: Aligning Language Model with Self Generated Instruction (2022) by Wang, Kordi, Mishra, Liu, Smith, Khashabi, and Hajishirzi, https://arxiv.org/abs/2212.10560

指令微调(Instruction finetuning)是一种让类似GPT-3这样的预训练基础模型变成更具能力的LLM(如ChatGPT)的方法。而像databricks-dolly-15k这样开源的人类输入指令数据集可以帮助实现这一目标。但是怎样才能扩展这个规模呢?有一种方法是通过自身生成来引导LLM的训练。

Self-Instruct是一种(几乎无需注释)将预训练的LLM与指令对齐的方法。

它是如何工作的呢?简而言之有4个步骤:

第1步,使用一组人类编写的指令(本例中为175条)和样本指令(sample instructions)来作为种子任务池(seed task pool)。

第2步,使用预训练的LLM(如GPT-3)确定任务类别。

第3步,给定新指令,让预训练的LLM生成响应。

第4步,收集(collect),精简(prune),和过滤(filter)大模型的响应,然后将其添加到任务池(task pool)中。

图片

self-instruct方法的注释图,来源于https://arxiv.org/abs/2212.10560

在实践中,根据 ROUGE 分数,这种方法表现相对良好。

例如,经过Self-Instruct微调的LLM表现优于 GPT-3 基础LLM(1),并且可以与以使用大规模人工指令集预训练的LLM(2)竞争。此外,self-instruct还可以使已经在人类指令上进行了微调的LLM受益(3)。

但当然,评估LLM的黄金标准是询问人类。根据人类的评价,Self-Instruct方法优于基础LLM和以监督方式使用人工指令数据集(如SuperNI、T0 Trainer)进行训练的LLM。但有趣的是,Self-Instruct方法并不能超越通过人类反馈进行强化学习训练的方法(RLHF)。

人类编写的指令数据集与Self-Instruct数据集,哪个更有前途?我认为两者都很有前途。为什么不先使用像 databricks-dolly-15k 中的人类编写指令数据集,然后再使用Self-Instruct方法来扩展呢?

04 Bonus: 介绍Reinforcement Learning with Human Feedback(RLHF)

虽然RLHF(带有人类反馈的强化学习)可能不能完全解决目前LLM的问题,但其目前被认为是最好的选择,特别是与前一代的LLM相比。我们以后很可能会看到更多具有创造性的方式,将RLHF应用于LLM的其他领域。

上面的两篇论文,InstructGPT和Consitutinal AI,都使用了RLHF,我认为在不久的将来它会成为一种有影响力的方法,如果你想了解RLHF,本节还介绍了其他资源。(为了技术层面上的正确性,Constitutional AI的那篇论文使用了人工智能而不是人类的反馈,但是它遵循了一种RL(强化学习)的类似概念)。

(16) Asynchronous Methods for Deep Reinforcement Learning (2016) by Mnih, Badia, Mirza, Graves, Lillicrap, Harley, Silver, and Kavukcuoglu (<https://arxiv.org/abs/1602.01783) 介绍了策略梯度方法(policy gradient methods)作为基于深度学习的RL中Q-learning的替代方法。

(17) Proximal Policy Optimization Algorithms (2017) by Schulman, Wolski, Dhariwal, Radford, Klimov (<https://arxiv.org/abs/1707.06347) 提出了一种改进的近端策略优化强化学习流程,比上面的原始策略梯度算法更具数据效率和可扩展性。

(18) Fine-Tuning Language Models from Human Preferences (2020) by Ziegler, Stiennon, Wu, Brown, Radford, Amodei, Christiano, Irving (<https://arxiv.org/abs/1909.08593) 阐述了PPO和奖励学习的概念,以及应用于预训练语言模型的方法(包括KL正则化),来防止策略(policy)与自然语言相差过大。

(19) Learning to Summarize from Human Feedback (2022) by Stiennon, Ouyang, Wu, Ziegler, Lowe, Voss, Radford, Amodei, Christiano [2009.01325] Learning to summarize from human feedback 介绍了时下流行的RLHF三步骤:

  1. 对GPT-3进行预训练,
  2. 以监督方式对其进行微调,
  3. 以监督方式训练奖励模型。然后使用近端策略优化(proximal policy optimization)算法,利用这个奖励模型对微调后的模型进行训练。

本文还表明,与仅使用常规监督学习方式相比,在近端策略优化强化学习的支持下会得到更好的模型。

图片

Source: https://arxiv.org/abs/2009.01325

(20) Training Language Models to Follow Instructions with Human Feedback (2022) by Ouyang, Wu, Jiang, Almeida, Wainwright, Mishkin, Zhang, Agarwal, Slama, Ray, Schulman, Hilton, Kelton, Miller, Simens, Askell, Welinder, Christiano, Leike, and Lowe (https://arxiv.org/abs/2203.02155) 也被称为InstructGPT论文,使用与上述RLHF相似的三大步骤,但它不是总结文本,而是根据人类指令生成文本。此外,它使用一个labeler对输出进行排序(而不仅仅是在人工智能生成的文本和人类生成的文本之间进行二元比较)。

05 总结和扩展阅读 Conclusion and Further Reading

我已经尽量保持本文的论文清单简明扼要,重点是了解当代大语言模型背后的设计、约束和演变(design, constraints, and evolution),列出了top-10论文(以及三篇关于RLHF的论文)。

如果想要更进一步了解,我建议阅读上面提到的论文的参考文献。或者,下面这些扩展阅读材料(这个清单并不全面)也建议阅读:

替代GPT的开源方案

BLOOM: A 176B-Parameter Open-Access Multilingual Language Model (2022), https://arxiv.org/abs/2211.05100

OPT: Open Pre-trained Transformer Language Models (2022), https://arxiv.org/abs/2205.01068

UL2: Unifying Language Learning Paradigms (2022), https://arxiv.org/abs/2205.05131

ChatGPT的替代方案

LaMDA: Language Models for Dialog Applications (2022), https://arxiv.org/abs/2201.08239

(Bloomz) Crosslingual Generalization through Multitask Finetuning (2022), https://arxiv.org/abs/2211.01786

(Sparrow) Improving Alignment of Dialogue Agents via Targeted Human Judgements (2022), https://arxiv.org/abs/2209.14375

BlenderBot 3: A Deployed Conversational Agent that Continually Learns to Responsibly Engage, https://arxiv.org/abs/2208.03188

计算生物学中的大语言模型

ProtTrans: Towards Cracking the Language of Life’s Code Through Self-Supervised Deep Learning and High Performance Computing (2021), https://arxiv.org/abs/2007.06225

Highly Accurate Protein Structure Prediction with AlphaFold (2021), https://www.nature.com/articles/s41586-021-03819-2

Large Language Models Generate Functional Protein Sequences Across Diverse Families (2023), https://www.nature.com/articles/s41587-022-01618-2

如果想要学习更多AI知识,可以阅读原文作者的书籍:

图片

https://sebastianraschka.com/books

END

参考资料

  1. https://arxiv.org/abs/2203.02155
  2. https://lilianweng.github.io/posts/2020-04-07-the-transformer-family/
  3. https://amatriain.net/blog/transformer-models-an-introduction-and-catalog-2d1e9039f376/
  4. https://github.com/karpathy/nanoGPT
  5. https://sebastianraschka.com/blog/2021/dl-course.html#l19-self-attention-and-transformer-networks
  6. https://github.com/rasbt/machine-learning-book/tree/main/ch16
  7. https://arxiv.org/abs/1907.11692
  8. https://arxiv.org/abs/2009.06732
  9. https://arxiv.org/abs/2302.01107
  10. https://arxiv.org/abs/2302.13971
  11. https://arxiv.org/abs/2204.02311
  12. https://arxiv.org/abs/2101.00027

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/582608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA基础---集合

一、树结构 二叉树、二叉查找树、平衡二叉树、红黑树 1、数据结构遍历方式 1、前序遍历&#xff1a;当前节点、左子节点、右子节点 2、中序遍历&#xff1a;左子节点、当前节点、右子节点 3、后序遍历&#xff1a;左子节点、右子节点、当前节点 4、层序遍历&#xff1a;一层…

几个提高工作效率的 Python 自动化脚本,收藏!

在这个自动化时代&#xff0c;我们有很多重复无聊的工作要做。 想想这些你不再需要一次又一次地做的无聊的事情&#xff0c;让它自动化&#xff0c;让你的生活更轻松。 那么在本文中&#xff0c;我将向您介绍 10 个 Python 自动化脚本&#xff0c;以使你的工作更加自动化&#…

javaWeb ssh小提琴管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh小提琴管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S 模式开发。开发环境为TOMCAT7.0,…

TypeScript实现贪吃蛇游戏

TS实现贪吃蛇游戏 文章目录 TS实现贪吃蛇游戏[toc]1.项目效果2.项目梳理3.项目准备4.主体页面结构5.CSS样式6.TS逻辑6.1 食物逻辑6.2 蛇逻辑6.3 记分板逻辑6.4 游戏控制器逻辑6.5 程序入口ts 1.项目效果 项目体验 2.项目梳理 这个小游戏主要包括积分面板&#xff0c;食物&…

2023上半年软件设计师真题评析

2023年上半年软设是2018年改版后的一次考试&#xff0c;以下内容根据考完回忆结合网上暂时流传的真题(不保证完全正确)整理&#xff0c;主要侧重相关知识点罗列&#xff0c;少讲或不讲具体的答案&#xff0c;主要给自己的计算机基础查漏补缺&#xff0c;同时也希望对大家有帮助…

基于AI技术的APP外包开发流程

AI技术发展非常迅速&#xff0c;最近一年有了巨大的技术突破&#xff0c;一些专家认为可以基于现在的AI技术将APP再重做一遍&#xff0c;这无疑将给创业者带来巨大机会。今天和大家分享使用AI重做一个APP的步骤和注意事项&#xff0c;希望对大家有所帮助。 需要遵循以下步骤和注…

5601-RIO-MCM 消除Modbus网络上的通信错误

当端口配置为从端口时&#xff0c;此参数指定内部用作Holding的零地址或起点的数据库地址 寄存器&#xff08;16位整数&#xff09;数据。Modbus功能读取保持寄存器数据代码3命令&#xff08;读取保持寄存器&#xff09;和由功能代码6写入&#xff08;预设单寄存器&#xff09;…

《论文阅读》在跨语料库上利用集成提示完成零样本的文本情感分类 COLING2022

《论文阅读》在跨语料库上利用集成提示完成零样本的文本情感分类 COLING2022 前言相关知识hubness problem零样本学习灵感来源验证点零样本情感分类的自然语言推理情感提示情感集成自我总结问题前言 你是否也对于理解论文存在困惑? 你是否也像我之前搜索论文解读,得到只是中…

【自然语言处理】- 作业6: 面向新冠肺炎的社会计算应用

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

Mybatis-X插件自动生成代码的使用详解(小白专用)

Mybatis-X插件自动生成代码的使用详解&#xff08;小白专用&#xff09; 1、 使用idea链接数据库 详见使用idea链接数据库并生成实体类 idea链接数据库之后也提供了一个生成实体类的方法&#xff0c;见↑ 2、安装mybatis-X插件 File–>Settings–>Plugins–>Marke…

c++11基础

文章目录&#xff1a; c11简介统一的列表初始化{}初始化std::initializer_list 声明autodecltypenullptr 范围for循环STL中的一些变化arrayforward_listunordered_map和unordered_set 字符串转换函数 c11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1)&#xff0…

【JavaScript数据结构与算法】数组类(电话号码的字符组合)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;也会涉及到服务端&#xff08;Node.js&#xff09; &#x1f4c3;个人状态&#xff1a; 在校大学生一枚&#xff0c;已拿多个前端 offer&#xff08;…

小红书达人矩阵怎么布局,达人矩阵分配

随着互联网营销学的兴起&#xff0c;一方面使得生意越来越好做&#xff0c;但同时也加大了做生意的门槛&#xff0c;属于是良币驱逐劣币。而达人矩阵就是良币的一种表现方式&#xff0c;今天来和大家来分享下小红书达人矩阵怎么布局&#xff0c;达人矩阵分配。 达人矩阵是什么?…

重塑工作场所:后疫情时代组织韧性的8个策略

经济寒冬来临&#xff0c;倒挂的收益率曲线、持续上升的利率以及层出不穷的裁员公告等等&#xff0c;让经济学家们得出一个结论&#xff1a;全球经济正在衰退。然而&#xff0c;经济下行周期可能是卓越公司改变其命运的最佳时机。有研究表明&#xff0c;相对于非经济衰退时期&a…

JavaSE_day40(字节流复制图片,字节流与File实现复制目录到另一个目录下)

1 A.java * 1.分别使用字符流和字节流复制图片&#xff08;底层是二进制文件&#xff0c;如图片 视频 音频等&#xff09; * * 二进制文件只能使用字节流进行复制&#xff08;使用windows自带记事本打开读不懂的&#xff09; * * 文本文件的复制即可使用…

【数据分享】第六次、第七次人口普查深圳各街道数据

0. 数据来源 https://tjgb.hongheiku.com/ https://www.hongheiku.com/sichuan/55201.html 手动收集整理 数据展示 数据分享 只分享人口数据&#xff0c;地理数据可能涉及隐私问题&#xff0c;暂不分享&#xff0c;有需要可以邮箱联系uncodongqq.com 链接: https://pan.baid…

Hive ---- 分区表和分桶表

Hive ---- 分区表和分桶表 1. 分区表1. 分区表基本语法2. 二级分区表3. 动态分区 2. 分桶表1. 分桶表基本语法2. 分桶排序表 1. 分区表 Hive中的分区就是把一张大表的数据按照业务需要分散的存储到多个目录&#xff0c;每个目录就称为该表的一个分区。在查询时通过where子句中…

信必优加入中国网络信息安全科技创新发展联盟

近日&#xff0c;信必优成功加入中国网络信息安全科技创新发展联盟。 中国网络信息安全科技创新发展联盟是在国务院国资委指导下&#xff0c;中国电科与公安部第一研究所、中国信息通信研究院、中国工业互联网研究院、中国科学院信息工程研究所、中国电信、中国联通、中国移动、…

2023年武汉住建厅七大员怎么报名?报名流程?精准题库一次过??

2023年武汉住建厅七大员怎么报名?报名流程&#xff1f;精准题库一次过&#xff1f;&#xff1f; 2023年武汉住建厅七大员是指施工员、质量员、资料员、材料员、机械员、标准员、劳务员&#xff0c;报的最多的可能就是施工员&#xff0c;质量员和资料员 报名流程&#xff1a; 1…

算法:回溯算法(以解决n皇后问题为例)

基本思想&#xff1a;回溯算法的基本思想是&#xff1a;从一条路往前走&#xff0c;能进则进&#xff0c;不能进则退回来&#xff0c;换一条路再试。八皇后问题就是回溯算法的典型&#xff0c;第一步按照顺序放一个皇后&#xff0c;然后第二步符合要求放第2个皇后&#xff0c;如…