西宁定制大型广告牌,打造独特品牌形象

西宁定制大型广告牌,打造独特品牌形象

1.大型广告牌的作用

现如今,市场上各种各样的广告宣传手段琳琅满目,但是大型广告牌无疑是一个非常受欢迎的选择。因为它们可以吸引更多的人们的注意力,并且在产品或服务的推广过程中,无意间对消费者产生了某种冲动,从而提高产品或服务的销售率。

大型广告牌还可以让人们对品牌或公司形象有个直观的了解。它们是一种非常有效的宣传媒介,能够很好的传递公司的信息和形象。

2. 定制大型广告牌的好处

2.1 独特展示风格

定制大型广告牌可以针对不同的品牌和公司要素进行特定的设计、制作和展示,充分展示品牌形象,并让消费者不断地对品牌进行记忆。

一个特别的广告设计和展示,可以让人们不仅对品牌产生兴趣,而且还可以通过品牌的独特和创新形象来维持消费者的忠诚度。

2.2 利于品牌推广

定制大型广告牌可以更好地符合品牌推广的目标。这意味着传达品牌形象的方式将非常明显,印象深刻,从而有效地吸引消费者的注意力和兴趣。这是提高品牌知名度的一种有效方式。

制作公司可以根据品牌的需求和要求,制作能够更好地达到品牌目标的大型广告牌,帮助品牌有效地向现实世界、社交网络和各种广告媒介宣传,突出品牌优势和品牌特色。

3. 大型广告牌制作流程

3.1 确定目标和风格

在制作大型广告牌之前,制作公司需要先与客户沟通,确定品牌推广计划和目标,以及广告牌想要展现的独特风格。

确定好品牌和客户的需求后,设计师和制作团队开始准备广告的设计,颜色和内容等元素,以确保广告能够吸引消费者的注意力,并引起他们的共鸣。

3.2 设计和制作

在确定了广告的设计和风格后,制作公司将开始制作广告牌。过程中设计师和制作团队的密切合作,是确保广告牌的制作及展示的成功的关键因素。

这个阶段的任务通常包括将设计转化为制作图样,选择合适的材料,进行印刷、切割和组装等等。

3.3. 大型广告牌的安装和维护

一旦广告牌制作完成,制作公司将在现场进行安装。在安装过程中,制作团队需要确保安装位置、悬挂位置、广告牌倾斜度等各方面都符合要求。

安装完成后,制作团队还需要定期进行检查和清洁,以确保广告牌始终保持良好的外观以及高品质的展示效果。

4. 大型广告牌的实例

4.1 展示城市的特色

大型广告牌可以被用来展示城市的特色和文化,例如在广告牌上展示当地著名的景点或历史人物,以此来吸引游客的注意力,并增强他们对当地的印象。

4.2 体现品牌价值

大型广告牌也被用来体现品牌的价值和使命。例如,一些汽车品牌经常借大型广告牌向消费者传达高品质,高性能和安全的信息。

4.3 提高品牌知名度

许多大型品牌都使用大型广告牌来提高品牌知名度,并向消费者传递品牌的信息和形象。

例如,像可口可乐和百事可乐这样的公司经常在大型广告牌上展示的是他们的产品和标志性形象,以强调品牌的知名度。

结论

大型广告牌是一种非常受欢迎和有效的品牌推广方式。通过制作独特的广告牌,品牌可以更好地吸引消费者的注意力,并展示品牌的形象和特色,从而提高品牌的知名度和销售量。制作大型广告牌的过程包括目标和风格的确定、设计和制作、安装和维护等步骤。通过这些步骤,品牌可以制作出完美的广告牌,以传达品牌信息和形象。

问答话题

Q1:大型广告牌有什么好处?

A1:大型广告牌是一种非常受欢迎的品牌推广方式。它们可以吸引更多的人们的注意力,有效地传达产品或服务的信息,并提高销售率。

Q2:定制大型广告牌的好处是什么?

A2:定制大型广告牌可以更好地符合品牌推广的目标。这意味着传达品牌形象的方式将非常明显,印象深刻,从而有效地吸引消费者的注意力和兴趣。这是提高品牌知名度的一种有效方式。

Q3:大型广告牌的制作流程是什么?

A3:大型广告牌的制作流程通常包括目标和风格的确定、设计和制作、安装和维护等步骤。制作团队需要和客户合作,确定要传达的信息和展示的风格,然后设计和制作广告牌,最后在现场进行安装和维护。

西宁定制大型广告牌,打造独特品牌形象随机日志

Excel自带了vba的IDE工具,使用快捷键“Alt+F”或者点击“开发工具”选项卡中最左侧的“VisualBasic”即可打开。打开后的界面就是vba的IDE了,对比vscode、sublimetext等现代化的编辑软件,这个IDE相当的简陋,这也就意味着它其实不是很适合开发较大的项目,更适用于简单快速的开发。双击Sheet可以打开工作表的代码模块,我们一般点击左上角红框中的箭头,新增模块来编写代码。

1、·一机一拍上线,每台手机都看得到,想买哪一台就买哪一台

2、扫脸认证模块升级;App细节与体验优化。

3、手机上即可叫车,只需等待片刻就能上车,快速到达目的地。

4、V9版本更新说明:优化各大模块其他问题解决及功能优化

5、极速体验——享受更快的页面加载和应用运行速度。

<随心_句子c><随心_句子c><随心_句子c><随心_句子c><随心_句子c>高(gao)精(jing)度(du)壓(ya)縮(suo)Transformer,NNI剪(jian)枝(zhi)壹(yi)站(zhan)式(shi)指(zhi)南(nan)

新(xin)智(zhi)元(yuan)報(bao)道(dao)

來(lai)源(yuan):微(wei)軟(ruan)亞(ya)洲(zhou)研(yan)究(jiu)院(yuan)

編(bian)輯(ji):QQ

【新智元導(dao)讀(du)】集(ji)成(cheng)前(qian)沿(yan)算(suan)法(fa),N NI(Neural Network Intelligence)大(da)更(geng)新。

無(wu)論(lun)在(zai)學(xue)術(shu)界(jie)還(hai)是(shi)產(chan)業(ye)界,今(jin)年(nian)人(ren)工(gong)智能(neng)大模(mo)型(xing)都(dou)是爆(bao)款(kuan)話(hua)題(ti)。但(dan)面(mian)對(dui)這(zhe)些(xie)動(dong)不(bu)动就(jiu)數(shu)十(shi)億(yi)級(ji)別(bie)參(can)数的(de)模型,使(shi)用(yong)傳(chuan)統(tong)方(fang)法微調(tiao),宛(wan)如(ru)水(shui)中(zhong)撈(lao)月(yue)、海(hai)底(di)捞針(zhen)。作(zuo)為(wei)微软亚洲研究院为科(ke)研人員(yuan)和(he)算法工程(cheng)師(shi)量(liang)身(shen)定(ding)制(zhi)的一站式 AutoML(自(zi)动機(ji)器(qi)学習(xi))工具(ju), NNI(Neural Network Intelligence)在過(guo)去(qu)的三(san)年間(jian)不斷(duan)叠(die)代(dai)更新,加(jia)強(qiang)了(le)对各(ge)種(zhong)分(fen)布(bu)式訓(xun)練(lian)環(huan)境(jing)的支(zhi)持(chi),成为了最(zui)熱(re)門(men)的 AutoML 開(kai)源項(xiang)目(mu)之(zhi)一。

近(jin)日(ri),微软亚洲研究院对 NNI 進(jin)行(xing)了更新。在最新的版(ban)本(ben)中,NNI 集成了大量前沿的剪枝算法,如 TaylorFO Weight、Movement 等(deng)。基(ji)於(yu)現(xian)有(you)的經(jing)典(dian)預(yu)训练模型,研究员們(men)通(tong)过大量實(shi)驗(yan),發(fa)现了既(ji)能降(jiang)低(di)模型参数量和計(ji)算量,又(you)能保(bao)持模型較(jiao)高精度的剪枝步(bu)驟(zhou)與(yu)算法組(zu)合(he),獲(huo)得(de)超(chao)越(yue) SOTA 的模型剪枝效(xiao)果(guo)。

今天(tian)我(wo)们就以(yi) Transformer 系(xi)列(lie)的预训练模型和数據(ju)集 GLUE-MNLI 为例(li),为大家(jia)介(jie)紹(shao)一下(xia) NNI 的 pruner 剪枝流(liu)程和使用的剪枝算法组合。

剪枝流程

在正(zheng)式介绍剪枝流程前,我们需(xu)要(yao)先(xian)了解(jie)什(shen)麽(me)是 pruner,mask 和 SpeedUp。

pruner:使用具體(ti)的剪枝算法实例化(hua)的剪枝器。

mask:在剪枝过程中,pruner 會(hui)生(sheng)成一個(ge)和目標(biao)子(zi)模塊(kuai)大小(xiao)相(xiang)同(tong)的 mask(全(quan)1)矩(ju)陣(zhen),並(bing)在 mask 矩阵中將(jiang)目标子模块中需要剪掉(diao)的部(bu)分的对應(ying)位(wei)置(zhi)置为0。最後(hou)通过将目标子模块和对应的 mask 矩阵相乘(cheng),即(ji)可(ke)得到(dao)模擬(ni)剪枝后的模型效果。

SpeedUp:從(cong)上(shang)述(shu)描(miao)述可以看(kan)出(chu),在剪枝过程中,实際(ji)上只(zhi)是将需要剪枝的部分用0进行了替(ti)換(huan),因(yin)此(ci)使用 SpeedUp 模块是修(xiu)剪上述目标子模块中需要剪掉的参数,而(er)不是用0替代,从而实现真(zhen)正意(yi)義(yi)上的減(jian)少(shao)参数量。

在使用 NNI Compression 模块中的 pruner 进行剪枝操(cao)作時(shi),用戶(hu)只需完(wan)成数据/模型等的準(zhun)備(bei)、pruner 的構(gou)建(jian),以及(ji)模型剪枝和再(zai)训练,即可为模型构建一个剪枝的 pipeline。

以 Transformer 系列的预训练模型为例,其(qi)剪枝流程共(gong)包(bao)含(han)4步:首(shou)先准备数据/模型等,接(jie)著(zhe)针对多(duo)頭(tou)自註(zhu)意力(li)机制(Multi-head Attention)、嵌(qian)入(ru)層(ceng)(embedding)和前饋(kui)神(shen)经網(wang)絡(luo)(FFN)分别剪枝和再训练模型。

圖(tu)1:Transformer 系列模型的剪枝流程示(shi)意图

1. 准备数据/模型等

在正式构建剪枝过程之前,用户需要加載(zai)预训练模型,对数据预處(chu)理(li)并創(chuang)建相应的 dataloader,同时設(she)计相应的训练/評(ping)估(gu)函(han)数,以用于后期(qi)对模型的训练和评估。其流程如图2所(suo)示,共包含5步:

图2:数据/模型准备过程的流程示意图

具体来說(shuo),首先需要从 Transformers 庫(ku)中加载预训练模型,然(ran)后对数据 GLUE-MNLI 进行处理,并得到相应的 dataloader。隨(sui)后,针对模型和数据集 GLUE-MNLI,构建相应的训练/评估函数。最后将模型在 GLUE-MNLI 数据集上进行微调。

完成以上步骤就相當(dang)于完成了数据/模型等的准备工作,可以得到预训练模型在 MNLI 数据集上微调后的模型。考(kao)慮(lv)到 Transformer 系列预训练模型的模型参数中的大头为嵌入层,且(qie)编碼(ma)层/解码层中包含了多头自注意力机制和前馈神经网络。因此,在之后的步骤中需要分别对多头自注意力机制、嵌入层和前馈神经网络剪枝,并引(yin)入动態(tai)蒸(zheng)餾(liu)机制对剪枝后的模型再训练。

2. 多头自注意力机制的剪枝和基于动态蒸馏机制的模型再训练

多头自注意力模块的剪枝和模型再训练分为3步,如图3所示:首先要构建 pruner,接着对多头自注意力模块进行剪枝,最后使用动态蒸馏机制再训练模型。

图3:多头自注意力机制的剪枝和再训练流程示意图

在进行剪枝前,用户需要選(xuan)定一个剪枝算法并实例化相应的 pruner。所有的剪枝算法均(jun)需向(xiang)模型中传入 config_list 参数,因为其定义了需要剪枝的運(yun)算名(ming)、运算類(lei)别及稀(xi)疏(shu)度等。具体到 Movement 剪枝算法,还需要设置其他(ta)的一些参数,如:evaluator 参数,用于训练感(gan)知(zhi)的模型压缩过程;movement_mode 参数,共有「soft」和「hard」兩(liang)种模式,若(ruo)为「soft」,則(ze)難(nan)以精確(que)地(di)控(kong)制模型剪枝后的稀疏度,但是可以得到性(xing)能更好(hao)的模型。参数 regular_scale 用于控制剪枝的稀疏度,regular_scale 越大,模型剪枝后的稀疏度越高。

接下来,要使用构造(zao)的剪枝算法实例 pruner 对多头自注意力模块进行剪枝。用户只需调用 pruner.compress 即可執(zhi)行对模型的剪枝过程,并得到剪枝后的模型和 attention_mask。其中 attention_mask 給(gei)出了需要剪枝的子模块的参数剪枝範(fan)圍(wei),0代表(biao)該(gai)位置被(bei)剪掉,1代表该位置被保留(liu)。

NNI 的 SpeedUp 模块可以将被 mask 住(zhu)的参数和计算从模型中刪(shan)除(chu),具体的删除邏(luo)辑如图4所示,以 Query Linear 层的 weight(記(ji)作Q)为例,其維(wei)度为[768,768],那(na)么 Q 的 weight 的 mask 矩阵维度也(ye)为[768, 768],将其记作 mask。首先将该 mask 矩阵的维度进行變(bian)换,第(di)一维是多头数目8,其余(yu)的则是第二(er)维,将变换后的 mask 矩阵记作 reshaped mask 矩阵。接着,对 reshaped mask 矩阵在第二维度上求(qiu)和,并判(pan)断求和后的值(zhi)是否(fou)为0,此时的 mask 矩阵维度变为[8],每(mei)个位置对应着一个多头。对于变换后的 mask 矩阵,若位置 i 的值为0,则代表在 Q 中的第 i 个多头需要被剪掉。在图中,位置0、3、7的值均为0,因此,在Q中的第0、3、7个多头需要被剪掉。最后,将[0,3,7]作为参数传入 prune_heads 函数中,对 Q 进行修剪。修剪后,Q 的维度为[576,768]。对 SpeedUp 更加全面的介绍可以参考发表于 OSDI 2022 的论文(wen) SparTA 。在即将发布的 NNI 3.0 中 SpeedUp 会对更多模型提(ti)供(gong)更加完善(shan)的支持。

图4:利(li)用 prune_heads 函数修剪自注意力模块的过程示意图

在对多头自注意力模块剪枝后,以微调后的模型作为教(jiao)师模型,以剪枝后的模型作为学生模型,然后借(jie)鑒(jian) CoFi 中的动态蒸馏机制 [1] 对模型进行再训练,就可以得到新的模型。这裏(li)的动态蒸馏机制,是指教师模型的层和学生模型的层之间不是一个靜(jing)态对应關(guan)系,每次(ci)蒸馏教师都可以选擇(ze)从自身的高层动态蒸馏信(xin)息(xi)到学生模型低层中的一层里。

3. 嵌入层和前馈神经网络的剪枝,以及基于动态蒸馏机制的模型再训练

嵌入层和前馈神经网络的剪枝过程与多头自注意力模块的剪枝过程类似(si)。此处使用 Taylor 剪枝算法对嵌入层和前馈神经网络进行剪枝。同樣(yang)地,研究员们定义了 config_list、evaluator 参数及 taylor_pruner_steps 参数。由(you)于嵌入层的维度与后續(xu)模型中的维度具有相关性。因此,基于上述参数,在嵌入层的剪枝过程中研究员们将剪枝模式 mode 设置为了「dependency-aware」模式,并传入模型的輸(shu)入 dummy_input,以幫(bang)助(zhu) pruner 捕(bu)捉(zhuo)和嵌入层维度具有依(yi)賴(lai)关系的子模型。

接下来,使用分别构造的 pruner 对前馈神经网络和嵌入层进行剪枝。和多头自注意力模块的剪枝不同的是,此处使用了迭代式剪枝法,即在模型基于动态蒸馏的再训练过程中,每2000步分别使用 pruner 对前馈神经网络和嵌入层剪枝一次,其中,前馈神经网络共剪枝19/24次,嵌入层共剪枝3次。每次剪枝后,使用 ModelSpeedUp 对前馈神经网络层进行剪枝,以实现真正意义上的修剪参数,而不是将需要修剪的参数用0替换。

实验結(jie)果

通过调整(zheng) regular_scale 参数的值和前馈神经网络的剪枝次数,研究员们得到了具有不同稀疏度和性能的模型。该过程使用了1張(zhang) A100 进行实验,并设置 batch_size 为32。

图5:实验结果

从上图实验结果可以看出:

随着 regular_scale 的增(zeng)加,模型總(zong)的稀疏度有所增加。当 regular_scale 大于等于10时,模型总的稀疏度超过了69%,性能損(sun)失(shi)超过1%。

随着前馈神经网络剪枝次数的增加,模型总的稀疏度有所增加,同时模型的性能有所下降,且随着模型总稀疏度的增加,模型的性能下降程度逐(zhu)漸(jian)增大。

对嵌入层剪枝3次,能夠(gou)将模型的维度从768减小至(zhi)561,在一定程度上提升(sheng)了模型总的稀疏度。

实验结果与平(ping)臺(tai)对比(bi)

进一步分析(xi)实验结果可以发现,使用 NNI 对 BERT 在 MNLI 数据集上剪枝后的性能好于 nn pruning 框(kuang)架(jia)(图6(a)),且当模型总的稀疏度低于65%时,NNI 和 CoFi 对 BERT 在 MNLI 数据集上剪枝的性能差(cha)距(ju)较小,当模型总的稀疏度大于65%时,使用 NNI 对 BERT 在 MNLI 数据集上剪枝后的性能好于 CoFi。图6(b)和图6(c)分别展(zhan)示了 NNI 在 T5 和 ViT 模型上的剪枝性能。从图中可以看出,当模型相应部分的稀疏度超过了75%后,模型性能下降約(yue)为3%,当模型相应部分的稀疏度低于50%时,模型性能下降较少。

(a)

(b)

(c)

图6:NNI 在经典预训练模型下的剪枝性能示意图

三个平台(Paper)的詳(xiang)細(xi)比较结果,如表1所示。可以看出,NNI 的 Compression 模块不僅(jin)具有完整的教程实例,同时还提供了 SpeedUp 模块,能够实现真正意义上的减少模型参数量,而非(fei)将需要修剪的参数置为0。

同时,NNI 支持 BERT、RoBerta、GPT、BART、T5、ViT 等主(zhu)流模型,并提供了 Taylor、Movement、ADMM、Slim、AGP、Activation APoZ、Activation Mean 等16种前沿剪枝算法,能够更好地滿(man)足(zu)用户的需求,具有较强的通用性。

表1:各平台(Paper)功(gong)能对比总结

展望(wang)未(wei)来

在 NNI 3.0 版本中,微软亚洲研究院的研究员们还将引入蒸馏模块,更好地为用户提供集剪枝、蒸馏为一体的压缩工具,同时 SpeedUp 模块也将更全面地支持对 Transformer 的修剪。敬(jing)請(qing)期待(dai)!

关于最新版 NNI 的完整代码和 tutorial,请参見(jian):

https://nni.readthedocs.io/zh/stable/tutorials/pruning_bert_glue.html

参考資(zi)料(liao):

https://arxiv.org/pdf/2204.00408.pdf返(fan)回(hui)搜(sou)狐(hu),查(zha)看更多

責(ze)任(ren)编辑:

发布于:河北省保定易县