Unsloth 教程 - 如何微调 Llama-3并导出到 Ollama

news2024/11/15 8:08:17

本文翻译整理自:🦙 How to Finetune Llama-3 and Export to Ollama
https://docs.unsloth.ai/tutorials/how-to-finetune-llama-3-and-export-to-ollama


文章目录

      • 1、什么是Unsloth?
      • 2、什么是Ollama?
      • 3、安装Unsloth
      • 4、选择要微调的模型
      • 5、微调参数
      • 6、Alpaca 数据集
      • 7、多列微调
      • 8、多轮对话
      • 9、可定制的聊天模板
      • 10、训练模型
      • 11、推理/运行模型
      • 12、保存模型
      • 13、导出到 Ollama
      • 14、自动创建`Modelfile`
      • 15、Ollama 推理
      • 16、交互式ChatGPT风格
      • 你做到了!


创建自定义个人助理(如ChatGPT)以在Ollama上本地运行的初学者指南

在本教程结束时,您将通过微调Llama-3和Unsloth 免费创建一个自定义聊天机器人。
它可以通过PC上的Ollama在本地运行,也可以通过Google Colab在免费的GPU实例中运行。
您将能够像下面这样与聊天机器人交互:

在这里插入图片描述


Unsloth使微调变得更加容易,并且可以通过集成的自动Modelfile 创建自动将微调模型 导出到Ollama

如果您需要帮助,您可以加入我们的 discord :https://discord.com/invite/unsloth


1、什么是Unsloth?

Unsloth使Llama-3、Mistral、Phi-3和Gemma等微调LLM的速度提高了2倍,使用的内存减少了70%,并且精度没有下降!在本教程中,我们将使用提供免费GPU的Google Colab。
您可以访问下面的免费笔记本:

  • Ollama Llama-3 Alpaca(笔记本,我们将使用)
  • CSV/Excel Ollama指南

您还需要登录您的Google帐户!

在这里插入图片描述


2、什么是Ollama?

Ollama允许您以快速简单的方式从自己的计算机运行语言模型!它悄悄地启动了一个程序,可以在后台运行语言模型,如Llama-3。
如果你突然想问语言模型一个问题,你可以简单地向Ollama提交一个请求,它会很快把结果返回给你!我们将使用Ollama作为我们的推理引擎!

在这里插入图片描述


3、安装Unsloth

在这里插入图片描述


如果您从未使用过Colab笔记本,请快速了解笔记本本身:

1、每个“单元格”上的播放按钮。单击此按钮可运行该单元格的代码。
您不得跳过任何单元格,并且必须按时间顺序运行每个单元格。
如果遇到任何错误,只需重新运行之前未运行的单元格。
如果您不想单击播放按钮,另一种选择是单击CTRL+ENTER。

2、顶部工具栏中的运行时按钮。
您也可以使用此按钮并点击“全部运行”一次运行整个笔记本。
这将跳过所有自定义步骤,并且可以是一个很好的首次尝试。

3、连接/重新连接T4按钮。
您可以单击此处获取更高级的系统统计信息。

第一个安装单元格如下所示:记得点击括号[]中的PLAY按钮。
我们获取我们的开源Github包,并安装其他一些包。

在这里插入图片描述


4、选择要微调的模型

现在让我们选择一个模型进行微调!我们默认使用 Meta/Facebook的 Llama-3,它被训练在一个巨大的15万亿“令牌”上。

假设一个令牌就像一个英语单词。这大约相当于35万厚的百科全书!

其他流行的模型包括米斯特拉尔、Phi-3(使用GPT-4输出训练)和谷歌的 Gemma(13万亿令牌!)。

Unsloth支持这些模型以及更多!事实上,只需从HugingFace model hub 中键入一个模型,看看它是否有效!如果它不起作用,我们会出错。

在这里插入图片描述


您可以切换其他3个设置:

  1. max_seq_length = 2048
    

    这决定了模型的上下文长度。
    例如,双子座有超过100万的上下文长度,而骆驼-3有8192个上下文长度。
    我们允许您选择任何数字——但我们建议将其设置为2048以供测试。
    Unsloth还支持非常长的上下文微调,我们展示了我们可以提供比最好的上下文长度长4倍的上下文长度。

  2. dtype = None
    

    将其保持为无,但您可以为较新的GPU选择torch. float16或torch.bfloat16。

  3. load_in_4bit = True
    

    我们在4位量化中进行微调。
    这将内存使用量减少了4倍,使我们能够在免费的16GB内存GPU中进行微调。
    4位量化本质上是将权重转换为一组有限的数字,以减少内存使用。
    这样做的一个缺点是精度下降了1-2%。
    如果您想要微小的额外精度,请在H100s等更大的GPU上将其设置为False。

在这里插入图片描述


如果您运行单元格,您将获得一些Unsloth版本的打印输出、您使用的模型、您的GPU有多少内存以及一些其他统计信息。
暂时忽略这个。


5、微调参数

在这里插入图片描述


现在要自定义您的finetune,您可以编辑上面的数字,但您可以忽略它,因为我们已经选择了相当合理的数字。

目标是改变这些数字以提高准确性,但也抵消过度拟合。
过度拟合是指你让语言模型记住一个数据集,而不能回答新的问题。
我们想要一个最终的模型来回答看不见的问题,而不是记忆。

  1. r = 16, # Choose any number > 0 ! Suggested 8, 16, 32, 64, 128
    

    微调过程的等级。
    较大的数字会使用更多的内存,并且会更慢,但可以提高更困难任务的准确性。
    我们通常建议使用8(用于快速微调)和128这样的数字。
    太大的数字会导致过度拟合,损害模型的质量。

  2. target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
                      "gate_proj", "up_proj", "down_proj",],
    

    我们选择所有模块进行微调。
    您可以删除一些以减少内存使用并加快训练速度,但我们强烈不建议这样做。
    只需在所有模块上进行训练!

  3. lora_alpha = 16,
    

    微调的缩放因子。
    较大的数字将使微调了解更多关于您的数据集,但可能会促进过度拟合。
    我们建议这等于秩r,或者加倍。

  4. lora_dropout = 0, # Supports any, but = 0 is optimized
    

    将此保留为0以进行更快的训练!可以减少过度拟合,但没那么多。

  5. bias = "none",    # Supports any, but = "none" is optimized
    

    将此保留为0,以获得更快、更少的过度健身训练!

  6. use_gradient_checkpointing = "unsloth", # True or "unsloth" for very long context
    

    选项包括TrueFalse "unsloth"
    我们建议"unsloth",因为我们额外减少了30%的内存使用,并支持极长的上下文finetunes.You可以在这里阅读:https://unsloth.ai/blog/long-context了解更多细节。

  7. random_state = 3407,
    

    确定确定性运行的数字。
    训练和微调需要随机数,因此设置这个数字可以使实验重现。

  8. use_rslora = False,  # We support rank stabilized LoRA
    

    自动设置lora_alpha = 16的高级功能。
    如果你愿意,你可以使用这个!

  9. loftq_config = None, # And LoftQ
    

    将LoRA矩阵初始化为权重的前r个奇异向量的高级功能。
    可以在一定程度上提高准确性,但会使内存使用在开始时爆炸式增长。


6、Alpaca 数据集

在这里插入图片描述


我们现在将使用通过调用GPT-4本身创建的 Alpaca 数据集。
这是一个包含52,000条指令和输出的列表,在Llama-1发布时非常流行,因为它使微调基本LLM与ChatGPT本身具有竞争力。

您可以在此处访问GPT4版本的 Alpaca 数据集:https://huggingface.co/datasets/vicgalle/alpaca-gpt4。
该数据集的旧第一个版本在此处:https://github.com/tatsu-lab/stanford_alpaca。
下面显示了该数据集的一些示例:

在这里插入图片描述


你可以看到每行有3列——一条指令,输入和输出。
我们基本上把每一行组合成一个大提示符,如下所示。
然后我们用它来微调语言模型,这使得它非常类似于ChatGPT。
我们称之为监督指令微调。

在这里插入图片描述


7、多列微调

但是一个大问题是对于ChatGPT风格的助手,我们只允许1个指令/1个提示,而不是多个列/输入。
例如在ChatGPT中,您可以看到我们必须提交1个提示,而不是多个提示。

在这里插入图片描述


这本质上意味着我们必须将多个列“合并”成一个大提示,以便微调才能真正发挥作用!

例如,非常著名的泰坦尼克号数据集有许多列。
你的工作是根据乘客的年龄、乘客等级、票价等来预测乘客是幸存还是死亡。
我们不能简单地将其传递到ChatGPT,而是必须将这些信息“合并”到一个大提示中。

在这里插入图片描述


例如,如果我们用包含该乘客所有信息的“合并”单一提示询问ChatGPT,我们可以要求它猜测或预测该乘客是死亡还是幸存。

在这里插入图片描述


其他微调库要求您通过将所有列合并到1个提示符中来手动准备微调数据集。
在Unsloth中,我们简单地提供了名为to_sharegpt的函数,它可以一次完成!

要访问泰坦尼克号微调笔记本,或者如果您想上传CSV或Excel文件,请访问此处:https://colab.research.google.com/drive/1VYkncZMfGFkeCEgN2IzbZIKEDkyQuJAS?usp=sharing

在这里插入图片描述


现在这有点复杂,因为我们允许很多定制,但有几点:

  • 必须将所有列用花括号{}括起来。
    这些是实际CSV/Excel文件中的列名。

  • 可选的文本组件必须括在[[]]中。
    例如,如果列“输入”为空,合并函数将不显示文本并跳过此。
    这对于缺失值的数据集很有用。

  • 选择output_column_name中的输出或目标/预测列。
    对于 Alpaca 数据集,这将是output


例如,在Titanic数据集中,我们可以创建一个大型合并提示格式,如下所示,其中每一列/一段文本都是可选的。

在这里插入图片描述


例如,假设数据集看起来像这样,有很多缺失的数据:

上船年龄票价
S23
18岁7.25

那么,我们不希望结果是:

1、The passenger embarked from S. Their age is 23. Their fare is EMPTY.

2、The passenger embarked from EMPTY. Their age is 18. Their fare is $7.25.


相反,通过使用[[]]可选地包围列,我们可以完全排除此信息。

1、[[The passenger embarked from S.]] [[Their age is 23.]] [[Their fare is EMPTY.]]

2、[[[The passenger embarked from EMPTY.]] [[Their age is 18.]] [[Their fare is $7.25.]]


变成:

1、The passenger embarked from S. Their age is 23.

2、Their age is 18. Their fare is $7.25.


8、多轮对话

如果你没有注意到,一个小问题是 Alpaca 数据集是单轮的,而记住使用ChatGPT是交互式的,你可以多轮与之交谈。
例如,左边是我们想要的,但是右边是 Alpaca 数据集,只提供单数对话。
我们希望微调语言模型以某种方式学习如何像ChatGPT一样进行多轮对话。

在这里插入图片描述


所以我们引入了conversation_extension参数,它本质上是在你的单回合数据集中选择一些随机行,并将它们合并成1个对话!

例如,如果你设置为3,我们随机选择3行并将它们合并成1!

设置太长会使训练变慢,但会使你的聊天机器人和最终的微调变得更好!

在这里插入图片描述


然后将output_column_name设置为预测/输出列。对于 Alpaca 数据集,它将是输出列。

然后我们使用standardize_sharegpt函数使数据集以正确的格式进行微调!总是这样称呼!

在这里插入图片描述


9、可定制的聊天模板

我们现在可以指定聊天模板来微调自己。
非常著名的 Alpaca 格式如下:

在这里插入图片描述


但还记得我们说过这是一个坏主意,因为ChatGPT样式的finetunes只需要1个提示吗?

由于我们成功地将所有数据集列合并为1个,因此我们基本上可以创建以下样式的聊天模板,其中包含1个输入列(指令)和1个输出:

在这里插入图片描述


我们只要求您必须为指令输入{INPUT}字段,为模型输出字段输入{OUTPUT}字段。
事实上,我们还允许一个可选的{SYSTEM}字段,这对于自定义系统提示很有用,就像ChatGPT中一样。
例如,下面是一些很酷的例子,您可以将聊天模板自定义为:

在这里插入图片描述


对于OpenAI模型中使用的ChatML格式:

在这里插入图片描述


或者您可以使用Llama-3模板本身(它仅通过使用Llama-3的说明版本来运行):我们实际上还允许一个可选的{SYSTEM}字段,这对于自定义系统提示很有用,就像在ChatGPT中一样。

在这里插入图片描述


或者在泰坦尼克号预测任务中,您必须在这个Colab笔记本中预测乘客是否死亡或幸存,其中包括CSV和Excel上传:https://colab.research.google.com/drive/1VYkncZMfGFkeCEgN2IzbZIKEDkyQuJAS?usp=sharing

在这里插入图片描述


10、训练模型

让我们现在训练模型!我们通常建议人们不要编辑下面的内容,除非您想微调更长的步骤或想在大批量上进行训练。

在这里插入图片描述


我们通常不建议更改上述参数,但对其中一些进行详细说明:

  1. per_device_train_batch_size = 2,
    

    如果您想更多地利用GPU的内存,请增加批处理大小。
    还要增加批处理大小,以使训练更加流畅,并使过程不会过度拟合。
    我们通常不建议这样做,因为由于填充问题,这可能会使训练实际上变慢。
    我们通常会要求您增加gradient_accumulation_steps,这只会对数据集进行更多的传递。

  2. gradient_accumulation_steps = 4,
    

    相当于增加批处理大小,但不会影响内存消耗!如果您想要更平滑的训练损失曲线,我们通常建议人们增加这一点。

  3. max_steps = 60, # num_train_epochs = 1,
    

    我们将步骤设置为60以加快训练速度。
    对于可能需要数小时的完整训练运行,请将其注释掉max_steps,并将其替换为num_train_epochs = 1
    将其设置为1意味着在您的数据集上进行1次完整通过。
    我们通常建议1到3次通过,不能更多,否则您将过度拟合您的finetune。

  4. learning_rate = 2e-4,
    

    如果您想使微调过程变慢,但也很可能收敛到更高精度的结果,请降低学习率。
    我们通常建议2e-4、1e-4、5e-5、2e-5作为尝试的数字。

在这里插入图片描述


你会看到一些数字的日志!这是训练损失,你的工作是设置参数,使其尽可能接近0.5!如果你的微调没有达到1、0.8或0.5,你可能不得不调整一些数字。
如果你的损失为0,这可能也不是一个好兆头!


11、推理/运行模型

在这里插入图片描述


现在让我们在完成训练过程后运行模型!您可以编辑黄色下划线部分!

事实上,因为我们创建了一个多圈聊天机器人,我们现在也可以调用模型,就好像它看到了过去的一些对话,如下所示:

在这里插入图片描述


提醒Unsloth本身也提供了2倍更快的推理,所以永远不要忘记调用 FastLanguageModel.for_inference(model)
如果您希望模型输出更长的响应,请将max_new_tokens = 128设置为更大的数字,如256或1024。
请注意,您也必须等待更长的结果!


12、保存模型

我们现在可以将微调模型保存为一个100MB的小文件,称为 LoRA adapter ,如下所示。
如果你想上传你的模型,你也可以推送到 Hugging Face 中心!记得通过 https://huggingface.co/settings/tokens 获取 Hugging Face 令牌并添加你的令牌!

在这里插入图片描述


保存模型后,我们可以再次使用Unsloth运行模型本身!再次使用FastLanguageModel调用它进行推理!

在这里插入图片描述


13、导出到 Ollama

最后,我们可以将微调模型导出到Ollama本身!首先,我们必须在Colab笔记本中安装Ollama:

在这里插入图片描述


然后我们将我们必须的finetuned模型 导出为 llama. cpp 的GGUF格式,如下所示:

在这里插入图片描述


提醒1行要将False转换为True,不要将每一行都更改为True,否则您将等待很长时间!我们通常建议将第一行设置为True,因此我们可以将finetuned模型快速导出为Q8_0格式(8位量化)。
我们还允许您导出到整个量化方法列表,其中一个流行的是q4_k_m

前往 https://github.com/ggerganov/llama.cpp了解更多关于GGUF的信息。
如果您愿意,我们还有一些关于如何导出到GGUF的手动说明:https://github.com/unslothai/unsloth/wiki#manually-saving-to-gguf

您将看到一长串如下所示的文本-请等待5到10分钟!!

在这里插入图片描述


最后在最后,它看起来像下面:

在这里插入图片描述


然后,我们必须在后台运行Ollama本身。
我们使用subprocess,因为Colab不喜欢异步调用,但通常只需在终端/命令提示符下运行ollama serve

在这里插入图片描述


14、自动创建Modelfile

Unsloth提供的技巧是我们自动创建Ollama需要的Modelfile

这只是一个设置列表,包括我们用于finetune过程的聊天模板!您还可以打印生成的Modelfile,如下所示:

在这里插入图片描述


然后我们要求Ollama创建一个与Ollama兼容的模型,通过使用Modelfile

在这里插入图片描述


15、Ollama 推理

如果您想调用在您自己的本地机器上运行的Ollama服务器本身/在后台的免费Colab笔记本中,我们现在可以调用模型进行推理。
请记住,您可以编辑黄色下划线部分。

在这里插入图片描述


16、交互式ChatGPT风格

但是要像ChatGPT一样运行finetuned模型,我们必须做得更多!首先单击终端图,然后会弹出一个终端。它在左侧边栏上。

在这里插入图片描述


然后,您可能需要按两次ENTER来删除终端窗口中的一些奇怪输出。
等待几秒钟,键入ollama run unsloth_model然后按ENTER。

在这里插入图片描述


最后,您可以像实际ChatGPT一样与微调模型交互!点击 CTRL+D 退出系统,点击ENTER与聊天机器人交谈!

在这里插入图片描述


你做到了!

您已经成功微调了一个语言模型并将其导出到Ollama,速度提高了2倍,VRAM减少了70%!所有这些都在Google Colab笔记本中免费提供!

如果你想学习如何做奖励建模、继续预训练、导出到vLLM或GGUF、完成文本或了解更多关于微调技巧和窍门的信息,请访问我们的Github。

如果您在微调方面需要任何帮助,您也可以在这里加入我们的Discordserver。
如果您需要Ollama方面的帮助,您也可以在这里加入他们的服务器。

最后,我们要感谢您阅读并关注到这里!我们希望这让您理解了微调语言模型背后的一些细节,我们希望这是有用的!

要访问我们的 Alpaca 数据集示例,请单击此处,我们的CSV/Excel微调指南就在这里。


2024-08-24(六)

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

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

相关文章

博弈论总结

公平组合游戏(Impartial Game)的定义如下: 游戏有两个人参与,二者轮流做出决策,双方均知道游戏的完整信息; 任意一个游戏者在某一确定状态可以作出的决策集合只与当前的状态有关,而与游戏者无关…

pytorch深度学习基础 6(简单的参数估计学习3)

上一篇博客说了如何拟合一条直线ywxb,今天我们现在使用PyTorch进行相同的曲线拟合 拟合y x*x -2x 3 0.1(-1到1的随机值) 曲线 给定x范围(0,3) 生成数据 import numpy as np import matplotlib.pyplot as plt import torch as t…

小程序学习day13-API Promise化、全局数据共享(状态管理)、分包

44、API Promise化 (1)基于回调函数的一部API的缺点:小程序官方提供的异步API都是基于回调函数实现的,容易造成回调地狱的问题,代码可读性、可维护性差 (2)API Promise化概念: 指…

Qt 环境搭建

sudo apt-get upadte sudo apt-get install qt4-dev-tools sudo apt-get install qtcreator sudo apt-get install qt4-doc sudo apt-get install qt4-qtconfig sudo apt-get install qt-demos编译指令 qmake -projectqmakemake实现Ubuntu20,04 与Windows之间的复制粘贴 安装o…

在C#中如何监控其它应用全屏

原文链接:https://www.cnblogs.com/zhaotianff/p/18338275 在C#中判断其它应用全屏可以有多种方案。我这里提供两种思路 使用定时器 在定时器中定时判断当前窗口的状态是否是最大化或者宽高是否等于桌面窗口的宽高。 这种方法我没有去尝试,凭个人经验…

复杂的编辑表格

需求描述 表格可以整体编辑;也可以单行弹框编辑;且整体编辑的时候,依然可以单行编辑 编辑只能给某一列(这里是参数运行值)修改,且根据数据内容的参数范围来判断展示不同的形式:input/数字输入/单…

小波卷积:为计算机视觉任务开辟新的参数效率之路

论文复述 这篇论文介绍了一种创新的卷积神经网络层——WTConv,它通过小波变换技术显著扩展了CNN的感受野,同时保持了参数效率。WTConv层能够实现对输入数据的多频率响应,增强了模型对形状而非纹理的特征识别能力,提高了在图像分类…

黑神话悟空不只是玩游戏 有人用它3天赚了85W

这几天你是不是在想办法升级电脑配置,买PS5玩黑神话悟空游戏,每一个男人看到那么好的游戏画面,都控制不住想玩,今天分享给大家一些资料,让你快速玩游戏的同时,还能挣点外快,黑神话悟空不只是玩游…

MATLAB 计算两点沿某个方向的间距(81)

MATLAB 计算两点沿某个方向的间距(81) 一、算法介绍二、算法实现1.代码2.效果一、算法介绍 上一章介绍了如何计算点到空间直线的距离,这里进一步的,我们也可以计算两个点,沿着某个方向的距离,这在很多处理中都会使用到,实际上就是将两点投影到该方向的直线,再计算间距…

线性表复习之初始化顺序表操作

线性表的顺序表示-初始化顺序表 代码 #include <stdio.h> #define MaxSize 10 // 定义最大长度typedef struct{int data[MaxSize]; // 申请空间&#xff08;静态&#xff09;int length; // 当前长度 }SqList;void InitList(SqList &L){for (int i 0; i < MaxS…

java-队列--黑马

队列 别看这个&#xff0c;没用&#xff0c;还是多刷力扣队列题 定义 队列是以顺序的方式维护一组数据的集合&#xff0c;在一端添加数据&#xff0c;从另一端移除数据。一般来讲&#xff0c;添加的一端称之尾&#xff0c;而移除一端称为头 。 队列接口定义 // 队列的接口定…

河南萌新联赛2024第(六)场:郑州大学

目录 A-装备二选一&#xff08;一&#xff09;_河南萌新联赛2024第&#xff08;六&#xff09;场&#xff1a;郑州大学 (nowcoder.com) 思路&#xff1a; 代码&#xff1a; B-百变吗喽_河南萌新联赛2024第&#xff08;六&#xff09;场&#xff1a;郑州大学 (nowcoder.com) …

3DsMax将两个模型的UV展到一个UV上面

3DsMax将两个模型的UV展到一个UV上面 3Dmax中的准备工作 创建一个方块&#xff0c;一个球体&#xff0c;模拟两个模型 添加修改器 打开UV编辑器&#xff0c;快速剥 使用缩放工具&#xff0c;缩放UV&#xff0c;放到一个位置 选择正方形&#xff1a;添加修改器&#xff0…

8.3 数据库基础技术-关系代数

并、交、差 笛卡尔积、投影、选择 自然连接 真题

宝塔面板配置node/npm/yarn/pm2....相关全局变量 npm/node/XXX: command not found

1.打开终端 , cd 到根目录 cd / 2.跳转至node目录下,我的node版本是v16.14.2 cd /www/server/nodejs/v16.14.2/bin 2.1 如果不知道自己node版本多少就跳转到 cd /www/server/nodejs 然后查找当前目录下的文件 ls 确定自己的node版本 cd /node版本/bin 3.继续查看bin…

天润融通助力呷哺呷哺:AI技术赋能3000万会员精细化运营

呷哺集团于1998年11月在北京成立&#xff0c;以“一人一锅”台式小火锅的用餐模式&#xff0c;以及其推出的多样化套餐与良好的用餐服务赢得了众多消费者的青睐&#xff0c;并迅速在市场上占据了一席之地。经过20多年的发展&#xff0c;呷哺呷哺已成为一个多品牌经营、全产业链…

基于Android的安全知识学习APP的设计与实现(论文+源码)_kaic

基于Android的安全知识学习APP的设计与实现 摘 要 随着科技的进步&#xff0c;智能手机已经成为人们工作、学习和生活的必需品。基于Android系统的强大功能&#xff0c;使用Java语言、Linux操作系统&#xff0c;搭配Android Studio&#xff0c;并配备Android开发插件&#…

Unet改进3:在不同位置添加NAMAttention注意力机制

本文内容:在不同位置添加NAMAttention注意力机制 目录 论文简介 1.步骤一 2.步骤二 3.步骤三 4.步骤四 论文简介 识别不太显著的特征是模型压缩的关键。然而,它在革命性的注意机制中尚未得到研究。在这项工作中,我们提出了一种新的基于归一化的注意力模块(NAM),它抑制…

广州自闭症学校哪家好?

在广州&#xff0c;选择一家适合自闭症儿童的康复学校是一个需要慎重考虑的决定。在众多机构中&#xff0c;星启帆自闭症儿童康复机构以其专业的师资团队、全面的康复服务以及温馨的学习环境脱颖而出&#xff0c;成为众多家长信赖的选择。 星启帆自闭症康复中心&#xff0c;作…

敦煌智旅:Serverless 初探,运维提效 60%

作者&#xff1a; 百潼 行业新趋势 在后疫情时代&#xff0c;文旅行业开始复苏&#xff0c;在行业的发展趋势中&#xff0c;我们看到了一个充满机遇和挑战的未来。通过不断创新和适应市场需求&#xff0c;文旅行业继续不断发展壮大&#xff0c;为消费者提供更加丰富多样的旅游…