关于深度学习:如何利用动态静态代理IP实现跨地域网络营销与市场研究

动静代理IP和动态代理IP都能够在跨地区网络营销与市场钻研中施展关键作用,具体实现形式如下: 动静代理IP的利用:跨地区营销流动测试: 在进行网络营销时,尤其是要验证广告投放、SEO成果或A/B测试不同地区用户的响应时,能够利用动静代理IP服务来模仿来自不同地理位置的用户拜访。通过切换不同的动静IP地址,能够在不被指标网站辨认为同一用户的状况下,获取各个区域的实在数据,比方广告展现频率、价格差别等。数据抓取与市场调研: 对于大规模的数据采集和市场剖析,网络爬虫可能须要频繁更换IP地址以防止被指标网站封闭或限度。动静代理IP池可能提供源源不断的IP资源,使得爬虫程序可能在短时间内从寰球多个地点收集信息,确保数据起源宽泛且实在反映各地市场的情况。动态代理IP的利用:稳定性和信任度要求高的场景: 动态代理IP适宜那些须要长期稳固连贯并保障IP信誉度的业务,例如社交媒体账号治理、电商平台经营等。在市场钻研中,如果须要间断监测特定区域的市场体现或者执行须要身份认证的工作(如搜索引擎排名监控),应用牢靠的动态住宅IP能确保不会因为IP变动而影响账户状态或钻研准确性。实现步骤概览: 抉择适合的代理服务商:依据需要抉择提供高质量动静或动态代理IP的服务商,确保其笼罩宽泛的天文区域,且IP可用率高、匿名水平强。集成代理IP到工具或代码中: 对于动静代理,将API接口集成到爬虫脚本或网络营销工具中,通过调用API主动获取和更新IP地址。对于动态代理,配置工具或利用间接应用固定的代理服务器地址和端口。设置IP轮换策略: 动静IP通常有主动轮换机制,但能够依据理论状况设定轮换频率和策略。动态IP则不须要频繁轮换,但在必要时也能够手动更换IP以应答某些非凡状况。施行工作并监控性能: 执行网络营销工作或运行数据抓取脚本,并实时监控代理IP的体现,包含响应速度、成功率以及是否呈现被封禁的状况。通过上述形式,企业能够依据理论需要灵活运用动静或动态代理IP技术,从而实现对寰球不同地区的精准网络营销与深刻的市场钻研。

March 1, 2024 · 1 min · jiezi

关于深度学习:为何代理IP的稳定性不如有线IP

<article class=“article fmt article-content”><p><br/>代理IP与网线IP的稳定性之间存在差别的起因在于它们的工作机制和服务环境的不同。以下是代理IP不如网线IP稳固的一些次要起因:</p><ol><li>服务提供商的品质:</li></ol><p> - 动态分配:代理IP通常是动态分配的,这意味着每次申请或每隔一段时间,代理服务可能会提供一个新的IP地址给用户。这种动态性自身就可能导致连贯的不稳定性。</p><p> - 共享资源:代理IP往往是由服务商从一个大型IP池中调配进去的,同一IP可能被多个用户同时共享,因而其可用性和稳定性受服务商服务质量的影响较大。</p><ol start=“2”><li>网络架构:</li></ol><p> - 额定跳转:应用代理IP时,用户的网络申请必须先通过代理服务器,而后再达到指标服务器,这个过程中减少了额定的网络跳转环节,每一跳都有可能成为潜在的故障点。</p><p> - 提早减少:因为代理服务器的存在,数据包传输间隔和解决工夫都会有所增加,从而可能导致更高的提早和不稳固景象。</p><ol start=“3”><li>服务器性能:</li></ol><p> - 服务器带宽:代理服务器的带宽容量和解决能力间接影响着代理IP的稳定性和速度。如果服务商的服务器带宽有余或负载过高,就可能导致代理IP连贯速度变慢甚至断开。</p><p> - 硬件保护:代理服务器的硬件保护、更新降级以及可能呈现的长期故障等都可能导致代理服务不稳固。</p><ol start=“4”><li>政策与天文因素:</li></ol><p> - 地区限度:代理IP可能受到指标服务器所在地区的防火墙、反爬策略或法律政策的影响,而间接应用网线IP则较少受到此类地区因素的影响。</p><ol start=“5”><li>安全性与过滤:</li></ol><p> - IP黑名单:频繁更换的代理IP更有可能被列入指标网站的黑名单,导致无奈失常拜访,而家用固定IP则绝对不容易蒙受这样的待遇。</p><p>相比之下,网线IP通常是ISP提供的动态或动静(但短时间内较稳固)公网IP地址,它直连互联网,没有两头代理环节,只有本地网络和ISP服务稳固,其连贯的稳定性就绝对较高。</p><p>不过即便如此,家庭宽带也可能因各种起因(如运营商故障、线路烦扰等)偶然呈现不稳固的状况。</p><p>但对于大多数状况下失常应用而言,固定的家庭或办公网络IP地址的确比代理IP更为稳固。</p></article>

February 29, 2024 · 1 min · jiezi

关于深度学习:Socks5代理IP在跨境电商网络爬虫领域的实战运用

<article class=“article fmt article-content”><p>Socks5代理IP在跨境电商和网络爬虫畛域有着宽泛的利用,次要体现在以下几个方面:</p><ol><li><p>跨境电商:</p><ul><li>访问速度优化:跨境电商平台往往须要频繁地拜访寰球各地的网站和服务,如商品信息抓取、价格监控等。通过应用Socks5代理IP,能够依据指标网站所在地抉择适合的代理服务器,无效缩小网络提早,进步数据获取效率。</li><li>冲破地区限度:不同国家或地区的电商网站可能对非本地IP地址有限度拜访策略。通过切换Socks5代理IP,能够模仿来自不同地区的实在用户,实现跨地区的商品搜寻、购买以及市场调研等性能。</li><li>账号防关联:对于多账号经营的跨境电商卖家来说,为避免因同一IP登录多个账号导致的封号危险,能够通过应用不同的Socks5代理IP来辨别每个账号的网络环境,升高关联危险。</li></ul></li><li><p>网络爬虫:</p><ul><li>反爬策略躲避:很多网站为了避免爬虫适度抓取,会设置IP拜访频率限度或者封闭频繁申请的IP地址。应用Socks5代理IP池,能够在每次申请时主动更换IP,防止因为繁多IP被封禁而影响爬虫工作的连续性。</li><li>大规模数据采集:在进行大规模网页数据抓取时,通过轮换Socks5代理IP,能够扩充爬虫的抓取范畴和速度,更高效地实现全网数据抓取工作。</li><li>放弃匿名性:Socks5代理可能暗藏实在IP地址,爱护爬虫操作者的隐衷平安,同时升高指标网站对爬虫行为的感知度。</li></ul></li></ol><p>总结来说,Socks5代理IP在跨境电商和网络爬虫畛域中,既可能晋升工作效率,也可能在肯定水平上解决因为网络限度、账号关联问题带来的困扰,保障业务的失常运行。</p></article>

February 29, 2024 · 1 min · jiezi

关于深度学习:深度学习Logistic回归算法和向量化编程全md文档笔记代码文档已分享

本系列文章md笔记(已分享)次要探讨深度学习相干常识。能够让大家熟练掌握机器学习根底,如分类、回归(含代码),熟练掌握numpy,pandas,sklearn等框架应用。在算法上,把握神经网络的数学原理,手动实现简略的神经网络构造,在利用上熟练掌握TensorFlow框架应用,把握神经网络图像相干案例。具体包含:TensorFlow的数据流图构造,神经网络与tf.keras,卷积神经网络(CNN),商品物体检测我的项目介绍,YOLO与SSD,商品检测数据集训练和模型导出与部署。全套笔记和代码自取移步gitee仓库: gitee仓库获取残缺文档和代码感兴趣的小伙伴能够自取哦,欢送大家点赞转发~共 9 章,60 子模块 TensorFlow介绍阐明TensorFlow的数据流图构造利用TensorFlow操作图说明会话在TensorFlow程序中的作用利用TensorFlow实现张量的创立、形态类型批改操作利用Variable实现变量op的创立利用Tensorboard实现图构造以及张量值的显示利用tf.train.saver实现TensorFlow的模型保留以及加载利用tf.app.flags实现命令行参数增加和应用利用TensorFlow实现线性回归1.2 神经网络根底学习指标指标 晓得逻辑回归的算法计算输入、损失函数晓得导数的计算图晓得逻辑回归的梯度降落算法晓得多样本的向量计算利用 利用实现向量化运算利用实现一个单神经元神经网络的构造1.2.1 Logistic回归1.2.1.1 Logistic回归逻辑回归是一个次要用于二分分类类的算法。那么逻辑回归是给定一个<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>x</mi></mrow><annotation encoding="application/x-tex">x</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">x</span></span></span></span>, 输入一个该样本属于1对应类别的预测概率<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mrow><mi>y</mi></mrow><mo>^</mo></mover><mo>=</mo><mi>P</mi><mo>(</mo><mi>y</mi><mo>=</mo><mn>1</mn><mi mathvariant="normal">∣</mi><mi>x</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">\hat{y}=P(y=1|x)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="mord textstyle cramped"><span class="mord mathit" style="margin-right:0.03588em;">y</span></span></span><span style="top:0em;margin-left:0.11112em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span></span></span></span><span class="mrel">=</span><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="mopen">(</span><span class="mord mathit" style="margin-right:0.03588em;">y</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mord mathrm">∣</span><span class="mord mathit">x</span><span class="mclose">)</span></span></span></span>。 Logistic 回归中应用的参数如下: <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>e</mi><mrow><mo>−</mo><mi>z</mi></mrow></msup></mrow><annotation encoding="application/x-tex">e^{-z}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.771331em;"></span><span class="strut bottom" style="height:0.771331em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">e</span><span class="msupsub"><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="reset-textstyle scriptstyle uncramped mtight"><span class="mord scriptstyle uncramped mtight"><span class="mord mtight">−</span><span class="mord mathit mtight" style="margin-right:0.04398em;">z</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span></span></span></span></span></span></span></span>的函数如下 例如: 1.2.1.2 逻辑回归损失函数损失函数(loss function)用于掂量预测后果与实在值之间的误差。最简略的损失函数定义形式为平方差损失: <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>L</mi><mo>(</mo><mover accent="true"><mrow><mi>y</mi></mrow><mo>^</mo></mover><mo separator="true">,</mo><mi>y</mi><mo>)</mo><mo>=</mo><mfrac><mrow><mn>1</mn></mrow><mrow><mn>2</mn></mrow></mfrac><mo>(</mo><mover accent="true"><mrow><mi>y</mi></mrow><mo>^</mo></mover><mo>−</mo><mi>y</mi><msup><mo>)</mo><mn>2</mn></msup></mrow><annotation encoding="application/x-tex">L(\hat{y},y) = \frac{1}{2}(\hat{y}-y)^2</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.845108em;"></span><span class="strut bottom" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="base textstyle uncramped"><span class="mord mathit">L</span><span class="mopen">(</span><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="mord textstyle cramped"><span class="mord mathit" style="margin-right:0.03588em;">y</span></span></span><span style="top:0em;margin-left:0.11112em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span></span></span></span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.03588em;">y</span><span class="mclose">)</span><span class="mrel">=</span><span class="mord reset-textstyle textstyle uncramped"><span class="mopen sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span><span class="mfrac"><span class="vlist"><span style="top:0.345em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord scriptstyle cramped mtight"><span class="mord mathrm mtight">2</span></span></span></span><span style="top:-0.22999999999999998em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="reset-textstyle textstyle uncramped frac-line"></span></span><span style="top:-0.394em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="reset-textstyle scriptstyle uncramped mtight"><span class="mord scriptstyle uncramped mtight"><span class="mord mathrm mtight">1</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span></span></span></span><span class="mclose sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span></span><span class="mopen">(</span><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="mord textstyle cramped"><span class="mord mathit" style="margin-right:0.03588em;">y</span></span></span><span style="top:0em;margin-left:0.11112em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span></span></span></span><span class="mbin">−</span><span class="mord mathit" style="margin-right:0.03588em;">y</span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="reset-textstyle scriptstyle uncramped mtight"><span class="mord mathrm mtight">2</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span></span></span></span></span></span></span></span> ...

February 24, 2024 · 25 min · jiezi

关于深度学习:原生ip和非原生ip的区别

原生IP和非原生IP的区别能够从以下几个方面来论述: 起源与调配形式: 原生IP(外乡IP):通常是由互联网服务提供商(ISP)间接调配给服务器或主机的公网IP地址,是真正的、注册地与理论应用地统一的公网IP。这样的IP地址在寰球范畴内具备唯一性,能够间接从互联网被路由到对应的服务器上。非原生IP(播送IP/共享IP/NAT后的IP):这类IP地址不是间接由本地ISP提供,而是通过网络地址转换(NAT)、代理服务器或者IP播送等技术手段间接取得的。非原生IP可能是指多个设施共享一个公网IP地址,也可能是IP地址尽管能够失常应用,但其注册归属地与理论应用地点不符。独立性与可拜访性: 原生IP:每个服务器领有独立且惟一的公网IP,内部能够间接拜访该服务器,无需任何转发或转换。非原生IP:因为可能是共享的,所以无奈保障内部间接拜访特定服务器,须要依赖NAT映射规定或者其余中间层解决。实用场景与限度: 原生IP:适宜须要间接对外提供服务、不受地区限度的服务,如网站托管、游戏服务器、近程办公等,并且在一些对IP地址有严格区域要求的利用中,如流媒体服务的区域解锁、某些特定地区的网络服务验证等,原生IP会更有劣势。非原生IP:实用于老本敏感且对间接公网连贯需要不高的场景,例如外部网络中的设施通过NAT拜访公网,或者是对于不须要端到端间接通信的轻量级利用。性能与稳定性: 原生IP:通常在网络传输速度、稳定性和可靠性上有更好的体现,因为没有额定的NAT转换开销。非原生IP:在共享IP的状况下,可能会受到NAT转换效率的影响,导致网络性能有所降落,特地是在高并发或实时性要求较高的利用场景下。查问与辨认: 能够通过查问IP地址的WHOIS信息,查看IP地址的注册归属地与理论应用的服务器所在地区是否统一,从而判断一个IP地址是否为原生IP。网站优化与认可度: 对于SEO和网站优化来说,原生IP有时可能具备肯定劣势,尤其是当搜索引擎思考天文相关性时。同时,一些服务提供商或平台只承受特定区域的原生IP拜访,而非原生IP可能无奈满足此类要求。

February 23, 2024 · 1 min · jiezi

关于深度学习:Mamba详细介绍和RNNTransformer的架构可视化对比

Transformer体系结构曾经成为大型语言模型(llm)胜利的次要组成部分。为了进一步改良llm,人们正在研发可能优于Transformer体系结构的新体系结构。其中一种办法是Mamba(一种状态空间模型)。 Mamba: Linear-Time Sequence Modeling with Selective State Spaces一文中提出了Mamba,咱们在之前的文章中也有具体的介绍。 在本篇文章中,通过将绘制RNN,transformer,和Mamba的架构图,并进行具体的比照,这样咱们能够更具体的理解它们之间的区别。 为了阐明为什么Mamba是这样一个乏味的架构,让咱们先介绍Transformer。 TransformerTransformer将任何文本输出视为由令牌组成的序列。 transformer的一个次要长处是,无论它接管到多长的输出,它都应用序列中的任何令牌信息(无论序列有多长)来对输出数据进行解决。 这就是咱们在论文中看到的注意力机制的作用,然而为了取得全局信息,注意力机制在长序列上十分消耗显存,这个咱们前面说。 Transformer由两个构造组成,一组用于示意文本的编码器块和一组用于生成文本的解码器块。这些构造能够用于多种工作,包含翻译。 咱们能够采纳这种构造来创立仅应用解码器的生成模型。比方基于Transformer的GPT,应用解码器块来实现一些输出文本。 单个解码器块由两个次要局部组成,一个是自注意力模块,另一个是前馈神经网络。 注意力创立一个矩阵,将每个令牌与之前的每个令牌进行比拟。矩阵中的权重由令牌对之间的相关性决定。 它反对并行化,所以能够极大地放慢训练速度! 然而当生成下一个令牌时,咱们须要从新计算整个序列的注意力,即便咱们曾经生成了一些新的令牌。 为长度为L的序列生成令牌大概须要L²的计算量,如果序列长度减少,计算量可能会很大。并且在这里须要计算所有令牌的注意力,所以如果序列很长,那么内存占用也会很大。所以须要从新计算整个序列是Transformer体系结构的次要瓶颈。当然也有很多技巧来晋升注意力机制的效率,这里咱们临时不提,只看最经典的原始论文。 RNN上面咱们介绍更早的序列模型RNN。循环神经网络(RNN)是一种基于序列的网络。它在序列的每个工夫步长取两个输出,即工夫步长t的输出和前一个工夫步长t-1的暗藏状态,以生成下一个暗藏状态并预测输入。 RNN有一个循环机制,容许它们将信息从上一步传递到下一步。咱们能够“开展”这个可视化,使它更明确。 在生成输入时,RNN只须要思考之前的暗藏状态和以后的输出。这样不会从新计算以前的暗藏状态,这正Transformer没有的。 这种流程能够让RNN进行疾速推理,因为的工夫与序列长度线性扩大!并且能够有有限的上下文长度(实践上),因为每次推理他只取一个暗藏状态和以后输出,内存的占用是十分稳固的。 咱们将RNN利用于之前应用过的输出文本。 每个暗藏状态都是以前所有暗藏状态的聚合。然而这里就呈现了问题,在生成名称“Maarten”时,最初一个暗藏状态不再蕴含对于单词“Hello”的信息(或者说最早的信息会被坐进的信息笼罩)。这会导致随着工夫的推移,rnn会遗记信息,因为它们只思考前一个状态。 并且rnn的这种程序性产生了另一个问题。训练不能并行进行,因为它须要按程序实现每一步。 与Transformer相比,rnn的问题齐全相同!它的推理速度十分快,但不能并行化导致训练很慢。 人们始终在寻找一种既能像Transformer那样并行化训练,可能记住先前的信息,并且在推理工夫还是随序列长度线性增长的模型,Mamba就是这样宣传的。 在介绍Mamba之前,让咱们还须要介绍以下状态空间模型 The State Space Model (SSM)状态空间模型(SSM),像Transformer和RNN一样,能够解决序列信息,比方文本,也包含信号。 状态空间是蕴含可能齐全形容一个零碎的起码数量变量的概念。它是一种通过定义零碎可能的状态来数学示意问题的形式。 比如说咱们正在通过一个迷宫。"状态空间" 就是所有可能地位(状态)的地图。每个点代表迷宫中的一个独特地位,具备特定的细节,比方你离进口有多远。 "状态空间示意" 是对这个地图的简化形容。它展现了你以后所处的地位(以后状态),以及下一步能够去哪里(可能的将来)。 尽管状态空间模型应用方程和矩阵来跟踪这种行为,形容状态的变量,在咱们的例子中是X和Y坐标以及到进口的间隔,能够示意为“状态向量”。 听起来相熟吗?这不就是强化学习中的状态吗,我集体认为是能够这么了解的,那么怎么和序列无关呢? 因为语言模型中的嵌入或向量也常常用于形容输出序列的“状态”。例如,你以后地位的向量(状态向量)可能看起来像这样: 在神经网络中,“状态”通常是指其暗藏状态,在大型语言模型的背景下,这是生成新标记的一个最重要的方面之一。 状态空间模型(SSMs)是用于形容这些状态示意并依据某些输出进行下一个状态预测的模型。 在工夫t,状态空间模型(SSMs): 将输出序列x(t)(例如,在迷宫中向左和向下挪动)映射到潜在状态示意h(t)(例如,到进口的间隔和x/y坐标),并推导出预测的输入序列y(t)(例如,再次向左挪动以更快地达到进口)。这里就与强化学习中应用离散序列(如仅向左挪动一次)不同,它将间断序列作为输出并预测输入序列。 ssm假如动静零碎,例如在三维空间中挪动的物体,能够通过两个方程从工夫t的状态预测。 通过求解这些方程,假如能够揭示基于观测数据(输出序列和先前状态)预测零碎状态的统计原理。 它的指标是找到这个状态示意h(t)这样咱们就能够从一个输出序列到一个输入序列。 ...

February 23, 2024 · 1 min · jiezi

关于深度学习:深度学习TensorFlow实现线性回归代码演示全md文档笔记代码文档已分享

本系列文章md笔记(已分享)次要探讨深度学习相干常识。能够让大家熟练掌握机器学习根底,如分类、回归(含代码),熟练掌握numpy,pandas,sklearn等框架应用。在算法上,把握神经网络的数学原理,手动实现简略的神经网络构造,在利用上熟练掌握TensorFlow框架应用,把握神经网络图像相干案例。具体包含:TensorFlow的数据流图构造,神经网络与tf.keras,卷积神经网络(CNN),商品物体检测我的项目介绍,YOLO与SSD,商品检测数据集训练和模型导出与部署。全套笔记和代码自取移步gitee仓库: gitee仓库获取残缺文档和代码感兴趣的小伙伴能够自取哦,欢送大家点赞转发~共 9 章,60 子模块 TensorFlow介绍阐明TensorFlow的数据流图构造利用TensorFlow操作图说明会话在TensorFlow程序中的作用利用TensorFlow实现张量的创立、形态类型批改操作利用Variable实现变量op的创立利用Tensorboard实现图构造以及张量值的显示利用tf.train.saver实现TensorFlow的模型保留以及加载利用tf.app.flags实现命令行参数增加和应用利用TensorFlow实现线性回归2.7 案例:实现线性回归学习指标指标 利用op的name参数实现op的名字批改利用variable_scope实现图程序作用域的增加利用scalar或histogram实现张量值的跟踪显示利用merge_all实现张量值的合并利用add_summary实现张量值写入文件利用tf.train.saver实现TensorFlow的模型保留以及加载利用tf.app.flags实现命令行参数增加和应用利用reduce_mean、square实现均方误差计算利用tf.train.GradientDescentOptimizer实现有梯度降落优化器创立利用minimize函数优化损失晓得梯度爆炸以及常见解决技巧利用 实现线性回归模型内容预览 2.7.1 线性回归原理温习2.7.2 案例:实现线性回归的训练2.7.3 减少其余性能 1 减少变量显示2 减少命名空间3 模型的保留与加载4 命令行参数应用2.7.1 线性回归原理温习依据数据建设回归模型,w1x1+w2x2+…..+b = y,通过实在值与预测值之间建设误差,应用梯度降落优化失去损失最小对应的权重和偏置。最终确定模型的权重和偏置参数。最初能够用这些参数进行预测。 2.7.2 案例:实现线性回归的训练1 案例确定假如随机指定100个点,只有一个特色数据自身的散布为 y = 0.8 * x + 0.7 这里将数据分布的法则确定,是为了使咱们训练出的参数跟实在的参数(即0.8和0.7)比拟是否训练精确2 API运算 矩阵运算 tf.matmul(x, w)平方 tf.square(error)均值 tf.reduce_mean(error)梯度降落优化 tf.train.GradientDescentOptimizer(learning_rate) 梯度降落优化learning_rate:学习率,个别为0~1之间比拟小的值method: minimize(loss)return:梯度降落op3 步骤剖析1 筹备好数据集:y = 0.8x + 0.7 100个样本2 建设线性模型 随机初始化W1和b1y = W·X + b,指标:求出权重W和偏置b3 确定损失函数(预测值与实在值之间的误差)-均方误差4 梯度降落优化损失:须要指定学习率(超参数)4 实现残缺性能import tensorflow as tfimport osdef linear_regression(): """ 自实现线性回归 :return: None """ # 1)筹备好数据集:y = 0.8x + 0.7 100个样本 # 特征值X, 目标值y_true X = tf.random_normal(shape=(100, 1), mean=2, stddev=2) # y_true [100, 1] # 矩阵运算 X(100, 1)* (1, 1)= y_true(100, 1) y_true = tf.matmul(X, [[0.8]]) + 0.7 # 2)建设线性模型: # y = W·X + b,指标:求出权重W和偏置b # 3)随机初始化W1和b1 weights = tf.Variable(initial_value=tf.random_normal(shape=(1, 1))) bias = tf.Variable(initial_value=tf.random_normal(shape=(1, 1))) y_predict = tf.matmul(X, weights) + bias # 4)确定损失函数(预测值与实在值之间的误差)-均方误差 error = tf.reduce_mean(tf.square(y_predict - y_true)) # 5)梯度降落优化损失:须要指定学习率(超参数) # W2 = W1 - 学习率*(方向) # b2 = b1 - 学习率*(方向) optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error) # 初始化变量 init = tf.global_variables_initializer() # 开启会话进行训练 with tf.Session() as sess: # 运行初始化变量Op sess.run(init) print("随机初始化的权重为%f, 偏置为%f" % (weights.eval(), bias.eval())) # 训练模型 for i in range(100): sess.run(optimizer) print("第%d步的误差为%f,权重为%f, 偏置为%f" % (i, error.eval(), weights.eval(), bias.eval())) return None6 变量的trainable设置察看trainable的参数作用,指定是否训练 ...

February 21, 2024 · 4 min · jiezi

关于深度学习:视频生成领域的发展概述从多级扩散到LLM

<article class=“article fmt article-content”><p>2023年是语言模型(llm)和图像生成技术激增的一年,然而视频生成受到的关注绝对较少。往年刚到2月份,OpenAI就公布了一个惊人的视频生成模型Sora。尽管它的架构没有披露,然而通过总结现有的视频生成畛域可能能对Sora的构架有所了解。</p><p></p><p>在这篇文章中,咱们将整顿视频生成在最近几年是倒退详情,模型的架构是如何倒退的,以及当初面临的突出问题。</p><p>咱们以时间轴看作是一个察看视频生成模型演变的旅程。这将帮忙咱们了解为什么模型是这样设计的,并为将来的钻研和利用工作提供见解。</p><h2>2022年4月:Video Diffusion Model</h2><p>从谷歌在利用扩散模型生成视频方面的开创性工作开始,能够认为是这一畛域疾速倒退开始。尽管这篇论文没有具体介绍,但它是创立T2V(文本-视频)扩散模型的首批尝试之一。</p><p></p><p>模型利用扩散模型从文本形容生成视频,VDM的架构利用3D U-Net和工夫注意力来生成跨帧的统一图像。该模型能够在视频和图像上进行联结训练。它是通过移除每个工夫注意力块内的注意力操作来实现的,并为这个输出固定注意力矩阵。</p><p>模型应用了未公开的1000万个带字幕的视频数据集。如果你查看原论文可能会发现,论文十分的短,所以这项工作可能是概念性验证演示,并没有什么实际意义,然而不能不说它是一个开创性的钻研。</p><h2>2022年9月:Make-a-Video</h2><p>这是Meta在T2V(文本-视频)方面的开创性工作。模型是在开源的非配对视频数据集上进行的训练。</p><p></p><p>它扩大了T2I (Diffusion Text-to-Image)模型,通过整合时态层来实现文本到视频的生成。然而与谷歌的那个模型的最大变动是级联。作者应用了一系列工夫和空间超分辨率扩散模型来进步分辨率和帧率。论文阐明如下:</p><p>“级联的不同组成部分是独立训练的。解码器、先验和两个超分辨率模块只应用图像进行训练,而不应用任何文本。根本的T2I模型能够失去文本输出,并通过文本-图像对进行训练,而无需进一步的视频训练。”</p><p>另一个重要的步骤是2+1D。该模型利用“伪三维”卷积办法更无效地整合工夫信息。2+1D办法能够更高效的计算策略模仿全3D卷积和注意力机制(间接将视频作为3D数据进行操作)的成果。它首先在每个帧上别离利用规范2D卷积,而后沿着时间轴利用- 1D卷积,在帧之间共享信息。如果你对视频了解比拟敢趣味,那么2+1D 是过后通用的办法。</p><p>论文还蕴含了一个精心策划的开源数据集组合:LAION-5B的2.3B子集,其中文本为英语+ HD-VILA-100M的10M子集+ WebVid-10M</p><p>使这篇论文当初曾经成为一篇根底论文,起初被许多新办法援用和比拟。</p><h2>2022年10月:Imagen Video</h2><p>“如果咱们有一个级联,咱们能做一个更大的级联吗?”这就是你的答案。</p><p></p><p>谷歌的这个新模型外部有7个子模型:文本编码器,根底模型(视频U-Net), 3个空间(SSR)和2个工夫(TSR)超分辨率模型。所有7个模型都能够并行训练。与之前的Make-a-Video一样,SSR模型减少了所有输出帧的空间分辨率,而TSR模型通过填充输出帧之间的两头帧来减少工夫分辨率。</p><p>所有的级联模型都应用+1工夫维度。这意味着它们都适应视频格式,因而超分辨率(SSR)能够思考视频的工夫方面,而不会产生“闪动的伪影”。为了计算效率,只有根本模型在所有帧中应用工夫注意力,而SSR和TSR应用工夫卷积(计算成本更低)。</p><h2>2023年3月:NUWA-XL Video</h2><p>“Diffusion over Diffusion”能够生成十分长的剪辑,并且具备绝对较好的工夫一致性。该模型应用递归,而不是级联来插值帧。</p><p></p><p>这里的外围概念是“扩散之上的扩散”——一种分层的、从粗到精的视频生成办法,从全局模型开始建设关键帧,而后通过部分扩散模型逐渐填充细节。这使得视频片段的并行生成成为可能。</p><p>作者将生成1024帧的工夫从7.55分钟缩小到26秒(但gpu配置没有公开)。</p><p>要害模块是带掩码工夫扩散(MTD),“掩码”一词意味着它解决全局生成过程(不足初始/完结视频帧援用)和部分细化过程(应用现有帧作为领导)。</p><p>还记得我提到的"潜在表征"吗?作者利用了他们称之为T-KLVAE的潜在编码器。论文形容如下:</p><p>T-KLVAE利用事后训练的减少了工夫卷积和留神层的图像KLVAE(潜在编码器),联合工夫动静的同时保留空间信息。</p><p>T-KLVAE将视频编码为紧凑的维度示意,从而升高了计算复杂度。</p><p>另外就是作者提到模型是间接在长电影(最多3376帧)上训练的。FlintstonesHD 是~6M帧的1高清动画数据集,这个模型在一次运行中生成了整个卡通剧集,</p><h2>2023年4月Video LDM</h2><p>到了这个工夫节点就开始应用SD (StableDiffusion)了。尽管在NUWA-XL中看到了潜在空间的技巧,但这篇论文采纳了所有人都喜爱的StableDiffusion并将其转换为T2V模型。ldm是图像生成的首选架构,当初是时候让它们在视频生成中大放光芒了。</p><p></p><p>Video LDM通过工夫维度扩大了传统LDM的潜在空间。该流程很简略:</p><p>1、仅在图像上预训练LDM (StableDiffusion);</p><p>2、将工夫维度引入潜在空间并对视频数据集进行微调。</p><p>3、微调图像上采样器,制作视频超分辨率模型。</p><p>LDM的应用进步了计算效率,为生成高分辨率视频(1280 x 2048)开拓了路线。</p><h2>2023年6月:AnimateDiff</h2><p>这是视频预训练ldm最乏味的利用之一,也是咱们目前看到SD中让视频动起来的最罕用的办法。它想法很简略——模型从视频中学习静止的先验,使堆栈图像动画化。这些静止先验能够插入到任何StabelDiffusion模型的顶部,所以任何SD模型无需从新训练。</p><p></p><p>AnimateDiff的外围是一个在视频数据集上训练的Spatio-Temporal Transformer静止建模模块。通过一个称为Inflation的过程将该模块集成到解冻的T2I模型(如Stable Diffusion)中,使原始模型可能解决5D视频张量(批次×通道×帧×高度×宽度)。</p><p>“Spatio-Temporal Transformer”由沿着时间轴的几个自注意力块组成,应用正弦地位编码来编码动画中每一帧的地位。</p><p>通过将每个2D卷积和留神层转换为仅限空间的伪3d层,以 batch x channels × frames × height × width形态的5D视频张量作为输出</p><p>这是一项了不起的工作,目前的开源库还在更新新版本,例如反对SD-XL和Domain Adapter LoRA。如果你想应用SD模型生成视频,能够先用它,因为十分好用。</p><h2>2023年9月:Show-1</h2><p>咱们能合并潜在表征和像素表征吗?</p><p></p><p>Show-1同时利用基于像素和基于潜在的扩散模型:</p><p>它具备3个基于像素的扩散模型的级联构造(DeepFloyd作为关键帧的根底T2I模型,一个工夫插值和一个分辨率插值)和1个LDM作为超分辨率模型。</p><p>该模型从基于像素的视频扩散模型(vdm)开始,创立与文本提醒密切相关的低分辨率视频。而后采纳基于潜在的vdm将低分辨率输入降级为高分辨率视频。</p><p>作者认为基于像素的是辨认静止的好办法,而latent是超分辨率的专家。他们通过展现优于VideoLDM或Make-a-Video的评估指标来反对他们的论点</p><p>这篇论文提出了一个十分乏味的问题:潜在示意对视频无利吗?最初,你会看到一个意想不到的答案。</p><h2>2023年11月:Stable Video Diffusion</h2><p>这应该是目前最驰名的开源T2V模型。只管与Video LDM有很多相似之处,但SVD最大的价值在于数据管理。作者详细描述了他们如何建设一个大型视频数据集。</p><p></p><p>不要把这项工作当作一个新的模型,它答复了所有这些闭源数据集是如何创立和治理的问题。</p><p>SVD与Video LDM具备雷同的架构:</p><p>1、模型首先在图像-文本对上训练sd2.1。</p><p>2、插入工夫卷积和留神层,使模型适应视频生成,对大量视频数据进行训练。</p><p>3、在一小部分高质量视频上对模型进行微调</p><p>这里的次要重点是数据处理,创立精心策划的视频文本对。它从切割检测开始,以避免忽然切割和淡出影响合成视频。每个视频片段应用三种合成字幕办法进行正文:</p><p>CoCa(图像字幕):正文每个剪辑的两头帧。</p><p>V-BLIP:提供基于视频的题目形容。</p><p>基于LLM的摘要:联合前两个题目来创立剪辑的扼要形容。</p><p>最初,他们通过测量均匀光流来过滤动态场景,并应用OCR去除含有适量文本的片段。</p><h2>2023年12月:VideoCrafter-v2</h2><p>论文蕴含了一个十分具体的训练过程和作者如何克服应用高质量生成图像的低质量视频的限度的形容。</p><p></p><p>模型的构造非常简单,没有帧插值或上采样,与VideoCrafterV1和其余T2V ldm相似的架构,联合了从SD 2.1初始化权重的空间模块和初始化为零的工夫模块。</p><p>首先训练一个的视频模型。而后只对该模型的空间模块进行微调,生成高质量的图像。在论文中详细描述了的试验设置和对微调T2I不同办法,举荐浏览。</p><h2>2023年12月:VideoPoet</h2><p>VideoPoet是所有论文中最独特的一篇。与依赖扩散的传统办法不同,VideoPoet利用自回归LLM来生成视频甚至声音。</p><p></p><p>这个非凡模型的外部局部十分乏味,但对于与多模式LLM一起工作的人来说可能十分相熟。作者应用了一个仅解码器的LLM架构,可能将图像、视频和音频模式作为离散的令牌。</p><p>为了创立这样的令牌,应用magvitv -v2进行联结图像和视频令牌化,应用SoundStream进行音频令牌化,将第一帧和随后的4帧块编码为令牌进行示意。</p><p>因为可能解决不同模式的输出,这使得模型可能执行宽泛的视频生成工作:文本到视频、图像到视频、视频款式化和视频到音频工作,它还能够生成长视频。</p><p>模型能够通过调节视频的最初一秒来预测下一秒,从而生成更长的视频,容许创立任何冀望持续时间的视频,并具备强对象身份保留。</p><p>这个模型提出了另一个问题——咱们真的能够利用LLM吗?咱们真的应该应用扩散吗?</p><h2>2024年1月:Lumiere</h2><p>在最新的工作中,Google认为基于像素的扩散是可行的办法(如果你有钱资源 )</p><p></p><p>这是目前基于T2V像素的扩散模型的最新进展。最新的具体技术论文。尽管最近的大部分工作都集中在潜在扩散上,但这项工作在某种意义上从新思考了级联模型。</p><p>该模型由一次生成所有帧的根本模型(STUnet)和具备工夫感知的空间超分辨率(SSR)模型组成(没有帧插值),次要的是时空u网络(STUnet)。援用论文内容:</p><p>该架构扩大了imagent2i模型,当初能够对输出信号进行空间和工夫上的下采样。这包含在文本到图像架构中交织的工夫块,以及插入工夫上采样和下采样模块</p><p>另一个显著的特点是它从新思考级联模型。模型联合了重叠窗口的超分辨率模型和MultiDiffusion来混合重叠局部,将分辨率进步到1024x1024。所有这些都使模型可能在一系列工作上显示SOTA品质,包含图像到视频、视频绘制和格调化生成。</p><p>作者认为STUnet和多扩散的思维能够利用于ldm。</p><h2>Sora和将来瞻望</h2><p>在Sora被OpenAI公布后,你也质疑事实吗?他公布的技术论文看起来更像一篇文章,并没有披露具体的架构。咱们能够揣测LLM与通过大量数据训练的扩散模型的某种交融。</p><p>这引出了咱们上面的探讨:</p><p><strong>扩散是最好的办法吗?</strong></p><p>咱们看到以后的视频模型是基于扩散的。根本思维是生成帧,而后在帧之间创立工夫统一的动画。但咱们也看到llm生成令牌,而后解码成图像甚至声音。</p><p><strong>往年咱们会看到新的突破性架构吗?</strong></p><p>这里只有模型作品是针对长视频生成的。次要是因为扩散模型不足对“变换视图”的了解——当摄像机从一个视角跳到另一个视角时扩散模型无奈对其进行了解。这就是为什么大多数模型都是通过过滤这些变动来去除“闪动”——当模型在未过滤的数据上训练时,图像在视频两头呈现的变动。</p><p><strong>从哪里获取数据?</strong></p><p>当初的次要问题是从哪里取得高质量的数据。它次要是对于正文数据,因为收集视频并对其进行正文须要花钱,大多数实验室都累赘不起。咱们曾经看到了一些模型如何应用生成的图像数据集来克服这个问题。往年咱们会看到一个新的“万能”视频数据集吗?</p><p>下面说的都是目前的问题,心愿在2024年能够失去解决,最初上面是本文的援用</p><p>[1] J. Ho, T. Salimans, A. Gritsenko, W. Chan, M. Norouzi, D. J. Fleet, “Video Diffusion Models” (2022), arXiv:2204.03458.</p><p>[2] U. Singer, A. Polyak, T. Hayes, X. Yin, J. An, S. Zhang, Q. Hu, H. Yang, O. Ashual, O. Gafni, D. Parikh, S. Gupta, Y. Taigman, “Make-a-Video: Text-to-Video Generation without Text-Video Data” (2022), arXiv:2209.14792.</p><p>[3] J. Ho, W. Chan, C. Saharia, J. Whang, R. Gao, A. Gritsenko, D. P. Kingma, B. Poole, M. Norouzi, D. J. Fleet, T. Salimans, “Imagen Video: High-definition Video Generation with Diffusion Models” (2022), arXiv:2210.02303.</p><p>[4] S. Yin, C. Wu, H. Yang, J. Wang, X. Wang, M. Ni, Z. Yang, L. Li, S. Liu, F. Yang, J. Fu, G. Ming, L. Wang, Z. Liu, H. Li, N. Duan, “NUWA-XL: Unified Generative Pre-training for Visual Synthesis” (2023), arXiv:2303.12346.</p><p>[5] A. Blattmann, R. Rombach, H. Ling, T. Dockhorn, S. W. Kim, S. Fidler, K. Kreis, “Align your Latents: High-Resolution Video Synthesis with Latent Diffusion Models” (2023), arXiv:2304.08818.</p><p>[6] Y. Guo, C. Yang, A. Rao, Z. Liang, Y. Wang, Y. Qiao, M. Agrawala, D. Lin, B. Dai, “AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning” (2023), arXiv:2307.04725.</p><p>[7] D. J. Zhang, J. Z. Wu, J.-W. Liu, R. Zhao, L. Ran, Y. Gu, D. Gao, M. Z. Shou, “Show-1: Marrying Pixel and Latent Diffusion Models for Text-to-Video Generation” (2023), arXiv:2309.15818.</p><p>[8] A. Blattmann, T. Dockhorn, S. Kulal, D. Mendelevitch, M. Kilian, D. Lorenz, Y. Levi, Z. English, V. Voleti, A. Letts, V. Jampani, R. Rombach, “Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets” (2023), arXiv:2311.15127.</p><p>[9] H. Chen, Y. Zhang, X. Cun, M. Xia, X. Wang, C. Weng, Y. Shan, “VideoCrafter2: Overcoming Data Limitations for High-Quality Video Diffusion Models” (2024), arXiv:2401.09047.</p><p>[10] D. Kondratyuk, L. Yu, X. Gu, J. Lezama, J. Huang, R. Hornung, H. Adam, H. Akbari, Y. Alon, V. Birodkar, Y. Cheng, M.-C. Chiu, J. Dillon, I. Essa, A. Gupta, M. Hahn, A. Hauth, D. Hendon, A. Martinez, D. Minnen, D. Ross, G. Schindler, M. Sirotenko, K. Sohn, K. Somandepalli, H. Wang, J. Yan, M.-H. Yang, X. Yang, B. Seybold, L. Jiang, “VideoPoet: Autoregressive Video Generation” (2023), arXiv:2312.14125.</p><p>[11] O. Bar-Tal, H. Chefer, O. Tov, C. Herrmann, R. Paiss, S. Zada, A. Ephrat, J. Hur, G. Liu, A. Raj, Y. Li, M. Rubinstein, T. Michaeli, O. Wang, D. Sun, T. Dekel, I. Mosseri, “Lumiere: Enhancing Video Generation with Pixel-based Diffusion Models” (2024), arXiv:2401.12945.</p><p>https://avoid.overfit.cn/post/6242680847f94e6b8ef3eb2217ce1f89</p><p>作者:Nikita Kiselov</p></article> ...

February 20, 2024 · 3 min · jiezi

关于深度学习:4张图片就可以微调扩散模型

稳固扩散模型因其从文本形容生成高质量、多样化图像的能力而取得了极大的关注。然而这些预训练模型在生成高度定制或个性化主题的图像时可能会有所有余。 这时就须要咱们进行手动的微调。微调能够依据绝对较小的图像集向模型传授新的、独特的主题。咱们明天应用DreamBooth在不影响模型原始性能的状况下实现微调过程。 根底概念1、生成模型和文本到图像的合成 生成模型是一类机器学习模型,旨在生成与给定数据集类似的新数据实例。他们捕获潜在的数据分布,产生新的样本。 文本到图像模型是生成模型的一个子集,因为它们以极高的准确性和保真度将文本形容转换为相应的视觉示意而特地乏味。 Stable Diffusion是一种文本到图像的模型,它利用Transformer架构的一种变体来依据文本输出生成图像。 这些模型的生成过程能够形容如下: 给定一个文本形容T,模型的指标是生成一个图像I,使联结概率P(I,T)最大化。这通常是通过训练模型来最大化条件概率P(I∣T)来实现的,以确保生成的图像与文本形容统一。 2、生成模型的微调 微调是指在一个新的、通常更小的数据集上调整预训练的模型,以使模型适应特定的需要,而不会失去从原始数据集学习到的泛化性。这种办法在数据稀缺或须要定制的应用程序中至关重要。 在数学上,微调调整模型的参数以优化新数据集Dnew上的损失函数L,同时避免与原始参数 origin的显著偏差。这能够被表述为一个正则化问题: 3、DreamBooth DreamBooth提出了一种新的微调办法,容许生成具备特定主题或对象的图像,同时放弃模型生成不同图像的能力。 传统的微调可能会导致适度拟合或灾难性忘记(遗记原始数据散布),DreamBooth则能确保模型保留其个别性能。 该过程包含训练特定于主题的标记以及原始模型参数。这在概念上相似于向模型的词汇表中增加一个代表新主题的新“单词”。训练的指标能够形容为: 其中示意主题特定参数,1,21,2为正则化参数。 更具体内容请看原论文 《DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation》 技术筹备应用DreamBooth微调像Stable Diffusion这样的生成模型须要大量的计算,并且须要大量的内存。为了确保训练过程的效率并防止潜在的瓶颈,强烈建议应用高性能GPU。 如果没有GPU,咱们能够间接应用Google Colab,他就能够满足本文的需要。 而后须要装置以下库 Diffusers:扩散模型库,专门用于微调和利用预训练模型。 Accelerate:一个用于分布式训练和混合精度的库。 TensorBoard:用于可视化训练进度和指标。 transformer、FTFY和Gradio:用于模型组件、文本处理和创立用于模型交互的web ui。 Bitsandbytes:用于内存高效和疾速训练,特地是用于优化特定GPU架构上的模型训练。 !pip install -U -qq git+https://github.com/huggingface/diffusers.git !pip install -qq accelerate tensorboard transformers ftfy gradio !pip install -qq "ipywidgets>=7,<8" !pip install -qq bitsandbytes !pip install huggingface_hub为了更快、更节俭内存的训练,特地是如果应用特定类型的gpu (T4、P100、V100、A100),还能够抉择装置以下组件: Xformers:提供高效transformers 组件的库。 ...

February 19, 2024 · 3 min · jiezi

关于深度学习:Mamba详解

深度学习新架构Mamba论文介绍 Mamba: Linear-Time Sequence Modeling with Selective State Spaces关注微信公众号: DeepGoAI我的项目地址:https://github.com/state-spaces/mamba (曾经6.3k+) 论文地址:https://arxiv.org/abs/2312.00752 本文介绍了一种新的序列模型架构,名为Mamba,它通过选择性状态空间模型(Selective State Space Models, SSMs)来改良传统的状态空间模型。Mamba通过输出依赖的形式调整SSM参数,容许模型依据以后的数据选择性地传递或忘记信息,从而解决了以前模型在解决离散和信息密集型数据(如文本)时的有余。此外,只管这种扭转使得模型不能应用高效的卷积计算,研究者设计了一种硬件感知的并行算法,以递归模式运行,使得Mamba在推理速度上比传统的Transformer快5倍,并且在序列长度上实现线性缩放。在语言模型、音频和基因组数据模型等多个畛域,Mamba都获得了最先进的性能。 上图提供了结构化状态空间模型(SSM) 如何解决输出数据的概述。具体来说,它阐明了输出 $x$ 的每个通道是如何通过更高维度的潜在状态 $h$ 独立映射到输入 $y$ 的。例如,如果输出有 5 个通道($D = 5$),则通过维度为 $N = 4$ 的潜在状态解决它们。先前实现的 SSM 因为其在解决大无效状态时的效率而被留神到,这个大无效状态是维度 $D$ 和 $N$,以及批量大小 $B$ 和序列长度 $L$ 的乘积。这种效率是通过防止这个大状态的实体化(materialization of the large state)并改用依赖工夫不变性的代替计算门路来实现的——意味着参数($\Delta$,$A$,$B$,$C$)随工夫放弃不变。文本提到了一个“抉择机制”,在此上下文中引入了输出依赖的动静。这意味着参数当初可能会依据输出变动,引入了更动静且可能更精确的工夫数据建模。然而,这也须要一个“审慎的硬件感知算法”,因为减少的复杂性和计算要求。为确保模型能够在特定的硬件配置上无效执行而做的优化或思考,例如提到的 GPU 及其 SRAM 和 HBM(高带宽内存)。 办法概述结构化状态空间序列模型(S4)结构化状态空间序列模型(Structured State Space Sequence Models,简称S4)是一种新兴的深度学习序列模型,它与循环神经网络(RNNs)、卷积神经网络(CNNs)及经典的状态空间模型相关联。这些模型受到了一种将一维函数或序列映射到另一个一维函数或序列通过隐式潜在状态的特定间断零碎的启发。 具体来说,S4模型应用四个参数($\Delta A$, $B$, $C$)定义序列到序列的转换过程,分为两个阶段: 第一阶段(离散化):将“间断参数”($\Delta A$, $B$)转换为“离散参数”($\bar{A}$, $\bar{B}$)。 第二阶段:通过离散化后的参数计算序列转换,能够通过线性递归或全局卷积两种形式实现 S4模型 外围公式首先形容S4模型的外围动静,即如何从一个工夫步骤到下一个工夫步骤更新潜在状态,并如何从这个潜在状态生成输入序列:公式(1a): $h'(t) = A h(t-1) + B x(t)$ ...

February 17, 2024 · 1 min · jiezi

关于深度学习:使用LORA微调RoBERTa

<article class=“article fmt article-content”><p>模型微调是指在一个曾经训练好的模型的根底上,针对特定工作或者特定数据集进行再次训练以进步性能的过程。微调能够在使其适应特定工作时产生显着的后果。</p><p>RoBERTa(Robustly optimized BERT approach)是由Facebook AI提出的一种基于Transformer架构的预训练语言模型。它是对Google提出的BERT(Bidirectional Encoder Representations from Transformers)模型的改良和优化。</p><p>“Low-Rank Adaptation”(低秩自适应)是一种用于模型微调或迁徙学习的技术。一般来说咱们只是应用LORA来微调大语言模型,然而其实只有是应用了Transformers块的模型,LORA都能够进行微调,本文将介绍如何利用PEFT库,应用LORA进步微调过程的效率。</p><p></p><p>LORA能够大大减少了可训练参数的数量,节俭了训练工夫、存储和计算成本,并且能够与其余模型自适应技术(如前缀调优)一起应用,以进一步加强模型。</p><p>然而,LORA会引入额定的超参数调优层(特定于LORA的秩、alpha等)。并且在某些状况下,性能不如齐全微调的模型最优,这个须要依据不同的需要来进行测试。</p><p>首先咱们装置须要的包:</p><pre><code> !pip install transformers datasets evaluate accelerate peft</code></pre><h2>数据预处理</h2><pre><code> import torch from transformers import RobertaModel, RobertaTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer, DataCollatorWithPadding from peft import LoraConfig, get_peft_model from datasets import load_dataset peft_model_name = ‘roberta-base-peft’ modified_base = ‘roberta-base-modified’ base_model = ‘roberta-base’ dataset = load_dataset(‘ag_news’) tokenizer = RobertaTokenizer.from_pretrained(base_model) def preprocess(examples): tokenized = tokenizer(examples[’text’], truncation=True, padding=True) return tokenized tokenized_dataset = dataset.map(preprocess, batched=True, remove_columns=[“text”]) train_dataset=tokenized_dataset[’train’] eval_dataset=tokenized_dataset[’test’].shard(num_shards=2, index=0) test_dataset=tokenized_dataset[’test’].shard(num_shards=2, index=1) # Extract the number of classess and their names num_labels = dataset[’train’].features[’label’].num_classes class_names = dataset[“train”].features[“label”].names print(f"number of labels: {num_labels}") print(f"the labels: {class_names}") # Create an id2label mapping # We will need this for our classifier. id2label = {i: label for i, label in enumerate(class_names)} data_collator = DataCollatorWithPadding(tokenizer=tokenizer, return_tensors=“pt”)</code></pre><h2>训练</h2><p>咱们训练两个模型,一个应用LORA,另一个应用残缺的微调流程。这里能够看到LORA的训练工夫和训练参数的数量能缩小多少</p><p>以下是应用残缺微调</p><pre><code> training_args = TrainingArguments( output_dir=’./results’, evaluation_strategy=‘steps’, learning_rate=5e-5, num_train_epochs=1, per_device_train_batch_size=16, ) </code></pre><p></p><p>而后进行训练:</p><pre><code> def get_trainer(model): return Trainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=eval_dataset, data_collator=data_collator, ) full_finetuning_trainer = get_trainer( AutoModelForSequenceClassification.from_pretrained(base_model, id2label=id2label), ) full_finetuning_trainer.train()</code></pre><p>上面看看PEFT的LORA</p><pre><code> model = AutoModelForSequenceClassification.from_pretrained(base_model, id2label=id2label) peft_config = LoraConfig(task_type=“SEQ_CLS”, inference_mode=False, r=8, lora_alpha=16, lora_dropout=0.1) peft_model = get_peft_model(model, peft_config) print(‘PEFT Model’) peft_model.print_trainable_parameters() peft_lora_finetuning_trainer = get_trainer(peft_model) peft_lora_finetuning_trainer.train() peft_lora_finetuning_trainer.evaluate()</code></pre><p></p><p>能够看到</p><p>模型参数总计:125,537,288,而LORA模型的训练参数为:888,580,咱们只须要用LORA训练~0.70%的参数!这会大大减少内存的占用和训练工夫。</p><p>在训练实现后,咱们保留模型:</p><pre><code> tokenizer.save_pretrained(modified_base) peft_model.save_pretrained(peft_model_name)</code></pre><p>最初测试咱们的模型</p><pre><code> from peft import AutoPeftModelForSequenceClassification from transformers import AutoTokenizer # LOAD the Saved PEFT model inference_model = AutoPeftModelForSequenceClassification.from_pretrained(peft_model_name, id2label=id2label) tokenizer = AutoTokenizer.from_pretrained(modified_base) def classify(text): inputs = tokenizer(text, truncation=True, padding=True, return_tensors=“pt”) output = inference_model(**inputs) prediction = output.logits.argmax(dim=-1).item() print(f’\n Class: {prediction}, Label: {id2label[prediction]}, Text: {text}’) # return id2label[prediction] classify( “Kederis proclaims innocence Olympic champion Kostas Kederis today left hospital ahead of his date with IOC inquisitors claiming his …”) classify( “Wall St. Bears Claw Back Into the Black (Reuters) Reuters - Short-sellers, Wall Street’s dwindling\band of ultra-cynics, are seeing green again.”)</code></pre><p></p><h2>模型评估</h2><p>咱们还须要对PEFT模型的性能与齐全微调的模型的性能进行比照,看看这种形式有没有性能的损失</p><pre><code> from torch.utils.data import DataLoader import evaluate from tqdm import tqdm metric = evaluate.load(‘accuracy’) def evaluate_model(inference_model, dataset): eval_dataloader = DataLoader(dataset.rename_column(“label”, “labels”), batch_size=8, collate_fn=data_collator) device = torch.device(“cuda” if torch.cuda.is_available() else “cpu”) inference_model.to(device) inference_model.eval() for step, batch in enumerate(tqdm(eval_dataloader)): batch.to(device) with torch.no_grad(): outputs = inference_model(**batch) predictions = outputs.logits.argmax(dim=-1) predictions, references = predictions, batch[“labels”] metric.add_batch( predictions=predictions, references=references, ) eval_metric = metric.compute() print(eval_metric) </code></pre><p>首先是没有进行微调的模型,也就是原始模型</p><pre><code> evaluate_model(AutoModelForSequenceClassification.from_pretrained(base_model, id2label=id2label), test_dataset)</code></pre><p></p><p>accuracy: 0.24868421052631579‘</p><p>上面是LORA微调模型</p><pre><code> evaluate_model(inference_model, test_dataset)</code></pre><p></p><p>accuracy: 0.9278947368421052</p><p>最初是齐全微调的模型:</p><pre><code> evaluate_model(full_finetuning_trainer.model, test_dataset)</code></pre><p></p><p>accuracy: 0.9460526315789474</p><h2>总结</h2><p>咱们应用PEFT对RoBERTa模型进行了微调和评估,能够看到应用LORA进行微调能够大大减少训练的参数和工夫,然而在准确性方面还是要比残缺的微调要稍稍降落。</p><p>本文代码:</p><p>https://avoid.overfit.cn/post/26e401b70f9840dab185a6a83aac06b0</p><p>作者:Achilles Moraites</p></article> ...

February 13, 2024 · 2 min · jiezi

关于深度学习:论文介绍-FreeControl-无需额外训练实现文本到图像的空间操控

<article class=“article fmt article-content”><h2>论文介绍 FreeControl: 无需额定训练实现文本到图像的空间操控!</h2><h5>论文介绍 FreeControl: Training-Free Spatial Control of Any Text-to-Image Diffusion Model with Any Condition</h5><h5>关注微信公众号: DeepGo</h5><p>我的项目地址:https://genforce.github.io/freecontrol/</p><p>论文地址:https://arxiv.org/abs/2312.07536</p><p>本文介绍一种新鲜的图像编辑算法FreeControl,容许用户在不须要额定训练的状况下,对预训练的文本到图像(T2I)扩散模型进行空间管制。它通过剖析和合成两个阶段工作,首先从指标概念生成种子图像,并对它们的扩散特色进行主成分剖析(PCA)以取得线性子空间作为语义根底。而后,在合成阶段,应用构造疏导和外观疏导来确保生成的图像在结构上与领导图像统一,同时在外观上与同一种子未进行构造管制生成的图像类似。</p><p><br/>上图展现了 FreeControl 办法如何实现对(Stable Diffusion)稳固扩散模型的无训练条件管制。此图分为两个局部(a)和(b),演示了 FreeControl 如何在给定任何模态的输出条件图像下,实现对预训练文本到图像扩散模型的零样本管制。 (a)局部:阐明了 FreeControl 如何容许用户在没有任何额定训练的状况下,对预训练的文本到图像扩散模型进行空间管制。这一点突出了 FreeControl 在解决输出条件和文本形容之间存在抵触时,如何在空间和图像-文本对齐之间实现良好均衡的能力。它反对一些难以结构训练对的条件类型(例如,借用行中的 2D 点云和网格投影)。 (b)局部:与 ControlNet 相比,FreeControl 在解决疏导图像和文本形容之间存在抵触的状况下,实现了空间和图像-文本对齐之间的良好均衡。此外,它反对多种条件类型,例如 2D 投影的点云和网格,在这些状况下,构建训练对是艰难的。</p><h3>问题、挑战和奉献</h3><p>该论文尝试解决的次要问题和挑战是如何在不须要额定训练的状况下,为预训练的文本到图像(T2I)扩散模型提供精密的空间管制。现有的办法,如ControlNet,尽管可能提供空间管制,但须要为每种空间条件、模型架构和模型文件训练额定的模块,这既耗时又费劲,且难以适应一直演变的模型架构和个性化的模型。此外,这些办法面临高训练老本、可扩展性差和由训练计划导致的限度,如管制信号难以从图像中推断、模型偏向于优先思考空间条件而非文本形容等问题。</p><p><br/>上图提供了 FreeControl 办法的概述,展现了如何在无需额定训练的状况下,对任何预训练的文本到图像(T2I)扩散模型进行管制。该图分为两个次要局部:分析阶段(a)和合成阶段(b),展现了从指标概念(例如,“man”)生成种子图像到最终生成具备控制结构和外观的图像的整个过程。 (a) 分析阶段:在此阶段,FreeControl 应用预训练的扩散模型为指标概念生成种子图像,并对这些图像的扩散特色执行主成分剖析(PCA)。通过这种剖析,取得了作为语义根底的线性子空间。这一步骤的要害是构建一个工夫依赖的根底 $B_t$,代表语义构造。 (b) 合成阶段:在此阶段,FreeControl 利用构造疏导和外观疏导来生成最终图像。构造疏导应用在分析阶段失去的语义根底,确保生成图像在结构上与输出条件图像对齐。同时,外观疏导促成从雷同种子但未经构造管制生成的兄弟图像($\bar{I}$)到最终图像($I$)的外观转移,使得 $I$ 在内容和格调上与 $\bar{I}$ 类似,但构造上遵循输出条件图像($I_g$)。</p><h3>办法概述</h3><p>FreeControl 分为两个阶段:<strong>分析阶段</strong>和<strong>合成阶段</strong>。</p><ul><li><strong>分析阶段</strong>:通过对种子图像的扩散特色进行主成分剖析(PCA),造成工夫依赖的基$B_t$,作为语义构造示意。</li><li><strong>合成阶段</strong>:构造疏导帮忙在疏导图像$I_g$的领导下构建输入图像$I$的构造模板,而外观疏导从雷同种子生成的兄弟图像$\bar{I}$中借用外观细节。</li></ul><h5>语义构造示意</h5><p>在实现文本到图像(T2I)扩散的零样本空间管制时,关键在于须要一种对图像模态不变的语义图像构造的对立示意。依据最近的钻研,自监督的 Vision Transformers 和 T2I 扩散模型中的自注意力特色(即键和查问)被认为是图像构造的弱小描述符。因而,作者假如操纵这些自注意力特色是实现可控 T2I 扩散的要害。</p><ul><li><strong>间接注入办法的局限性</strong>: 在 Plug-and-Play(PnP)办法中,尝试间接将疏导图像($I_g$)的自注意力权重(或等效的特色)注入到图像 $I$ 的扩散过程中。这种办法容易引入外观透露,即不仅传递了 $I_g$ 的构造,还传递了外观细节的痕迹,特地是当 $I_g$ 和 $I$ 属于不同模态时(例如,深度图与天然图像),这在可控生成中是一个问题。</li><li><strong>图像构造与外观的拆散</strong>:<br/>为了拆散图像的构造和外观,作者借鉴了 Transformer 特色可视化的办法,对一组语义类似图像的自注意力特色执行主成分剖析(PCA)。作者的要害察看是,次要的 PCs 造成了一个语义根底;它与不同图像模态中的对象姿势、形态和场景形成体现出强烈的相关性。作者利用这个根底作为语义构造示意,并在分析阶段取得这些根底。</li><li><p><strong>语义根底的获取</strong>:<br/>首先收集一组 $N_s$ 张图像 ${I_s}$,这些图像与文本提醒 $c$ 共享指标概念,应用经文本提醒 $\tilde{c}$ 批改后的 $\epsilon_\theta$ 生成,$\tilde{c}$ 将概念标记插入到成心放弃通用的模板中(例如,“一张带背景的[]照片。”)。这使得 ${I_s}$ 笼罩了多样的对象形态、姿势、外观以及图像形成和格调,对于语义根底的表白性至关重要。<br/>通过对 ${I_s}$ 执行 DDIM 逆向,以取得大小为 $N_s \times C \times H \times W$ 的工夫依赖扩散特色 ${F_{t}^s}$,产生 $N_s \times H \times W$ 个不同的特征向量,对其执行 PCA 以取得工夫依赖的语义根底 $B_t$ 作为前 $N_b$ 个主成分:</p><p>$$B_t = [p^{(1)}t, p^{(2)}t, \ldots, p^{(N_b)}t] \sim PCA({F{t}^s})$$</p><p>直观地讲,$B_t$ 逾越了不同图像模态的语义空间 $S_t$,容许在合成阶段将图像构造从 $I_g$ 流传到 $I$。<br/>一旦计算出来,$B_t$ 能够被雷同的文本提醒重复使用,或由具备相干概念的提醒共享。因而,根底构建的老本能够在合成阶段的屡次运行中摊派。</p></li></ul><h5>生成阶段</h5><p>合成阶段通过疏导将生成的图像$I$与疏导图像$I_g$进行条件化。首先,作者用语义根底$B_t$表白$I_g$的语义构造。(ps: 原文的公式不知为何都在表白的时候,将大写字母成了小写,如M写成m,留神辨别)</p><ul><li><p><strong>疏导图像的逆变换</strong>:</p><p>作者对$I_g$执行DDIM逆变换,以获取尺寸为$C \times H \times W$的扩散特色$F{t}^g$,并将其投影到$B_t$上,失去其语义坐标$S{t}^g$,尺寸为$N_b \times H \times W$。为了部分管制前景构造,作者进一步从概念标记的穿插注意力图中派生出掩码$M$(尺寸$H \times W$),全局管制时$M$设置为1(尺寸$H \times W$)。接下来介绍如何应用构造疏导来生成具备控制结构的$I$。</p></li><li><p><strong>构造疏导</strong>:<br/> 在每个去噪步骤$t$,作者通过将扩散特色$F_t$从$\epsilon_\theta$投影到$B_t$上,取得语义坐标$S_t$。构造疏导的能量函数$g_s$能够表白为:</p><p>$$ g_s(S_t; S_{t}^g, M) = \frac{\sum_{i,j} m_{ij} \left| [s_t]{ij} - [s{t}^{g}]{ij} \right|^2_2}{\sum{i,j} m_{ij}} + w \cdot \frac{\sum_{i,j} (1 - m_{ij}) \left| \max([s_t]{ij} - \tau_t, 0) \right|^2_2}{\sum{i,j} (1 - m_{ij})}$$</p><p>其中,$i$和$j$是$S_t$、$S_{t}^g$和$M$的空间索引,$w$是均衡权重。阈值$\tau_t$定义为:</p><p>$$\tau_t = \max_{ij \text{ s.t. } m_{ij} = 0} [s_{gt}]{ij}$$</p><p>直观来说,$[s_t]{ij} > \tau_t$表明前景构造的存在。直观上,前向项疏导$I$的构造与$I_g$在前景中对齐,而当$M \neq 1$时,后向项通过克制背景中的假构造来帮忙雕刻出前景。</p></li><li><p><strong>外观疏导</strong>:<br/>受DSG启发,作者将图像外观示意为${v_t^{(k)}}{k=1}^{N_a \leq N_b}$,即扩散特色$F_t$的加权空间均值:</p><p>$$v_t^{(k)} = \frac{\sum{i,j} \sigma([s_t^{(k)}]{ij}) [f_t]{ij}}{\sum_{i,j} \sigma([s_t^{(k)}]{ij})}$$</p><p>其中,$i$和$j$是$S_t$和$F_t$的空间索引,$k$是$[s_t]{ij}$的通道索引,$\sigma$是Sigmoid函数。作者将$S_t$用作权重,以便不同的$v_t^{(k)}$编码不同语义组件的外观。对于$I$和$\bar{I}$,作者在每个工夫步骤$t$别离计算${v_t^{(k)}}$和${\bar{v}_t^{(k)}}$。<br/>外观疏导的能量函数$g_a$能够表白为:</p><p>$$g_a\left(\left{v_t^{(k)}\right}; \left{\tilde{v}t^{(k)}\right}\right) = \frac{\sum{k=1}^{N_a} \left| v_t^{(k)} - \tilde{v}_t^{(k)} \right|^2}{N_a},$$</p><p>它惩办外观示意之间的差别,从而促成从$\bar{I}$到$I$的外观转移。<br/>(DSG: Diffusion self-guidance for controllable image generation)</p></li><li><p><strong>疏导生成过程</strong>:<br/>最初,作者通过构造和外观疏导以及无分类器疏导,失去批改后的分数预计$\hat{\epsilon}t$:</p><p>$$\hat{\epsilon}t = (1+s) \epsilon\theta(x_t; t, c) - s \epsilon\theta(x_t; t, \emptyset) + \lambda_s g_s + \lambda_a g_a$$</p><p>其中,$s$、$\lambda_s$和$\lambda_a$是各自疏导的强度。</p></li></ul><h3>试验后果</h3><p><br/>上图展现了 FreeControl 在反对多种管制信号和三个次要版本的 Stable Diffusion 模型下,生成的图像如何严密遵循文本提醒,同时展现了与输出图像的强烈空间对齐。这突显了 FreeControl 在各种条件下的适用性和成果。</p><h3>总结</h3><p>FreeControl反对多种管制条件、模型架构和自定义模型文件,可能解决大多数现有无训练方法失败的挑战性输出条件,并且与基于训练的办法相比,实现了竞争性的合成品质。通过在多个预训练的T2I模型上的宽泛定性和定量试验,FreeControl展现了其优越的性能。<br/>只管它依赖于DDIM逆转过程来提取领导图像的两头特色和计算合成阶段的额定梯度,这导致了推理工夫的减少。心愿这项工作能为可控的视觉内容创作提供新的见解和剖析。</p><p>更多细节请参阅论文原文</p><h5>关注微信公众号: DeepGo</h5><p>本文由mdnice多平台公布</p></article> ...

February 13, 2024 · 2 min · jiezi

关于深度学习:基于对数谱图的深度学习心音分类

这是一篇很有意思的论文,他基于心音信号的对数谱图,提出了两种心率音分类模型,咱们都晓得:频谱图在语音辨认上是广泛应用的,这篇论文将心音信号作为语音信号处理,并且失去了很好的成果。 对心音信号进行统一长度的分帧,提取其对数谱图特色,论文提出了长短期记忆(LSTM)和卷积神经网络(CNN)两种深度学习模型,依据提取的特色对心跳声进行分类。 心音数据集影像学诊断包含心脏核磁共振成像(MRI)、CT扫描、心肌灌注成像。这些技术的毛病也很显著对古代机械、业余人员的要求高,诊断工夫长。 论文应用的是公共数据集,由1000个。wav格局的信号样本组成,采样频率为8 kHz。数据集分为5类,包含1个失常类(N)和4个异样类:主动脉瓣狭隘(AS)、二尖瓣反流(MR)、二尖瓣狭隘(MS)和二尖瓣脱垂(MVP)。 主动脉瓣狭隘(AS)是指主动脉瓣太小、狭隘或生硬。主动脉瓣狭隘的典型杂音是高音调的“菱形”杂音。 二尖瓣返流(MR)是指心脏的二尖瓣没有失常敞开,导致血液回流到心脏而不是被泵出。听诊胎儿心脏时,S1可能很低(有时很响)。直到S2,杂音的音量减少。因为S3后二尖瓣急流,可听到短而隆隆声的舒张中期杂音。 二尖瓣狭隘(MS)是指二尖瓣受损不能齐全关上。心音听诊显示二尖瓣狭隘晚期S1减轻,重大二尖瓣狭隘时S1软。随着肺动脉低压的倒退,S2音将被强调。纯多发性硬化症患者简直没有左室S3。 二尖瓣脱垂(MVP)是指在心脏收缩期二尖瓣小叶脱垂至左心房。MVP通常是良性的,但并发症包含二尖瓣反流、心内膜炎和脊索断裂。体征包含收缩期中期的咔嗒声和收缩期早期的杂音(如果存在反流)。 预处理与特征提取声音信号有不同的长度。所以须要固定每个记录文件的采样率。长度被裁剪后使声音信号蕴含至多一个残缺的心脏周期。成年人每分钟心跳65-75次,心跳周期约为0.8秒,所以信号样本被裁剪为2.0-s, 1.5-s和1.0-s段。 基于离散傅里叶变换(DFT),将心音信号的原始波形转换为对数谱图。声音信号的DFT y(k)为Eq.(1),对数谱图s定义为Eq.(2)。 式中,N为向量x的长度, = 10^(- 6)是一个小偏移量。局部心音样本的波形和对数谱图如下: 深度学习模型1、LSTM LSTM模型设计为2层间接连贯,而后是3层齐全连贯。第三个齐全连贯的层输出softmax分类器。 2、CNN模型 如上图所示,前两个卷积层之后是重叠的最大池化层。第三个卷积层间接连贯到第一个全连贯层。第二个齐全连贯的层提供给具备五个类标签的softmax分类器。在每个卷积层之后应用BN和ReLU。 3、训练细节 后果 训练集蕴含整个数据集的70%,测试集蕴含其余部分。 当CNN模型片段持续时间为2.0 s时,准确率最高为0.9967;宰割工夫为1.0 s的LSTM准确率最低为0.9300。 CNN模型的整体准确率别离为0.9967、0.9933和0.9900,片段持续时间别离为2.0 s、1.5 s和1.0 s,而LSTM模型的这三个数字别离为0.9500、0.9700和0.9300。 CNN模型比LSTM模型在各时段的预测精度更高。 混同矩阵如下: N类(Normal)的预测正确率最高,在5个案例中达到60个,而MVP类在所有案例中预测正确率最低。 LSTM模型输出工夫长度为2.0 s,最长预测工夫为9.8631 ms。分类工夫为1.0 s的CNN模型预测工夫最短,为4.2686 ms。 与其余SOTA比拟,一些钻研的准确率十分高,但这些钻研只进行了两类(失常和异样),而本钻研分为五类。 与应用雷同数据集的其余钻研相比(0.9700),论文钻研有了显著进步,最高准确率为0.9967。 论文地址: Heart Sound Classification Using Deep Learning Techniques Based on Log-mel Spectrogram https://avoid.overfit.cn/post/c8f5ca920d5c4d7c819b2678eaaf946a 作者:Sik-Ho Tsang

September 25, 2023 · 1 min · jiezi

关于深度学习:高性能计算环境下的深度学习异构集群建设与优化实践

★深度学习;模式识别;图像处理;人工智能建模;人工智能;深度学习算法;强化学习;神经网络;卷积神经网络;人工神经网络;VIBE算法;控制系统仿真;机器学习;高性能计算;数据挖掘;超算;ACL;算力;计算机视觉;PSU;Transformer;PLM;SLM;NLM;LLM;Galactica;OPT;OPT-IML;BLOOM;BLOOMZ;GLM;Reddit;H100;H800;A100;A800;MI200;MI250;LaMA;OpenAI;GQA;RMSNorm;SFT;RTX 4090;A6000;AIGC;CHATGLM;LLVM;LLMs;GLM;AGI;HPC;GPU;CPU;CPU+GPU;英伟达;Nvidia;英特尔;AMD;高性能服务器;蓝海大脑;多元异构算力;大模型训练;通用人工智能;GPU服务器;GPU集群;大模型训练GPU集群;大语言模型;生成式AI;ML;DLC;图像宰割;预训练语言模型;AI服务器;GH200;L40S;HBM3e;Grace Hopper;gracehopper;异构计算;集群;集群治理;资源管理零碎 随着人工智能在工业和学术界大规模的利用,深度学习训练需要日益迫切。各组织机构投入大量资金购买和搭建配置GPU和InfiniBand网卡异构计算集群。集群管理系统(也称平台)反对模型训练,提供作业、数据和模型治理,并提供资源隔离。资源管理零碎是深度学习零碎的根底,企业级场景下,下层框架和利用通常在资源管理零碎提供的资源上运行。 异构计算的次要驱动力来自于暗硅和异构硬件的发展趋势。数据中心硬件日益多样化,用户以多租共享的形式应用硬件。因而,对立治理需要逐步产生。为治理计算和存储异构硬件,通常须要在对立空间内对其进行形象和治理,最终实现用户对硬件透明化的应用。异构计算集群调度和资源管理零碎在人工智能零碎中相似于传统操作系统,对底层异构资源(如GPU、CPU等)进行形象,对上调度深度学习作业并分配资源。 在启动作业后,还需进行资源隔离、环境隔离和作业生命周期治理。异构计算集群管理系统简介异构计算集群管理系统是一种系统软件,负责管理计算机集群内的多个节点的硬件(如GPU、CPU、内存、磁盘等)和软件资源(如框架、作业、镜像等),并为计算机程序(通常是深度学习训练作业)提供通用服务(如作业提交、调试、监控、克隆等)。简而言之,异构计算集群管理系统是一种治理和优化计算机集群内硬件和软件资源的系统软件,旨在为深度学习训练提供通用服务。 一、多租环境运行的训练作业 多租环境提交运行作业在企业级深度学习场景中,大型企业通常领有许多机器学习科学家和工程师,并且领有大量GPU服务器。为提高效率和资源共享,面向深度学习场景设计的多租户平台零碎备受青眼。如上图所示,在企业环境下,不同用户会提交不同框架(如PyTorch、TensorFlow等)的深度学习作业,具备不同的资源需要(如单GPU卡、多GPU卡),共享一个物理集群以缩小硬件资源的节约。以后深度学习场景下,平台系统管理的资源是异构的(如CPU、GPU等)。 与深度学习开发者独占服务器进行模型训练相比,多用户共享多GPU服务器有很大的不同。这也为异构计算集群管理系统(简称平台或深度学习平台)的设计带来相应需要,次要体现在以下几个方面: 1、多作业(Job)和多用户 1)每个用户为不断改进模型、超参数调优、调试和优化作业向平台提交大量作业。 2)不同人工智能团队(如计算机视觉、自然语言解决、语音辨认等)都应用平台。每个团队很多工程师会在同一时间段外向平台申请资源来执行作业。 2、作业环境需要多样 以后深度学习技术栈不够对立,不同的用户可能应用不同的框架和库,如TensorFlow、PyTorch、Hugging Face等。用户可能应用开源我的项目,其中有些我的项目较老旧,有些则应用最新的框架。用户不心愿频繁地进行版本适配。此外,开源框架的版本也可能不统一,导致底层依赖如NVIDIA CUDA的版本也不同。在共享机器的状况下,须要确保环境互相独立,不受其余用户装置的Python、PyTorch等版本的影响。 3、作业资源需要多样 用户提交的深度学习作业包含分布式训练作业、单机训练或调试工作以及大规模分布式训练任务。这些作业的需要资源量各不相同,有些须要更多的资源,有些则须要较少的资源。即便申请的GPU数量雷同,不同的作业和模型也会导致资源利用率的差别。平台须要按需分配资源,以缩小资源的碎片化。用户心愿作业可能像应用独占资源一样运行,不受其余作业的资源和命名空间抵触的烦扰,以便尽快实现模型训练。平台须要实现作业运行期间的资源隔离,以确保服务质量。 4、服务器软件环境繁多 平台方在购买和部署资源时,难以预测和布局用户将来的软件和版本需要,这次要是因为用户应用的框架和库多种多样,而且版本也不尽相同。为了简化运维,平台方通常会对立操作系统和驱动,并放弃版本统一,以缩小兼容性问题。但这与用户多样化的环境需要相矛盾。即便部署不同零碎和环境,也难以准确地适配用户一直变动的需要。 5、服务器闲暇资源组合多样 只管平台批量购买同型号机器,但因用户申请资源和作业生命周期不同,资源开释后平台闲暇资源组合十分多样,须要设计调度策略进步资源利用率。从上述问题能够看出,须要对立的平台零碎来撑持调度和资源管理。其在底层形象和治理计算资源,在下层为利用提供隔离且易用的作业运行环境。简而言之,是反对深度学习利用治理分布式GPU服务器集群的操作系统。二、作业生命周期在开展平台组件与性能前,先理解一下深度学习作业(作业的生命周期)在平台上是如何提交和执行。 GPU 集群 1、平台上作业生命周期 1)作业提交与排队用户 首先在本地测试作业依赖环境,并将其打包为镜像,而后上传到公共镜像核心。接着,将代码和数据等上传到平台的文件系统中。之后,通过提交工具(如Web、命令行、API)填写资源申请、启动命令、部署形式、镜像、代码和数据门路等信息(在提交时须要衡量资源需要和排队工夫)。 2)作业资源分配与调度平台 在收到资源申请后会将其排队,期待调度器的轮询。当调度器轮询到该作业时,会依据集群的闲暇资源情况和调度算法决定在哪些有闲暇资源的节点上启动该作业。如果无奈满足作业的资源需要,作业将持续排队期待。如果提交作业失败或超时,用户须要调整作业信息后从新提交。 3)作业执行实现与开释作业被调度后,平台会在有闲暇资源的节点上启动作业,下载镜像,挂载代码和数据,进行资源限度与隔离,而后启动执行。平台在执行中收集运行指标和日志以供调试。作业实现后平台开释资源,持续调配给其余作业应用。 2、能够将作业在平台上的状态形象为以下状态机 1)作业筹备与提交:触发作业提交动作●提交胜利●提交失败:从新开始提交 2)作业排队:触发作业调度动作●调度胜利●调度失败:从新开始提交 3)作业部署运行:触发作业执行动作●执行胜利●作业失败,重试次数<=N:从新开始提交●作业失败,重试次数>N:作业失败退出 用户的操作实际上是在这些状态之间一直切换,最终达到作业胜利执行或失败。如果执行胜利,用户能够在实现后获取后果和模型。 三、集群管理系统架构 异构集群管理系统架构异构集群管理系统通常蕴含多个组件。其中,调度器负责资源与作业的治理,监控零碎负责监控零碎的衰弱状态并收回警报,Web界面提供用户交互接口,存储系统则用于存储数据、模型和代码。**1、平台的次要组件包含** 1)集群调度与资源管理模块对立治理集群资源,调度作业到闲暇资源上,回收已实现作业的资源。管制立体能够抉择Kubernetes、Mesos等零碎,也能够应用面向深度学习作业的定制调度器。 2)镜像核心存储Docker镜像,供用户提交和共享镜像,作业下载镜像。能够应用公共核心如Docker Hub,也能够构建公有核心或应用云镜像核心。 3)存储模块表演数据立体角色,存储数据、模型和代码。用户上传和作业下载数据。 4)作业生命周期管理器部署、监控、重试作业以及诊断谬误是单作业的管制立体所波及的工作。在这个立体上,能够构建主动机器学习零碎,而不须要思考其余作业。在平台接口的根底上,能够抉择应用K8S Operator、Framework Controller或YARN AppMaster等工具来实现这些性能。 5)集群监控与报警监控硬件、服务和作业状态并进行报警是监控零碎的一项重要工作。在这个过程中,能够抉择应用Prometheus、Grafana、AlertManager等开源零碎来实现监控和报警性能。此外,也能够开发自定义监控指标来满足特定需要。 6)集成开发环境为用户提供Web门户、REST API、IDE(如VS Code、Jupyter Notebook)等,用于作业提交、治理、监控和调试。 7)测试集群为隔离生产环境,能够部署一个小规模的测试集群,用于开发和测试。 2、平台部署模式 1)本地部署 一些公司出于数据合规等需要,抉择应用开源平台或自研平台进行本地部署,保证数据和镜像在自有数据中心,这对运维和开发工程师要求较高。须要自建数据中心或在已有基础设施上部署,初始投资大且需资源布局。须要全职运维团队保护软件、监控等,且须要平台服务软件的定制开发能力。硬件迭代速度快,通过一段时间后容易淘汰,更新又须要高老本。 2)私有云部署 一些公司购买云的IaaS或PaaS服务来搭建平台,加重运维压力,利用云平台的最新技术,实现弹性扩缩容,但数据和代码需上云,长期老本高。初期投资小,按用量付费,大部分运维由云供应商实现,适宜初期应用。但一些公司出于数据合规无奈全副上云。老本随规模增长可能无奈承当。 3)混合云 一些公司采纳敏感数据在本地,非敏感数据和弹性资源在云端的计划。 4)多云 一些公司为防云供应商锁定或综合抉择性价比,会采纳多云计划和工具。本地与云部署老本趋势训练作业,镜像与容器 平台作业与开发体验集群管理系统 须要面对多个用户的作业共享服务器资源,为解决环境依赖和资源隔离问题,须要采纳镜像和运行时资源隔离等机制。上面将从作业在集群管理系统上的依赖隔离、运行时资源隔离以及人工智能作业开发体验几个方面进行介绍。 一、深度学习作业在本地机器或独占服务器上开发训练模型时,环境问题较少,还未裸露更多挑战。独占环境的状况如下:●无需思考依赖环境和资源隔离问题●Python环境依赖门路在本地,通过包管理器或环境变量隔离●GPU环境依赖门路固定在本地,通过环境变量切换●数据间接上传到本地磁盘,带宽高●间接在磁盘执行启动脚本,批改调试不便如果环境筹备好,能够通过上面的脚本启动训练:python train.py --batch_size=256 --model_name=resnet50{// 作业名称"jobName": "resnet",// 镜像名称"image": "example.tensorflow:stable",// 输出数据存储门路"dataDir": "/tmp/data",// 数据后果存储门路"outputDir": "/tmp/output",...// 工作规格:资源需要、启动脚本等"taskRoles": [{ ...   "taskNumber": 1, "cpuNumber": 8, "memoryMB": 32768, "gpuNumber": 1, "command": "python train.py --batch_size=256 --model_name=resnet50" }]} ...

September 24, 2023 · 2 min · jiezi

关于深度学习:使用QLoRA对Llama-2进行微调的详细笔记

应用QLoRA对Llama 2进行微调是咱们罕用的一个办法,然而在微调时会遇到各种各样的问题,所以在本文中,将尝试以具体正文的形式给出一些常见问题的答案。这些问题是特定于代码的,大多数正文都是针对所波及的开源库以及所应用的办法和类的问题。 导入库对于大模型,第一件事是又多了一些不相熟的Python库。 !pip install -q peft==0.4.0 bitsandbytes==0.40.2 transformers==4.31.0 trl==0.4.7咱们必须首先装置accelerate, peft, bitsandbytes, transformers和trl。除了transformers,其余的库都很生疏 transformers是这里最古老的库,PyPI上最早的版本(2.0.0)能够追溯到2019年。它是huggingface公布的库,能够快速访问文本,图像和音频(从hugs的API下载)的机器学习模型。它还提供训练和微调模型的性能,并能够HuggingFace模型核心共享这些模型。库没有像Pytorch或Tensorflow那样从头开始构建神经网络的形象层和模块,它提供了专门针对模型进行优化的训练和推理api。transformer是用于LLM微调的要害Python库之一,因为目前大部分的LLM都是能够通过它来加载应用。 bitsandbytes是一个绝对较新的库,PyPI上最早的版本时2021年公布的。它是CUDA自定义函数的轻量级包装,专门为8位优化器、矩阵乘法和量化而设计。它次要提供了优化和量化模型的性能,特地是对于llm和transformers模型。它还提供了8位Adam/AdamW、 SGD momentum、LARS、LAMB等函数。bitsandbytes的指标是通过8位操作实现高效的计算和内存应用从而使llm更易于拜访。通过利用8位优化和量化技术能够进步模型的性能和效率。在较小尺寸的消费类gpu(如RTX 3090)上运行llm存在内存瓶颈。所以人们始终对试图缩小运行llm的内存需要的权重量化技术进行钻研。bitsandbytes的想法是量化模型权重的浮点精度,从较大的精度点(如FP32)到较小的精度点(如Int8) (4x4 Float16)。有一些技术能够将FP32量化为Int8,包含abmax和零点量化,但因为这些技术的局限性,bitsandbytes库的创建者独特撰写了LLM.int8()论文以及8位优化器,为llm提供无效的量化办法。所以因为bitsandbytes库提供的量化技术,这在很大水平上让咱们在生产级的GPU上能够微调更大的模型。 Peft容许咱们缩小将LLM(或其局部)加载到工作内存中以进行微调的内存需要。与应用较小深度学习模型的迁徙学习技术不同,在迁徙学习技术中,咱们须要解冻像AlexNet这样的神经网络的较低层,而后在新工作上对分类层进行齐全微调,而应用llm进行这种微调的老本是微小的。Parameter Efficient Fine-Tuning(PEFT)办法是一组使llm适应上游工作的办法,例如在内存受限的设施(如T4GPU 提供16GB VRAM)上进行摘要或问答。通过Peft对LLM的局部进行微调,依然能够取得与齐全微调相比的后果。如LoRA和Prefix Tuning是相当胜利的。peft库是一个HuggingFace库,它提供了这些微调办法,这是一个能够追溯到2023年1月的新库。在本文中咱们将应用QLoRA,这是一种用于量化llm的低秩自适应或微调技术。 trl是另一个HuggingFace库,trl其实是自2021年公布的,然而在2023年1月才被人们热传。TRL是Transformer Reinforcement Learning的缩写也就是Transformer 强化学习。它提供了在训练和微调LLM的各个步骤中的不同算法的实现。包含监督微调步骤(SFT),处分建模步骤(RM)和近端策略优化(PPO)步骤。trl也将peft作为一个依赖项,所以能够应用带有peft办法(例如LoRA)的SFT训练器。 dataset尽管没有蕴含在咱们之前的安装包列表中(这是因为它是transformers的一个依赖项),但dataset库是huggingface生态系统中的另一个重要局部。它能够不便的拜访HuggingFace托管的许多公共数据集,也就是说省去了咱们本人写dataset和dataloader的工夫。 下面这些库对于LLM的任何工作都是至关重要的。这里做了一个简略的图片来总结这些库是如何组合在一起的。 上面让咱们看一下导入 import os import torch from datasets import load_dataset from transformers import ( AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, TrainingArguments, pipeline, logging, ) from peft import LoraConfig, PeftModel from trl import SFTTrainer咱们持续剖析导入 torch是咱们很相熟的深度学习库,这里咱们不须要torch的那些低级性能,然而它是transformers和trl的依赖,在这里咱们须要应用torch来获取dtypes(数据类型),比方torch.Float16以及查看GPU的工具函数。 load_dataset所做的就是加载数据集,然而它从HuggingFace数据集中心下载到本地。所以这是一个在线加载程序,但它既高效又简略,只须要一行代码。 dataset = load_dataset(dataset_name, split="train")因为模型很多所以transformer库提供了一组称为Auto classes的类,这些类给出了预训练模型的名称/门路,它能够主动推断出正确的构造并检索相干模型。这个AutoModelForCausalLM是一个通用的Auto类,用于加载用于因果语言建模的模型。 ...

September 21, 2023 · 5 min · jiezi

关于深度学习:文心高校行助力高校大模型人才培养欢迎高校申请

在大模型的新技术浪潮之下,产教交融的密度和深度,比以往任何期间都更为迫切——高校如何携手企业,将新技术、新工具和新理念,不断更新到高校日常教学与实训当中,以大模型为新契机、新平台和新内容,更无效地晋升高校育人品质、师生实际程度和科技竞技能力? 文心高校行·内容板块形成面对以后高校在新技术背景下的意识、实际与校企交融需要,百度正式发动“文心高校行”打算,面向全国高校,打算在2023年秋季学期,走入20余所高校,发展以“老师座谈”、“学生讲座”和“我的项目实训与作品市集”为三大骨干内容的主题流动,与师生一起,共话新技术的挑战、价值与将来可能性,扎实推动师生科创与实训深度。 以“文心高校行”北京理工大学站、天津大学站、华中师范大学站和武汉理工大学站为例,文心高校即将包含以下几个局部: 老师座谈:大模型时代的教与学 在老师座谈会上,学院院长与老师一道,同百度进行了深刻交换与探讨。例如,在9月12日,北京理工大学信息与电子学院联结百度独特举办“文心高校行”的首场流动。在老师座谈会上,北京理工大学信息与电子学院副院长杨凯院长,隆重招集学院十余位人工智能畛域相干老师,与百度工程师一起,围绕高校人工智能人才培养以及大语言模型在科研和教学等场景的利用问题进行了深刻交换,对高校关切的大模型利用和技术挑战,都开展了具备启发性的探讨,现场气氛自在热烈,产生了一系列具备建设性和落地的行动计划。 学生讲座与实训:大模型技术分析与AI原生我的项目实际 在“学生讲座局部”,百度优良工程师将进行前沿技术分享与开发实际训练。例如,北京理工大学站“学生讲座”局部,百度深度学习技术平台部卓越架构师胡晓光应邀作了题为《常识加强大语言模型技术创新与产业实际》的报告,介绍了文心大模型的发展史、重要特点以及飞桨如何减速大模型训练和推理的实在工程流程,并展现了大模型在代码生成等方面的利用成果以及基于插件在特定业务需要下的工作流程,让同学们更间接和活泼地感知大模型的技术细节。 在实训环节,百度AI技术生态部产品经营经理Jungle回顾了人工智能倒退至今的重要历史时刻,并站在大模型全流程开发角度,逐个分析了大模型从基座模型的建设,再到最终产品落地的全景流程。基于不同的实际特点与门槛,对大模型选型、数据、prompt工程、微调和利用开发等方面做了深刻的解说,并以数字政务AI助手为例,进行了大模型驱动产品智能化降级的具体分析。 在“文心高校行”的华中师范大学站和武汉理工大学站,在我的项目实操环节,Jungle率领同学们在文心一言官网和AI Studio星河社区大模型利用板块,进行了prompt提醒词工程的体验以及AI助手利用的开发,现场演示了文心一言SDK和文心一言插件的应用与调试办法,并现场建群,答复了大家对于利用开发和插件开发的一系列问题,将来将与同学们一起着手发展实在我的项目的开发与实际。 作品市集:优良互动作品展出与路演 该市集的我的项目作品,将展出本校优质的大模型开发作品,在全校师生前精彩亮相。值得一提的是,本校开发者团队将提前与百度工程师一起单干,打造2-5套优良的技术作品Demo。 在这个过程中,高校指导老师也将参加其中,学生、老师和企业工程师,三方携手,具体而求实地推动学生实训成绩产出。另外,该集训实战营,也可为期1-2周,将更为深刻地对团队进行领导和孵化,并无望在市场进行推广并取得应用和反馈,更有机会为明年“互联网+”与“挑战杯”等顶级赛事储备种子我的项目,助力团队守业待业!点击浏览原文,查看1-2周实战营案例。 文心高校行·高校申请通道高校申请条件反对“老师座谈会”的操办,现场6位老师及以上;反对“学生讲座”和“我的项目实训与作品市集”必要的校园场地和志愿者;反对100人以上的学生听众招募;反对提前提拔2-5支学生团队,事后参加大模型相干我的项目开发,储备好作品市集我的项目。 百度配套资源优质企业讲师;学生团队优良实训作品的奖金/奖品激励;志愿者奖金/奖品激励;学生开发所必要的开发权限和算力资源;AI Studio星河社区内容专区建设。 例:复旦大学内容专区https://aistudio.baidu.com/cooperate/FudanUniversity/1 关注「飞桨 PaddlePaddle」公众号,获取【文心高校行】高校申请通道。

September 20, 2023 · 1 min · jiezi

关于深度学习:大型语言模型SBERT-句子BERT

理解 siamese BERT 网络如何精确地将句子转换为嵌入 简介Transformer 在 NLP 畛域获得了进化性的提高,这已不是什么机密。基于 Transformer,还倒退出了许多其余机器学习模型。其中之一是 BERT,它次要由几个重叠的 Transformer 编码器组成。除了用于一系列不同的问题(例如情感剖析或问答)之外,BERT 在构建词嵌入(示意单词语义的数字向量)方面变得越来越风行。 以嵌入的模式示意单词具备微小的劣势,因为机器学习算法无奈解决原始文本,但能够对向量的向量进行操作。这容许应用欧几里得间隔或余弦间隔等规范度量来比拟不同单词的相似性。 问题在于,在实践中,咱们常常须要为整个句子而不是单个单词构建嵌入。然而,根本的 BERT 版本仅在单词级别构建嵌入。因而,起初开发了几种相似 BERT 的办法来解决这个问题,本文将对此进行探讨。通过逐渐探讨它们,咱们将达到称为 SBERT 的最先进模型。 BERT首先,让咱们回顾一下 BERT 是如何解决信息的。作为输出,它须要一个 [CLS] 标记和由非凡 [SEP] 标记分隔的两个句子。依据模型配置,该信息由多头注意力模块解决 12 或 24 次。而后,输入被聚合并传递到一个简略的回归模型以取得最终标签。 穿插编码器架构能够应用 BERT 来计算一对文档之间的类似度。思考在一个大汇合中找到最类似的一对句子的指标。为了解决这个问题,每个可能的对都被放入 BERT 模型中。这会导致推理过程中呈现二次复杂度。例如,解决 n = 10 000 个句子须要 n * (n — 1) / 2 = 49 995 000 次推理 BERT 计算,这并不是真正可扩大的。 其余办法剖析穿插编码器架构的低效率,为每个句子独立地事后计算嵌入仿佛是合乎逻辑的。之后,咱们能够间接计算所有文档对上选定的间隔度量,这比将平方数的句子对输出 BERT 要快得多。 可怜的是,这种办法对于 BERT 来说是不可能的:BERT 的外围问题是,每次同时传递和解决两个句子时,很难取得仅独立示意单个句子的嵌入。 钻研人员试图通过应用 [CLS] 令牌嵌入的输入来打消这个问题,心愿它蕴含足够的信息来示意一个句子。然而,事实证明 [CLS] 对于这项工作基本没有用,因为它最后是在 BERT 中针对下一句预测进行预训练的。 ...

September 18, 2023 · 1 min · jiezi

关于深度学习:炼丹侠如何用GPU服务器实现ResNet训练

ResNet是一种深度卷积神经网络架构,由微软研究员Kaiming He等人在2015年的论文《Deep Residual Learning for Image Recognition》中提出。ResNet旨在解决深层网络训练中的梯度隐没和进化问题,使得能够训练更深、更简单的神经网络,同时取得更好的性能。ResNet的外围翻新在于“残差块”的引入,这种块容许网络学习残差函数,即输出与冀望输入之间的差别,而不是间接学习整个映射。这种思维背地的要害洞察是,通过残差连贯,网络能够轻松地跳过某些层,从而在训练过程中更无效地流传梯度,加重了梯度隐没问题。这种构造也使得更深的网络绝对容易训练。ResNet的一个重要变体是带有“残差学习”的ResNet-50,其中50示意网络中的层数。ResNet-50在ImageNet图像分类工作上表现出色,成为了过后当先的模型之一。总结ResNet的要点: 残差块:引入残差块解决梯度隐没问题,容许网络学习残差函数,即输出与冀望输入之间的差别。解决进化问题: ResNet通过跳过某些层的形式,容许训练更深的网络,解决了进化问题,进步了网络性能。ResNet-50等变体:ResNet的不同变体(如ResNet-50、ResNet-101等)在ImageNet等数据集上获得了显著的图像分类性能。在其余工作上的利用: ResNet的思维也被利用于其余计算机视觉工作,如指标检测、宰割等。ResNet的胜利为后续的深度学习钻研和利用提供了重要的启发,尤其是在设计更深、更简单的神经网络时的领导准则。ResNet在理论生产中具备重要作用,特地在计算机视觉畛域。其创新性的残差块构造和可能训练更深层网络的能力,使得ResNet成为深度学习中的重要工具。它在图像分类、指标检测、图像宰割、格调转换、图像生成、医疗影像剖析和主动驾驶等工作中广泛应用。在图像分类方面,ResNet可能取得更高的准确率,用于辨别和辨认不同的对象和物体。在指标检测中,作为特征提取器,ResNet能够用于定位和辨认图像中的物体。同时,ResNet也在医疗畛域进行X射线、MRI等影像剖析,帮忙医生进行疾病诊断和病灶定位。在主动驾驶中,ResNet用于物体检测和辨认,进步了车辆的感知和安全性。本次训练应用炼丹侠平台A100服务器。设置了模型训练对照组,一组为应用炼丹侠A100 GPU进行训练的ResNet18,另一组是应用炼丹侠CPU进行训练的ResNet18,本次训练的流程为定义模型、模型训练、模型总结,训练的内容是cifar10数据集。GPU版本残缺代码如下: import torchimport torch.nn as nnimport torch.optim as optimimport torchvisionimport torchvision.transforms as transformsimport torchvision.models as models# 初始化ResNet模型model = models.resnet18(pretrained=False)num_ftrs = model.fc.in_featuresmodel.fc = nn.Linear(num_ftrs, 10) # 10类用于MNIST分类model = model.cuda() # 将模型移至GPU# 定义数据预处理transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])# 加载训练数据集train_dataset = torchvision.datasets.MNIST(root='./data', train=True, transform=transform, download=True)train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=64, shuffle=True)# 定义损失函数和优化器criterion = nn.CrossEntropyLoss()optimizer = optim.Adam(model.parameters(), lr=0.001)# 训练模型num_epochs = 10for epoch in range(num_epochs): model.train() running_loss = 0.0 for images, labels in train_loader: images = images.cuda() labels = labels.cuda() optimizer.zero_grad() outputs = model(images) loss = criterion(outputs, labels) loss.backward() optimizer.step() running_loss += loss.item() print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {running_loss/len(train_loader):.4f}')CPU版本代码如下: ...

September 11, 2023 · 1 min · jiezi

关于深度学习:SplitMask大规模数据集是自我监督预训练的必要条件吗

自监督预训练须要大规模数据集吗?这是2021年公布的一篇论文,它在自监督预训练场景中应用小数据集,如Stanford Cars, Sketch或COCO,它们比ImageNet小几个数量级。并提出了一种相似于BEiT的去噪自编码器的变体SplitMask,它对预训练数据的类型和大小具备更强的鲁棒性。 SplitMask SplitMask是基于三个步骤:split, inpaint 和match。 split:与规范ViTs一样,图像首先被合成为16×16像素块。而后将图像宰割为两个不相交的子集A和B,别离由共享深度ViT编码器进行独立解决。 Inpaint:接下来,应用子集A的patch示意和一个浅解码器(例如2层),通过解决掩码图像建模(MIM)工作(BEiT),子集B的patch被“填充”。 最初,对每个分支对应的解码器输入的patch示意进行均匀池化,失去全局图像描述符。 Match:应用两个示意xa和xb,别离对应于观测patch的子集A和B来预计InfoNCE loss (CPCv1): 增加这种比照损失的动机是激励模型产生全局统一的特色,这些特色在不同抉择的察看子集之间是统一的,而不依赖于任何手工设计的转换。 后果1、融化钻研 仅应用5%的ImageNet样本就能达到峰值性能,增加更多的样本并不能提供额定的晋升。应用10% ImageNet子集。训练近3k个epoch的长时间,与残缺ImageNet的300个epoch的总更新次数相匹配。 应用autoencoderloss、BEiT和SplitMask(如MIM)进行预训练对数据集大小的减小具备鲁棒性。而DINO则与监督预训练一样,当应用较小的数据集进行训练时,模型的性能会降落。 通过更简略的抉择替换DALL-E标记器不会导致准确性的任何显着升高。 2、COCO 应用COCO图像对DINO进行相似的预训练则失去了绝对较弱的性能,仅优于随机初始化。与BEiT基线相比,SplitMask带来了统一的改良,例如应用viti -small时的+0.6 box AP和应用viti -base的+0.3 mask AP。 3、ADE20K 即便应用绝对较小的20k图像样本进行预训练,去噪自编码器也能够在这种具备挑战性的工作上提供十分有竞争力的性能。 4、小数据集 SplitMask能够进一步提高多个数据集的性能:例如,在iNaturalist 2018数据集上,能够看到基于vit的模型的精度进步了3.0。 5、ImageNet SplitMask提供了弱小的性能,在所有骨干网上都优于BEiT和MoCo v3。 论文地址:Are Large-scale Datasets Necessary for Self-Supervised Pre-training? https://avoid.overfit.cn/post/21d79b50015d406694bcf063b12c02e3 作者:Sik-Ho Tsang

September 9, 2023 · 1 min · jiezi

关于深度学习:Nougat一种用于科学文档OCR的Transformer-模型

随着人工智能畛域的不断进步,其子畛域,包含自然语言解决,自然语言生成,计算机视觉等,因为其宽泛的用例而迅速取得了大量的遍及。光学字符识别(OCR)是计算机视觉中一个成熟且被宽泛钻研的畛域。它有许多用处,如文档数字化、手写辨认和场景文本辨认。数学表达式的辨认是OCR在学术研究中受到宽泛关注的一个畛域。 PDF是最宽泛应用的格局之一,它通常保留在书籍中或发表在学术期刊上。pdf是互联网上第二大应用的数据格式,占信息的2.4%,常常用于文档传递。只管它们被宽泛应用,但从PDF文件中提取信息可能很艰难,特地是在解决像科学研究文章这样高度专业化的资料时。因为蕴含了很多的数学公式,而现阶段的OCR可能会导致数学表达式的语义信息失落。 Meta AI的一组钻研人员推出了一种名为Nougat的解决方案,它代表“Neural Optical Understanding for Academic Documents”。为了对迷信文本进行光学字符识别(OCR),Nougat是一种VIT模型。它的指标是将这些文件转换为标记语言,以便更容易拜访和机器可读。 为了显示该办法的有效性,该团队还制作了一个新的学术论文数据集。这种办法为进步数字时代科学知识的可及性提供了可行的答案。它填补了人们易于浏览的书面材料与计算机能够解决和剖析的文本之间的空白。Nougat基本上是一个基于Transformer的模型,用于将文档页面的图像(特地是来自pdf的图像)转换为格式化的标记文本。 该团队总结了他们的次要奉献如下- 公布预训练模型:创立能够将pdf转换为简略的标记语言的预训练模型。这个预训练的模型在GitHub上公开,任何人都能够拜访它以及相干代码。 数据集创立管道:形容了一种构建数据集的办法,将PDF文档与其相干的源代码配对。这种数据集开发方法对于测试和改良Nougat模型至关重要,也可能对将来的文档剖析钻研和利用有用。 仅依赖于页面的图像:也就是说这个模型只有pdf的截图就能够了,这使得它成为一种灵便的工具,能够从各种起源提取内容,即便原始文档没有数字文本格式,也能够应用扫描的纸张和书籍进行解决。 能够说Nougat通过利用VIT模型的性能,创始了OCR的新时代。它具备了解简单迷信文档并将其转换为结构化标记语言的能力,为无缝的信息可拜访性铺平了路线,弥合了人类了解和机器剖析之间的差距。这一翻新为学术研究及其他畛域带来了微小的心愿,体现了数字时代人工智能驱动的解决方案的改革力量。 以上截图来自官网,左图为图片文件,右图为Latex语法生成的公式 论文和官网网页在这里: https://avoid.overfit.cn/post/061348444174421ebbe69423117c6e98 小吐槽:FB的项目管理判若两人的凌乱 Nougat 只配一个github的页面segment-anything 有一个独自的域名,更新动静的博客是ai.meta上面的llama只有一个ai.meta的二级目录,然而在ai.meta首页置顶,也算器重dinov2又跑去了metademolab的另外一个域名可见前几天的内斗和算力竞争新闻是必定了。

September 8, 2023 · 1 min · jiezi

关于深度学习:PaddleX四步搞定10任务场景36个精选产业模型开发与部署

随着ChatGPT引领的AI破圈,各行各业掀起了AI落地的潮流,从智能客服、智能写作、智能监控,到智能医疗、智能家居、智能金融、智能农业,谁能疾速将AI与传统业务相结合,谁就将成为企业数字化和智能化改革的优胜者。然而,将人工智能技术落地利用面临着诸多挑战,例如从如何抉择适宜的可落地模型,到满足不同业务的多模型联结利用;从疾速实现AI模型的训练微调,到如何将模型高效部署。 为了应答这些挑战,飞桨团队推出了飞桨AI套件(PaddleX)——精选产业实用模型的一站式开发平台。蕴含如下特点: 优质的算法库蕴含10多个工作场景的36个精选模型,提供欠缺的模型推理benchmark数据,开发者能够基于业务需要抉择最合适的模型。便捷的开发方式提供无代码+低代码的开发方式,只需四步,即可实现数据、训练、验证和部署的全流程AI开发。高效的模型部署欠缺的部署能力反对,实现跨平台、跨硬件的疾速产业级部署。丰盛的国产硬件反对PaddleX不仅能够在AI Studio云端应用,还反对Windows本地部署,并正在不断丰富Linux版本、昆仑芯版本、昇腾版本和寒武纪版本。共赢的联创共建除了便捷地开发AI利用外,PaddleX还为大家提供了获取商业收益的机会,为企业摸索更多商业空间,实现独特成长和共赢。 作为一款高效的开发神器,PaddleX值得每一位开发者领有。接下来,咱们将具体解析PaddleX的外围能力,助您更好地理解并利用这款工具。增加AI Studio飞桨AI套件官网频道,和大家一起探讨吧! AI Studio飞桨AI套件官网频道 https://aistudio.baidu.com/community/channel/610 如果你想进一步理解PaddleX,也能够通过增加经营同学,并回复【PaddleX】的形式,退出官网交换群! PaddleX云端应用链接 https://aistudio.baidu.com/modelsoverview?category=%E4%BA%A7%... PaddleX Windows本地端下载链接 https://www.paddlepaddle.org.cn/paddle/paddleX 优质的算法库首先介绍下PaddleX平台中的精选算法模型汇合。飞桨在撑持企业AI落地过程中,总结多年的实践经验,积淀出了面向10+工作场景的36个精选模型,对立收录到了PaddleX中,并且这个汇合还在继续丰盛中。从此,飞桨开发者能够在一款软件中,实现不同AI工作的开发部署工作。 不过,同一工作下往往有不止一种模型算法,如何抉择适宜业务场景的模型呢?不慌,PaddleX提供了欠缺的模型benchmark数据,可帮忙开发者基于业务需要抉择精度高/速度快/平衡的模型,从此解脱模型抉择艰难症。 PaddleX提供的模型选型能力请见 https://ai.baidu.com/ai-doc/AISTUDIO/vlistbd6p 将来将继续丰盛欠缺,敬请关注~ 繁难的开发方式 说完算法库和模型选型,接下来就该进入外围的模型开发环节了。如果说PaddleX给大家带来的第一印象是什么,大略就是工具箱/开发者双模式的联动开发方式了。 工具箱模式 开发者模式工具箱模式主打一个简略无脑,筹备好符合规范要求的数据集,而后在webui界面中数据校验、模型训练、评估测试、模型部署一溜烟操作下来,AI模型开发全流程就丝滑地走完了。 开发者模式则提供了一个自在的广场,实质上是在VS Code集成开发环境的根底上,搭建好了PaddleX团队精心设计的超高层API(UAPI)底座,4个外围API即可实现模型开发部署,剩下的就全凭大家自由发挥啦。 UAPI应用阐明 https://ai.baidu.com/ai-doc/AISTUDIO/7ll0srufz 两种开发模式之间并不是割裂的,而是严密关联的。简略来说,工具箱模式的每一个关键步骤,都对应了开发者模式下的一个UAPI接口。而工具箱模式下的所有配置批改,都会实时落盘,使得两个模式之间能够无缝切换,接续开发。 另一方面,小伙伴们如果感觉工具箱模式还不够好用,齐全能够“本人入手,饥寒交迫”。在开发者模式下编辑完工具箱模式的Python代码之后,切换到工具箱模式并点击“从新加载”,工具箱DIY就实现啦。咱们十分激励大家进行工具箱的二次开发,优良的创意将有机会被官网纳入PaddleX精选模板,让宽广开发者受害于你的创意。 高效的部署模式 对不少学习AI的小伙伴来说,训练失去了合乎精度要求的模型,工作就告一段落了。然而对于AI模型的落地利用,还须要十分要害的临门一脚——模型部署。在很多产业利用的理论场景中,通过欠缺的模型部署后,推理性能能够晋升好几倍,这样能力满足实在的业务需要。飞桨提供了Paddle Inference、Paddle Lite等高性能推理库,以及专一于疾速便捷部署体验的FastDeploy,来帮忙宽广飞桨开发者实现这要害一步。喜大普奔的是,PaddleX无缝集成了FastDeploy的能力,轻松点选您的部署环境要求,就能够获取相应的部署包啦~ 第一步,导出预测模型 第二步,获取部署包获取部署包之后,就能够依照其中的具体应用阐明,去指标设施进行AI模型的部署啦~ 目前PaddleX上线的飞桨精选模型,根本已满足下表的部署反对状况。 在将来,PaddleX还将反对C#、多款端侧硬件、以及服务化部署的性能,敬请期待吧! 丰盛的国产硬件反对 PaddleX目前曾经能够在AI Studio星河社区云端和Windows本地端进行应用,但这还不够,为了满足更多用户的研发生产需要,PaddleX布局了丰盛齐备的国产硬件反对打算,如下表所示。请大家时刻关注飞桨公众号,敬请期待呦~  共赢的联创共建 除了能够更便捷地开发AI模型和利用外,PaddleX还为大家提供了获取商业收益的机会。 搭档们基于PaddleX开发出产业利用后,能够拟定利用价格,通过SDK形式凋谢给其余用户;其余用户购买SDK后,搭档可取得相应支出分成。 其余用户无需从新训练模型,能够间接通过接口实现数据输出和获取处理结果,防止反复开发,晋升效率。 目前已有多个搭档凋谢并上线相干利用。 基于Picodet的车载路面垃圾检测 https://aistudio.baidu.com/modelsdetail/385?modelId=385 基于CLIP的野生动物及其制品分类 https://aistudio.baidu.com/modelsdetail/386?modelId=386 基于PP-OCRv4的文档场景检测辨认 https://aistudio.baidu.com/modelsdetail/387?modelId=387 此外,不少开发者依据PaddleX提供的范例我的项目,串联大、小模型,开发出了颇受大家欢送的利用。比方数链科技,基于PP-ChatOCR我的项目,开发出“大宗商品贸易合同信息抽取利用",要害信息抽取准确率达到95%以上;凋谢给行业客户后,客户信息录入效率晋升了150%,数链科技也取得了可观收益。 智能合同要害信息抽取剖析零碎 https://aistudio.baidu.com/projectdetail/6718801 如果您也有志愿公布基于PaddleX的产业利用,能够增加小助手,回复“联创”即可。 ...

September 7, 2023 · 1 min · jiezi

关于深度学习:CMT卷积与Transformers的高效结合

论文提出了一种基于卷积和VIT的混合网络,利用Transformers捕捉近程依赖关系,利用cnn提取部分信息。构建了一系列模型cmt,它在准确性和效率方面有更好的衡量。 CMT:体系结构 CMT块由一个部分感知单元(LPU)、一个轻量级多头自留神模块(LMHSA)和一个反向残差前馈网络(IRFFN)组成。 1、部分感知单元(LPU) 在以前的transformer中应用的相对地位编码是为了利用标记的程序而设计的,它毁坏了平移不变性。 为了缓解局限性,LPU应用卷积(MobileNetV1)提取部分信息,其定义为: 2、轻量级多头自我留神(LMHSA) 在原注意力模块中,自注意力模块为: 为了缩小计算开销,在注意力操作之前,应用k × k步长为k的深度卷积(MobileNetV1)来减小k和V的空间大小。在每个自注意力模块中增加一个绝对地位偏差B(相似于Shaw NAACL ' 18): 这里的h个是与ViT相似的注意力头。 3、反向残差前馈网络(IRFFN) 原始FFN应用两个线性层,两头是GELU: IRFFN由扩大层(MobileNetV1)和卷积(投影层)组成。为了更好的性能,还批改了残差连贯的地位: 应用深度卷积(MobileNetV1)提取部分信息,而额定的计算成本能够忽略不计。 4、CMT块 有了上述三个组成部分,CMT块能够表述为: 上式中,Yi和Zi别离示意LPU和LMHSA模块对第i块的输入特色。LN表示层归一化。 CMT变体1、模型的复杂性 Transformer 的计算复杂度(FLOPs)可计算为: 式中,r为FFN的开展比,dk和dv别离为key和value的维度。ViT设d = dk = dv, r = 4,则计算可简化为: CMT块的FLOPs: 其中k≥1为LMHSA的还原比。 能够看到,与规范Transformer块相比,CMT块对计算成本更敌对,并且在更高分辨率(较大n)下更容易解决特色映射。 2、扩大策略 受EfficientNet的启发,应用复合系数来平均缩放层数(深度)、维度和输出分辨率: 减少了·^(1.5) ·²≈2.5的束缚,因而对于给定的新,总FLOPS将大概减少2.5^ 。依据测试,默认为=1.2, =1.3, =1.15。 3、CMT变体 在CMT-S的根底上,依据提出的缩放策略构建了CMT-Ti、CMT-XS和CMT-B。四种模型的输出分辨率别离为160、192、224和256。 后果1、融化钻研 ViT/DeiT只能生成单尺度的特色图,失落了大量的多尺度信息,然而这部分信息对密集预测至关重要。 DeiT与CMT-S一样具备4级stage,即DeiT- s - 4stage,能够实现改良。 所有的增量改良都表明,stem、LPU和IRFFN对性能的进步也有重要的奉献。CMT在LMHSA和IRFFN之前应用LN,在卷积层之后插入BN。如果将所有的LN都替换为BN,则模型在训练过程中无奈收敛。 2、ImageNet ...

September 7, 2023 · 1 min · jiezi

关于深度学习:使用卷积操作实现因子分解机

本文将介绍如何应用卷积操作实现因子合成机器。卷积网络因其局部性和权值共享的演绎偏差而在计算机视觉畛域取得了宽泛的胜利和利用。卷积网络能够用来捕捉形态的重叠分类特色(B, num_cat, embedding_size)和形态的重叠特色(B, num_features, embedding_size)之间的特色交互。 作为合成机的卷积网络下图显示了卷积网络如何创立交互特色 上图有5个曾经进行嵌入的分类特色(batch_size, num_categorical=5, embedding_size)。假如咱们有一个大小为(高度=3,宽度为1)的卷积过滤器。当咱们在num_categorical维度(输出维度=1)上利用卷积(高度=3,宽度=1)的过滤器时,应用红框的示例(当咱们在dim=1上卷积时),能够看到咱们无效地计算了3个特色之间的卷积(因为过滤器的高度为3)。单个卷积的每个输入是3个分类特色之间的相互作用。当咱们在num_categorical上滑动卷积时,能够无效地捕捉任何滚动三元组特色之间的交互,其中3个不同特色窗口之间的每个交互都在卷积的输入中被捕捉。 因为过滤器的宽度为1,所以正在计算三个特色在嵌入维度上独立的滚动窗口交互,如红色、蓝色、紫色和绿色框所示。卷积层的输入高度是产生的可能交互特色的总数,本例是3。卷积层输入的宽度将是原始嵌入大小,因为卷积滤波器的宽度为1。 因为嵌入大小是雷同的,咱们能够无效地将卷积网络的这种应用视为合成机,其中以滚动窗口的形式捕捉特色之间的交互。 PyTorch实现咱们应用PyTorch进行实现,并且可视化视卷积网络中的填充、跨步和扩张 1、填充 Padding 进行填充后,咱们的输出和输入的大小是雷同的,上面代码在pytorch中应用padding='same'。 class Conv2dSame(nn.Conv2d): def __init__(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True): # initialize with no padding first super(Conv2dSame, self).__init__( in_channels, out_channels, kernel_size, stride, 0, dilation, groups, bias) nn.init.xavier_uniform_(self.weight) def forward(self, x): # input height and width ih, iw = x.size()[-2:] # filter height and width kh, kw = self.weight.size()[-2:] # output height oh = math.ceil(ih / self.stride[0]) # output width ow = math.ceil(iw / self.stride[1]) # 2* padding for height pad_h = max((oh - 1) * self.stride[0] + (kh - 1) * self.dilation[0] + 1 - ih, 0) # 2 * padding for width pad_w = max((ow - 1) * self.stride[1] + (kw - 1) * self.dilation[1] + 1 - iw, 0) # divide the paddings equally on both sides and pad equally # note the ordering of the paddings are reversed for height and width. (it is width then height in the code) if pad_h > 0 or pad_w > 0: x = F.pad(x, [pad_w // 2, pad_w - pad_w // 2, pad_h // 2, pad_h - pad_h // 2]) # manually create padding out = F.conv2d(x, self.weight, self.bias, self.stride, self.padding, self.dilation, self.groups) return out # self implementation conv_same = Conv2dSame(in_channels=1, out_channels=5, kernel_size=3, stride=1, dilation=2, padding=0) conv_same_out= conv_same(x) ## pytorch conv_same_pt = nn.Conv2d(in_channels=1, out_channels=5, kernel_size=3, stride=1, dilation=2, padding='same') conv_same_pt.weight = conv_same.weight conv_same_pt.bias = conv_same.bias conv_same_pt_out= conv_same_pt(x) assert torch.equal(conv_same_out, conv_same_pt_out) == True为什么须要填充 ...

August 30, 2023 · 3 min · jiezi

关于深度学习:PyTorch-模型性能分析和优化-第-3-部分

这是对于应用 PyTorch Profiler 和 TensorBoard 剖析和优化 PyTorch 模型主题的系列文章的第三局部。咱们的目标是强调基于 GPU 的训练工作负载的性能剖析和优化的益处及其对训练速度和老本的潜在影响。特地是,咱们心愿向所有机器学习开发人员展现 PyTorch Profiler 和 TensorBoard 等剖析工具的可拜访性。您无需成为 CUDA 专家即可通过利用咱们在帖子中探讨的技术取得有意义的性能晋升。 在咱们的第一篇文章中,咱们演示了如何应用 PyTorch Profiler TensorBoard 插件的不同视图来辨认性能问题,并回顾了一些用于减速训练的风行技术。在第二篇文章中,咱们展现了如何应用 TensorBoard 插件 Trace View 来辨认张量何时从 CPU 复制到 GPU 以及返回。这种数据挪动——可能会导致同步点并大大降低训练速度——通常是无心的,有时很容易防止。这篇文章的主题是咱们遇到 GPU 和 CPU 之间与张量正本无关的同步点的状况。与张量正本的状况一样,这些可能会导致训练步骤停滞并大大减慢训练的整体工夫。咱们将演示此类事件的存在、如何应用 PyTorch Profiler 和 PyTorch Profiler TensorBoard 插件 Trace View 来辨认它们,以及以最小化此类同步事件的形式构建模型的潜在性能劣势。 与咱们之前的文章一样,咱们将定义一个玩具 PyTorch 模型,而后迭代地剖析其性能、辨认瓶颈并尝试修复它们。咱们将在 Amazon EC2 g5.2xlarge 实例(蕴含 NVIDIA A10G GPU 和 8 个 vCPU)上运行试验,并应用官网 AWS PyTorch 2.0 Docker 映像。请记住,咱们形容的某些行为可能因 PyTorch 版本而异。 玩具示例在上面的块中,咱们介绍了一个玩具 PyTorch 模型,它对 256x256 输出图像执行语义宰割,即,它采纳 256x256 RGB 图像,并输入来自十个语义类别的“每像素”标签的 256x256 映射。 ...

August 29, 2023 · 4 min · jiezi

关于深度学习:炼丹侠如何用GPU服务器实现AlexNet训练

AlexNet是一种深度卷积神经网络,由Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton于2012年提出。它是在ImageNet Large Scale Visual Recognition Challenge比赛中获得突破性成绩的模型,标记着深度学习在计算机视觉畛域的锋芒毕露。以下是AlexNet的一些次要特点和奉献: 深度架构:AlexNet是第一个引入多个卷积层和池化层的深度神经网络,共有8层变换层(5个卷积层和3个全连贯层)。ReLU激活函数:AlexNet采纳了修改线性单元(Rectified Linear Unit,ReLU)作为激活函数,这对于训练深层神经网络具备重要意义,因为它可能无效地缓解梯度隐没问题。部分响应归一化(Local Response Normalization):AlexNet引入了一种部分响应归一化层,目标是加强神经元的克制成果,进步模型的泛化能力。Dropout:为了加重过拟合问题,AlexNet在全连贯层引入了Dropout技术,即在训练过程中随机抛弃一些神经元,以促使网络更具鲁棒性。数据加强:AlexNet在训练阶段采纳了数据加强策略,如随机裁剪、程度翻转等。并行计算:AlexNet在训练时利用了两块GPU进行并行计算,这在过后是一种翻新,有助于放慢训练速度。在ImageNet比赛中的问题:AlexNet在2012年的ILSVRC比赛中获得了惊人的问题,将前一年获胜模型的错误率从25%升高到了约16%。AlexNet的胜利标记着深度学习在计算机视觉畛域的振兴,其架构和训练技巧为后续更深层次的神经网络提供了根底和启发,也为深度学习的广泛应用奠定了根底。本次训练采纳炼丹侠平台A100服务器,比照了GPU版本的训练代码和CPU版本的训练代码,胜利复现了AlexNet训练MNIST数据集,AlexNet训练残缺代码如下: GPU版本: import torchimport torch.nn as nnimport torch.optim as optimimport torchvisionimport torchvision.transforms as transformsfrom torchvision.datasets import MNISTfrom torch.utils.data import DataLoader# 定义简化版的AlexNet模型class AlexNet(nn.Module): def __init__(self, num_classes=10): super(AlexNet, self).__init__() self.features = nn.Sequential( nn.Conv2d(1, 64, kernel_size=11, stride=4, padding=2), nn.ReLU(inplace=True), nn.MaxPool2d(kernel_size=3, stride=2), nn.Conv2d(64, 192, kernel_size=5, padding=2), nn.ReLU(inplace=True), nn.MaxPool2d(kernel_size=3, stride=2), ) self.classifier = nn.Sequential( nn.Linear(192 * 5 * 5, 256), nn.ReLU(inplace=True), nn.Dropout(), nn.Linear(256, 128), nn.ReLU(inplace=True), nn.Dropout(), nn.Linear(128, num_classes), ) def forward(self, x): x = self.features(x) x = torch.flatten(x, 1) x = self.classifier(x) return x# 数据预处理和加载器transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(),])train_dataset = MNIST(root='./data', train=True, transform=transform, download=True)train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)# 初始化模型、损失函数和优化器,并将它们挪动到GPU上device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')model = AlexNet(num_classes=10).to(device)criterion = nn.CrossEntropyLoss()optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)# 训练模型num_epochs = 10for epoch in range(num_epochs): running_loss = 0.0 for inputs, labels in train_loader: inputs, labels = inputs.to(device), labels.to(device) optimizer.zero_grad() outputs = model(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() running_loss += loss.item() print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {running_loss / len(train_loader):.4f}')print('Finished Training')CPU版本: ...

August 28, 2023 · 2 min · jiezi

关于深度学习:PyTorch-模型性能分析和优化-第-2-部分

动动发财的小手,点个赞吧! 这是无关剖析和优化在 GPU 上运行的 PyTorch 模型主题的系列文章的第二局部。在第一篇文章中,咱们演示了应用 PyTorch Profiler 和 TensorBoard 迭代剖析和优化 PyTorch 模型的过程以及微小后劲。在这篇文章中,咱们将重点关注 PyTorch 中因为应用急迫执行而特地广泛的特定类型的性能问题:模型执行局部对 CPU 的依赖。辨认此类问题的存在和本源可能十分艰难,并且通常须要应用专用的性能分析器。在这篇文章中,咱们将分享一些在应用 PyTorch Profiler 和 PyTorch Profiler TensorBoard 插件时辨认此类性能问题的技巧。 吸引点PyTorch 的次要吸引力之一是其执行模式。在 Eager 模式下,造成模型的每个 PyTorch 操作一旦达到就会独立执行。这与图模式相同,在图模式中,整个模型以最适宜在 GPU 上运行并作为整体执行的形式预编译为单个图。通常,这种预编译会带来更好的性能(例如,请参见此处)。在急迫模式下,编程上下文在每次操作后返回到应用程序,从而容许咱们拜访和评估任意张量。这使得构建、剖析和调试 ML 模型变得更加容易。另一方面,它也使咱们的模型更容易(有时是意外地)插入次优代码块。正如咱们将演示的,理解如何辨认和修复此类代码块会对模型的速度产生重大影响。 玩具示例在以下块中,咱们介绍将用于演示的玩具示例。该代码十分宽松地基于咱们上一篇文章中的示例以及本 PyTorch 教程中定义的损失函数。 咱们首先定义一个简略的分类模型。它的架构对于本文来说并不重要。 import torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optimimport torch.profilerimport torch.utils.dataimport torchvision.modelsimport torchvision.transforms as Tfrom torchvision.datasets.vision import VisionDatasetimport numpy as npfrom PIL import Image# sample modelclass Net(nn.Module): def __init__(self): super().__init__() self.conv1 = nn.Conv2d(3, 8, 3, padding=1) self.conv2 = nn.Conv2d(8, 12, 3, padding=1) self.conv3 = nn.Conv2d(12, 16, 3, padding=1) self.conv4 = nn.Conv2d(16, 20, 3, padding=1) self.conv5 = nn.Conv2d(20, 24, 3, padding=1) self.conv6 = nn.Conv2d(24, 28, 3, padding=1) self.conv7 = nn.Conv2d(28, 32, 3, padding=1) self.conv8 = nn.Conv2d(32, 10, 3, padding=1) self.pool = nn.MaxPool2d(2, 2) def forward(self, x): x = self.pool(F.relu(self.conv1(x))) x = self.pool(F.relu(self.conv2(x))) x = self.pool(F.relu(self.conv3(x))) x = self.pool(F.relu(self.conv4(x))) x = self.pool(F.relu(self.conv5(x))) x = self.pool(F.relu(self.conv6(x))) x = self.pool(F.relu(self.conv7(x))) x = self.pool(F.relu(self.conv8(x))) x = torch.flatten(x, 1) # flatten all dimensions except batch return x接下来,咱们定义一个十分规范的穿插熵损失函数。这个损失函数将是咱们探讨的次要焦点。 ...

August 25, 2023 · 4 min · jiezi

关于深度学习:拨慢人体衰老时钟MIT-利用-Chemprop-模型发现兼具药效与安全性的细胞抗衰化合物

内容一览:从光鲜亮丽的明星,到素装淡裹的普通人,大家都会无可避免地老去,经验形容的变动与身材机能的进化。正因为此,人们也在致力寻找延缓苍老的秘方。然而,现有的抗衰老药物总伴有一些副作用。近期,在深度学习的帮忙下,《NatureAging》上发表的一篇研究成果筛选出了高效平安的抗衰老药物,或者能让咱们间隔「长生不老」更进一步。 关键词:计算模型 机器学习 苍老 作者|雪菜 编辑|三羊 本文首发于 HyperAI 超神经微信公众平台\~ 乔纳森·斯威夫特曾说「每个人都心愿可能长命,但没有人喜爱本人变老」。然而,《Nature Medicine》上的一项钻研显示,在 34 岁、60 岁和 78 岁 3 个工夫节点,人体内苍老相干疾病的基因表白会上调,导致人体「断崖式苍老」。这也就意味着,人体的苍老兴许比咱们认为的来得更早更快。 如何永葆青春,又一次成为了焦点话题。 近年来,有试验表明,通过抗衰老药物革除生物体内的苍老细胞 (Snc),能够改善由细胞苍老导致的病理生理性后果, 甚至缩短小鼠的寿命。然而,这些药物又存在一系列副作用, 包含减缓伤口愈合,导致肺部和血管四周细胞纤维化等,其效用与安全性难以两全。 为此,来自麻省理工学院 (MIT) 的 Felix Wong 等人,通过深度学习的形式,利用图神经网络,从数十万种化合物中筛选出了平安高效的抗衰老成分, 并在小鼠身上验证了其药效与安全性。其研究成果于 2023 年 5 月发表在《Nature Aging》上,题目为「Discovering small-molecule senolytics with deep neural networks」。 研究成果已发表于《Nature Aging》期刊 论文地址: https://www.nature.com/articles/s43587-023-00415-z 试验概述研究者们首先从现有的局部药物中筛选出了具备抗衰老效用的药物,作为深度学习的训练数据,并提出了掂量其药效和安全性的指标。随后,基于 Chemprop 模型(一种音讯流传图神经网络模型),他们筛选出了高效平安的抗衰老药物。 进一步筛选后,失去 3 种化合物,并围绕抗衰老个性和生物安全性,与传统的抗衰老药物进行了比照验证。 数据集本钻研数据集包含两局部:Broad 研究所药物再利用核心收录的 5,819 种药物,及 Broad 研究所收录的 799,140 种化合物。 试验过程本试验次要包含 3 个步骤: 1、从美国 FDA 审批通过及正在进行临床试验的 2,352 种药物中,筛选出有抗衰老效用的药物,作为模型的训练集; 2、通过 Chemprop 模型,筛选抗衰老药物; ...

August 23, 2023 · 2 min · jiezi

关于深度学习:炼丹侠如何用GPU服务器实现VGGNet训练

VGGNet是一种深度卷积神经网络,由牛津大学计算机视觉组的钻研团队开发。VGGNet的设计思维简略而无效,以深度重叠的卷积层为次要特点。 VGGNet的核心思想是通过多个小尺寸的卷积核和池化层来构建深度网络,具备比拟小的感触野。相比于其余网络结构,如AlexNet,VGGNet采纳了更深的网络结构,有更多的卷积层和池化层,从而进步了网络的表达能力。 VGGNet的根本组成单元是由间断的卷积层和池化层形成的块,通常有两到三个卷积层,前面追随一个池化层。整个网络由多个这样的块组成,最初是几个全连贯层和一个输入层。VGGNet的卷积核尺寸都是3x3,步长为1,并且在每个卷积层后都应用了ReLU激活函数进行非线性映射。 VGGNet的一个重要奉献是证实了减少网络深度能够进步性能,同时还提出了一种通用的网络结构设计准则。VGGNet在2014年的ImageNet图像识别挑战赛中获得了很好的问题,成为了过后最具影响力的深度学习模型之一。其简略而无效的设计思维对起初的深度卷积神经网络的倒退产生了重要影响。 本次选取经典的VGGNet对MNIST数据集进行训练操作,失去一个可用的模型文件,本次训练应用的服务器为炼丹侠平台A100服务器,其中GPU型号为A100 80GB,CPU应用了AMD EPYC 7542 32-Core Processor,训练分为了GPU训练测试和CPU训练测试。 上面是GPU版本和CPU版本VGGNet训练MNIST数据集的残缺代码。 GPU版本: import torchimport torch.nn as nnimport torch.optim as optimimport torchvisionimport torchvision.transforms as transforms# Check if GPU is availabledevice = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")# Define a simplified VGG-like modelclass VGGNet(nn.Module): def __init__(self): super(VGGNet, self).__init__() self.features = nn.Sequential( nn.Conv2d(1, 32, kernel_size=3, padding=1), nn.ReLU(inplace=True), nn.Conv2d(32, 32, kernel_size=3, padding=1), nn.ReLU(inplace=True), nn.MaxPool2d(kernel_size=2, stride=2), nn.Conv2d(32, 64, kernel_size=3, padding=1), nn.ReLU(inplace=True), nn.Conv2d(64, 64, kernel_size=3, padding=1), nn.ReLU(inplace=True), nn.MaxPool2d(kernel_size=2, stride=2) ) self.classifier = nn.Sequential( nn.Linear(64 * 7 * 7, 128), nn.ReLU(inplace=True), nn.Dropout(), nn.Linear(128, 10) ) def forward(self, x): x = self.features(x) x = x.view(x.size(0), -1) x = self.classifier(x) return x# Load and preprocess MNIST datasettransform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)trainloader = torch.utils.data.DataLoader(trainset, batch_size=128, shuffle=True)# Create the network, loss function, and optimizernet = VGGNet().to(device) # Move the model to GPUcriterion = nn.CrossEntropyLoss()optimizer = optim.Adam(net.parameters(), lr=0.001)# Train the modelfor epoch in range(10): running_loss = 0.0 for i, data in enumerate(trainloader, 0): inputs, labels = data inputs, labels = inputs.to(device), labels.to(device) # Move inputs and labels to GPU optimizer.zero_grad() outputs = net(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() running_loss += loss.item() print(f"Epoch {epoch+1}, Loss: {running_loss / len(trainloader)}")print("Finished Training")# Save the trained modeltorch.save(net.state_dict(), 'mnist_vggnet.pth')CPU版本: ...

August 22, 2023 · 2 min · jiezi

关于深度学习:腾讯云TStor存储一体机在大模型场景下的业务实践

引言近年来,随着ChatGPT的公布,掀起了一股生成式AI(AIGC)的热潮。从往年开始,国内各家企业也纷纷公布了自家的大模型产品,5月科技部上司的中国科学技术信息研究所公布了《中国人工智能大模型地图钻研报告》。报告显示,截至5月28日,国内10亿级参数规模以上根底大模型至多已公布79个。掂量大模型产品能力的一个很重要的指标就是参数量,从10亿级、百亿级到当初的千亿级。参数量的快速增长,对撑持AI训练的基础设施,如计算、网络、存储等也提出了更高的要求。存储作为IT基础设施的重要组成部分,在扩展性、高性能和多协定接口等方面,也须要与时俱进。腾讯公司推出的TStor存储一体机正是这样一款存储产品,本文将基于大模型场景对存储的挑战,介绍TStor在该场景的劣势,以及在某大模型产品中的业务实际,供宽广心愿自建大模型利用的企业参考。 AI大模型场景对存储的要害需要在AI大模型场景下,对存储系统提出了几个要害需要:1. 大容量AI大模型须要解决和存储海量的训练数据和两头后果,个别数据量在PB级甚至EB级。因而,存储系统须要具备高可扩展性,以满足这些大规模数据的存储需要。TStor存储一体机基于分布式架构,最小规模三节点起步,反对横向扩大,满足了AI大模型场景海量数据存取需要。 2. 高性能AI大模型的训练和推理过程对存储系统的读写性能要求十分高,特地是在数据集读取和checkpoint的读写,须要高带宽的数据传输和低提早的响应。因而,存储系统须要具备高性能的特点,以保障AI大模型的高效运行。TStor存储一体机,联合腾讯云自研的星星海服务器,搭载高性能NVMe闪存盘,可提供数百GB/s的带宽,大幅缩短数据读写工夫,晋升整体训练效率。 3. 多协定接口AI训练的数据起源多种多样,波及到多种数据类型和格局,不同的利用对于存储接口的需要也不一样。因而,须要存储系统具备多协定接口的特点,以便反对不同类型的数据存储和拜访。TStor存储一体机反对支流的文件(NFS、CIFS、FTP等)、块、对象(S3)等存储接口,不便对接不同下层利用,满足简单文件类型的存储需要,为AI训练数据的归集和荡涤提供高效的存储平台。 TStor存储一体机在大模型场景下的实际某企业自建了一套AIGC大模型训练集群,原始的训练数据多达数十PB,荡涤后用于训练的数据有数个PB,模型参数量高达千亿级。该企业抉择了TStor存储一体机,用于满足该场景下刻薄的存储需要。计划整体架构如下图所示: 在训练数据的归集阶段,TStor基于大容量低成本的HDD硬盘,搭建了一套存储集群,用于海量原始训练数据的集中存储。每个数据节点配置了60块20TB硬盘,单节点的原始容量高达1.2PB。底层数据冗余应用了具备更高容量利用率的纠删码算法,进一步升高了数据存储的老本。该集群对外提供文件和对象存储接口,对接了企业内的十多个业务数据源。同时,咱们还启用了数据的生命周期治理性能,将近期不再应用的冷数据沉降到了更低存储老本的介质上长期归档保留。 原始训练数据通过荡涤、标记等解决后,保留在另一套TStor集群中,用于模型训练。在训练数据的加载阶段,从该集群读取数据。另外,在训练过程中,每隔一段时间,会将checkpoint数据写入该集群。为了满足训练阶段的高性能需要,咱们基于全NVMe闪存配置的机器,搭建了这套TStor集群。每个节点配置了24块7.68TB的NVMe闪存,装备100GE网卡来打消网络瓶颈,整个集群规模在数十个节点,无效容量达到数个PB。在集群运行过程中,咱们察看到数据读写带宽达到数百GB/s。在如此高的负载下,TStor存储集群依然可能长期稳固运行,无效晋升了大模型训练的效率,缩短了训练工夫。 实践证明,TStor存储一体机齐全可能胜任AIGC大模型场景对存储的刻薄要求。如果您有自建大模型训练集群的需要,欢送公众号留言与咱们分割,咱们将致力于为您提供最优的AIGC大模型训练存储解决方案。

August 21, 2023 · 1 min · jiezi

关于深度学习:PyTorch模型性能分析与优化

动动发财的小手,点个赞吧! 训练深度学习模型,尤其是大型模型,可能是一项低廉的收入。咱们能够应用的治理这些老本的次要办法之一是性能优化。性能优化是一个迭代过程,咱们一直寻找进步应用程序性能的机会,而后利用这些机会。在之前的文章中(例如此处),咱们强调了领有适当工具来进行此剖析的重要性。工具的抉择可能取决于许多因素,包含训练加速器的类型(例如 GPU、HPU 或其余)和训练框架。 本文的重点是在 GPU 上应用 PyTorch 进行训练。更具体地说,咱们将重点关注 PyTorch 的内置性能分析器 PyTorch Profiler,以及查看其后果的办法之一,PyTorch Profiler TensorBoard 插件。 这篇文章并不是要取代无关 PyTorch Profiler 的官网 PyTorch 文档或应用 TensorBoard 插件来剖析分析器后果。咱们的目标是展现如何在日常开发过程中应用这些工具。 一段时间以来,我对 TensorBoard 插件教程的一个局部特地感兴趣。本教程介绍了一个在风行的 Cifar10 数据集上训练的分类模型(基于 Resnet 架构)。接下来演示如何应用 PyTorch Profiler 和 TensorBoard 插件来辨认和修复数据加载器中的瓶颈。 如果仔细观察,你会发现优化后的GPU利用率为40.46%。当初没有方法掩饰这一点:这些后果相对是蹩脚的,应该让你彻夜难眠。正如咱们过来所扩大的,GPU 是咱们训练机器中最低廉的资源,咱们的指标应该是最大化其利用率。 40.46% 的利用率后果通常代表着减速训练和节省成本的重要机会。当然,咱们能够做得更好!在这篇博文中,咱们将致力做得更好。咱们将首先尝试重现官网教程中提供的后果,看看咱们是否能够应用雷同的工具来进一步提高训练性能。 玩具示例上面的代码块蕴含 TensorBoard 插件教程定义的训练循环,并进行了两处小批改: 咱们应用与本教程中应用的 CIFAR10 数据集具备雷同属性和行为的假数据集。咱们初始化 torch.profiler.schedule,将预热标记设置为 3,将反复标记设置为 1。咱们发现,预热步骤数量的轻微减少进步了剖析后果的稳定性。import numpy as npimport torchimport torch.nnimport torch.optimimport torch.profilerimport torch.utils.dataimport torchvision.datasetsimport torchvision.modelsimport torchvision.transforms as Tfrom torchvision.datasets.vision import VisionDatasetfrom PIL import Imageclass FakeCIFAR(VisionDataset): def __init__(self, transform): super().__init__(root=None, transform=transform) self.data = np.random.randint(low=0,high=256,size=(10000,32,32,3),dtype=np.uint8) self.targets = np.random.randint(low=0,high=10,size=(10000),dtype=np.uint8).tolist() def __getitem__(self, index): img, target = self.data[index], self.targets[index] img = Image.fromarray(img) if self.transform is not None: img = self.transform(img) return img, target def __len__(self) -> int: return len(self.data)transform = T.Compose( [T.Resize(224), T.ToTensor(), T.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])train_set = FakeCIFAR(transform=transform)train_loader = torch.utils.data.DataLoader(train_set, batch_size=32, shuffle=True)device = torch.device("cuda:0")model = torchvision.models.resnet18(weights='IMAGENET1K_V1').cuda(device)criterion = torch.nn.CrossEntropyLoss().cuda(device)optimizer = torch.optim.SGD(model.parameters(), lr=0.001, momentum=0.9)model.train()# train stepdef train(data): inputs, labels = data[0].to(device=device), data[1].to(device=device) outputs = model(inputs) loss = criterion(outputs, labels) optimizer.zero_grad() loss.backward() optimizer.step()# training loop wrapped with profiler objectwith torch.profiler.profile( schedule=torch.profiler.schedule(wait=1, warmup=4, active=3, repeat=1), on_trace_ready=torch.profiler.tensorboard_trace_handler('./log/resnet18'), record_shapes=True, profile_memory=True, with_stack=True) as prof: for step, batch_data in enumerate(train_loader): if step >= (1 + 4 + 3) * 1: break train(batch_data) prof.step() # Need to call this at the end of each step本教程中应用的 GPU 是 Tesla V100-DGXS-32GB。在这篇文章中,咱们尝试应用蕴含 Tesla V100-SXM2–16GB GPU 的 Amazon EC2 p3.2xlarge 实例重现本教程的性能后果并进行改良。只管它们共享雷同的架构,但这两种 GPU 之间存在一些差别。咱们应用 AWS PyTorch 2.0 Docker 映像运行训练脚本。 TensorBoard 查看器概述页面中显示的训练脚本的性能后果如下图所示: ...

August 20, 2023 · 3 min · jiezi

关于深度学习:议题回顾丨中国人寿寿险APP合规之路经验分享

前言本文依据7月28日中国人寿研发核心客户服务大产品团队的客户端架构师夏冰在绿盟月度直播技术流动分享的《中国人寿寿险APP合规之路教训分享》主题演讲整顿而成。 一、概述1.背景2019年9月27日,中国人民银行下发《中国人民银行对于公布金融行业标准增强挪动金融客户端应用软件平安治理告诉》(银发[2019]237号),237号文面向金融机构提出了3点工作要求:晋升平安防护能力、增强集体金融信息爱护、进步危险监测能力。237号文蕴含附件《挪动金融客户端应用软件平安治理标准》(JR/T 0092-2019),0092标准对金融客户端的身份认证平安、逻辑平安、平安功能设计、明码算法及密钥治理、数据安全、设计要求、开发要求、公布要求、保护要求等方面做出了明确规定,成为金融行业长期有效的一个参考规范。人民银行安顿互金协会、认证机构、检测机构等启动备案、认证、检测工作,并继续监测挪动金融客户端合规状况,并且明确进行金融客户产品认证与备案的技术根底是须要满足0092标准的要求。自2019年起,监管局势日趋严格,包含网信办、公安部、工信部等部门对多款APP的集体信息安全问题进行了监管通报。被通报的APP波及金融行业在内的所有行业。对于不符合要求的APP,若平安合规问题未及时处理,则存在通报甚至下架的危险。 2.挪动APP违规处理流程《挪动互联网应用程序个人信息爱护治理暂行规定》明确了发现从事集体信息处理流动的相干主体违反本规定的,监督管理部门可根据各自职责采取以下处理措施:(一)责令整改与社会布告。对检测发现问题APP的开发运营者、APP散发平台、第三方服务提供者及相干主体提出整改,要求5个工作日内进行整改及时消除隐患;未实现整改的,向社会布告。(二)下架处理。对社会布告5个工作日后,仍回绝整改或者整改后仍存在问题的,可要求相干主体进行下架处理;对重复呈现问题、采取技术反抗等违规情节严重的,将对其进行间接下架;被下架的APP在40个工作日内不得通过任何渠道再次上架。(三)断开接入。下架后仍未按要求实现整改的,将对其采取断开接入等必要措施。(四)复原上架。被下架的APP实现整改,并欠缺技术和管理机制及作出企业自律承诺后,可向作出下架要求的监督管理部门申请复原上架。(五)复原接入。被断开网络接入的APP实现整改后,可向作出断开接入要求的监督管理部门申请复原接入。(六)信用治理。对相应违规主体,可纳入信用治理,施行联结惩戒。 3.局部合规机构的重点检测范畴局部合规机构的重点检测范畴包含系统安全、交易平安、个人信息收集应用检测等方面。其中系统安全包含身份认证要求、逻辑平安、平安功能设计、密钥算法及密钥治理、数据安全等。交易平安次要是交易验证与确认、交易危险管制、交易过程平安以及危险辨认干涉等。个人信息收集应用检测包含未公开收集应用规定、未明示收集应用个人信息的目标、形式和范畴、未经用户批准收集应用个人信息、违反必要准则,收集与服务无关的信息等。本文将对个人信息收集应用与检测内容进行重点分享。 4.寿险APP已实现的相干审核APP守法违规收集应用个人信息自评估指南;工业和信息化部对于发展纵深推动APP侵害户权利专项整治口头的告诉工信部164号文;《APP守法违规收集应用个人信息行为认定办法_工信部191号文》等。 5.寿险APP发展认证的成绩与播种2021年寿险APP通过了金融科技产品认证并实现备案,目前曾经过一次监督审查;2021年寿险APP通过了软件绿色联盟绿标认证;2022年寿险APP通过APP平安认证,成为保险行业首款获国家级平安认证程序。 二、教训分享 第三方SDK及隐衷协定批改隐衷协定是APP合规最根底的一环,接下来介绍第三方SDK形容及隐衷协定批改等内容。隐衷协定中对于应用第三方SDK的形容,个别包含设施、公司名称、用处、收集的权限品种、获取形式等,可在公司名称处增加援用链接或者援用其全部内容作为附录。禁止SDK在批准隐衷政策前初始化,即启动APP时,在用户点击批准隐衷协定之前禁止网络申请和权限申请。对于隐衷协定的批改,倡议对隐衷协定增加动静可改机制,批准隐衷协定后,减少动静下发配置,避免隐衷协定呈现破绽的状况。隐衷协定批改后,需用户再次确认批准。保留全版本强制更新性能,若存在隐衷协定不可批改的状况,强制更新是一个简略高效的保底计划。2.动静权限的申请形式开发者们须要留神权限的申请形式,防止出现未说明起因的动静权限申请。之前,设置申请权限的形式是简略粗犷间接去申请用户某一权限,如录音权限、拍摄权限等。而现阶段是禁止的,假如在申请录音权限时,首先须要将所有的性能都列举分明,不可脱漏。如在 AAA性能、BBB性能、CCC性能中应用录音权限,同时为您提供语音导航性能、语音转文字服务。当用户点击“容许”之后,再设置弹出权限申请框。依据现阶段的教训而言,通过的检测审核是依照上述形式去要求的。在用户非被动触发权限的前提下,一旦用户点击“不容许”,回绝了某一个性能,倡议设定48小时后再提醒。此处的48小时倡议做成动静配置。若用户被动触发,可再次显示申请的弹框。此处的容许与不容许,色彩与字体大小要雷同,禁止具备倾向性疏导。3.针对三方SDK越权的解决针对已被发现存在非自有代码申请权限(存在越权行为),即第三方SDK外部的实现机制可能存在越权的行为。解决形式也比较简单,首先是全局搜寻,或者在Manifest中查看,定位是哪个SDK在应用。定位实现之后,判断以后的这个权限在这个SDK外面应用是否是正当且必须。若正当且必须,则须要写一个残缺的申述申请,向监管机构去申明应用起因、应用后果。被监管机构检测到越权行为的问题,大部分起因是因为隐衷协定里短少这部分内容的阐明。若不必须,则须要找到对应的SDK提供方进行批改。如果咱们应用的是开源、公共SDK,在不影响性能的前提下,能够思考间接移除权限。4.个人信息在具体性能界面的明示形式《信息安全技术-集体信息安全标准》(GB/T 35273-2020)规定个人信息主体应告知用户收集的个人信息的目标、形式、范畴等规定。解决形式能够参考设置“舒适提醒”,明确告知用户应用的个人信息及应用目标。在须要用户填写的个人信息页面,比方须要填户名、开户银行、银行卡号、证件类型、证件号码等。在“舒适提醒”里须要十分明确告知用户,在性能相干页面会采集您的银行卡号、证件号码、手机号。上述信息会被妥善爱护,并仅用于办理银联认证性能应用,该性能仅用于确认您的实在身份。也能够通过弹窗的形式去设置。工信部191号文《APP守法违规收集应用个人信息行为认定办法》中规定APP解除绑定、勾销受权的入口设置应便于用户操作,不应通过荫蔽入口、操作繁琐等形式影响用户权力的实现。5.以后团队整顿了一套从合规检测到公布的流程通过多轮的合规整改,中国人寿寿险APP造成了一套从开发到上线的合规自检标准,倡议利用开发者们可参考依照“向技术人员宣导-代码审查-动态代码扫描-组件扫描-合规工具检测-利用完整性校验-提交至利用商店”的思路进行实际,心愿对走在平安合规之路的开发者们带来帮忙。向技术人员宣导:强调合规的重要性,在开发过程中被动思考是否有合规事宜代码审查:代码审核过程中重点关注是否存在平安合规问题动态代码扫描:通过动态代码扫描监控是否存在平安合规问题组件扫描:监控新增组件是否存在平安合规问题合规工具检测:应用平安合规业余工具进行检测,防止出现合规问题部署:利用完整性校验以上就是《中国人寿寿险APP合规之路教训分享》的全部内容,后续绿盟还会举办月度技术流动,敬请期待!

August 18, 2023 · 1 min · jiezi

关于深度学习:29款影音娱乐视频类应用评测体验报告

为不便开发者更好地掂量APP在同类产品中的体现和竞争力,有针对性地进行产品优化,软件绿色联盟策动了垂类APP评测体验专题,目前已公布了天气类、小说类、教育学习类APP评测体验报告,本期将对影音娱乐类中的视频类APP围绕绿标五大规范进行体验评测,欢送利用开发者继续关注。 1、评测体验1)本次测试共计29款视频类利用,其中大部分APP有开屏广告、插件广告。a) 开屏广告次要分为摇一摇,点击图标查看详情,上滑查看详情,扭转手机,前倾手机五类。通过测试,暂未发现设置高灵敏度,升高交互动作断定阈值,造成强迫式跳转景象。开屏广告中有妨碍用户敞开广告行为,详见下文第4局部“绿标平安评测”。b) 插件广告次要分为视频结尾期待广告,视频暂停过程广告,视频详情页面举荐广告,通栏广告,信息流广告,搜寻栏广告等。通过测试,少数广告出现形式为有独自的点击详情按钮和跳过敞开按钮,多数广告中有坑骗诱导用户下载安装APP行为,详见下文第4局部“绿标平安评测”。另外还发现有离奇的“擦屏幕有惊喜”和“摇一摇理解更多”的形式,其中“摇一摇理解更多”这个广告形式在暂停视频时会呈现,按测试人员的应用手机习惯,暂停后少数会从横屏观看视频转变为竖屏应用,所以很容易跳转到其余页面中。 2)本次测试的29款利用中有11款利用内含贷款服务,经测试发现均有提醒感性生产、审慎借贷字样。其中,a) 有4款利用提醒页面服务由第三方提供,仅提供信息展现,有免责申明;b) 有3款利用展现了很多贷款入口,然而并没有显著提醒服务由第三方提供;c) 有7款利用内嵌自家贷款平台。 3)本次测试的29款利用中有12款利用内含游戏核心,经测试,a) 有9款利用有本人的游戏核心,其中7款游戏核心蕴含快游戏利用,2款游戏核心没有快游戏利用;b) 7款有快游戏的游戏核心中,有6款游戏核心的大多数快游戏没有隐衷政策,唯有1家游戏核心的快游戏都有隐衷政策;c) 有2款利用的游戏核心有实名认证,有4款利用的游戏核心既没有实名认证,快游戏也没有隐衷政策;d) 有2款利用内嵌的其余游戏核心,有隐衷政策弹出;e) 有1款利用内嵌仅有斗地主,然而进入斗地主之后提醒专为旧版安卓零碎打造,并且全副权限开关默认开启,也没有隐衷政策弹出。 4)本次测试的29款利用中有20款利用内嵌商城,经测试未发现欺诈、强买强卖行为。售卖品类少数为视频周边、流量套餐、会员卡,兑换形式以会员积分兑换或会员抽奖为主,多数内嵌自家购物平台。5)本次测试的29款利用中22款有青少年模式,绝大多数青少年模式中有“观看时间段限度”。视频内容方面体现良好,但有2款利用在青少年模式下有广告,有1款利用青少年模式退出后盾再次启动后,仍能看见规范模式下的视频内容。开启青少年模式后家长为孩子设置了密码锁,然而密码锁并非强制性,用户只须要输出明码即可自在敞开青少年模式。 2、绿标整体达标状况本次测试共选取了29款视频类APP,绿标整体达标率如下:兼容性规范:达标率100%。稳定性规范:达标率100%。功耗规范:达标率100%。性能规范:整体达标率69.0%,有9款APP未通过性能规范检测,其中7款存在灭屏内存占用超出规范要求的问题。平安规范:视频类APP不通过平安规范较多,29款利用有7款APP未通过平安规范检测,整体达标率为75.9%,次要不通过起因集中在:1)广告问题;2)内嵌游戏核心的快游戏无隐衷政策问题;3)不当申请权限的问题, 次要有以下两个权限存在滥用问题:①android.permission.BIND_ACCESSIBILITY_SERVICE;②android.permission.CALL_PHONE。3、绿标性能评测 测试发现:a)29款APP冷启动响应工夫和热启动响应工夫体现优良;b) 不通过性能规范的9款利用中,后盾亮屏内存占用超过400M有2款,后盾亮屏CPU占用超过2%有3款;c)重灾区次要集中在后盾灭屏内存占用和后盾灭屏CPU占用,其中,后盾灭屏内存占用超过400M有7款,后盾灭屏CPU占用超过2%有4款。 4、绿标平安评测1)设置青少年模式的过程中,存在广告弹出或显示不良广告的行为。 整改倡议:设置青少年模式时不宜有广告弹出,不应存在不良广告诱导行为。 2)青少年模式下,退出利用再次启动该利用时会有开屏广告。 ![图片](https://mmbiz.qpic.cn/mmbiz_gif/NkAnQdNMWcPsY4I7FDSvdlskGkQYX...)整改倡议:青少年模式下不宜设置开屏广告。 3)点击广告空白处主动下载利用。 整改倡议:APP 信息窗口页面,下载、装置、应用第三方 APP 时,应以显著形式明示,或用户被动抉择批准,点击指定地位下载、装置、应用第三方APP。 4)APP 信息窗口页面,通过虚伪、引人误会的形式坑骗误导强制用户下载、装置、应用第三方APP 的行为,包含但不限于在未明示下载 APP 的状况下,通过“是否立刻开始游戏”、“支付红包”、 “手机卡顿”、“耗电太快”、“内存已满”等形式。 整改倡议:广告禁止通过“是否立刻开始游戏”、“支付红包”、 “手机卡顿”、“耗电太快”、“内存已满”等形式坑骗诱导用户下载安装应用第三方APP。 5)开屏广告跳过按钮暗藏在前置摄像头下,妨碍用户失常点击。 整改倡议:广告敞开按钮应提供无效、显著的敞开选项。 6)视频软件中的游戏平台里的快游戏绝大多数并没有隐衷政策。 整改倡议:视频利用中的游戏核心作为一个散发平台,快游戏或者小程序作为第三方服务也须要有本人绝对应的隐衷政策。 7)申请无关权限:某视频平台在零碎截图后弹出存储权限受权框,回绝后零碎截图依然能够保留。 整改倡议:截图是零碎行为,禁止利用弹框向用户申请存储权限,利用权限申请必须遵循最小化准则,只申请业务性能所必要的权限,禁止申请不必要的权限。 8)经测试发现视频类APP有2款利用应用android.permission.CALL_PHONE权限,次要是拨打广告内电话。如某APP申请android.permission.CALL_PHONE权限,隐衷政策中形容的应用场景是“广告内容中若存在拨打电话内容,若您点击拨打号码,您所应用的电话号码的运营商将失常收取通信费用”。 另一款利用经检测有android.permission.CALL_PHONE权限存在,然而在隐衷政策中并未阐明应用场景,存在适度申请权限行为。整改倡议:对于拨打电话性能,除一键报警、平安专线、网络会议等必须场景外,其余场景禁止应用该权限。开发者应应用零碎提供的接口调起拨号界面,而后由用户进行手动拨打电话。对于利用曾经实现跳转到拨号键盘拨打,曾经不须要此权限,开发者应在代码中删除此权限。9)测试发现有3款视频类利用应用android.permission.BIND_ACCESSIBILITY_SERVICE权限,用来防止录屏直播过程中麦克风与其余利用抵触导致直播无声音。整改倡议:android.permission.BIND_ACCESSIBILITY_SERVICE权限为高危权限,仅限APP实现反对无障碍性能状况下,能够申请应用此权限,如针对视障人士的屏幕朗诵性能,其余场景一律禁用该权限!在无正当场景的状况下,应间接删除该权限,防止权限检测时出现异常。 5、写在最初在整改、适配绿标的过程中,小伙伴们有任何疑难可及时与咱们分割,您能够发送邮件至邮箱:sga@china-sga.com或增加下方↓↓↓工作人员微信号。

August 18, 2023 · 1 min · jiezi

关于深度学习:达标率8015软件绿色联盟6月绿标评测报告发布

导读标告为帮忙利用开发者晋升APP品质,推动用户体验降级,软件绿色联盟继续基于《软件绿色联盟利用体验规范》,月度对国内支流TOP1000共计18类利用,从兼容性、稳定性、功耗、性能、平安五方面进行绿标评测,解读不同分类利用存在的共性及个性问题,帮忙开发者疾速定位问题,进而实现利用品质降级。注:后盾回复关键词“6月检测名单”,查看6月达标利用列表。 1、6月TOP1000利用绿标达标状况 6月检测利用共计957款,绿标整体达标率80.15%,较5月回升2%。 从上图能够看出,五大规范中的兼容性、稳定性、功耗规范达标率超98%。而平安、性能规范达标率别离为83.1%、94%,仍有回升空间。 横向比照18类利用达标率,超过80%的共计11类,相较上月新增了游览住宿、汽车类。其中儿童、美食、社交通信、游戏类利用达标率均超90%。环比上月,便捷生存、美食、汽车、静止衰弱类利用达标率晋升5-12个百分点,其余类利用达标率体现绝对安稳。 18类利用平安规范各检测项未达标状况剖析 详细分析各类利用平安规范检测项未达标状况,便捷生存、教育、金融理财、实用工具类利用存在违规调用高危权限的行为较突出,占比均超过10%。便捷生存、教育、金融理财、拍摄丑化、实用工具、新闻浏览类利用存在隐衷违规的行为占比均超10%。此外,通过上表能够看出,拍摄丑化、实用工具、影音娱乐类局部利用四项检测项均未通过,须要利用开发者重点关注。18类利用性能规范各检测项未达标状况剖析 剖析18类利用性能规范各检测项未达标占比,能够看到:后盾灭屏内存占用检测项:18类利用中存在该问题的有13类,其中实用工具、游戏类利用不达标占比拟高,别离为26.3%、15.8%;后盾亮屏内存占用检测项:18类利用中存在该问题的有12类,其中实用工具、影音娱乐类利用不达标占比拟高,别离为23.5%、17.6%;后盾亮屏CPU占用检测项:18类利用中存在该问题的有9类,其中游戏类利用不达标占比拟高,为31.3%。 2、绿标测试中典型问题举例2.1兼容性问题举例:某商务类APP在应用过程中呈现了点击按钮未响应的状况。 2.2性能问题举例:某游戏类APP前台内存占用为606.16MB、后盾亮屏内存占用为459.64MB,后盾灭屏内存占用为1138.7MB。这三个检测项都超出规范要求(前台内存占用≤500 MB,后盾亮屏内存占用≤400 MB,后盾灭屏内存占用≤400 MB)。 2.3其余影响用户体验的问题:某影音娱乐类APP广告页面以半透明的遮罩模式笼罩了约⅓屏幕,影响用户整体观感体验。其次是广告页面设计遮挡了剧集列表的题目,用户在向左/向右滑动剧集列表的过程中,容易点击至广告页面。除此之外,广告页面通过惯性动作的交互行为(左右滑动)诱导用户触发页面进行跳转。

August 18, 2023 · 1 min · jiezi

关于深度学习:30款教育学习类应用评测体验报告

为不便开发者更好地掂量APP在同类产品中的体现和竞争力,有针对性地进行产品优化,软件绿色联盟策动了垂类APP评测体验专题,目前已公布了天气类APP和小说类APP评测体验报告,本期将对教育学习类APP围绕绿标五大规范进行体验评测,欢送利用开发者继续关注。 1、该类利用体现较好与待改良项1)体现较好:本次测试选取了30款较为头部的教育学习类利用,其中29款利用简直没有广告或广告较少,并且未发现主动装置利用,血腥暴力、色情暗示等低俗内容,体现较好。同时也未有内置游戏、小说等诱惑青少年进行充值,以及网络游戏虚构货币交易的状况,体现较好。2)待改良项:30款教育学习类利用中,有局部利用注册登录后或者点击订阅收费直播课等内容后,会收到售课电话,频率为每天1次至2次且继续一段时间后恢复正常。隐衷政策中并未对此状况进行阐明,请开发者留神不要滥用用户个人信息。 2、绿标整体达标状况 本次测试共选取了30款支流教育学习类APP,绿标整体达标率如下:兼容性规范:达标率100%。稳定性规范:达标率100%。功耗规范:达标率100%。性能规范:整体达标率93%,有2款APP未通过性能规范检测,存在冷启动工夫超出规范要求的问题。平安规范:不通过平安规范的APP较多, 30款利用有18款APP未通过平安规范检测,整体达标率为40%,次要不通过起因集中在:1)违规收集个人信息,未在隐衷政策中清晰明示第三方SDK获取的个人信息。2)不当申请权限的问题,次要有以下两个权限存在滥用问题:①android.permission.BIND_NOTIFICATION_LISTENER_SERVICE;②android.permission.CALL_PHONE。 3、绿标性能评测 比照上图数据,发现30款APP后盾亮/灭屏内存占用(≤400MB)和后盾亮/灭屏CPU占用(≤2%)方面体现良好。仅有2款APP未通过性能规范,未通过检测项的起因是:冷启动工夫超过规范要求(一般利用响应工夫≤2000毫秒)。优化倡议:请开发者依照绿标性能规范进行整改(通过规范:一般利用响应工夫≤2000毫秒; 游戏、影音娱乐类利用响应工夫≤3000毫秒)。4、绿标平安评测1)违规收集个人信息:抓取到某利用应用了极光SDK未在隐衷申明中明示,如下图:2)申请无关权限:某利用启动时申请设施信息权限。优化倡议:权限弹窗时应写明获取权限的目标,且应动静获取即用户应用此性能时才弹窗,不应在用户关上利用时索取权限。3)申请无关权限:某利用在利用内点击查看放大图片时申请存储权限,回绝存储权限后无奈查看图片。优化倡议:在APP内查看放大图片时,不应索取存储权限。利用权限申请必须遵循最小化准则,只申请业务性能所必要的权限,禁止申请不必要的权限。4)某利用广告弹窗焦点较小或不精确,点击敞开按钮时无奈间接敞开广告,须要点击屡次。5)经测试发现教育学习类APP有10款利用应用android.permission.CALL_PHONE权限,次要是拨打老师或客服电话。如某APP申请android.permission.CALL_PHONE权限,隐衷政策中形容的应用场景是“APP内间接拨打客服电话”,然而实际上APP拨打客服电话时是跳转到拨号键盘后,由用户进行手动拨打。 优化倡议:对于拨打电话性能,除一键报警、平安专线、网络会议等必须场景外,其余场景禁止应用该权限。开发者应应用零碎提供的接口调起拨号界面,而后由用户进行手动拨打电话。对于利用曾经实现跳转到拨号键盘拨打,曾经不须要此权限,开发者应在代码中删除此权限。6)测试发现有4款教育学习类利用应用android.permission.BIND_NOTIFICATION_LISTENER_SERVICE权限,用来监听告诉栏信息,设置免打搅状态(设置免打搅拦挡音讯,清理告诉栏音讯)。优化倡议:android.permission.BIND_NOTIFICATION_LISTENER_SERVICE为高危权限,可监听用户告诉栏收到的所有信息,无正当应用场景开发者不应应用此权限。5、写在最初在整改、适配绿标的过程中,小伙伴们有任何疑难可及时与咱们分割,您能够发送邮件至邮箱:sga@china-sga.com或增加下方↓↓↓工作人员微信号。

August 18, 2023 · 1 min · jiezi

关于深度学习:如何阅读并学习-MegEngine-的代码

旷视开源的深度学习框架 MegEngine,MegEngine 是一个疾速、可拓展、易于应用且反对主动求导的深度学习框架。 以最新的 release 版本 release-1.13.0 为例介绍一下 MegEngine 的代码构造以及如何学习 MegEngine 的代码。 1. 编译对于学习大型项目,咱们倡议源码编译我的项目而不是间接安装包,这样咱们能够间接批改代码(并编译)再察看咱们的改变的影响。 2. 从一个例子动手,自顶向下大型项目动辄几千上万条 commit,代码行数也是几十万行起步,把每个 commit、每一行代码都看一遍对于集体开发者来说显然是不事实的。因而咱们应该先从较为重要的、咱们比较关心的文件动手,缓缓拓展咱们对于我的项目的认知。 在 MegEngine 的官网文档中提供了一个用 MegEngine 实现手写数字辨认的例子。 看了这个例子后,你可能会有以下疑难: MegEngine 是如何获取数据集的呢?MegEngine 如何对数据集进行解决?我又要如何实现本人的数据处理办法呢?Functional 中的算子是如何实现计算的呢?GradManager 和 Optimizer 如何治理我的参数梯度呢?训练和推理出了问题,我又该如何调试呢?…每个开发者 / 用户的关注点都可能不同,Python 层作为深度学习框架的入口,咱们能够从这里的代码学习起来:https://github.com/MegEngine/MegEngine/tree/master/imperative/python/megengine 粗略浏览一下目录构造,能够看到这里实现了很多 Python 层的接口,能够挑一个感兴趣的开始看,咱们举荐从 functional 开始,这里实现了罕用的算子,你也能够在这里增加算子。 比方咱们的例子中用了 conv 算子,咱们就能够跳转到这个算子的实现:https://github.com/MegEngine/MegEngine/blob/master/imperative/python/megengine/functional/nn.py#L224,通过浏览函数的正文咱们能够晓得每个参数都是做什么的,逐行读下来之后咱们会发现这里做的最次要的一件事就是把参数扔到一个 builtin.Convolution 的货色之后去执行(apply)了。这里做的事是:python 层的算子实现须要调用 C++ 的算子实现,builtin.xxx 作为一个接口能够了解为让咱们在 Python 程序中接入咱们的 C++ 算子实现。这里能够参考 MegEngine 官网文档中对于增加算子的形容,找到咱们关怀的算子的实现,比方 conv:https://github.com/MegEngine/MegEngine/blob/master/imperative/src/impl/ops/convolution.cpp#L15。 间接看算子的 C++ 实现可能会一头雾水,这时候倡议照着 MegEngine 的官网文档,自底向上看(MegDNN→Graph Runtime→Imperative Runtime):https://www.megengine.org.cn/doc/stable/zh/development/how-to...,因为下层要调用上层的实现。对于各模块作用以及调用关系感到困惑的话能够参考 MegEngine 的架构设计文档:https://www.megengine.org.cn/doc/stable/zh/development/architecture-design/index.html。 3. 如何进阶理解了一个算子的 Python 实现向下到具体的硬件实现之后,你可能会有更多的疑难,你可能会对 MegEngine 如何提供基础设施反对下层的算法开发感到好奇,咱们再看一眼 MegEngine 的架构设计图: ...

August 17, 2023 · 1 min · jiezi

关于深度学习:PromptRAG微调还是重新训练如何选择正确的生成式AI的使用方法

生成式人工智能正在疾速倒退,许多人正在尝试应用这项技术来解决他们的业务问题。个别状况下有4种常见的应用办法: Prompt EngineeringRetrieval Augmented Generation (RAG 检索加强生成)微调从头开始训练根底模型(FM)本文将试图依据一些常见的可量化指标,为抉择正确的生成式人工智能办法提供倡议。 本文不包含“应用原模型”的选项,因为简直没有任何业务用例能够无效地应用根底模型。按原样应用根底模型能够很好地用于个别搜寻,但对于任何特定的使劲,则须要应用下面提到的选项之一。 如何执行比拟?基于以下指标: 准确性(答复有多精确?)实现复杂性(实现能够有多简单?)投入工作量(须要多少工作的投入来实现?)总成本(领有解决方案的总成本是多少?)灵活性(架构的耦合有多松?更换/降级组件有多容易?)咱们将对这些度量规范上的每个解决方案办法进行评级,进行一个简略的比照。 准确性让咱们首先失去探讨最总要的一点:哪种办法提供最精确的响应? Prompt Engineering就是通过提供大量示例提供尽可能多的上下文,以使根底模型更好地理解用例。尽管独自来看,后果可能令人印象粗浅,但与其余办法相比,它产生的后果最不精确。 RAG产生了高质量的后果,因为它减少了间接来自向量化信息存储的特定于用例的上下文。与Prompt Engineering相比,它产生的后果大大改善,而且产生幻觉的可能性非常低。 微调也提供了相当准确的后果,输入的品质与RAG相当。因为咱们是在特定畛域的数据上更新模型权重,模型产生更多的上下文响应。与RAG相比,品质可能略微好一些,但这取决于具体实例。所以评估是否值得花工夫在两者之间进行衡量剖析是很重要的。一般来说,抉择微调可能有不同的起因,而不仅仅是精度。还包含数据更改的频率、在本人的环境中管制模型实现法规、听从性和可再现性等目标等等。 从头开始的训练产生了最高品质的后果(这是必定的)。因为模型是在用例特定数据上从零开始训练的,所以产生幻觉的几率简直为零,输入的准确率也是比拟中最高的。 实现的复杂性除了准确性以外,另外一个须要关注的就是实现这些办法的难易水平。 Prompt Engineering具备相当低的实现复杂性,因为它简直不须要编程。须要具备良好的英语(或其余)语言技能和畛域专业知识,能够应用上下文学习办法和少样本学习办法来创立一个好的提醒。 RAG比Prompt Engineering具备更高的复杂性,因为须要编码和架构技能来实现此解决方案。依据在RAG体系结构中抉择的工具,复杂性可能更高。 微调比下面提到的两个更简单,因为模型的权重/参数是通过调优脚本更改的,这须要数据迷信和ML专业知识。 从头开始训练必定具备最高的实现复杂性,因为它须要大量的数据管理和解决,并且训练一个相当大的模型,这须要深刻的数据迷信和ML专业知识。 工作量投入实现的复杂性和工作量并不总是成正比的。 Prompt Engineering须要大量的迭代致力能力做到正确。根底模型对提醒的措辞十分敏感,扭转一个词甚至一个动词有时会产生齐全不同的反馈。所以须要相当多的迭代能力使其实用于相应的需要。 因为波及到创立嵌入和设置矢量存储的工作,RAG也须要很多的工作量,比Prompt Engineering要高一些。 微调则比前两个要更加费劲。尽管微调能够用很少的数据实现(在某些状况下甚至大概或少于30个示例),然而设置微调并取得正确的可调参数值须要工夫。 从头开始训练是所有办法中最费劲的办法。它须要大量的迭代开发来取得具备正确技术和业务后果的最佳模型。这个过程从收集和治理数据开始,设计模型体系结构,并应用不同的建模办法进行试验,以取得特定用例的最佳模型。这个过程可能会很长(几周到几个月)。 总成本咱们探讨的不仅仅是服务/组件破费,而是齐全实现解决方案的老本,其中包含纯熟工程师(人员),用于构建和保护解决方案的工夫,其余工作的老本,如本人保护基础设施,执行降级和更新的停机工夫,建设反对渠道,招聘,进步技能和其余杂项老本。 Prompt Engineering的老本是相当低的,因为须要保护的只是提醒模板,并在根底模型版本更新或新模型公布时时放弃它们的最新状态即可。除此之外,托管模型或通过API间接应用还会有一些而额定的老本。 因为架构中波及多个组件,RAG 的老本要比Prompt Engineering略高。这取决于所应用的嵌入模型、向量存储和模型。因为在这里须要为3个不同的组件付费。 微调的老本必定要高于前两个,因为调整的是一个须要弱小计算能力的模型,并且须要深刻的ML技能和对模型体系结构的了解。并且保护这种解决方案的老本也会更高,因为每次有根本模型版本更新或新数据批次进入时都须要调优。 从头开始训练无疑是老本最高的,因为团队必须领有端到端数据处理和ML训练、调优和部署能力。这须要一群高技能的机器学习从业者来实现。保护这种解决方案的老本十分高,因为须要频繁的从新训练周期来放弃模型与用例四周的新信息放弃同步。 灵活性咱们来看看在简化更新和更改方面的是什么状况 Prompt Engineering具备十分高的灵活性,因为只须要依据根底模型和用例的变动更改提醒模板。 当波及到架构中的更改时,RAG也具很最高水平的灵活性。能够独立地更改嵌入模型、向量存储和LLM,而对其余组件的影响最小。它还能够在不影响其余组件的状况下在简单受权等流程中增加更多组件。 微调对更改的灵活性非常低,因为数据和输出的任何更改都须要另一个微调周期,这可能非常复杂且耗时。同样,将雷同的微调模型调整到不同的用例也须要很多的工作,因为雷同的模型权重/参数在其余畛域的体现可能比它所调整的畛域差。 从头开始训练的灵活性最低的。因为模型是从头构建的,对模型执行更新会触发另一个残缺的从新训练周期。咱们也能够微调模型,而不是从头开始从新训练,但准确性会有所不同。 总结从以上所有的比拟中能够显著看出,没有显著的输赢。因为最终的抉择取决于设计解决方案时最重要的指标是什么,咱们的倡议如下: 当心愿在更改模型和提醒模板方面具备更高的灵活性,并且用例不蕴含大量域上下文时,能够应用Prompt Engineering。 当想要在更改不同组件(数据源,嵌入,FM,矢量引擎)方面具备最高水平的灵活性时,应用RAG,这样简略并且能够放弃输入的高质量(前提是你要有数据)。 当心愿更好地管制模型工件及其版本治理时,能够应用微调。尤其是畛域特定术语与数据十分特定时(如法律、生物学等),它也很有用。 当以上都不适宜的时候,能够从头开始训练。既然感觉下面的计划准确性都不够高,所以就须要有足够的估算和工夫来做的更好。 总而言之,抉择正确的生成AI办法须要深刻思考并评估可承受和不可承受的指标。甚至是依据不同的期间抉择不同的计划。 https://avoid.overfit.cn/post/94751a166b9f49509f7e0b449542733f 作者:Vikesh Pandey

August 16, 2023 · 1 min · jiezi

关于深度学习:Segment-Anything-C封装库

代码地址:https://github.com/dinglufe/segment-anything-cpp-wrapper 为 Segment Anything 和 MobileSAM 创立了一个纯C++推理API,运行时不依赖Python。 视频演示 示例程序用法: 在发布页面下载压缩文件,解压缩后间接运行sam_cpp_test或在命令行中运行: # 显示帮忙./sam_cpp_test -h# 示例(更改设施,预处理应用CPU,SAM应用CUDA)# 如果有多个GPU,能够应用CUDA:1、CUDA:2等等。# 也反对全副在CPU或全副在CUDA运行./sam_cpp_test -pre_device="cpu" -sam_device="cuda:0"# 示例(默认选项)./sam_cpp_test -pre_model="models/sam_preprocess.onnx" -sam_model="models/sam_vit_h_4b8939.onnx" -image="images/input.jpg"# 示例(应用MobileSAM)./sam_cpp_test -pre_model="models/mobile_sam_preprocess.onnx" -sam_model="models/mobile_sam.onnx"# 示例(更改图片)./sam_cpp_test -image="images/input2.jpg"C++库 - sam_cpp_lib简略示例: Sam::Parameter param("sam_preprocess.onnx", "sam_vit_h_4b8939.onnx", std::thread::hardware_concurrency());param.providers[0].deviceType = 0; // 预处理应用CPUparam.providers[1].deviceType = 1; // SAM应用CUDASam sam(param);// 应用MobileSAMSam::Parameter param("mobile_sam_preprocess.onnx", "mobile_sam.onnx", std::thread::hardware_concurrency());auto inputSize = sam.getInputSize();cv::Mat image = cv::imread("input.jpg", -1);cv::resize(image, image, inputSize);sam.loadImage(image); // 如果应用CPU,将须要6GB内存,如果应用CUDA,将须要16GB内存// 应用带有提醒的SAM(输出:x、y坐标)cv::Mat mask = sam.getMask({200, 300});cv::imwrite("output.png", mask);// 应用带有多个提醒的SAM(输出:points、negativePoints)cv::Mat mask = sam.getMask(points, negativePoints); // 如果应用CPU,将须要1GB内存/显存cv::imwrite("output-multi.png", mask);// 应用带有框提醒的SAM(输出:points、negativePoints、box)// points和negativePoints能够为空(应用{}作为参数)cv::Rect box{444, 296, 171, 397};cv::Mat mask = sam.getMask(points, negativePoints, box);cv::imwrite("output-box.png", mask);// 主动生成掩码(输出:每边的点数)// 因为在CPU上运行,速度较慢,而且后果不如官网演示好cv::Mat maskAuto = sam.autoSegment({10, 10});cv::imwrite("output-auto.png", maskAuto);

July 13, 2023 · 1 min · jiezi

关于深度学习:MegEngine-使用小技巧如何使用-MegCC-进行模型编译

MegEngine 作为一个训推一体的 AI 框架,为用户提供了模型训练以及部署的能力。然而在部署模型时,因为会存在对于部署的模型计算来说不必要的代码,导致 SDK 体积比拟大。为了解决上述问题,咱们提供了新的工具:AI 编译器 MegCC。 MegCC 有以下个性: 只生成实现输出模型计算的必要的 kernel 代码以及用户指定的 CV 算子,编译失去的二进制文件体积很小。反对 int8 量化模型以及 float16 量化,且生成的 kernel 是精心优化过的,推理性能好。反对平台广。硬件方面,反对 Armv8、Armv7 以及 X86。操作系统方面,反对规范和非标准操作系统。本文将重点解析模型部署中的重要步骤之一-模型编译:编译 MegEngine 模型,生成运行这个模型对应的 Kernel 以及和这些 Kernel 绑定的模型。 编译模型时: MegCC 生成模型应用的内核和用户所需的 CV 内核MegCC 做了多项优化,例如动态内存布局和模型优化MegCC 将上述数据转储到最终模型中模型编译阶段次要应用 mgb-to-tinynn 工具,编译实现之后,会在用户给定的目录上面,生成对应的纯 C 代码的 Kernel 以及对应的模型。为了编译模型,mgb-to-tinynn 工具须要用户提供一个 Json 文件来配置编译选项。 目前 MegCC 只反对 mge 模型作为输出,其余模型格局能够思考转换到 ONNX,而后通过 mgeconvert 进行模型格局转换。编写 Json 文件json模板如下: { "@dump_dir":"[Required], specify the directory where the output kernel and model are stored", "dump_dir":"./batch_dump/", "models":[ { "@model_name":"[Optional], specify the name of the tiny model to be generated", "model_name":"det_nchw44", "@model_path":"[Required], specify the input model path. `mge' and `emod' formats are supported.", "model_path":"path/to/model.mge", "@input_shape_str":"[Optional], modify the input shape", "input_shape_str":"data=(1,1,384,288):data=(1,1,288,384)", "@enable_nchw44":"[Optional], whether to enable nchw44 optimization, default false", "enable_nchw44":true, "@enable_nchw44_dot":"[Optional], whether to enable nchw44 dot optimization for int8, default false", "enable_nchw44_dot":false, "@add_nhwc2nchw_to_input":"[Optional], add nhwc2nchw dimshuffle to input", "add_nhwc2nchw_to_input":false, "@mgb_fuse_kernel":"[Optional], fuse mgb kernel as possible", "mgb_fuse_kernel":false, "@enable_compress_fp16":"[Optional], whether to enable the optimization of using float16 storage to compress the model size", "enable_compress_fp16":false, "@enable_nchw88":"[Optional], whether to enable nchw88 optimization, default false", "enable_nchw88":false, "@enable_ioc16":"[Optional], whether to enable optimization using float16 calculation, default false", "enable_ioc16":false }, { "model_name":"pf_nchw44", "model_path":"path/to/another_model.emod", "input_shape_str":"data=(1,1,112,112)", "enable_nchw44":true } ], "@cv":"[Optional], specify the cv operator used in non-models (e.g. in pre and post processing)", "cv":{ "transpose":["ui8"], "roicopy":["ui8"], "rotate":["ui8"], "flip":["ui8"], "resize_linear":["ui8", "f32"], "warp_affine_replicate_linear":["ui8"], "rgb2bgr":["ui8"], "yuv2bgr_nv21":["ui8"], "rgb2yuv":["ui8"] }}设置模型编译之后 dump 的门路,能够在 mgb-to-tinynn 工具中通过 --dump 参数进行 override。Json 文件中须要指定应用 mgb-to-tinynn 编译的模型名称,模型的门路,以及模型的输出数据,以及一些优化参数等 ...

July 6, 2023 · 2 min · jiezi

关于深度学习:矢量数据库对比和选择指南

矢量数据库是为实现高维矢量数据的高效存储、检索和相似性搜寻而设计的。应用一种称为嵌入的过程,将向量数据表示为一个间断的、有意义的高维向量。 本文将钻研存储/检索向量数据和执行相似性搜寻的实用办法,在咱们深入研究之前,首先先介绍矢量数据库的两个要害性能: 1、执行搜寻的能力 当给定查问向量时,向量数据库能够依据指定的类似度度量(如余弦类似度或欧几里得间隔)检索最类似的向量。这容许应用程序依据它们与给定查问的相似性来查找相干项或数据点。 2、高性能 矢量数据库通常应用索引技术,比方近似最近邻(ANN)算法来减速搜寻过程。这些索引办法旨在升高在高维向量空间中搜寻的计算复杂度,而传统的办法如空间合成因为高维而变得不切实际。 简介矢量数据库畛域当初正在急速的扩大,如何衡量抉择呢,这里我整顿了5个次要的方向: 像Pinecone这样的纯矢量数据库,比方Pinecone也是建设在上面的Faiss之上的全文搜寻数据库,如ElasticSearch,以前是作为搜索引擎当初减少了矢量存储和检索的性能矢量库,如Faiss, Annoy和Hnswlib,还不能作为数据库,只是矢量的解决反对矢量的NoSQL数据库,如MongoDB、Cosmos DB和Cassandra,都是老牌的数据存储,然而退出了矢量的性能反对矢量的SQL数据库,如SingleStoreDB或PostgreSQL,与下面不同的是这些数据库反对SQL语句除了下面提到的五种次要办法外,还有如Vertex AI和Databricks,它们的性能超过了数据库,咱们不进行探讨。 1、纯矢量数据库 纯矢量数据库是专门为存储和检索矢量而设计的。包含Chroma, LanceDB, Marqo, Milvus/ Zilliz, Pinecone, Qdrant, Vald, Vespa, Weaviate等。数据是基于对象或数据点的向量示意来组织和索引。这些向量能够是各种类型数据的数字示意,包含图像、文本文档、音频文件或任何其余模式的结构化或非结构化数据。 长处 利用索引技术进行高效的类似度搜寻大型数据集和高查问工作负载的可伸缩性反对高维数据反对基于HTTP和json的api原生反对向量运算,包含加法,减法,点积,余弦类似度毛病 纯矢量数据库:纯矢量数据库能够存储矢量和一些元数据,然而其余就不行了。对于大多数用例,可能还须要包含诸如实体、属性和层次结构(图)、地位(天文空间)等形容的数据,这就要其余存储的整合。 无限或没有SQL反对:纯矢量数据库通常应用本人的查询语言,这使得很难对矢量和相干信息运行传统的剖析,也很难将矢量和其余数据类型联合起来。 没有残缺的CRUD:纯矢量数据库并不是真正为创立、更新和删除操作而设计的。所以必须首先对数据进行矢量化和索引,这些数据库的重点是获取向量数据,并基于向量类似度查问最近邻,而索引是很耗时的。索引矢量数据计算量大、老本高、耗时长。这使得基本上无奈进行实时的操作。例如,Pinecone的IMI索引(反向多索引,人工神经网络的一种变体)会产生存储开销,并且是计算密集型。它次要是为动态或半静态数据集设计的,如果常常增加、批改或删除向量,基本上不太可能。而Milvus应用的索引被称为产品量化和分层可导航小世界(HNSW),这是一种近似的技术,在搜寻准确性和效率之间进行衡量。它的索引须要配置各种参数,应用不正确的参数抉择可能会影响搜寻后果的品质或导致效率低下。 功能性不强:许多矢量数据库在根本个性上重大落后,包含ACID事务、劫难复原、RBAC、元数据过滤、数据库可管理性、可察看性等。这可能会导致重大的业务问题,要解决这些问题,则须要咱们本人来解决了这会导致开发量大增。 2、全文检索数据库这类数据库包含Elastic/Lucene、OpenSearch和Solr。 长处 高可伸缩性和性能,特地是对于非结构化文本文档丰盛的文本检索性能,如内置的外语反对,可定制的标记器,词干器,进行列表和N-grams大部分基于开源库(Apache Lucene)成熟的且有大型集成生态系统,包含矢量库毛病 没有优化向量搜寻或类似匹配次要设计用于全文搜寻,而不是语义搜寻,因而基于它构建的应用程序将不具备检索加强生成(RAG)和其余的残缺上下文。为了实现语义搜寻性能,这些数据库须要应用其余工具以及大量自定义评分和相干模型进行加强。其余数据格式(图像、音频、视频)的无限利用基本上不反对GPU个别抉择这些库的起因都是因为在以前我的项目上减少新的性能,并且数据量小,对主业务也不会产生多大影响时应用。如果须要从新构架大型项目,不倡议应用。 3、开源矢量库 对于许多开发者来说,Faiss、Annoy和Hnswlib等开源矢量库是一个很好的终点。Faiss是一个用于密集向量相似性搜寻和聚类的库。Annoy (Approximate Nearest Neighbors Oh Yeah)是一个用于人工神经网络搜寻的轻量级库。Hnswlib是一个实现HNSW ANN搜索算法的库。 长处 疾速近邻搜寻为高维构建反对面向人工神经网络的索引构造,包含倒排文件,产品量化和随机投影反对举荐零碎、图像搜寻和自然语言解决的用例SIMD(单指令,多数据)和GPU反对,放慢向量类似度搜寻操作毛病 保护和集成麻烦与准确办法相比,可能会就义搜寻准确性须要本人部署和保护:须要你构建和保护简单的基础设施,为应用程序需要提供足够的CPU、GPU和内存资源。对元数据过滤、SQL、CRUD操作、事务、高可用性、劫难复原以及备份和还原的反对无限或不反对他们之所以称为库(或者包)而不是数据库是因为它们只提供了很少的然而却十分业余性能,如果你想入门学习或者做一个简略的demo,它们都是很好开始,但不倡议间接利用到生产中。 4、反对矢量的NoSQL数据库 这些数据库包含:NoSQL数据库,如MongoDB, Cassandra/ DataStax Astra, CosmosDB和Rockset。还有像像Redis这样的键值数据库和其余非凡用处的数据库,如Neo4j(图数据库) 简直所有这些NoSQL数据库都是最近才增加矢量搜寻扩大而具备矢量能力的,所以如果要是用的话肯定要做好测试。 长处 对于特定的数据模型,NoSQL数据库提供了高性能和可扩展性。Neo4j能够与llm一起用于社交网络或常识图谱。一个具备矢量能力的工夫序列数据库(如kdb)可能可能将矢量数据与金融市场数据联合起来。 毛病 NoSQL数据库的矢量性能是根本的/新生的/未经测试的。往年,许多NoSQL数据库增加了向量反对。比方: 往年5月,Cassandra发表了减少矢量搜寻的打算。 4月,Rockset发表反对根本矢量搜寻, 5月Azure Cosmos DB发表反对MongoDB vCore的矢量搜寻。 DataStax和MongoDB在本月(6月)发表了矢量搜寻性能(都是预览版)! NoSQL数据库的矢量搜寻性能可能差异很大,这取决于所反对的矢量函数、索引办法和硬件加速。而且NoSQL数据库的查问效率原本就不高,再加上矢量的性能,肯定不会快。 我的观点始终没有变,那就是如果简单数据肯定要存到关系型数据库中,像MongoDB这样的当作辅助存储是没问题,但当作次要存储和次要查问那是所谓的自称为“全栈”的前端干进去的事,因为什么都不懂,所以感觉什么都简略。5、反对矢量的SQL数据库这些库与下面的相似,然而它们根本都是关系型数据库并且反对sql查问,例如SingleStoreDB, PostgreSQL, Clickhouse和Kinetica的pgvector/Supabase Vector(测试版)。 ...

July 6, 2023 · 1 min · jiezi

关于深度学习:机器学习洞察-JAX机器学习领域的新面孔

在之前的《机器学习洞察》系列文章中,咱们别离针对于多模态机器学习和分布式训练、无服务器推理进行了解读,本文将为您重点介绍 JAX 的倒退并分析其演变和动机。上面,就让咱们来认识一下 JAX 这一新崛起的深度学习框架—— 亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注/珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库!开源机器学习框架的演进 从这张 GitHub Star 趋势图能够看到,自 2019 年 JAX 呈现到现在放弃着一个向上的抛物线走势。 在考查一个开源机器学习框架时,例如开发者熟知的 PyTorch, TensorFlow, MXNet 等,往往会从反对模型的广泛性、部署的成熟性、生态系统的丰富性来对它做一个评估:包含是否反对 Hugging Face 等支流模型,以及其框架相干钻研论文的数量,还有它可提供复现代码的论文数量等等。 JAX 的源起为什么 Eager 模式是在 TensorFlow 1.4 版本之后引入的?Eager 模式在 TensorFlow 2.0 之后变成了一个默认的执行模式,和原有的 Graph 模式的区别是什么?…回归并理清这些历史问题有助于开发者理解机器学习的演变逻辑,并理解 JAX 是如何汲取之前的教训,帮忙开发者更不便地实际深度学习或机器学习利用。 Eager 模式 V.S. Graph 模式在 TF 引进了 Eager 模式之后,它会采纳更直观的界面,应用天然的 Python 代码和数据结构,而且享受更加便携的调试,在 Eager 模式中能够通过间接调用操作来检查和测试模型,而之前 Graph 这种模式有点相似于 C 和 C++,它的编程是写好程序之后要先进行编译能力运行。 Eager 模式有天然管制的流程,应用 Python 而不是图控制流,以及反对 GPU 和 TPU 的减速。做为开发者,咱们心愿能够主观地对待不同的框架,而不是比拟他们的优劣。值得思考的一个问题是:通过理解 TF 的 Eager 模式对于 Graph 模式的改良,它的改良逻辑和思路在 JAX 中都有身影。 ...

July 5, 2023 · 3 min · jiezi

关于深度学习:WideNet让网络更宽而不是更深

这是新加坡国立大学在2022 aaai公布的一篇论文。WideNet是一种参数无效的框架,它的方向是更宽而不是更深。通过混合专家(MoE)代替前馈网络(FFN),使模型沿宽度缩放。应用独自LN用于转换各种语义示意,而不是共享权重。 混合专家(MoEs)条件计算 对于每个输出,只有一部分暗藏的示意被发送到选定的专家中进行解决。与MoE一样,给定E个可训练的专家,输出用x示意,MoE模型的输入可示意为: 其中e(.)i是第i位专家的非线性变换。g(.)i是可训练路由器g(.)输入的第i个元素。当g(.)为稠密向量时,只会激活局部专家。论文中通过MoE和提出的WideNet,每个专家都是一个FFN层。 路由 为了保障稠密路由g(.),应用TopK()抉择排名靠前的专家: 这里的f(.)为路由线性变换。为高斯噪声。当K<<E时,g(x)的大多数元素为零。 均衡加载 MoE的问题就是要确保每个专家模块都要解决基本相同数量的令牌,所以优化MoE须要解决上面2个次要问题: 1、把太多令牌调配给一个专家 2、单个专家收到的令牌太少 也就是说要保障将令牌平均分配到各个专家模块。 要解决第一个问题,能够减少缓冲区容量B。对于每个专家最多只保留B个令牌。如果超过B=CKNL,则抛弃所有残余的令牌。 然而这个办法也只是解决了太多的问题,依然不能保障所有的专家都能取得足够的令牌进行训练。所以论文采纳了 Switch Transformer的办法,采纳了一个负载平衡的并且可微的损失函数。 上面这个辅助损失会加到训练时的模型总损失中: m是向量。第i个元素是调配给专家i的令牌的分数.mi的计算如下: 其中h(.)是TopK抉择的索引向量。H (xj)i是H (xj)的第i个元素。 Pi是softmax后路由线性变换的第i个元素。 通过以上的损失函数实现平衡调配。当lbalance最小时,m和P都靠近均匀分布。 WideNet 在不同的Transformer块中应用雷同的路由和专家 WideNet采纳跨Transformer块的参数共享来进步参数效率,采纳MoE层来进步模型容量。WideNet在不同的Transformer块中应用雷同的路由器和专家。 LN 目前来说,例如ALBERT应用的是参数共享的办法,在Transformer块之间共享所有权重。 而WideNet中只有多头留神层和FFN(或MoE)层是共享的,这意味着LN的可训练参数在块之间是不同的,也就是说每一层的LN的权重都不一样。 把论文中的的第i个Transformer块能够写成: 这里的LayerNormal(.)为: 和是可训练向量。LN只须要这两个小向量。 损失函数 只管路由的可训练参数在每个Transformer块中被重用,但因为输出示意的不同,调配也会有所不同。所以给定T次具备雷同可训练参数的路由操作,应用以下损失进行优化: 其中=0.01用作超参数,以确保平衡调配。lmain是Transformer的次要指标。例如,在监督图像分类中,次要是穿插熵损失。 后果(CV & NLP)ImageNet-1K (CV) 在ImageNet-1K上,WideNet-H实现了最佳性能,显著优于ViT和ViT- moe模型。 与最强基线相比,WideNet-H在可训练参数较少的状况下优于vitb 1.5%。即便对于最小的模型WideNet-B,它依然能够与可训练参数缩小4倍以上的viti - l和viti - moe - b获得相当的性能。当扩充到WideNet-L时,它曾经超过了所有基线,其中vitb的可训练参数为一半,vitl的参数为0.13倍。 GLUE (NLP) 有了更多的专家,WideNet的体现远远超过ALBERT。 领有4位专家的WideNet均匀比ALBERT高出1.2%。当将专家数量E减少到16时,通过合成嵌入参数化,取得的可训练参数略低于BERT, WideNet在所有四个上游工作上的体现也优于BERT,这显示了更宽而不是更深的参数效率和有效性。 融化钻研 专家越多(可训练参数)导致过拟合,只管专家越多意味着建模能力越强。更少的路由操作时,会有显著的性能降落。 ...

July 5, 2023 · 1 min · jiezi

关于深度学习:LeViTUNettransformer-编码器和CNN解码器的有效整合

levi - unet[2]是一种新的医学图像宰割架构,它应用transformer 作为编码器,这使得它可能更无效地学习近程依赖关系。levi - unet[2]比传统的U-Nets更快,同时依然实现了最先进的宰割性能。 levi - unet[2]在几个具备挑战性的医学图像宰割基准上获得了比其余法更好的性能,包含Synapse多器官宰割数据集(Synapse)和主动心脏诊断挑战数据集(ACDC)。 LeViT-UNet架构levi - unet的编码器应用LeViT块构建,设计用于高效和无效地学习全局特色。解码器是应用卷积块构建的。 编码器从多个分辨率的输出图像中提取特色映射。这些特色映射被上采样,连贯而后通过跳过连贯传递到解码器。跳过连贯容许解码器从编码器拜访高分辨率的部分特色,有助于进步宰割性能。 这种设计使模型可能综合transformer 和cnn的长处。transformer 刚善于学习全局特色,而cnn善于学习部分特色。通过联合这两种办法,levi - unet可能取得良好的宰割性能,同时也绝对高效。 LeViT编码器 编码器采纳LeViT[1],次要由两个局部组成:卷积块和变压器块。卷积块通过对输出图像利用4层3x3卷积(步幅为2)来执行分辨率升高。在提取更多形象特色的同时,这将图像的分辨率升高了一半。而后transformer块获取卷积块的特色映射并学习全局特色。 在编码器的最初阶段将来自卷积块和变压器块的特色连接起来。这使得编码器具备本地和全局个性。部分特色对于辨认图像中的小而具体的物体很重要,而全局特色对于辨认图像的整体构造很重要。通过联合部分和全局特色,编码器可能生成更精确的宰割。 依据输出第一个transformer块的通道数量,开发了3个LeViT编码器:levi -128s, levi -192和levi -384。 CNN解码器 levi - unet的解码器将编码器的特色与跳过连贯连贯在一起。使得解码器可能从编码器拜访高分辨率的部分特色,并采纳级联上采样策略,利用cnn从前一层复原分辨率。它由一系列上采样层组成,每个上采样层前面是两个3x3卷积层,一个BN和一个ReLU层。 试验后果实现细节:数据加强(随机翻转和旋转),优化器(Adam,学习率1e-5,权重衰减1e-4),图像大小224x224,批大小8,epoch 350和400用于Synapse和ACDC数据集 LeViT模型优于现有模型,并且显著快于TransUNet,后者将Transformer块合并到CNN中。 上图显示了TransUNet、UNet、DeepLabv3+和levi -UNet四种不同办法的定性宰割后果。其余三种办法更可能导致器官有余或者适度宰割。例如,胃被TransUNet和DeepLabV3+宰割有余(如上行第三个面板的红色箭头所示),被UNet适度宰割(如第二行第四个面板的红色箭头所示)。 与其余办法相比,论文提出的模型输入绝对平滑,表明在边界预测方面更具劣势。 2篇论文: [1] Benjamin Graham, Alaaeldin El-Nouby, Hugo Touvron, Pierre Stock, Armand Joulin, Herv’e J’egou, Matthijs Douze, LeViT: a Vision Transformer in ConvNet’s Clothing for Faster Inference, 2021 [2] Guoping Xu, Xingrong Wu, Xuan Zhang, Xinwei He, LeViT-UNet: Make Faster Encoders with Transformer for Medical Image Segmentation, 2021 ...

July 4, 2023 · 1 min · jiezi

关于深度学习:多智能体框架MetaGPT给定需求输出产品文档技术设计项目工程

介绍多智能体框架MetaGPT开源了:https://github.com/geekan/MetaGPT 输出一句话需要,它就能够运行一个软件公司,输入产品文档/设计文档/工作/代码REPO它能设计一个相似今日头条的举荐零碎,也能设计一个大模型训练框架注释 在外部,它形象了多个不同角色,包含产品经理、架构师、项目经理、工程师、QA等等。 已有框架如gpt-engineer,只有繁多的工程师形象;而MetaGPT提供了软件公司的残缺形象,每个角色有了更明确的技能,之前很难由工程师实现的市场调研、竞品剖析、架构设计等环节,当初都能够实现了,领有了很好的成果。 比如说当须要设计一个相似今日头条的举荐零碎,它就能够在一分钟左右给咱们一个比拟靠谱的设计,而这只须要¥1。用人来实现这个过程耗时好久,老本昂扬,ROI可能有几千上万倍。 当咱们向外部看时,会发现外部的实现理论就是一个残缺的软件公司,软件公司中由多个智能体合作,能够实现一个绝对简单的软件问题 from metagpt.software_company import SoftwareCompanyfrom metagpt.roles import ProjectManager, ProductManager, Architect, Engineerasync def startup(idea: str, investment: str = '$3.0', n_round: int = 5): """Run a startup. Be a boss.""" company = SoftwareCompany() company.hire([ProductManager(), Architect(), ProjectManager(), Engineer()]) company.invest(investment) company.start_project(idea) await company.run(n_round=n_round)分割咱们更多信息请拜访:https://github.com/geekan/MetaGPT分割邮箱:alexanderwu@fuzhi.ai欢送点赞、珍藏、转发、评论

July 3, 2023 · 1 min · jiezi

关于深度学习:基于声音信号的工业设备异常检测基于声音信号的工业设备异常检测

异样检测次要指标是将异样事件与失常事件辨别开来,因而才有了“异样”一词。本文将介绍基于声音信号的工业机械异样检测,应用的数据集是MIMII声音数据集,该数据集很容易在网上取得。 异样检测的工作能够通过多种形式实现。其中最简略的一种办法是将问题作为监督学习工作,并对失常和异样声音训练分类器。这种办法的问题是异常情况很少,相应地异样类的数据量无限,这样会对分类性能有很大的影响。还有一种无监督学习技术,在不应用标签的状况下就能够进行判断,这种办法应用一种常见的神经网络架构就是自编码器。 自编码器在深度学习中十分风行,并且曾经胜利地利用于许多工作中,例如噪声去除,数据压缩等。 自编码器自编码器架构由三个块形成,即编码器块、隐空间和解码器块,如下图所示。模型学习数据的暗藏外部示意,该数据应用比原始数据更低的维度来形容数据集的信息。 异样检测当初引入了自编码器后,能够利用该模型执行异样检测。首先应用机器在失常状态下运行的声音信号来训练构建的自编码器模型。而后将应用训练好的模型在谬误阈值的帮忙下执行异样检测。 因为咱们这里应用声音数据集,所以须要从原始声音信号中提取特色作。声音的特色提起个别会应用梅尔频谱图。这里应用librosa包实现了如下所示的操作。 def extract_signal_features(signal, sr, n_mels=64, frames=5, n_fft=1024): # Compute a mel-scaled spectrogram: mel_spectrogram = librosa.feature.melspectrogram( y=signal, sr=sr, n_fft=n_fft, n_mels=n_mels ) # Convert to decibel (log scale for amplitude): log_mel_spectrogram = librosa.power_to_db(mel_spectrogram, ref=np.max) # Generate an array of vectors as features for the current signal: features_vector_size = log_mel_spectrogram.shape[1] - frames + 1 # Skips short signals: dims = frames * n_mels if features_vector_size < 1: return np.empty((0, dims), np.float32) # Build N sliding windows (=frames) and concatenate them to build a feature vector: features = np.zeros((features_vector_size, dims), np.float32) for t in range(frames): features[:, n_mels * t: n_mels * (t + 1)] = log_mel_spectrogram[:, t:t + features_vector_size].T return features一旦提取了特色并创立了由失常声音组成的数据集,下一步就是设计主动编码器模型架构。 ...

July 3, 2023 · 2 min · jiezi

关于深度学习:将ChatGPT变成Midjourney提示生成器

曾经有人总结过能够让ChatGPT作为Midjourney图像生成的模板。在本文中,咱们将展现如何依据集体用例创立这些提醒,这能够让ChatGPT生成的提醒可控性更高。 抉择提醒模板Midjourney的模板结构性很强,所以咱们这里应用一下的构造: 让ChatGPT为咱们工作为了让ChatGPT工作,咱们还要创立ChatGPT的提醒,这样能力让它帮咱们生成Midjourney的提醒。 ChatGPT的提醒的作用是让ChatGPT迭代咱们的想法并创立与之相干的图像提醒。咱们只对ChatGPT提出咱们的想法和要求,让ChatGPT为咱们工作。 一个牢靠而无效的ChatGPT提示符有两个次要成分:指令和上下文 首先咱们从上下文开始:咱们能够简略地将咱们的要求变为前缀、场景和后缀: #这是Midjourney的命令 /imagine prompt: PREFIX, SCENE, SUFFIX PREFIX defines the image's medium and style SCENE defines the content SUFFIX modulates PREFIX and SCENE在下一步中,就是要将咱们将上下文与ChatGPT如何解决信息的指令联合起来: This is the basic prompt anatomy for image generation with Midjourney: /imagine prompt: PREFIX, SCENE, SUFFIX PREFIX defines the image's medium and style SCENE defines the content SUFFIX modulates PREFIX and SCENE Create 10 prompts that illustrate the theme "father-son relationship"下面和上面的限定就是咱们对ChatGPT的要求,ChatGPT会依据咱们的要求来返回后果,大略是这样的: ...

July 1, 2023 · 3 min · jiezi

关于深度学习:用华为云低代码Astro-Zero10分钟搭建-图书馆数据可视化大屏-应用

作者:福州司马懿原文链接:应用Astro Zero带你从零开始,10分钟搭建一套 “图书馆数据可视化大屏” 利用【华为云Astro低代码体验季】-云社区-华为云 产品介绍点击下方链接进入工具页:https://auth.huaweicloud.com/authui/login.html?locale=zh-cn&s... 最新版的Astro Zero界面如下 创立大屏我的项目切换到“利用开发”选项卡,鼠标挪动到“业务大屏”处,点击“开始创立” 这时候会让你抉择“PC大屏”还是“手机大屏”(绝大部分都是构建PC端大屏利用,很少有手机的),因而咱们这里抉择PC端,而后输出利用名“图书馆数据可视化大屏” 新建利用创立好我的项目后,因为还没有任何界面,Astro Zero会提醒你“新建页面” 点击“新建页面”按钮后,会进去好多个模板供你筛选  (绝大多数状况下,用这些模板进行革新的我的项目,都能合乎你或者你们领导的需要) 咱们应用模板进行创立,点击左侧模板,右侧会呈现该模板的放大效果图(本例基于“用户剖析”模板进行创立) 点击位于地方底部的“应用此模板按钮”,输出模板名字“图书馆数据可视化大屏” 页面布局快捷键 Ctrl + A,能够看到所有应用到的控件名称 批改题目在“文本编辑”控件上点击“配置”按钮,而后批改文本内容为“图书馆数据可视化大屏” 批改字体大小为48(这样像个题目),而后扭转字体控件宽高和地位,让它们程度居中 批改后的效果图如下 增加工夫显示聚焦到“翻牌器”,应用Delete快捷键删除,换成“工夫翻盘器”控件 而后调整工夫显示的大小即可 批改卡片题目点击卡片上的“配置”图标,而后批改文本内容,顺次批改为 累计青年读者累计中年读者累计老年读者 最终成果如下图 各类书籍借阅状况(雷达图)鼠标挪动到该控件上,点击“配置”按钮,将“多组单数据模板”改为“单组多数据模板” 点击“数据源”图标能够批改数据源 其中dataValue对应各坐标轴上的值;dataX存储的是坐标轴信息。将数据批改为 { "dataValue": [{ "name": "男性", "value": [ [ 83, 54, 34, 64, 24, 63, 83, 92, 34 ] ] }, { "name": "女性", "value": [ [ 4, 92, 75, 82, 52, 93, 33, 54, 34 ] ] } ], "dataX": [ "少儿读物", "文史类", "艺术类", "摄影", "IT", "修建", "医学", "厨艺", "法律" ]}批改后如下图 ...

June 28, 2023 · 2 min · jiezi

关于深度学习:实现-AI-大语言模型的关键在于超高性能存储能力

最近 IT 剖析畛域的外围议题为大语言模型(LLM)机器学习和生成式AI(GAI)。去年11月底 ChatGPT 聊天机器人的公布在寰球掀起了微小的波澜,一周内用户数达到 100 万,相似的根底模型利用如谷歌的 Bard 和亚马逊的 Titan 也同样掀起了热潮。 生成式 AI 具备了解文本申请并输入无效的答案的能力,无望利用于整个企业和公共部门的 IT 畛域,从而实现更好的搜寻和剖析品质。将来十年,AI 的广泛应用有可能取代或者进步各行各业常识工作者的生产力,诸如客服核心、外部销售人员、会计师、律师和金融分析师等职业。生成式 AI 热度的疾速升温将对整个 IT 行业产生影响,Forrester,Gartner 等分析师和钻研机构正在钻研和预测其后续冲击力。局部数据存储行业将凭借生成式 AI 获取微小的潜在销售收益。近日,在 William Blair 公布的《生成式 AI:自动化的新前沿》报告中,基于生成式 AI 的基础设施提供了全面的剖析,具体倡议如下: 硬件局部DRAM :运行大语言模型用于训练和推理的 CPU/GPU 服务器需要日益凸显,包含用于 GPU 的高带宽内存 HBM。 PCIe :PCIe 4 和 5.0 组件供应商应该为需要激增的持续性做好筹备。 CXL :大语言模型将为 CXL 2.0 内存池提供强有力的反对,其中包含 CXL 硬件供应商,这意味着 DRAM 扩展器、CXL 交换机和其余组件厂商都将从中获益。 NAND 和 SSD:需要必将越来越多,关键点集中在 NVMe 拜访,PCIe 4.0 和 5.0 连贯以及性能和容量的组合。这表明 QLC 和高层数 TLC NAND 也将因而受害,所有 NAND 晶圆厂和 SSD 供应商都应该关注这方面的市场需求。 ...

June 27, 2023 · 1 min · jiezi

关于深度学习:10个图像处理的Python库

在这篇文章中,咱们将整顿计算机视觉我的项目中罕用的Python库,如果你想进入计算机视觉畛域,能够先理解下本文介绍的库,这会对你的工作很有帮忙。 1、PIL/PillowPillow是一个通用且用户敌对的Python库,提供了丰盛的函数集和对各种图像格式的反对,使其成为开发人员在其我的项目中解决图像的必要工具。 它反对关上、操作和保留许多不同的图像文件格式,用户还能够对图像执行基本操作,如裁剪、调整大小、旋转和更改图像色彩。 Pillow还能够让你在图像上增加文字和形态,提供一种简略的形式来正文你的视觉效果。 这个库也是torchvison应用的图像处理库,它功能强大并且应用很简略举荐应用。 2、OpenCV (Open Source Computer Vision Library)OpenCV无疑是最风行的图像处理库之一。它最后由英特尔公司开发,已被广泛应用于计算机视觉畛域。它反对有数与计算机视觉和机器学习相干的算法,这有助于了解视觉数据并做出有见地的决策。OpenCV还针对实时利用进行了高度优化,使其成为视频监控,主动驾驶汽车和先进机器人的绝佳抉择。 OpenCV 性能最多,并且在处理速度方面要比Pillow快,所以在对于速度有要求的状况下举荐应用它。 另外一点就是OpenCV 读取的通道是BGR ,而其余的库都是RGB 的,所以如果混用的话须要转换,还记得这个代码吧: cv2.cvtColor(image, cv2.COLOR_BGR2RGB) 3、MahotasMahotas包含一组用于图像处理和计算机视觉的函数,这些函数次要是在高性能的c++中实现的,并且应用多线程,使其速度十分快。 它还包含各种状态操作,如侵蚀,扩张和连贯成分剖析。这些操作是图像二值化、去噪和形态剖析等工作的根底。这些性能OpenCV 都有,然而Mahotas更专一于图像的图像处理,而并不像OpenCV那样什么都有,所以,Mahotas的API更简略、也更敌对。并且学习起来也比OpenCV简略,然而速度方面却差不多。 4、Scikit-ImageScikit-Image建设在Scikit-Learn机器学习库的根底上的扩大性能,包含更高级的图像处理能力。所以如果曾经在应用Scikit进行ML,那么能够思考应用这个库。 它提供了一套残缺的图像处理算法。它反对图像宰割、几何变换、色调空间操作和过滤。 与许多其余库不同,Scikit-Image反对多维图像,这对于波及视频或医学成像的工作是很有帮忙的。Scikit-Image与其余Python迷信库(如NumPy和SciPy)无缝集成。 5、TensorFlow ImageTensorFlow Image是TensorFlow的一个模块,它反对图像解码、编码、裁剪、调整大小和转换。还能够利用TensorFlow的GPU反对,为更大的数据集提供更快的图像处理。 也就是说如果你应用TF,那么能够应用它来作为训练Pipline的一部分。 6、PyTorch Vision与TensorFlow Image相似,PyTorch Vision是PyTorch生态系统的一部分,次要用于与图像处理相干的机器学习工作。 7、SimpleCVSimpleCV建设在OpenCV、PIL(Python Imaging Library)和NumPy之上,为用户提供了一组简略而弱小的函数和工具,用于加载、解决和剖析图像。 SimpleCV的设计指标是使计算机视觉技术对于初学者和非专业人士也能更加牢靠和易于应用。它提供了一个简略的API,暗藏了底层的复杂性,使用户可能疾速实现常见的计算机视觉工作。 然而目前官网保护也较少,所以这个我的项目很有可能会夭折。 8、ImageioImageio是一个用于读取和写入多种图像格式的Python库。它提供了一个简略而弱小的API,使用户可能轻松地解决图像和视频数据。Imageio提供了一个通用的数据模型,使用户可能以多种形式存储图像数据。它能够应用NumPy数组、PIL图像对象或简略的Python字节字符串来示意图像数据。并且它提供了逐帧读取和写入视频文件的性能,这对于解决视频流或从视频中提取帧十分有用。 9、albumentationsAlbumentations是一个用于图像增强和数据加强的Python库。它专一于在机器学习和计算机视觉工作中提供高效、灵便和易于应用的数据加强办法。 我始终把这个库当成torchvision的代替,因为它不仅有很多数据加强办法,还可能间接解决掩码bbox的加强。 10、timmtimm是一个PyTorch模型库,尽管可能和图像处理没有关系,然而它提供了宽泛的预训练模型和计算机视觉模型的汇合,这对咱们来进行深度学习的时候是十分有帮忙的。当初它曾经是huggingface的子项目了,这意味着这个我的项目有了资金的反对,所以不会放心倒退的问题。 总结无论你是刚开始根本的图像处理还是摸索高级机器学习模型,这些库都为宽泛的图像处理工作提供了必要的工具。 https://avoid.overfit.cn/post/8912eb7ad4d04f359bbf802d62248bfa

June 27, 2023 · 1 min · jiezi

关于深度学习:强化学习从基础到进阶常见问题和面试必知必答6演员评论员算法异步A2C与生成对抗网络的联系等详解

强化学习从根底到进阶-常见问题和面试必知必答[6]:演员-评论员算法(advantage actor-critic,A2C),异步A2C、与生成反抗网络的分割等详解1.外围词汇劣势演员-评论员(advantage actor-critic,A2C)算法:一种改良的演员-评论员(actor-critic)算法。异步劣势演员-评论员(asynchronous advantage actor-critic,A3C)算法:一种改良的演员-评论员算法,通过异步的操作,实现强化学习模型训练的减速。门路衍生策略梯度(pathwise derivative policy gradient):一种应用Q学习来求解间断动作的算法,也是一种演员-评论员算法。其会对演员提供价值最大的动作,而不仅仅是提供某一个动作的好坏水平。2.常见问题汇总2.1 残缺的劣势演员-评论员算法的工作流程是怎么的?在传统的办法中,咱们有一个策略 $\pi$ 以及一个初始的演员与环境交互、收集数据以及反馈。通过每一步失去的反馈,咱们进一步更新咱们的策略 $\pi$ ,通常咱们应用的更新形式是策略梯度。然而对于演员-评论员算法,咱们不是间接应用每一步失去的数据和反馈进行策略 $\pi$ 的更新,而是应用这些数据和反馈进行价值函数的预计,这里咱们通常应用的算法包含时序差分和蒙特卡洛等算法以及基于它们的优化算法。接下来咱们再基于价值函数来更新策略,公式如下: $$\nabla \bar{R}_{\theta} \approx \frac{1}{N} \sum_{n=1}^{N} \sum_{t=1}^{T_{n}}\left(r_{t}^{n}+V_{\pi}\left(s_{t+1}^{n}\right)-V_{\pi}\left(s_{t}^{n}\right)\right) \nabla \log p_{\theta}\left(a_{t}^{n} \mid s_{t}^{n}\right)$$ 其中 $r_{t}^{n}+V_{\pi}\left(s_{t+1}^{n}\right)-V_{\pi}\left(s_{t}^{n}\right)$ 为劣势函数。咱们通过以上办法失去新的策略后,再与环境交互,而后反复预估价值函数的操作,用价值函数来更新咱们的策略。以上的整个办法咱们称为劣势演员-评论员算法。 2.2 在实现演员-评论员算法的时候有哪些技巧?(1)预估两个网络:一个是价值网络;另外一个是策略网络。价值网络的输出是一个状态,输入是一个标签;策略网络的输出是一个状态,输入是一个动作的散布。这两个网络中,演员和评论员的输出都是状态,所以它们后面几层是能够共享的。例如,玩雅达利游戏时,输出都是图片。输出的图片都非常复杂,且比拟大,通常后期咱们都会用一些卷积神经网络来解决这些图片,把图片形象成深层次的特色,这些网络对演员与评论员网络来说是能够共用的。咱们能够让演员与评论员的后面几层共用同一组参数,这一组参数可能是卷积神经网络中的参数。先把输出的像素变成比拟高维度的特色信息,而后输出演员网络决定要采取什么样的动作,评论员网络应用价值函数计算冀望处分。 (2)摸索机制:其目标是对策略 $\pi$ 的输入散布进行限度,从而使得散布的熵不要太小,即心愿不同的动作被采纳的概率均匀一些。这样在测试的时候,智能体才会多尝试各种不同的动作,才会对环境进行充沛摸索,从而失去比拟好的后果。 2.3 异步劣势演员-评论员算法在训练时有很多的过程进行异步的工作,最初再将他们所取得的“后果”汇合到一起。那么其具体是如何运作的呢?异步劣势演员-评论员算法,即算法一开始会有一个全局网络,其蕴含策略局部和价值局部。假如它的参数是 $\theta_1$,假如对于每一个演员都用一个CPU训练,每一个演员工作前都会将全局网络的参数复制进来。而后演员与环境进行交互,每一个演员与环境交互后,都会计算出梯度并且更新全局网络的参数。这里要留神的是,所有的演员都是并行运行的。所以每个演员都是在全局网络复制了参数当前,执行完再把参数传回去。所以当第一个演员执行完想要把参数传回去的时候,原本它要的参数是 $\theta_1$,等它把梯度传回去的时候,可能原来的参数曾经被笼罩,变成 $\theta_2$ 了。 2.4 比照经典的Q学习算法,门路衍生策略梯度有哪些改良之处?(1)把 $Q(s,a)$ 换成了 $\pi$。经典的Q学习算法是用 $Q(s,a)$ 来决定在状态 $s_t$ 产生哪一个动作 $a_{t}$ ,门路衍生策略梯度是间接用 $\pi$ 来决定。面对前者,咱们须要解决最大值的问题,当初的门路衍生策略梯度间接训练了一个演员网络。其输出状态 $s_t$ 就会通知咱们应该采取哪一个动作 $a_{t}$。综上,经典的Q学习算法输出状态 $s_t$,采取哪一个动作 $a_t$ 是 $Q(s,a)$ 决定的,在门路衍生策略梯度外面,咱们会间接用 $\pi$ 来决定。 (2)经典的Q学习算法计算在 $s_{i+1}$ 下对应的策略采取的动作 $a$ 失去的Q值,咱们会采取让 $\hat{Q}$ 最大的动作 $a$。当初的门路衍生策略梯度因为咱们不须要再求解决最大化的问题,所以咱们间接把状态 $s_{i+1}$ 代入策略 $\pi$ 中,就会失去在状态 $s_{i+1}$ 下,哪一个动作会带给咱们最大的Q值,就执行这个动作。在Q函数中,有两个Q网络,一个是真正的Q网络,另外一个是指标Q网络。实际上在执行时,也会有两个演员网络,一个真正要学习的演员网络 $\pi$ 和一个指标演员网络 $\hat{\pi}$ 。 ...

June 26, 2023 · 1 min · jiezi

关于深度学习:本地部署开源大模型的完整教程LangChain-Streamlit-Llama

在过来的几个月里,大型语言模型(llm)取得了极大的关注,这些模型发明了令人兴奋的前景,特地是对于从事聊天机器人、集体助理和内容创作的开发人员。 大型语言模型(llm)是指可能生成与人类语言十分类似的文本并以天然形式了解提醒的机器学习模型。这些模型应用宽泛的数据集进行训练,这些数据集包含书籍、文章、网站和其余起源。通过剖析数据中的统计模式,LLM能够预测给定输出后最可能呈现的单词或短语。 以上是目前的LLM的一个全景图。 在本文中,我将演示如何利用LLaMA 7b和Langchain从头开始创立本人的Document Assistant。 背景常识1、LangChain LangChain是一个令人印象粗浅且收费的框架,它彻底改变了广泛应用的开发过程,包含聊天机器人、生成式问答(GQA)和摘要。通过将来自多个模块的组件无缝链接,LangChain可能应用大部分的llm来创立应用程序。 2、LLaMA LLaMA是由Facebook的母公司Meta AI设计的一个新的大型语言模型。LLaMA领有70亿到650亿个参数的模型汇合,是目前最全面的语言模型之一。2023年2月24日,Meta向公众公布了LLaMA模型,展现了他们对凋谢迷信的奉献精神(尽管咱们当初用的都是泄露版)。 3、什么是GGML GGML是一个用于机器学习的张量库,它只是一个c++库,容许你在CPU或CPU + GPU上运行llm。它定义了用于散发大型语言模型(llm)的二进制格局。GGML应用了一种称为量化的技术,该技术容许大型语言模型在消费者硬件上运行。 4、量化 咱们都晓得,模型的权重是浮点数。就像示意大整数(例如1000)比示意小整数(例如1)须要更多的空间一样,示意高精度浮点数(例如0.0001)比示意低精度浮点数(例如0.1)须要更多的空间。量化大型语言模型的过程波及升高示意权重的精度,以缩小应用模型所需的资源。GGML反对许多不同的量化策略(例如4位、5位和8位量化),每种策略在效率和性能之间提供不同的衡量。 上面是量化后模型大小的比照: 5、Streamlit Streamlit 是一个用于构建数据迷信和机器学习应用程序的开源 Python 库。它旨在使开发人员可能以简略疾速的形式构建交互式应用程序,无需繁琐的前端开发。Streamlit 提供了一组简略的 API,可用于创立具备数据摸索、可视化和交互性能的应用程序。只须要通过简略的 Python 脚本就能够创立一个 Web 应用程序。能够利用 Streamlit 的丰盛组件库来构建用户界面,例如文本框、滑块、下拉菜单和按钮,以及可视化组件,例如图表和地图。 1、建设虚拟环境和我的项目构造设置虚拟环境为运行应用程序提供了一个受控和隔离的环境,确保其依赖关系与其余零碎范畴的包拆散。这种办法简化了依赖关系的治理,并有助于保护不同环境之间的一致性。 而后就是创立咱们的我的项目,一个好的构造会减速咱们的开发,如下图所示 在models的文件夹中,咱们要存储下载的llm,setup_env.bat将从pipfile中装置所有依赖项。而run_app.bat则是间接运行咱们的app。(以上2个文件都是windows环境下的脚本) 2、在本地机器上装置LLaMA为了无效地应用模型,必须思考内存和磁盘。因为模型须要齐全加载到内存中,因而不仅须要有足够的磁盘空间来存储它们,还须要足够的RAM在执行期间加载它们。比方65B模型,即便在量化之后,也须要40gb的RAM。 所以为了在本地运行,咱们将应用最小版本的LLaMA,也就是LLaMA 7B。尽管它是最小的版本,然而LLaMA 7B也提供了很好的语言解决能力,咱们可能高效地实现预期的后果。 为了在本地CPU上执行LLM,咱们应用GGML格局的本地模型。这里间接从Hugging Face Models存储库间接下载bin文件,而后将文件挪动到根目录下的models目录中。 下面咱们曾经是说了,GGML是c++库,所以还须要应用Python调用C++的接口,好在这一步很简略,咱们将应用llama-cpp-python,这是LLaMA .cpp的Python绑定,它在纯C/ c++中充当LLaMA模型的推理。cpp的次要指标是应用4位整数量化来运行LLaMA模型。这样能够能够无效地利用LLaMA模型,充分利用C/ c++的速度劣势和4位整数量化的劣势。 llama.cpp还反对很多其余模型,下图是列表: 筹备好GGML模型和所有依赖项之后,就能够开始LangChain进行集成了。然而在开始之前,咱们还须要做一下测试,保障咱们的LLaMA在本地使可用的: 看样子没有任何问题,并且程序是齐全脱机并以齐全随机的形式(能够应用温度超参数)运行的。 3、LangChain集成LLM当初咱们能够利用LangChain框架来开发应用llm的应用程序。 为了提供与llm的无缝交互,LangChain提供了几个类和函数,能够应用提醒模板轻松构建和应用提醒。它蕴含一个文本字符串模板,能够承受来自最终用户的一组参数并生成提示符。让咱们先看几个例子。 没有输出参数的模板 多个参数的模板 上面咱们能够应用LangChain进行集成了 目前咱们应用了独自的组件,通过提醒模板对其进行格式化,而后应用llm,在llm中传递这些参数以生成答案。对于简略的应用程序,独自应用LLM是能够的,然而更简单的应用程序须要将LLM链接起来——要么互相链接,要么与其余组件链接。 LangChain为这种链接应用程序提供了Chain接口。咱们能够将Chain定义为对组件的调用序列,其中能够蕴含其余Chain。Chain容许咱们将多个组件组合在一起,以创立一个繁多的、统一的应用程序。例如,能够创立一个Chain,它承受用户输出,应用Prompt Template对其进行格式化,而后将格式化后的响应传递给LLM。咱们能够通过将多个Chain组合在一起,或者与其余组件组合在一起,来构建更简单的Chain。这其实就和咱们个别数据处理中的pipeline是相似的。 创立一个非常简单的Chain,它将承受用户输出,用它格式化提示符,而后应用咱们曾经创立的上述各个组件将其发送到LLM。 4、生成嵌入和向量库在许多LLM应用程序中,须要特定于用户的数据,这些数据不包含在模型的训练集中。LangChain提供了加载、转换、存储和查问数据的根本组件,咱们这里能够间接应用 ...

June 26, 2023 · 2 min · jiezi

关于深度学习:深度学习弹性数据流水线系统-GoldMiner大幅提升任务和集群效率

第一板块:开篇近日,阿里云机器学习平台PAI和北京大学杨智老师团队单干的论文《GoldMiner: Elastic Scaling of Training Data Pre-Processing Pipelines for Deep Learning》被数据库畛域顶会SIGMOD 2023接管。 GoldMiner察看到深度学习工作中的数据预处理流水线具备无状态的特点,具备外在的资源弹性。基于此,GoldMiner将数据预处理流水线和模型训练局部拆散执行,通过主动计算图剖析来辨认无状态的数据预处理计算,并对其实现高效的并行减速和弹性伸缩,从而缓解数据预处理瓶颈,晋升训练性能。通过与集群调度器的协同设计,GoldMiner进一步施展了数据预处理计算的资源弹性,大幅晋升集群调度效率。试验显示GoldMiner可晋升训练性能达12.1倍,晋升GPU集群利用率达2.5倍。 第二板块:背景近年来,随着GPU加速器的一直进化,以及各类软件优化技术的层出不穷,深度学习训练的计算效率正一直被晋升到新的档次。但与此同时,深度学习实质上仍是一种多阶段、多资源的工作类型:不仅须要在GPU上进行大量的训练计算,同时往往也须要CPU端的数据预处理流水线(如数据加强、特色转换等),这类预处理计算是训练出高质量模型的必要步骤。因而,GPU端训练性能的晋升也带来了更大的数据预处理压力,使后者成为新的性能瓶颈。 咱们察看到数据预处理瓶颈对工作训练性能和集群资源利用效率都有粗浅的影响。一方面,对于单个训练任务而言,数据预处理瓶颈意味着训练性能的受损。咱们在一台装备8块V100 GPU和64个vCPU核的虚拟机上应用一块GPU和不同的vCPU数进行了性能测试,察看不同模型须要多少vCPU能力达到最优性能。结果显示(下图)大部分模型都须要超过8个vCPU(即一块GPU均匀能失去的vCPU数)能力达到最优性能,甚至局部模型须要消耗掉整机八卡的64个vCPU。这就意味着这类模型在共享集群中很可能无奈失去足够的CPU资源,导致数据预处理局部性能降落,最终影响训练效率(下图右侧纵轴示意仅应用8个vCPU时能达到的绝对性能)。 而另一方面,上述的问题在云上场景中会更为严重,影响共享集群中的资源分配效率。目前企业个别都会构建或购买共享GPU集群来运行训练任务,在这种GPU集群中GPU利用率至关重要。而用户为了防止本人工作CPU有余,可能被动进步工作的CPU-GPU配比,然而这些用户自定义的CPU-GPU配比很容易导致集群资源碎片。比方某台机器上因为跑了一些CPU-GPU配比拟高的工作,最终CPU比GPU先被调配完,这样机器上闲暇的GPU会无奈被调配进来,不仅导致低廉的GPU资源被节约,也会进步工作的等待时间。咱们在阿里巴巴外部GPU集群中的察看发现有近40%的工作等待时间节约在了这种“GPU足够但CPU有余”的状况上。 解决上述的两方面问题的一种伎俩是将GPU端训练和CPU端数据预处理拆散,使这两局部计算的资源分配不用捆绑在同一台机器上。这样当机器CPU资源有余时能够应用其余机器的资源,一来能够为单个任务分配更多的CPU资源达到减速成果,同时也缓解了碎片GPU无奈调配的问题。实际上这一思路并不是首次被提出,然而要用这种形式进步工作和集群效率仍存在一系列技术挑战。 第三板块:挑战只管已有一些计划(如tf.data service、PyTorch DPP)反对数据预处理计算的拆散执行,现有技术仍有以下几方面挑战须要解决: 计算切分效率:现有技术简略地通过深度学习框架提供的Dataset/DataLoader API,将这类API外部封装的计算作为数据预处理计算拆散进来。然而咱们发现即使在这类API之外,仍可能存在一部分计算是能够拆散执行的,简略的切分形式错失了这部分并行减速的机会。用户代码侵入性:tf.data service [1]、PyTorch DPP [2]等技术要达到数据预处理的拆散执行,均须要用户重构这部分代码逻辑,有较大的代码侵入性。咱们心愿达到以用户通明的形式实现这一拆散的成果。与集群调度的联合:在与训练拆散后,数据预处理计算实际上蕴含了外在的资源弹性,而现有技术均没有在集群调度的档次开掘这部分弹性,以晋升集群整体资源利用效率。第四板块:破局GoldMiner是一个主动、弹性的数据预处理服务。如图所示,GoldMiner应用data worker(DW)和training worker(TW)两类角色来别离进行数据预处理和训练两局部计算。GoldMiner可从原始用户代码中自动化地辨认出data worker局部的计算(也蕴含没有被封装在Dataset/DataLoader API中的计算)。同时GoldMiner实现了数据预处理计算的弹性伸缩,并通过与集群调度器的协同设计,进一步晋升了集群效率。 GoldMiner实现这一成果的关键在于利用了数据预处理计算的无状态性。这里的无状态是指数据预处理不依赖于模型参数,而模型参数须要在训练的每一次迭代中被重复更新,因而不依赖于模型参数的计算即可与训练局部异步化地执行。咱们晓得深度学习计算能够被表白为数据流图(DFG),GoldMiner通过对于用户DFG的剖析,主动找出其中无状态的子图。下图是一个典型举荐模型的DFG,不同于间接仅切分Dataset的做法(图中的Simple partition),GoldMiner通过辨认与模型参数的依赖关系,将切分范畴主动扩大到后续的一些特色转换操作(Expected partition)。试验显示通过这一拓展咱们能够将data worker并行减速的成果再晋升1.6倍。 基于自动化的图切分,GoldMiner进一步实现了data worker局部子图在多个data workers间的并行减速以及data workers和training workers间的数据传递。利用data worker的无状态性,这一分布式执行实现了data workers数量的动静伸缩,从而在集群闲暇资源一直变动的过程中更高效地利用资源。 为了充分发挥data worker的资源弹性,GoldMiner提供了一个data worker调度器,调度器会在工作和集群两个档次进行动静资源调整。对于每个工作,GoldMiner调整其DW和TW的尺寸以搜寻到一个扩大效率最高的配置;在集群维度上,GoldMiner在不同工作之间动静调整data workers数量调配,以优化某些全局调度指标(如最小化工作实现工夫)。这两层调整利用了一个对立的性能指标,即在DW和TW之间传递数据的队列,该队列的状态体现了DW和TW的相对速度,以及减少DW的潜在收益。在一个64-GPU的集群中进行的试验显示GoldMiner调度器能够缩短均匀工作实现工夫达2.5倍,晋升GPU分配率达2.1倍。 第五板块:利用咱们此前曾经在客户的实在举荐模型上评测了GoldMiner的成果,结果显示GoldMiner可为用户模型减速1.43倍,并可削减13%的训练老本。目前在落地部署中。 同时咱们也开发了PyTorch版本实现,并行将与PAI-DLC集成,向用户提供数据预处理减速的能力。 第六板块:论文名字:GoldMiner: Elastic Scaling of Training Data Pre-Processing Pipelines for Deep Learning论文作者:赵汉宇,杨智,程羽,田超,任仕儒,肖文聪,袁满,陈浪石,刘恺博,张杨,李永,林伟论文pdf链接:https://dl.acm.org/doi/pdf/10.1145/3589773参考文献: [1] Andrew Audibert, Yang Chen, Dan Graur, Ana Klimovic, Jiri Simsa, Chandramohan A. Thekkath. A Case for Disaggregation of ML Data Processing. https://arxiv.org/abs/2210.14826[2] Mark Zhao, Niket Agarwal, Aarti Basant, Bugra Gedik, Satadru Pan, Mustafa Ozdal, Rakesh Komuravelli, Jerry Pan, Tianshu Bao, Haowei Lu, Sundaram Narayanan, Jack Langman, Kevin Wilfong, Harsha Rastogi, Carole-Jean Wu, Christos Kozyrakis, Parik Pol. Understanding Data Storage and Ingestion for Large-Scale Deep Recommendation Model Training. ISCA'22 ...

June 25, 2023 · 1 min · jiezi

关于深度学习:MaskFormer将语义分割和实例分割作为同一任务进行训练

指标检测和实例宰割是计算机视觉的根本工作,在从主动驾驶到医学成像的有数利用中施展着关键作用。指标检测的传统办法中通常利用边界框技术进行对象定位,而后利用逐像素分类为这些本地化实例调配类。然而当解决同一类的重叠对象时,或者在每个图像的对象数量不同的状况下,这些办法通常会呈现问题。 诸如Faster R-CNN、Mask R-CNN等经典办法尽管十分无效,但因为其固有的固定大小输入空间,它们通常预测每个图像的边界框和类的固定数量,这可能与图像中实例的理论数量不匹配,特地是当不同图像的实例数量不同时。并且它们可能无奈充沛解决雷同类的对象重叠的状况,从而导致分类不统一。 本文中将介绍Facebook AI Research在21年公布的一种超过这些限度的实例宰割办法MaskFormer。能够看到从那时候开始,FB就对Mask和Transformer进行整合钻研了。 1、逐像素分类和掩码分类的区别逐像素分类 该办法指的是为图像中的每个像素调配一个类标签。在这种状况下,每个像素都被独立解决,模型依据该像素地位的输出特色预测该像素属于哪个类。对于边界清晰、定义明确的对象,逐像素分类能够十分精确。然而当感兴趣的对象具备简单的形态,互相重叠或位于芜杂的背景中时,它可能会遇到困难,这能够解释为这些模型偏向于首先依据其空间边界来查看对象。 思考一幅描述多辆重叠汽车的图像。传统的实例宰割模型(如逐像素模型)可能难以应答如下所示的状况。如果汽车重叠,这些模型可能会为整个重叠的汽车创立一个繁多的并且是合并后的掩码。可能会把这个场景误认为是一辆形态奇怪的大型汽车,而不是多辆不同的汽车。 掩码分类 掩码分类(在MaskFormer中应用)采纳了不同的办法。掩码分类模型不是独立对每个像素进行分类,而是为图像中的每个对象实例预测特定于类的掩码。这个掩码实质上是一个二值图像,示意哪些像素属于对象实例,哪些不属于。换句话说,单个遮罩代表整个对象,而不仅仅是单个像素。 在前一个例子中,应用掩码分类使咱们可能辨认图像中有多个“car”类实例,并为每个实例调配一个惟一的掩码,即便它们重叠。每辆车都被视为一个独立的实例,并被赋予本人独特的面具,以放弃其与其余汽车离开的身份。 应用掩码分类/宰割的模型示例:掩码R-CNN, DETR, Max-deeplab.. DETRDETR的外围是一个被称为Transformer的弱小机制,它容许模型克服传统逐像素和掩码分类办法的一些要害限度。 在传统的掩模分类办法中,如果两辆车重叠,可能难以将它们辨别为不同的实体。而DETR为这类问题提供了一个优雅的解决方案。DETR不是为每辆车生成掩码,而是预测一组固定的边界框和相干的类概率。这种“汇合预测”办法容许DETR以惊人的效率解决波及重叠对象的简单场景。 尽管DETR彻底改变了边界框预测,但它并没有间接提供宰割掩码——这是许多应用程序中至关重要的细节。这时就呈现了MaskFormer:它扩大了DETR的鲁棒集预测机制,为每个检测到的对象创立特定于类的掩码。所以MaskFormer建设在DETR的劣势之上,并加强了生成高质量宰割掩码的能力。 比方在下面提到的汽车场景中,MaskFormer不仅将每辆车辨认为一个独自的实体(感激DETR的汇合预测机制),而且还为每辆车生成一个准确的掩码,精确捕捉它们的边界,即便在重叠的状况下也是如此。 DETR和MaskFormer之间的这种协同作用为更精确、更高效的实例宰割关上了一个可能性的世界,超过了传统的逐像素和掩码分类办法的限度。 MaskFormer上面是MaskFormer的架构: 通过骨干提取特色:MaskFormer骨干网络负责从输出中提取要害的图像特色。这个骨干能够是任何风行的CNN(卷积神经网络)架构,比方ResNet,它解决图像并提取一组特色,用F示意。 逐像素嵌入生成:而后将这些特色F传递给像素解码器,该解码器逐步对图像特色进行上采样,生成咱们所说的“逐像素嵌入”(E像素)。这些嵌入捕捉图像中每个像素的部分和全局上下文。 段(Per-Segment )嵌入生成:与此同时,Transformer Decoder关注图像特色F并生成一组“N”段嵌入,用Q示意,通过“注意力”的机制为图像的不同局部调配不同的重要性权重。这些嵌入实质上代表了咱们想要分类和定位的图像中的潜在对象(或片段)。 这里的术“Segment ”是指模型试图辨认和宰割的图像中对象的潜在实例。 一般来说,编码器解决输出数据,解码器应用解决后的数据生成输入。编码器和解码器的输出通常是序列,就像机器翻译工作中的句子一样。 而maskformer的“编码器”是骨干网络(用于maskFormer的Resnet50),它解决输出图像并生成一组特色映射。这些特色映射与传统Transformer中的编码器输入具备雷同的目标,提供输出数据的丰盛的高级示意。 而后应用这些嵌入Q来预测N个类标签和N个相应的掩码嵌入(E掩码)。这就是MaskFormer真正的亮点所在。与传统宰割模型预测每个像素的类标签不同,MaskFormer预测每个潜在对象的类标签,以及相应的掩码嵌入。 在取得掩码嵌入后,MaskFormer通过像素嵌入(E像素)与掩码嵌入(E掩码)之间的点积产生N个二进制掩码,而后进行s型激活。这个过程可能会将每个对象实例的二进制掩码重叠。 最初对于像语义宰割这样的工作,MaskFormer能够通过将N个二进制掩码与其相应的类预测相结合来计算最终预测。这种组合是通过一个简略的矩阵乘法实现的,给咱们最终的宰割和分类图像。 MaskFormer用于语义和实例宰割语义宰割波及到用类标签标记图像的每个像素(例如“汽车”,“狗”,“人”等)。然而它不辨别同一类的不同实例。例如如果图像中有两个人,语义宰割会将所有属于这两个人的像素标记为“人”,但它不会辨别A和B。 而实例宰割不仅对每个像素进行分类,而且对同一类的不同实例进行拆散。比方实例宰割须要将所有属于A的像素标记为“A”,所有属于B的像素标记为“B”。 大多数传统的计算机视觉模型将语义宰割和实例宰割视为独立的问题,须要不同的模型、损失函数和训练过程。然而MaskFormer设计了一个对立的形式解决这两个工作:它通过预测图像中每个对象实例的类标签和二进制掩码来工作。这种办法实质上联合了语义和实例宰割的各个方面。 对于损失函数,MaskFormer应用对立的损失函数来解决这个掩码分类问题。这个损失函数以一种与语义和实例宰割工作统一的形式评估预测掩码的品质。 所以应用雷同的损失函数和训练过程失去的的MaskFormer模型能够不做任何批改地同时利用于语义和实例宰割工作。 总结MaskFormer提供了一种新的图像宰割办法,集成了DETR模型和Transformer架构的长处。它应用基于掩码的预测,加强了对图像中简单对象交互的解决。 MaskFormer的对立办法在图像宰割方面向前迈出了一大步,为计算机视觉的提高开拓了新的可能性。它为进一步的钻研奠定了根底,旨在进步咱们了解和解释视觉世界的能力。 论文地址: https://avoid.overfit.cn/post/3f38050c2a794e33ac9ee66642740fd3 作者:HannaMergui

June 25, 2023 · 1 min · jiezi

关于深度学习:轻松配置深度学习模型

动动发财的小手,点个赞吧! 因为所有模块都须要大量参数和设置,因而治理深度学习模型可能很艰难。训练模块可能须要诸如 batch_size 或 num_epochs 之类的参数或学习率调度程序的参数。同样,数据预处理模块可能须要 train_test_split 或图像增强参数。 治理这些参数或将这些参数引入管道的一种简略办法是在运行脚本时将它们用作 CLI 参数。命令行参数可能难以输出,并且可能无奈在单个文件中治理所有参数。 TOML 文件提供了一种更简洁的配置管理形式,脚本能够以 Python 字典的模式加载配置的必要局部,而无需样板代码来读取/解析命令行参数。 在这篇博客中,咱们将探讨 TOML 在配置文件中的应用,以及咱们如何在训练/部署脚本中无效地应用它们。 什么是 TOML 文件?TOML,代表 Tom's Obvious Minimal Language,是专门为配置文件设计的文件格式。 TOML 文件的概念与 YAML/YML 文件十分类似,后者可能在树状层次结构中存储键值对。 TOML 优于 YAML 的一个长处是它的可读性,这在有多个嵌套级别时变得很重要。 为什么咱们须要在 TOML 中进行配置?应用 TOML 存储 ML 模型的模型/数据/部署配置有两个长处: 在单个文件中治理所有配置:应用 TOML 文件,咱们能够创立不同模块所需的多组设置。例如,在图 1 中,与模型训练过程相干的设置嵌套在 [train] 属性下,相似地,部署模型所需的端口和主机存储在 deploy 下。咱们不须要在 train.py 或 deploy.py 之间跳转来更改它们的参数,相同,咱们能够从单个 TOML 配置文件中全局化所有设置。 如果咱们在虚拟机上训练模型,而代码编辑器或 IDE 不可用于编辑文件,这可能会十分有用。应用大多数 VM 上可用的 vim 或 nano 能够轻松编辑单个配置文件。咱们如何从 TOML 读取配置?要从 TOML 文件中读取配置,能够应用两个 Python 包,toml 和 munch。 toml 将帮忙咱们读取 TOML 文件并将文件的内容作为 Python dict 返回。 munch 将转换 dict 的内容以启用元素的属性款式拜访。例如,咱们能够不写 config "training" ,而是写 config.training.num_epochs 以进步可读性。 ...

June 23, 2023 · 2 min · jiezi

关于深度学习:对称性与几何深度学习|Python案例

几何图神经网络近年来,深度学习已在各畛域获得了显著的冲破,如计算机视觉、自然语言解决和语音辨认等。然而,传统的深度学习办法往往侧重于解决规定的、网格状构造数据,例如图像和文本。这些办法在解决不规则、非网格状的数据结构,如图(Graph)时,往往体现不尽如人意。而事实世界中,许多重要信息都是以图的模式存在,如社交网络、生物信息、交通系统等,因而,如何无效解决这类数据成为了迫切需要解决的问题。 几何深度学习(Geometric Deep Learning)应运而生,它具备人造的适应性和弱小的表达能力,能更好地开掘和利用数据中的几何构造。从而可能解决许多传统神经网络难以解决的问题,如图神经网络、非欧几里得数据等。与传统深度学习办法相比,几何神经网络旨在利用几何学中的对称性、流形、群变换等概念开掘数据中的几何构造,捕捉数据的拓扑关系和部分特色,从而在解决简单、非网格状数据时具备更高的性能和更强的泛化能力,在生物分子、材料科学、物理零碎等畛域,几何深度学习都有着宽泛的利用。 图|应用 GNN 预测分子资料的性质作为几何深度学习的核心技术,图神经网络(Graph Neural Networks, GNNs)正吸引着越来越多的研究者和开发者。明天,咱们为您精选了一个波及几何图神经网络的教学 Notebook,助您深刻了解、实际几何深度学习。 几何深度学习实际案例本期 Notebook 旨在为大家提供一个初学者敌对的几何深度学习入门实际。在学习这个实际教程过程中,您将逐渐把握: 不变性(invariance)和等变性(equivariance)这两个与图神经网络密切相关的概念,以及它们在数据中的对称性和不变性。这篇 notebook 将从实践、证实、编程和单元测试等多个方面为您出现。PyTorch Geometric(PyG)的应用办法。作为一个备受欢送的库,PyG 可用于开发最先进的 GNNs 和几何深度学习模型。尤其是,您将相熟 MessagePassing 基类用于设计新鲜 GNN 层和 Data 对象用于示意图数据集。利用几何信息构建 GNN 层的基本原理,以及如何解决嵌入在 3D 空间中的图,例如分子、资料和其余物理零碎。此 Notebook 最后是为以下课程的学生精心打造的: Representation Learning on Graphs and Networks,剑桥大学计算机科学与技术系。Geometric Deep Learning,非洲机器智能硕士课程。在这里,咱们已为你事后配置好了所需的环境配置,应用咱们为你筹备的在线 Notebook:https://nb.bohrium.dp.tech,你无需放心环境配置和依赖问题,仅须要专一于学习自身。依附收费的 2 核 4G 计算资源,你能够在平台上间接运行和批改代码。 对于曾经理解图神经网络和几何深度学习基本概念,心愿进一步深入研究和疾速上手实际的敌人来说,这份 Notebook 无疑是一份难得的好材料。咱们置信,通过学习这个 Notebook,您将可能更好地把握几何深度学习的核心技术和最新进展,为您的钻研和开发工作提供无力反对。 致谢感激 Chaitanya K. Joshi、Charlie Harris 和 Ramon Viñas Torné 等作者的辛勤创作,他们激情地欢迎您就解决方案向他们发问和反馈。Joshi, Chaitanya K., et al. "On the expressive power of geometric graph neural networks." arXiv preprint arXiv:2301.09308 (2023). https://arxiv.org/abs/2301.09308 ...

June 21, 2023 · 1 min · jiezi

关于深度学习:常用的表格检测识别方法表格内容识别方法

第三章 罕用的表格检测识别方法 3.3表格内容识别方法   表格辨认的钻研次要波及两个方面,一方面是对单元格内的文本进行辨认,这一步通常是在确定单元格区域后,利用较为稳固的光学字符识别办法(OCR)来实现,这一方面不是表格辨认钻研的重点,不在此开展;另一方面是基于整个表格内容进行的表格分类、单元格分类、以及表格信息抽取等工作,这是以后表格辨认钻研的热门畛域之一。下文会对表格信息抽取进行开展讲述。 从文档中抽取要害信息曾经被钻研了几十年。在基于深度学习的办法呈现之前,晚期的工作次要依赖于已知模板中的一些规定或人为设计的个性,因而它们通常在没见过的模板上失败,在理论利用中不可适配。随着深度学习的倒退,在信息抽取畛域获得了重大进展。如上所述,大多数基于深度学习的办法将信息抽取定义为一个token分类问题。除了上述工作外,M. Carbonell还提出了一种基于CNN的办法,即从输出的文档图像中联结进行手写文本检测、转录和命名实体辨认。除了这个范式之外,信息抽取也能够作为其余问题来表述。Majumder等人提出了一种利用先验常识提取要害畛域值的办法。对于每个字段,首先抉择一些候选词。而后,将每个字符的构造嵌入其上下文信息,计算该嵌入与指标域嵌入之间的余弦类似值作为类似度得分。SPADE(SPAtial DEpendency parser)[W. Hwang等人]将信息抽取定义为一个空间依赖性解析问题。它构建了一个以文本段和字段作为图节点的依赖图,而后应用解码器从辨认的图节点之间的连通性中提取字段值。BROS(BERT Relying On Spatiality)[Hong等人]通过提出了一种新的地位编码方法和一种基于区域掩蔽的预训练指标,进一步改良了SPADE。另一类办法[R. B. Palm等人,H. Guo等人,C. Sage等人]采纳在其余NLP或图像了解工作中应用的序列到序列模型,间接预测关键字段的所有值,而不须要字符监督。Xiao等人构建了一个具备句子嵌入的二维文本嵌入图,并将该文本图和视觉特色与全卷积网络相结合,用于表格、章节题目、题目、段落等图像区域的像素级宰割。Raphael等人提出了一种多模态神经模型,通过将一个二维文本嵌入到CNN模型的中间层,以便在历史报纸上进行更细粒度的宰割工作。还有一些钻研人员认为,文档的图像特色十分有用,因为图像特色是字体、字形、色彩等的混合示意。因为信息抽取工作波及文档图像,一些钻研人员将其视为一项纯正的计算机视觉工作。这些办法从光学字符识别(OCR)的角度解决了信息抽取工作。对于每一种类型的实体,这些办法设计了相应的解码器,负责辨认文本内容并确定其类别。因为不足语义特色,这种办法在面对简单的布局时不能很好地工作。钻研人员从不同的角度探讨了信息抽取工作。Hwang等人和Jiang等人基于坐标信息序列化文本片段,并将坐标输出到序列标记器。然而,简略地将该地位视为某种特色,可能不能充分利用文本之间的视觉关系。为了充分利用语义特色和地位信息,Chargrid [Katti等人]将字符映射到一个热向量上,从而填充文档图像上的字符区域。将带有语义信息的图像输出CNN进行检测,并进行语义宰割,提取实体。起初的BERTgrid [Denk和Reisswig等人]采纳了相似的办法,但应用了不同的字符嵌入办法。然而,它通过应用通道个性来示意语义,引入了大量的计算,特地是具备大类别的语言。因而,以语义特色作为节点特色,以文本片段的空间地位特色作为边缘特色,构建全局文档图通常是一种更好的解决方案。另外几种办法[Qian等人,Liu等人,Yu等人,Gal等人,Cheng等人]应用GNN对文档的布局信息进行建模。 通过节点之间传递的音讯,这些模型能够学习每个文本的总体布局和散布,这有助于后续的实体提取。例如,Gui等人提出了一种基于词汇的图神经网络,将中文NER(命名实体辨认)视为节点分类工作。此外,GraphIE [Qian等人]和Liu等人提出的模型通过GNN提取视觉特色,加强BiLSTM-CRF模型的输出,被证实是无效的。与全连贯或手工制作的图不同,PICK [Yu等人]通过图学习预测了节点之间的连贯,这也进步了后果。这些办法应用GNN编码文本嵌入,给定视觉上丰盛的上下文,以隐式地学习键-值关系。表格信息抽取方面,国外的研究者在基于序列的办法上比较突出,提出了LAMBERT,TILT等一批优良的模型,这与国外长期积攒的语言模型倒退教训无关,在基于二维特色网格的办法上国外也有较早的摸索,提出了Chargrid和BERTgrid等经典模型,而对于基于图的办法钻研较少; 而国内的研究者在基于图和基于二维特色网格的办法上有着世界领先的程度,PICK,MatchVIE和ViBERTGrid等办法在各种信息抽取工作上名落孙山。总的来说,近年来国内外研究者对表格内容辨认都十分关注,这一畛域的办法也呈现出多元化倒退的态势。

June 21, 2023 · 1 min · jiezi

关于深度学习:在-PyTorch-中实现可解释的神经网络模型

动动发财的小手,点个赞吧! 目标深度学习零碎不足可解释性对建设人类信赖形成了重大挑战。这些模型的复杂性使人类简直不可能了解其决策背地的根本原因。 深度学习零碎不足可解释性妨碍了人类的信赖。为了解决这个问题,钻研人员始终在踊跃钻研新的解决方案,从而产生了重大翻新,例如基于概念的模型。这些模型不仅进步了模型的透明度,而且通过在训练过程中联合高级人类可解释的概念(如“色彩”或“形态”),造就了对系统决策的新信任感。因而,这些模型能够依据学习到的概念为其预测提供简略直观的解释,从而使人们可能查看其决策背地的起因。这还不是全副!它们甚至容许人类与学习到的概念进行交互,让咱们可能管制最终的决定。 基于概念的模型容许人类查看深度学习预测背地的推理,并让咱们从新管制最终决策。在这篇博文中,咱们将深入研究这些技术,并为您提供应用简略的 PyTorch 接口实现最先进的基于概念的模型的工具。通过实践经验,您将学习如何利用这些弱小的模型来加强可解释性并最终校准人类对您的深度学习零碎的信赖。 概念瓶颈模型在这个介绍中,咱们将深入探讨概念瓶颈模型。这模型在 2020 年国内机器学习会议上发表的一篇论文中介绍,旨在首先学习和预测一组概念,例如“色彩”或“形态”,而后利用这些概念来解决上游分类工作: 通过遵循这种办法,咱们能够将预测追溯到提供解释的概念,例如“输出对象是一个{apple},因为它是{spherical}和{red}。” 概念瓶颈模型首先学习一组概念,例如“色彩”或“形态”,而后利用这些概念来解决上游分类工作。实现为了阐明概念瓶颈模型,咱们将从新扫视驰名的 XOR 问题,但有所不同。咱们的输出将蕴含两个间断的特色。为了捕获这些特色的实质,咱们将应用概念编码器将它们映射为两个有意义的概念,示意为“A”和“B”。咱们工作的指标是预测“A”和“B”的异或 (XOR)。通过这个例子,您将更好地了解概念瓶颈如何在实践中利用,并见证它们在解决具体问题方面的有效性。 咱们能够从导入必要的库并加载这个简略的数据集开始: import torchimport torch_explain as tefrom torch_explain import datasetsfrom sklearn.metrics import accuracy_scorefrom sklearn.model_selection import train_test_splitx, c, y = datasets.xor(500)x_train, x_test, c_train, c_test, y_train, y_test = train_test_split(x, c, y, test_size=0.33, random_state=42)接下来,咱们实例化一个概念编码器以将输出特色映射到概念空间,并实例化一个工作预测器以将概念映射到工作预测: concept_encoder = torch.nn.Sequential( torch.nn.Linear(x.shape[1], 10), torch.nn.LeakyReLU(), torch.nn.Linear(10, 8), torch.nn.LeakyReLU(), torch.nn.Linear(8, c.shape[1]), torch.nn.Sigmoid(),)task_predictor = torch.nn.Sequential( torch.nn.Linear(c.shape[1], 8), torch.nn.LeakyReLU(), torch.nn.Linear(8, 1),)model = torch.nn.Sequential(concept_encoder, task_predictor)而后咱们通过优化概念和工作的穿插熵损失来训练网络: optimizer = torch.optim.AdamW(model.parameters(), lr=0.01)loss_form_c = torch.nn.BCELoss()loss_form_y = torch.nn.BCEWithLogitsLoss()model.train()for epoch in range(2001): optimizer.zero_grad() # generate concept and task predictions c_pred = concept_encoder(x_train) y_pred = task_predictor(c_pred) # update loss concept_loss = loss_form_c(c_pred, c_train) task_loss = loss_form_y(y_pred, y_train) loss = concept_loss + 0.2*task_loss loss.backward() optimizer.step()训练模型后,咱们评估其在测试集上的性能: ...

June 20, 2023 · 1 min · jiezi

关于深度学习:张校捷深度强化学习算法与实践基于PyTorch的实践-代码整理

在过来的几年里,人工智能 (AI) 畛域获得了令人瞩目的停顿,从无人驾驶汽车到 ChatGPT,再诸如围棋 Algha Go 和象棋等棋类游戏中击败世界级选手。这些冲破背地的关键技术便是深度强化学习 (Deep Reinforcement Learning, DRL)。作为机器学习和人工智能钻研的前沿畛域,深度强化学习在许多畛域的利用前景宽泛,被认为是开启通用人工智能 (AGI) 的重要途径之一。请大家追随本文,应用收费的CPU机型立刻开始你的深度强化学习之旅。 深度强化学习深度强化学习是强化学习 (Reinforcement Learning, RL) 和深度学习 (Deep Learning, DL) 两大畛域的穿插钻研。强化学习源于心理学和动物行为学,关注如何通过与环境的交互来学习最优策略。而深度学习则次要钻研如何利用神经网络模型对简单数据进行表征学习。联合这两者的劣势,深度强化学习具备了在高维、简单环境中进行决策与管制的能力,为解决理论问题提供了弱小的工具。 DRL Notebook为了帮忙大家更好地学习和把握这一技术,咱们与张校捷老师将《深度强化学习算法与实际:基于PyTorch的实际》一书中的丰盛案例代码整顿到了云上的 Notebook 平台,让各位能够轻松上手深度强化学习! 在这个 Notebook 中,你将体验到: 无需配置简单环境,只需点击运行即可体验各种深度强化学习算法的实际案例。具体的代码正文和解释,帮忙您更好地了解深度强化学习的原理和实现细节。联合书籍内容,深刻理解强化学习的基本概念、原理和算法,晋升本人的技能程度。从深度强化学习的基本概念登程到学习书中提及到的各种深度强化学习环境中经典模型,无论您是深度强化学习的初学者,还是有肯定根底的开发者,咱们置信这个 Notebook 都能为您带来便捷、高效的学习体验。 深度强化学习 Notebook 链接:https://nb.bohrium.dp.tech/detail/1289 感兴趣的同学也能够点击查看原文:https://mp.weixin.qq.com/s/dhvH3WwjUozDE3eHQ-8RCA

June 20, 2023 · 1 min · jiezi

关于深度学习:R语言用CPV模型的房地产信贷信用风险的度量和预测附代码数据

全文链接:http://tecdat.cn/?p=30401最近咱们被客户要求撰写对于CPV模型的钻研报告,包含一些图形和统计输入。 本文基于 CPV 模型, 对房地产信贷风险进行了度量与预测。咱们被客户要求撰写对于CPV模型的钻研报告 结果表明, 该模型在度量和预测房地产信贷守约率方面具备较好的成果。 CPV 模型的基本原理和框架CPV 模型是一个用于剖析贷款组合危险和收益的多因素模型, 它依据失业率、长期利率、GDP 增长率、汇率、政府收入和总储蓄率等宏观因素, 借助于经济计量工具和蒙特卡罗技术, 将每个国家不同行业中不同等级的守约概率和转移概率相分割, 进而计算出危险价值( 迪迪埃、皮罗特, 2005) 。 指标及样本数据抉择当理论使用 CPV 模型时, 宏观经济因素个数必须达到 3 个以上时该模型才具备肯定的有效性 ( 预计有效性及预测有效性) 。因而, 本文别离从国家宏观经济、房地产行业情况、房地产企业情况三个方面抉择出三个宏观经济因素指标, 使用 CPV 模型评估房地产信贷的信用风险。综合当先指标(Composite Leading Indicator) 。经济合作与发展组织 (OECD) 的综合当先指标(CompositeLeading Indicator, CLI) 被认为是预测寰球经济变动趋势的良好指标, 它是指一系列疏导经济由增长至消退的循环的相干经济指标和经济变量的加权平均数, 次要用来预测整体经济的转变状况, 预测将来数月的经济发展趋势: ###守约率再0到1之间 ,因而对其进行标准化cr=(fbzdata$NA.-min(fbzdata$NA.))/(max(fbzdata$NA.)-min(fbzdata$NA.))##绘制工夫序列图plot(diff(cr),type="l") 从上图能够看到数据呈现出稳固的稳定趋势,再均值四周回摆,因而差分后数列稳固。 CPV模型#逻辑回归后果 ##滞后期的抉择#MA(1)ma1=arma(x=cr,order=c(0,1))summary(ma4)#查看相关系数,Std. Error  t value,AIC值滞后期的抉择依据Akaike Information Criterion(AIC)准则确定。 依据回归结果显示CLI、CRECI和ECI的P值显示的数值表明该预计的有效性。从预计出的敏感系数能够看出,CLI、和ECI的系数(Coefficient)为正, CRECI的系数(Coefficient)为负,并且ECI的系数值是CLI系数值的2倍左右所以, 当CRECI的值回升的时候,Y值也回升 (守约率降落), 它们之间是反向变动。并且, 综合当先指标ECI绝对于其余宏观经济指标来说, 影响力度最大。 残差值剖析plot(CPVmod$residuals,type="l")#残差值lines(CPVmod$fitted.values,type="l")#拟合值lines(cr,type="l")#理论值abline(h=0)#增加0基准线 依据下面的模型预计后果, 能够得出Y的残差值、理论值和拟合值的趋势图。如图1所示。 依据图1的趋势图, 能够分明地看出, Y的拟合值和理论值的曲线简直齐全重合, 这也阐明该模型很好地拟合了样本数据, 也跟上述结果表明的事实相符合。 另外, 残差的相关系数和偏相关系数如图2所示意。从图2能够看出, 模型的残差不存在序列自相干。 ...

June 19, 2023 · 1 min · jiezi

关于深度学习:强化学习从基础到进阶案例与实践1强化学习概述序列决策动作空间定义策略价值函数探索与利用Gym强化学习实验

强化学习从根底到进阶-案例与实际[1]:强化学习概述、序列决策、动作空间定义、策略价值函数、摸索与利用、Gym强化学习试验1.1 强化学习概述强化学习(reinforcement learning,RL) 探讨的问题是智能体(agent)怎么在简单、不确定的环境(environment)中最大化它能取得的处分。如图 1.1 所示,强化学习由两局部组成:智能体和环境。在强化学习过程中,智能体与环境始终在交互。智能体在环境中获取某个状态后,它会利用该状态输入一个动作 (action),这个动作也称为决策(decision)。而后这个动作会在环境中被执行,环境会依据智能体采取的动作,输入下一个状态以及以后这个动作带来的处分。智能体的目标就是尽可能多地从环境中获取处分。 <div align=center><img width="550" src="https://ai-studio-static-online.cdn.bcebos.com/a65c51a6551741678eebe3e9ad33c572957836b591114c4ab3b78962b27f25b4"/></div><div align=center>图 1.1 强化学习示意</div> 1.1.1 强化学习与监督学习咱们能够把强化学习与监督学习做一个比照。以图片分类为例,如图 1.2 所示,监督学习(supervised learning) 假如咱们有大量被标注的数据,比方汽车、飞机、椅子这些被标注的图片,这些图片都要满足独立同散布,即它们之间是没有关联关系的。假如咱们训练一个分类器,比方神经网络。为了分辨输出的 图片中是汽车还是飞机,在训练过程中,须要把正确的标签信息传递给神经网络。 当神经网络做出谬误的预测时,比方输出汽车的图片,它预测进去是飞机,咱们就会间接通知它,该预测是谬误的,正确的标签应该是汽车。最初咱们依据相似谬误写出一个损失函数(loss function),通过反向流传(back propagation)来训练神经网络。 <div align=center><img width="650" src="https://ai-studio-static-online.cdn.bcebos.com/cefd394cb8ae4fb5b8f1e99204c0ee7c0a63a8d2338f4b899886d6a82a457309"/></div><div align=center>图 1.2 监督学习</div> 所以在监督学习过程中,有两个假如: 输出的数据(标注的数据)都应是没有关联的。因为如果输出的数据有关联,学习器(learner)是不好学习的。须要通知学习器正确的标签是什么,这样它能够通过正确的标签来修改本人的预测。通常假如样本空间中整体样本遵从一个未知散布,咱们取得的每个样本都是独立地从这个散布上采样取得的,即独立同散布(independent and identically distributed,简称 i.i.d.)。在强化学习中,监督学习的两个假如其实都不能失去满足。以雅达利(Atari) 游戏 Breakout 为例,如图 1.3 所示,这是一个打砖块的游戏,管制木板左右移 动从而把球反弹到下面来打消砖块。在玩游戏的过程中,咱们能够发现智能体失去的观测(observation)不是独立同散布的,上一帧与下一帧间其实有十分强的 连续性。咱们失去的数据是相干的工夫序列数据,不满足独立同散布。另外,我 们并没有立即取得反馈,游戏没有通知咱们哪个动作是正确动作。比方当初把木板往右移,这只会使得球往上或者往左一点儿,咱们并不会失去即时的反馈。因 此,强化学习之所以艰难,是因为智能体不能失去即时的反馈,然而咱们仍然心愿智能体在这个环境中学习。 <div align=center><img width="350" src="https://ai-studio-static-online.cdn.bcebos.com/7453f6746ab14c69998d29c7e18b510366d976a0a6c942fdbe285af3ee6819c4"/></div><div align=center>图 1.3 雅达利游戏Breakout</div> 如图 1.4 所示,强化学习的训练数据就是一个玩游戏的过程。咱们从第 1 步开始,采取一个动作,比方咱们把木板往右移,接到球。第 2 步咱们又做出动作,失去的训练数据是一个玩游戏的序列。比方当初是在第 3 步,咱们把这个序列放进网络,心愿网络能够输入一个动作,即在以后的状态应该输入往右移或 者往左移。这里有个问题,咱们没有标签来阐明当初这个动作是正确还是谬误的,必须等到游戏完结才可能晓得,这个游戏可能 10s 后才完结。当初这个动作到底对最初游戏是否能赢有无帮忙,咱们其实是不分明的。这里咱们就面临提早处分(delayed reward) 的问题,提早处分使得训练网络十分艰难。 <div align=center><img width="500" src="https://ai-studio-static-online.cdn.bcebos.com/3459c0420ce641ae963cb44d3ca5b54e4484294b94c84f3d893d84c9927d8b2d"/></div><div align=center>图 1.4 强化学习:玩Breakout</div> 强化学习和监督学习的区别如下。 (1)强化学习输出的样本是序列数据,而不像监督学习外面样本都是独立的。 (2)学习器并没有通知咱们每一步正确的动作应该是什么,学习器须要本人去发现哪些动作能够带来 最多的处分,只能通过不停地尝试来发现最无利的动作。 ...

June 19, 2023 · 8 min · jiezi

关于深度学习:计算机视觉重磅会议VAlSE2023召开合合信息分享智能文档处理技术前沿进展

 近期,2023年度视觉与学习青年学者研讨会 (Vision And Learning SEminar, VALSE) 圆满闭幕。会议由中国人工智能学会、中国图象图形学学会主办,江南大学和无锡国家高新技术产业开发区治理委员会承办。超五千名专家学者、出名高校师生以及来自OPPO、华为、百度、合合信息等科技企业的研发人员齐聚大会,共探计算机视觉、图像处理、模式识别与机器学习前沿技术的倒退与利用。 大会现场   VALSE是一个面向计算机视觉与机器学习畛域国内外华人青年学者的高规格学术研讨会。本届大会共出现了3 个大会宗旨报告、4个大会特邀报告、12个年度停顿报告 (APR)报告、4场讲习班 (Tutorial)、20场研讨会 (Workshop),会议报告总数为历年之最。 往年,VALSE继承了往届大会的次要程序环节,相干报告和展现从内容上涵盖了计算机视觉、图像处理、模式识别与机器学习畛域的大部分热点钻研方向,研究了上述钻研畛域的国内外前沿停顿。大会邀请中国工程院院士高文传授,欧洲科学院外籍院士焦李成传授,中科院计算所所长陈熙霖研究员做宗旨报告,由VALSE联结创始人山世光研究员主持宗旨报告环节。 本届会议Workshop环节专一于视觉常识和多重常识表白、语言文字辨认与了解等技术研发及利用热点。文档的智能化解决是计算机视觉在产业中的重要利用方向,现阶段还面临着诸多挑战。作为智能文档解决畛域的代表,合合信息出席会议并进行智能文档解决技术研发与实际成绩分享。 VALSE Workshop环节,合合信息技术代表就《智能文档图像处理技术利用与实际》主题进行分享   合合信息相干技术人员提到,随着OCR技术利用面的继续拓宽,复杂多变的版面、多样化的文本内容给文档的辨认和还原带来了新的挑战。“版面剖析与文档还原”技术对晋升文档图像电子化的视觉效果、信息提取精准度十分要害,是公司重点发力的方向之一。 文档中通常含有大量的图片、表格等非文字内容,一篇一般的论文或者文稿,除文字信息外,其版面往往蕴含页眉、页脚、表格、二维码等多种元素。在向零碎输出文档图像后,机器会对文字局部和版面元素进行剖析和辨认,把若干行文字关联起来,从而取得正确的程序与段落关系,这便是版面剖析技术。 版面剖析的工作指标被分为物理版面剖析和逻辑版面剖析两类,前者次要解决区域分割问题,后者则关注区域之间的逻辑关系或浏览程序。如何精准地分别各类元素,并在文档电子化过程中让它们回归到应有的地位,是该项技术的难点之一。 如果无奈晋升版面剖析的精准度,文件资料在被拍照、扫描成电子文档的过程中便可能呈现漏字、错位的景象,图片转Word、图片转Excel等“可编辑”性的需要将无奈被满足。 “版面剖析与文档还原技术可能帮忙机器‘看懂’文档构造,让文档电子化取得‘所见即所得’的解决成果。”分享环节中,合合信息技术人员提到,文档图片的格局转化流程中,在检测、辨认完出文字信息中的字符、坐标信息,以及版面中段落、印章、表格等元素信息后,机器能力“了解”文档的组成,更好地将图像“还原”成一个可编辑的Word或Excel文件。 合合信息“智能文档解决——文档还原零碎架构”展现   据理解,合合信息版面剖析技术通过解决版面宰割、区域间的逻辑关系解决等方面的难题,可将文档图像切分成不同类型内容(文本、图形、公式、表格等)的区域,并剖析区域之间的关系,让机器更精准地确定文档中的文字地位、字体、大小和排版形式,从各类版式简单的图片文档中精准获取信息。 合合信息“版面剖析与还原”技术解决成果展现   将来,合合信息将继续为寰球企业和个人用户提供翻新的数字化、智能化服务,助力集体文档解决效率晋升,减速企业全生命周期文档电子化过程。

June 16, 2023 · 1 min · jiezi

关于深度学习:Backbone-在神经网络中意味着什么

动动发财的小手,点个赞吧! 1. 简介神经网络是机器学习算法,咱们能够将其用于许多利用,例如图像分类、对象辨认、预测简单模式、解决语言等等。神经网络的次要组成部分是层和节点。 一些神经网络架构有一百多个层和几个解决不同子问题的逻辑局部。其中一个局部是神经网络骨干。 在本教程中,咱们将形容什么是骨干以及最风行的骨干类型。 2. 神经网络神经网络是明确设计为生物神经网络灵感的算法。最后,指标是创立一个性能相似于人脑的人工零碎。神经元和层是神经网络的次要组成部分。 依据层和神经元的类型,神经网络次要分为三类: 全连贯神经网络(惯例神经网络)卷积神经网络递归神经网络例如,卷积神经网络能够更好地解决图像,而循环神经网络能够更好地解决序列类型的数据。为了解释骨干在神经网络中代表什么,咱们将以卷积神经网络中的骨干为例。此外,在文献中的大多数状况下,骨干都在卷积神经网络的背景下。 3. 卷积神经网络卷积神经网络 (CNN) 是一种人工神经网络,咱们次要用于对图像进行分类、定位对象以及从图像中提取特色,例如边缘或角。 CNN 的胜利是因为它们能够解决大量数据,例如图像、视频和文本。 这些网络应用卷积运算来解决输出数据。当输出图像时,CNN 能够学习不同的特色。例如: 网络的初始层学习低级特色,例如线、点、曲线等。网络两头的层学习构建在低级特色之上的对象。顶层能够依据前一层的特色了解高级特色,并实现调配的工作。除此之外,还能够应用应用不同数据训练的预训练网络。这要归功于迁徙学习技术。例如,神经网络在一个数据集上学习一些模式,稍加调整就能够将它们用于另一个数据集。当然,数据集越类似,咱们冀望的后果就越好。 4. 神经网络中的骨干除了图像分类,更简单的 CNN 架构能够解决不同的计算机视觉工作,例如对象检测或宰割。多亏了迁徙学习,咱们能够在另一个最后为图像分类训练的 CNN 之上构建用于对象检测的架构。在这种状况下,咱们应用 CNN 作为特征提取器,它实际上是对象检测模型的骨干: 通常,术语骨干是指将输出数据处理为某种特色示意的特征提取网络。这些特征提取网络通常在更简略的工作上作为独立网络体现良好,因而,咱们能够将它们用作更简单模型中的特征提取局部。咱们能够将许多风行的 CNN 架构用作神经网络的骨干。其中一些包含: VGGs——包含具备 16 层和 19 层的 VGG-16 和 VGG-19 卷积网络。它们在许多工作中被证实是无效的,尤其是在图像分类和指标检测方面。ResNets – 或残差神经网络由卷积层和池化层块之间的跳跃连贯或循环单元组成。 ResNet-50 和 ResNet 101 的一些风行版本在对象检测和语义宰割工作中很常见。Inception v1 – GoogleNet 是最罕用的卷积神经网络之一,作为许多计算机科学利用的支柱,包含视频摘要和动作辨认。5. 总结在本文中,咱们形容了骨干在神经网络中代表什么以及最受欢迎的骨干是什么。大多数状况下,咱们在计算机视觉中应用骨干。它代表了一种风行的 CNN,具备用于更简单的神经网络架构的特征提取性能。 本文由mdnice多平台公布

June 15, 2023 · 1 min · jiezi

关于深度学习:中国信通院携手合合信息开启文档图像篡改检测标准制定工作

 文档图像是信息的重要载体,却常常被不法分子利用软件、算法进行篡改。这些虚伪资料往往被用于散播谣言、经济欺骗、假造虚伪新闻,给集体、社会造成了顽劣的影响。AIGC寰球爆火后,人们对“生成式造假”危险的攀升倍感忧愁,图像内容的平安与可信性也成为了公众关注的焦点。  为贯彻落实《中华人民共和国网络安全法》《生成式人工智能服务治理》等文件中对于AI服务的规范性要求,系统性建设图像内容平安行业倒退秩序,中国信息通信研究院(以下简称“中国信通院”)启动了《文档图像篡改检测规范》制订工作。该项规范由中国信通院牵头,上海合合信息科技股份有限公司、中国图象图形学学会、中国科学技术大学等科技翻新企业及出名学术机构联结编制。  《文档图像篡改检测规范》将为文档图像内容平安提供牢靠保障,助力新时代AI平安体系建设。作为牵头方,中国信通院示意,《文档图像篡改检测规范》将基于产业现状,围绕“细粒度”视觉差别伪造图像甄别、生成式图像判断、文档图像完整性爱护等行业焦点议题,凝聚行业共识,以期为行业提供无效指引。 图像篡改危险近在眉睫,规范出台火烧眉毛 随着技术的倒退和电子设备普及率的晋升,人们批改图像的门槛变得越来越低,以往图像内容加工须要应用业余的软件,当初通过某些平台或者软件,动动手指即可产出一张虚伪图片,数字图像的原始性和真实性面临严厉挑战。 此前,图像篡改检测的技术钻研对象次要集中于天然场景图像。然而,真正为人们的生存带来危险的通常是被篡改的资质证书、文档、聊天截图等。传统的检测零碎往往难以对这些文档图像进行篡改断定及批改内容定位,次要起因如下:  一方面,实在场景中的篡改办法多样、篡改视觉痕迹轻微,对篡改检测计划提出了挑战;文档版面的复杂化、文本内容的多样化亦成为图像内容检测辨认过程中的“拦路虎”,加大了篡改检测施行的难度。  此外,传统的图像篡改检测办法在面对全局性的裁剪、调色解决以及组合式造假手法时,其检测覆盖面、精准度、安全性尚存在晋升空间,须要政府、钻研机构、企业等多方主体联结起来,通过建设技术规范规范,助力AI视觉图像产业健康成长。   图像内容平安成为“可信AI”将来重点建设方向 AI是一把“双刃剑”。中国信通院公布的《可信人工智能产业生态倒退报告(2022)》提到,可信已成为人工智能产业倒退必备因素,驱动人工智能标准倒退。 “可信”反映了AI零碎、产品和服务在安全性、可靠性、可解释、可问责等一系列外在属性的可信赖水平,相干概念正随着技术倒退的脚步,从含糊走向清晰、从起步走向成熟。开年以来,以语言生成类、视觉生成类模式为代表的AIGC产品引发了社会对于图文内容“可信度”问题的探讨。 《文档图像篡改检测规范》的制订,或将为中国“可信AI”在机器视觉、图像处理畛域的体系建设提供无力反对。 利用科技伎俩实现文本篡改痕迹精准检测,将为文档图像内容平安提供牢靠保障,助力新时代AI平安体系建设。在图像内容平安畛域,已有局部企业开展了前沿摸索,利用科技伎俩对篡改文本图像履行真伪断定、篡改痕迹检测,人工智能科技企业合合信息是其中的代表。 据悉,合合信息研发了基于深度学习的图像篡改检测技术及相干零碎,可检测出多种篡改模式,智能捕获图像在篡改过程中留下的轻微痕迹,并以热力求的模式展现图像区域篡改地点,相干技术已被利用于银行、保险等行业中。  合合信息图像篡改检测技术对户口本图片篡改痕迹进行定位  公开材料显示,合合信息专一于智能文档解决底层技术及利用产品的钻研工作,相干技术在国内顶会ICPR、ICFHR等十余项比赛中取得冠军,并于CVPR、AAAI、ACL、ACM MM等国内顶会上发表。目前,公司已取得超百项自主知识产权发明专利,为寰球超过200个国家和地区的上亿用户提供智能文字辨认产品及AI服务。     

June 15, 2023 · 1 min · jiezi

关于深度学习:深度学习应用篇元学习16基于模型的元学习Learning-to-Learn优化策略MetaLearner-LSTM

深度学习利用篇-元学习[16]:基于模型的元学习-Learning to Learn优化策略、Meta-Learner LSTM1.Learning to LearnLearning to Learn by Gradient Descent by Gradient Descent 提出了一种全新的优化策略,用 LSTM 代替传统优化办法学习一个针对特定工作的优化器。 在机器学习中,通常把优化指标 $f(\theta)$ 示意成 $$\theta^{*}=\operatorname{argmin}_{\theta \in \Theta} f(\theta)$$ 其中,参数 $\theta$ 的优化形式为 $$\theta_{t+1}=\theta_{t}-\alpha \nabla f\left(\theta_{t}\right)$$ 上式是一种针对特定问题类别的、人为设定的更新规定,常见于深度学习中,次要解决高维、非凸优化问题。 依据 No Free Lunch Theorems for Optimization 实践,[1] 提出了一种 基于学习的更新策略 代替 人为设定的更新策略,即,用一个可学习的梯度更新规定,代替人为设计的梯度更新规定。其中,optimizer 为 $g$ 由 $\phi$ 参数化;optimizee 为 $f$ 由 $\theta$ 参数化。 此时, optimizee 的参数更新形式为 $$\theta_{t+1}=\theta_{t}+g_{t}\left(\nabla f\left(\theta_{t}\right), \phi\right)$$ optimizer $g$ 的更新则由 $f$, $\nabla f$ 及 $\phi$ 决定。 1.2 学习机制图1是 Learning to Learn 中 optimizer 和 optimizee 的工作原理。 ...

June 15, 2023 · 4 min · jiezi

关于深度学习:深度学习应用篇元学习14基于优化的元学习MAML模型LEO模型Reptile模型

深度学习利用篇-元学习[14]:基于优化的元学习-MAML模型、LEO模型、Reptile模型1.Model-Agnostic Meta-LearningModel-Agnostic Meta-Learning (MAML): 与模型无关的元学习,可兼容于任何一种采纳梯度降落算法的模型。MAML 通过大量的数据寻找一个适合的初始值范畴,从而扭转梯度降落的方向,找到对工作更加敏感的初始参数,使得模型可能在无限的数据集上疾速拟合,并取得一个不错的成果。该办法能够用于回归、分类以及强化学习。 该模型的Paddle实现请参考链接:PaddleRec版本 1.1 MAMLMAML 是典型的双层优化结构,其内层和外层的优化形式如下: 1.1.1 MAML 内层优化形式内层优化波及到基学习器,从工作散布 $p(T)$ 中随机采样第 $i$ 个工作 $T_{i}$。工作 $T_{i}$ 上,基学习器的指标函数是: $$ \min _{\phi} L_{T_{i}}\left(f_{\phi}\right) $$ 其中,$f_{\phi}$ 是基学习器,$\phi$ 是基学习器参数,$L_{T_{i}}\left(f_{\phi}\right)$ 是基学习器在 $T_{i}$ 上的损失。更新基学习器参数: $$\theta_{i}^{N}=\theta_{i}^{N-1}-\alpha\left[\nabla_{\phi}L_{T_{i}}\left(f_{\phi}\right)\right]_{\phi=\theta_{i}^{N-1}} $$ 其中,$\theta$ 是元学习器提供给基学习器的参数初始值 $\phi=\theta$,在工作 $T_{i}$ 上更新 $N$ 后 $\phi=\theta_{i}^{N-1}$. 1.1.2 MAML 外层优化形式外层优化波及到元学习器,将 $\theta_{i}^{N}$ 反馈给元学匀器,此时元指标函数是: $$ \min _{\theta} \sum_{T_{i}\sim p(T)} L_{T_{i}}\left(f_{\theta_{i}^{N}}\right) $$ 元指标函数是所有工作上验证集损失和。更新元学习器参数: $$\theta \leftarrow \theta-\beta \sum_{T_{i} \sim p(T)} \nabla_{\theta}\left[L_{T_{i}}\left(f_{\phi}\right)\right]_{\phi=\theta_{i}^{N}} $$ 1.2 MAML 算法流程randomly initialize $\theta$while not done do: ...

June 14, 2023 · 6 min · jiezi

关于深度学习:预训练微调和上下文学习

最近语言模型在自然语言了解和生成方面获得了显著停顿。这些模型通过预训练、微调和上下文学习的组合来学习。在本文中将深入研究这三种次要办法,理解它们之间的差别,并探讨它们如何有助于语言模型的学习过程。 预训练预训练(Pre-training)是语言模型学习的初始阶段。在预训练期间,模型会接触到大量未标记的文本数据,例如书籍、文章和网站。在大量未标记文本数据上训练语言模型。比如说在蕴含数百万本书、文章和网站的数据集上预训练像 GPT-3 这样的语言模型。预训练指标是捕捉文本语料库中存在的底层模式、构造和语义常识。 次要特点: 无监督学习:预训练通常是一个无监督学习过程,模型在没有明确领导或标签的状况下从未标记的文本数据中学习。Masked Language Modeling:模型经过训练以预测句子中缺失或屏蔽的单词,学习上下文关系并捕捉语言模式。Transformer 架构:预训练通常采纳基于 Transformer 的架构,因为这种架构善于捕捉近程依赖关系和上下文信息。预训练模型作为宽泛的自然语言解决工作的根底,例如文本分类、命名实体辨认和情感剖析。因为它们提供了对语言的个别了解,并且能够针对特定的上游工作进行微调。 预训练的次要上游工作如下: 文本生成:预训练模型能够生成连贯且上下文相干的文本,使它们对聊天机器人、虚构助手和内容生成等应用程序有价值。语言翻译:预训练模型能够针对机器翻译工作进行微调,使它们可能精确地将文本从一种语言翻译成另一种语言。情感剖析:通过对带有情感标签的数据集的预训练模型进行微调,它们可用于对文本输出的情感进行分类,帮助实现客户反馈剖析和社交媒体监控等工作。命名实体辨认:能够对预训练模型进行微调,以从文本中辨认和提取命名实体,从而促成新闻文章或法律文件中的实体辨认等工作。微调微调(Fine-Tuning)是在特定工作或畛域上进一步训练大型语言模型(LLM)的过程。这能够通过应用预训练的LLM作为终点,而后在特定工作或畛域的标记数据集上训练它来实现。微调能够通过调整模型的权重来更好地拟合数据,从而进步LLM在特定工作或畛域上的性能。 监督微调(Supervised Fine-Tuning) SFT应用标记数据来训练LLM。标记的数据由输出和输入数据对组成。输出数据是LLM将失去的数据,输入数据是LLM冀望生成的数据。SFT是一种绝对简略和无效的办法来微调LLM。 基于人类反馈的强化学习(Reinforcement Learning from Human Feedback) RLHF应用人类反馈来训练LLM。反馈能够通过多种形式收集,例如考察、访谈或用户钻研。RLHF是一种更简单、更耗时的办法来微调LLM,但它比SFT更无效。 应该应用哪种办法? 微调 LLM 的最佳办法取决于许多因素,例如标记数据的可用性、可用工夫和资源以及所需的性能。如果有很多可用的标记数据,SFT 是一个不错的抉择。然而如果没有可用的标记数据,或者如果须要将 LLM 的性能进步到 SFT 无奈达到的程度,RLHF 是一个不错的抉择,然而RLHF 须要更多的事件和前期的人工参加。 微调的益处 微调能够进步 LLM 在特定工作或畛域上的性能,能够为自然语言生成、问答和翻译等工作带来更好的后果。微调还能够使 LLM 更具可解释性,这有助于调试和了解模型的行为。 所以Fine-tuning 是语言模型学习过程中的后续步骤。在通过预训练后,模型依据特定于工作的标记数据进行微调,以使其常识适应特定的上游工作。 迁徙学习:微调利用迁徙学习,其中模型将学习到的示意从预训练转移到指标工作。特定于工作的数据:模型在特定于指标工作的标记数据上进行训练,例如带有情感标记的句子或问答对。基于梯度的优化:微调通常波及基于梯度的优化技术,以依据特定于工作的数据更新模型的参数。微调使模型可能在各种特定的自然语言解决工作中表现出色,包含情感剖析、问题答复、机器翻译和文本生成。像BERT这样的预训练语言模型能够在标有踊跃或消极情绪的客户评论数据集上进行微调。个别的微调工作如下: 情感剖析:微调模型能够用于情感剖析工作,例如剖析客户评论、社交媒体情感监控和市场钻研。文本分类:微调容许模型将文本分类到预约义的类别中,从而反对主题分类、垃圾邮件检测和文档分类等应用程序。问答:通过对问答对进行微调,能够应用模型依据给定的上下文答复特定的问题,帮忙实现客户反对和信息检索等工作。上下文学习上下文学习(In-Context Learning)也能够翻译成情境学习:是一种新兴的办法,它联合了预训练和微调,同时在训练过程中联合特定工作的指令或提醒。模型学会依据给定的指令生成与上下文相干的响应或输入,从而进步它们在特定工作中的体现。 随着大模型(GPT3,Instruction GPT,ChatGPT)的横空出世,如何更高效地提醒大模型也成了学术界与工业界的关注,因而 In-context learning 的办法在 NLP 畛域非常炽热。 ICL的要害思维是从类比中学习。上图给出了一个描述语言模型如何应用 ICL 进行决策的例子。首先,ICL 须要一些示例来造成一个演示上下文。这些示例通常是用自然语言模板编写的。而后 ICL 将查问的问题(即你须要预测标签的 input)和一个上下文提醒(一些相干的 cases)连贯在一起,造成带有提醒的输出,并将其输出到语言模型中进行预测。 上下文提醒:上下文学习包含提供明确的指令或提醒,以领导模型在生成响应或输入时的行为。 强化学习或结构化反馈:上下文学习能够联合强化学习技术或结构化反馈来领导模型的响应。 迭代训练:模型经验屡次迭代训练,接管反馈并依据提供的提醒改良它们的响应。 上下文学习在各种工作中显示出有心愿的后果,包含问题答复,对话零碎,文本实现和文本摘要。它容许模型生成上下文统一的和特定于工作的输入。 上下文学习与预训练和微调的关系 预训练侧重于从大规模未标记数据中进行无监督学习,获取个别语言了解。微调建设在预训练的根底上,并应用特定于工作的标记数据使模型适应特定的工作,从而实现专门的性能。上下文学习在训练过程中蕴含特定于工作的指令或提醒,领导模型的行为并进步工作性能。 ...

June 14, 2023 · 1 min · jiezi

关于深度学习:想要更好地理解大模型架构从计算参数量快速入手

编者按:要了解一种新的机器学习架构(以及其余任何新技术),最无效的办法就是从头开始实现它。然而,还有一种更简略的办法——计算参数数量。 通过计算参数数量,读者能够更好地了解模型架构,并查看其解决方案中是否存在未被发现的谬误。 该文章提供了准确的Transformers模型的参数量计算公式和不太精确的简略公式版本,使读者可能疾速估算基于Transformer的任何模型中参数的数量。 以下是译文,Enjoy! 作者 | Dmytro Nikolaiev (Dimid) 编译 | 岳扬 要了解一种新的机器学习架构(以及其余任何新技术),最无效的办法就是从头开始实现它。 尽管这可能会非常复杂、耗时,并且有时简直不可能实现,但这是帮忙咱们了解每个技术细节的最佳办法。例如,如果没有相似的计算资源或数据,咱们将无奈确保咱们的解决方案中没有未被发现的谬误。 然而,还有一种更简略的办法——计算参数数量。 这比仅仅浏览论文要艰难得多,但能够让咱们深刻开掘并查看是否齐全了解了新架构的构件(在本文的例子是Transformer的编码器(Encoder)和解码器(Decoder)构件)。 咱们能够通过上面这幅图表来思考这个问题,这张图表展现了三种了解新ML架构的办法——圆圈的大小示意对该架构的了解水平。 本文次要钻研驰名的Transformer架构,并思考如何计算PyTorch TransformerEncoderLayer[1]和TransformerDecoderLayer[2]类中的参数数量。因而,咱们须要确保对于该架构由哪些局部组成不再充斥神秘感。 TLDR(总结)(该文篇幅比拟长,如果不想深入探讨或工夫无限,能够间接看总结局部) 您能够浏览“论断 Conclusions”局部,所有参数量计算公式都总结在“论断 Conclusions”局部。 本文不仅提供准确的参数量计算公式,还可能提供不太精确的公式近似版本,将使您可能疾速估算基于Transformer的任何模型中参数的数量。 01 Transformer架构驰名的Transformer架构于2017年在《Attention Is All You Need[3]》这篇论文中提出,并因其具备可能无效捕获长距离的依赖关系(long-range dependencies)的能力而成为自然语言解决和计算机视觉工作中的规范架构。 早在2023年初,扩散模型(Diffusion)[4]因为文转图生成模型[5]的大火而变得极其风行。兴许,很快扩散模型将成为各种工作的最先进技术,就像Transformer与LSTM和CNN一样。但咱们先来看看Transformer…… 本文并不试图去解释Transformer架构,因为曾经有很多足够好的文章做到了这一点。这篇文章只是让咱们可能从不同的角度去对待它,或者解说一些细节问题。所以如果你正在寻找更多无关此架构的学习资源,我能够向你举荐一些;否则,您能够持续浏览上来。 1.1 理解更多Transformer的资源如果你正在寻找更加具体的Transformer架构概述,能够浏览以下资料(请留神,互联网上有很多技术内容,我只是集体喜爱这些): 首先,能够浏览官网论文[3]。第一次接触Transformer就浏览论文可能不是最佳形式,但这并不像看起来那么简单。能够尝试应用Explainpaper来帮忙您浏览此论文[6]或其余论文(这是一种基于AI的工具,能够解释用鼠标标记的文本)。Jay Alammar的“Great Illustrated Transformer[7]”。如果您不喜爱阅读文章,能够观看同一作者的YouTube视频[8]。Lukasz Kaiser在Google Brain的 “Awesome Tensor2Tensor” 讲座[9]。如果想间接进行实操并应用各种Transformer模型构建应用程序,请查看Hugging Face课程[10]。1.2 Original Transformer首先,让咱们回顾一下Transformer的基础知识。 Transformer的架构由两个组件组成:编码器(在右边)和解码器(在左边)。编码器承受输出token序列并生成暗藏状态序列(sequence of hidden states),而解码器则承受这个暗藏状态序列并生成输入token序列。 Transformer 架构图,来自https://arxiv.org/pdf/1706.03762.pdf 编码器和解码器都由一堆雷同的层组成。对于编码器,该层包含多头注意力(multi-head attention)(1——此处及下文中的数字指的是上面的图片中标序号的局部)和一个带有一些层归一化(3)和跳跃连贯(skip connections)的前馈神经网络(feed-forward neural network)(2)。 解码器也相似于编码器,但除了第一个多头注意力(4)(在机器翻译工作中被屏蔽,所以解码器不会通过查看将来的tokens进行舞弊)和一个前缀网络(5)之外,它还具备第二个多头注意力机制(6)。它容许解码器在生成输入时应用编码器提供的上下文(context)。与编码器一样,解码器也有一些层归一化(layer normalization)(7)和跳跃连贯组件。 带有序号标记组件的Transformer架构图 来自https://arxiv.org/pdf/1706.03762.pdf 我不会将输出嵌入层(带有地位编码)和最终输入层(linear+softmax)视为Transformer组件,而只关注编码器和解码器块。这样做是因为这些组件是实用于某些特定工作和嵌入办法的,而编码器和解码器栈是其余体系结构的根底。 这种架构的例子包含用于编码器的基于BERT的模型(BERT、RoBERTa、ALBERT、DeBERTa等),用于解码器的基于GPT的模型(GPT、GPT-2、GPT-3、ChatGPT),以及构建在残缺的编码器-解码器框架上的模型(T5、BART等)。 只管咱们在该架构中标记了七个组件,但咱们能够看到,其中仅有三个独特的组件: 多头注意力(Multi-head attention);前馈网络(Feed-forward network);层的归一化(Layer normalization)。 ...

June 12, 2023 · 3 min · jiezi

关于深度学习:常用的表格检测识别方法表格内容识别方法

罕用的表格检测识别方法 3.3 表格内容识别方法 表格辨认的钻研次要波及两个方面,一方面是对单元格内的文本进行辨认,这一步通常是在确定单元格区域后,利用较为稳固的光学字符识别办法(OCR)来实现,这一方面不是表格辨认钻研的重点,不在此开展;另一方面是基于整个表格内容进行的表格分类、单元格分类、以及表格信息抽取等工作,这是以后表格辨认钻研的热门畛域之一。下文会对表格信息抽取进行开展讲述。 从文档中抽取要害信息曾经被钻研了几十年。在基于深度学习的办法呈现之前,晚期的工作次要依赖于已知模板中的一些规定或人为设计的个性,因而它们通常在没见过的模板上失败,在理论利用中不可适配。随着深度学习的倒退,在信息抽取畛域获得了重大进展。 如上所述,大多数基于深度学习的办法将信息抽取定义为一个token分类问题。除了上述工作外,M. Carbonell还提出了一种基于CNN的办法,即从输出的文档图像中联结进行手写文本检测、转录和命名实体辨认。除了这个范式之外,信息抽取也能够作为其余问题来表述。Majumder等人提出了一种利用先验常识提取要害畛域值的办法。对于每个字段,首先抉择一些候选词。而后,将每个单词的构造嵌入其上下文信息,计算该嵌入与指标域嵌入之间的余弦类似值作为类似度得分。 SPADE(SPAtial DEpendency parser)[W. Hwang等人] 将信息抽取定义为一个空间依赖性解析问题。它构建了一个以文本段和字段作为图节点的依赖图,而后应用解码器从辨认的图节点之间的连通性中提取字段值。BROS(BERT Relying On Spatiality)[Hong等人] 通过提出了一种新的地位编码方法和一种基于区域掩蔽的预训练指标,进一步改良了SPADE。另一类办法[R. B. Palm等人,H. Guo等人,C. Sage等人]采纳在其余NLP或图像了解工作中应用的序列到序列模型,间接预测关键字段的所有值,而不须要字符监督。 Xiao等人构建了一个具备句子嵌入的二维文本嵌入图,并将该文本图和视觉特色与全卷积网络相结合,用于表格、章节题目、题目、段落等图像区域的像素级宰割。Raphael等人提出了一种多模态神经模型,通过将一个二维文本嵌入到CNN模型的中间层,以便在历史报纸上进行更细粒度的宰割工作。 还有一些钻研人员认为,文档的图像特色十分有用,因为图像特色是字体、字形、色彩等的混合示意。因为信息抽取工作波及文档图像,一些钻研人员将其视为一项纯正的计算机视觉工作。这些办法从光学字符识别(OCR)的角度解决了信息抽取工作。对于每一种类型的实体,这些办法设计了相应的解码器,负责辨认文本内容并确定其类别。因为不足语义特色,这种办法在面对简单的布局时不能很好地工作。 钻研人员从不同的角度探讨了信息抽取工作。Hwang等人和Jiang等人基于坐标信息序列化文本片段,并将坐标输出到序列标记器。然而,简略地将该地位视为某种特色,可能不能充分利用文本之间的视觉关系。为了充分利用语义特色和地位信息,Chargrid [Katti等人]将字符映射到一个热向量上,从而填充文档图像上的字符区域。将带有语义信息的图像输出CNN进行检测,并进行语义宰割,提取实体。起初的BERTgrid [Denk和Reisswig等人]采纳了相似的办法,但应用了不同的单词嵌入办法。然而,它通过应用通道个性来示意语义,引入了大量的计算,特地是具备大类别的语言。 因而,以语义特色作为节点特色,以文本片段的空间地位特色作为边缘特色,构建全局文档图通常是一种更好的解决方案。另外几种办法[Qian等人,Liu等人,Yu等人,Gal等人,Cheng等人]应用GNN对文档的布局信息进行建模。通过节点之间传递的音讯,这些模型能够学习每个文本的总体布局和散布,这有助于后续的实体提取。例如,Gui 等人提出了一种基于词汇的图神经网络,将中文NER(命名实体辨认)视为节点分类工作。此外,GraphIE [Qian等人]和Liu等人提出的模型通过GNN提取视觉特色,加强BiLSTM-CRF模型的输出,被证实是无效的。与全连贯或手工制作的图不同,PICK [Yu等人]通过图学习预测了节点之间的连贯,这也进步了后果。这些办法应用GNN编码文本嵌入,给定视觉上丰盛的上下文,以隐式地学习键-值关系。 表格信息抽取方面,国外的研究者在基于序列的办法上比较突出,提出了LAMBERT,TILT等一批优良的模型,这与国外长期积攒的语言模型倒退教训无关,在基于二维特色网格的办法上国外也有较早的摸索,提出了Chargrid和BERTgrid等经典模型,而对于基于图的办法钻研较少;而国内的研究者在基于图和基于二维特色网格的办法上有着世界领先的程度,PICK,MatchVIE和ViBERTGrid等办法在各种信息抽取工作上名落孙山。总的来说,近年来国内外研究者对表格内容辨认都十分关注,这一畛域的办法也呈现出多元化倒退的态势。 参考文献: Gao L C, Li Y B, Du L, Zhang X P, Zhu Z Y, Lu N, Jin L W, Huang Y S, Tang Z . 2022. A survey on table recognition technology. Journal of Image and Graphics, 27(6): 1898-1917. ...

June 12, 2023 · 1 min · jiezi

关于深度学习:深度学习应用篇计算机视觉语义分割综述6DeepLab系列简介DeepLabV3深入解读创新点训练策略主要贡献

深度学习利用篇-计算机视觉-语义宰割综述[6]:DeepLab系列简介、DeepLabV3深刻解读翻新点、训练策略、次要奉献0.DeepLabV3深刻解读1、DeepLab系列简介1.1.DeepLabV1作者发现Deep Convolutional Neural Networks (DCNNs) 可能很好的解决的图像级别的分类问题,因为它具备很好的平移不变性(空间细节信息已高度形象),然而DCNNs很难解决像素级别的分类问题,例如姿势预计和语义宰割,它们须要精确的地位信息。 1.1.1翻新点:将深度神经网络DCNN与全连贯CRF联合起来,进步图像宰割的宰割精度。提出空洞卷积的思维。利用尝试了多尺度、多层次的信息交融。1.1.2. 动机:DCNN利用在语义宰割工作上存在两个缺点: 反复重叠的池化和下采样操作导致分辨率大幅降落,地位信息失落难以复原。从分类器取得以对象为核心的决策须要空间转换的不变性,疏忽对细节处的把控,这从实质上限度了DCNN模型的空间准确性。分类工作具备空间不变性,图像的仿射变换不会影响最初的分类后果,而且恰好通过仿射变换等操作(数据增广)能够减少数据量,进步模型的精度;然而像宰割和检测这类问题,不具备空间不变性。 1.1.3. 应答策略:空洞卷积Fully-connected Conditional Random Field (CRF)1.2.DeepLabV21.2.1.翻新点:空洞卷积,作为密集预测工作的弱小工具。空洞卷积可能明确地管制DCNN内计算特色响应的分辨率。它还容许咱们无效地扩充滤波器的视线以并入较大的上下文,而不减少参数的数量或计算量。提出了空洞空间卷积池化金字塔(atrous spatial pyramid pooling (ASPP)),以多尺度的信息失去更准确的宰割后果。ASPP并行的采纳多个采样率的空洞卷积层来探测,以多个比例捕获对象以及图像上下文。通过组合DCNN和概率图模型(CRF),改良宰割边界后果。在DCNN中最大池化和下采样组合实现可平移不变性,但这对精度是有影响的。通过将最终的DCNN层响应与全连贯的CRF联合来克服这个问题。1.2.2.动机DCNNs中语义宰割存在三个挑战: 间断下采样和池化操作,导致最初特色图分辨率低。图像中存在多尺度的物体(相比V1而言提出的新的挑战)空间不变性导致细节信息失落1.2.3. 应答策略:移除局部池化操作,应用空洞卷积。利用不同收缩因子的空洞卷积交融多尺度信息—atrous spatial pyramid pooling(ASPP)(新的翻新点)全连贯CRF。1.3.DeepLabV31.3.1翻新点:减少了多尺度(multiple scales)宰割物体的模块设计了串行和并行的空洞卷积模块,采纳多种不同的atrous rates(采样率)来获取多尺度的内容信息1.3.2. 动机:DCNN中语义宰割存在三个挑战: 间断下采纳和反复池化,导致最初特色图分辨率低图像中存在多尺度的物体1.3.3. 应答策略:应用空洞卷积,避免分辨率过低状况串联不同膨胀率的空洞卷积或者并行不同膨胀率的空洞卷积(v2的ASPP),来获取更多上下文信息1.3.4. 次要奉献:从新探讨了空洞卷积的应用,这让咱们在级联模块和空间金字塔池化的框架下,可能获取更大的感触野从而获取多尺度信息改良了ASPP模块:由不同采样率的空洞卷积和BN层组成,咱们尝试以级联或并行的形式布局模块探讨了一个重要问题:应用大采样率的3×3的空洞卷积,因为图像边界的起因无奈捕获远距离信息,会进化为1×1的卷积, 作者提出将图像级特色交融到ASPP模块中论述了训练细节并分享了训练教训,论文提出的"DeepLabv3"改良了以前的工作,取得了很好的后果1.4.DeepLabV3+1.4.1.翻新点:更深的Xception构造,不同的中央在于不批改entry flow network的构造,为了疾速计算和无效的应用内存所有的max pooling构造被stride=2的深度可拆散卷积代替每个3x3的depthwise convolution都跟BN和Relu将改良后的Xception作为encodet骨干网络,替换本来DeepLabv3的ResNet1011.4.2. 动机:语义宰割次要面临两个问题: 物体的多尺度问题(DeepLabV3解决)DCNN的多次下采样会造成特色图分辨率变小,导致预测精度升高,边界信息失落(DeepLabV3+解决指标)1.4.3. 应答策略:改良Xception,层数减少将所有最大值池化层替换为带步长的深度可拆散卷积层2、DeepLabV3详解2.1.提出问题首先,语义宰割问题存在两大挑战: 第一个挑战:间断池化操作或卷积中的stride导致的特色分辨率升高。这使得DCNN可能学习更形象的特色示意。然而,这种不变性可能会妨碍密集预测工作,因为不变性也导致了具体空间信息的不确定。为了克服这个问题,提倡应用空洞卷积。第二个挑战:多尺度物体的存在。几种办法曾经被提出来解决这个问题,在本文中咱们次要思考了这些工作中的四种类型,如图1所示。图1 用于捕捉多尺度上下文的代替体系结构 第一种:Image Pyramid,将输出图片放缩成不同比例,别离利用在DCNN上,将预测后果交融失去最终输入第二种:Encoder-Decoder,将Encoder阶段的多尺度特色使用到Decoder阶段上来复原空间分辨率第三种:在原始模型的顶端叠加额定的模块,以捕获像素间长距离信息。例如Dense CRF,或者叠加一些其余的卷积层第四种:Spatial Pyramid Pooling空间金字塔池化,应用不同采样率和多种视线的卷积核,以捕获多尺度对象DeepLabV3的提出是为了解决多尺度下的指标宰割问题。如图2所示,不同指标在图中的尺寸大小不同,这也导致模型思考不同尺寸的宰割精度。 图2 多尺度指标宰割示例 2.2.提出解决方案2.2.1.用级联的形式设计了空洞卷积模块具体而言,DeepLabV3取ResNet中最初一个block(ResNet的block4),并将他们级联到了一起,如图3所示。 <center>图3 带Atrous和不带Atrous卷积的级联模块</center> 有三个3×3卷积在这些块中,除了最初一个块,其余的模块中最初的一个卷积步长为2,相似于原来的ResNet。这么做背地的动机是,引入的stride使得更深的模块更容易捕捉长距离的信息。如图3(a),整个图像的特色都能够汇聚在最初一个小分辨率的特色图中。 然而,咱们发现间断的stride对语义宰割是无害的,会造成细节信息的失落(如下表)。 <center>表1 应用ResNet-50和block7 和不同的输入步长的更深层空洞卷积</center> 从表中看得出,输入步长out_stride = 8时占用更多的内存,但同时带来了更好的性能。例如图3(b)中,输入步长为out_stride = 16。这样不减少参数量和计算量的同时无效的放大了步幅。 2.2.2. 应用了Multi-Grid 策略受到了采纳不同大小网格层次结构的多重网格办法的启发,咱们提出的模型在block4和block7中采纳了不同的空洞率。 特地的,咱们定义$ Multi\_Grid = ({r_1},{r_2},{r_3}) $为block4到block7内三个卷积层的unit rates。卷积层的最终空洞率等于unit rate和corresponding rate的乘积。例如,当$ output\_stride = 16,Multi\_Grid = (1,2,4)$,三个卷积就会在block4有。$ rates = 2 \cdot (1,2,4) = (2,4,8)$ ...

June 9, 2023 · 4 min · jiezi

关于深度学习:OpenHarmony安全委员会成立-开启社区安全治理新篇章

2023年5月31日上午,受OpenAtom OpenHarmony(以下简称“OpenHarmony”)我的项目群工作委员会要求,OpenHarmony平安委员会(以下简称安委会)在浙江大学杭州国内科创核心举办成立大会。OpenHarmony安委会次要负责OpenHarmony社区平安治理工作,从制度、流程及基础设施方面端到端构筑社区平安管理体系,推动OpenHarmony社区衰弱有序倒退。 首届安委会会员共计由25家单位组成,笼罩高校、平安企业、监管机构、行业发行版研发企业、设施厂商等各行业代表,他们别离是浙江大学、北京邮电大学、华中科技大学、兰州大学、电子科技大学、武汉大学、中科院软件研究所、博鼎实华(北京)技术有限公司、华为技术有限公司、江苏润和软件股份有限公司、深圳开鸿数字产业倒退有限公司、九联科技股份有限公司、深圳市证通电子股份有限公司、湖南开鸿智谷数字产业倒退有限公司、软通能源信息技术(团体)股份有限公司、北京水木羽林科技有限公司、北京赛博昆仑科技有限公司、绿盟科技集团股份有限公司、武汉安天信息技术有限责任公司、奇安信科技集团股份有限公司、中电科网络安全科技股份有限公司、杭州安恒信息技术股份有限公司、北京百度网讯科技有限公司、三六零科技团体有限公司、成都申威科技有限责任公司(以上排名不分先后)。 OpenHarmony是由凋谢原子开源基金会(OpenAtom Foundation)孵化及经营的开源我的项目,指标是面向全场景、全连贯、全智能时代、基于开源的形式,搭建一个智能终端设备操作系统的框架和平台,促成万物互联产业的凋敝倒退。OpenHarmony自开源以来,吸引了150多家搭档,超过5100名开发者参加共建,技术一直演进,生态继续凋敝。同时,为晋升OpenHarmony社区的平安治理程度,在OpenHarmony我的项目群工作委员会下设立OpenHarmony平安委员会,负责OpenHarmony社区的平安治理,联结共建单位和行业搭档将平安融入到社区开发全生命周期流动中,实现社区的高质量交付;并对影响社区的平安问题做到疾速感知、疾速响应和疾速修复,及时消减上游用户危险。 会议表决通过了OpenHarmony 安委会工作制度,表决产生了14家理事单位,其中1家理事长单位,7家副理事长单位,6家理事单位。理事长单位为浙江大学网络空间平安学院,理事长由浙江大学网络空间平安学院院长任奎负责;副理事长单位为江苏润和软件股份有限公司、湖南开鸿智谷数字产业倒退有限公司、华为技术有限公司、北京邮电大学网络空间平安学院、华中科技大学网络空间平安学院、兰州大学、武汉大学国家网络安全学院;安委会秘书长由华为刘云鑫负责。 任奎院长作为首届安委会理事长进行发言,认为信创平安是大势所趋,高校平安能力要用到产业平安实际中去,同时呐喊高校、企业等施展各自劣势,独特建设好OpenHarmony平安委员会,实现共赢。OpenHarmony平安委员会下设7个工作组,包含供应链起源平安与可信工作组、代码平安与安全工程工作组、平安检测与验证工作组、破绽治理与治理工作组、应急响应与平安生态工作组、产业政策与规范认证工作组和产业平安使能工作组。 接下来,OpenHarmony平安委员会将依照后期部署,以健全欠缺OpenHarmony社区平安治理体系,凋敝OpenHarmony平安生态为指标,稳步推动各工作组正式发展工作,着力于汇集产业生态各方力量,晋升OpenHarmony社区的平安治理程度,推动OpenHarmony社区衰弱疾速倒退。

June 8, 2023 · 1 min · jiezi

关于深度学习:FATE联邦学习FATE联邦学习使用GPU指定cuda下标

问题FATE框架1.x反对GPU训练吗? 寻找先看了官网,搜官网,发现还是有的。关上第一个后,外面能够用training param指定各个client的训练GPU,然而如同都是在large language model的。而在文档中搜查到的gpu,其实是release的版本阐明,外面搜来搜去,也是只有跟LLM相干的。莫非是一开始就反对GPU?我心愿找到具体什么中央验证了FATE反对/不反对GPU 在官网群里发问后,群友提供了一个文档,说横向的联邦是反对GPU的,并且给了example:https://github.com/FederatedAI/FATE/blob/master/doc/tutorial/pipeline/nn_tutorial/README.md,简略把所有example搜了下gpu这个关键字,没有阐明。。 淦,那就先摸索一下这个trainer param吧,搜寻文档后,只有简略的几行代码,这能看进去个毛。 def __init__(self, trainer_name=None, **kwargs): super(TrainerParam, self).__init__() self.trainer_name = trainer_name self.param = kwargs后果在他源码https://github.com/FederatedAI/FATE/blob/master/python/federatedml/param/homo_nn_param.py外面,还真就只有这么些代码 class TrainerParam(BaseParam): def __init__(self, trainer_name=None, **kwargs): super(TrainerParam, self).__init__() self.trainer_name = trainer_name self.param = kwargs def check(self): if self.trainer_name is not None: self.check_string(self.trainer_name, 'trainer_name') def to_dict(self): ret = {'trainer_name': self.trainer_name, 'param': self.param} return ret可是他在调用的时候是写了这么多的。他既没有通知我有什么kwargs,也没通知我每个kwargs是什么作用,会有什么后果。感觉文档的晋升空间还是有的。。好不不便啊。岂但没明说GPU的反对与否,参数的具体意义和选项也没有给全(或者说给个全参数指引链接也好呀)。 trainer_param = TrainerParam(trainer_name='fedavg_trainer', epochs=1, batch_size=8, data_loader_worker=8, secure_aggregate=True, cuda=0)解决我是在/federatedml/param/homo_nn_param.py下找到的这个trainer param类,所以他大概率只能反对homo nn的场景。 应用的办法,依据文档,应该是通过trainer param类,把param给传入而后带动训练过程。例子能够参考这个外面的例子,homo nn场景应该每个例子都会有trainer_param类,退出cuda=0这个参数应该就能够应用GPU了。 后续实在场景我会再测试 此参数 是否真是无效,通过查看GPU应用hetero场景是否应用GPU到时再来更新。更新: ...

June 8, 2023 · 1 min · jiezi

关于深度学习:MegEngine-动态执行引擎Imperative-Runtime-概述

当咱们议论 MegEngine 时,咱们在议论什么家喻户晓,开源深度学习框架旷视天元(MegEngine)是旷视自主研发的国产工业级深度学习框架 ,是旷视新一代 AI 生产力平台 Brain++ 的最外围组件,在2020年3月正式向寰球开发者开源。MegEngine 凭借其训练推理一体、超低硬件门槛和全平台高效推理 3 大外围劣势,帮忙企业与开发者大幅节俭产品从实验室原型到工业部署的流程,真正实现小时级的转化能力。 MegEngine 自上向下蕴含三个档次:Imperative、MegBrain 和 MegDNN。它们的角色定位别离是: Imperative:MegEngine 为动静训练设计的一套新接口,负责解决动态图运行时(Imperative Runtime)。MegBrain:负责解决动态图运行时(Graph Runtime)。MegDNN:MegEngine 的底层计算引擎。上面再从下到上介绍一下这三个模块在 MegEngine 中的作用。 MegEngine 的底层计算引擎 —— MegDNNMegDNN 在 MegEngine 中表演的角色是底层计算引擎。MegDNN 是一个跨平台的底层算子库,训练和推理过程中的所有计算操作最终都须要落到一个 MegDNN 的算子上进行,一个 MegDNN 算子可能会依据场景(如张量尺寸等)有一个或多个不同的实现(也叫 kernel)。 作为一个跨平台的计算库,MegDNN 为咱们提供丰盛的与 Tensor 相干的计算原语,比方 Convolution、Pooling、MatrixMul、Transpose 等。目前 MegDNN 反对的平台有:x86、arm、CUDA、RoCM、OpenCL、Hexagon 等。 感兴趣的同学能够在这里看到 MegDNN 在各个平台下的 kernel 具体实现。 动态图运行时管家 —— MegBrain为了确保训练推理一致性, Imperative 中复用了 MegBrain 的计算代码,因而咱们须要理解 MegBrain 做了什么。 MegBrain 负责解决动态图的运行时,次要提供 C++ 的训练和推理接口。 从上面的 MegEngine 整体架构图能够看出,Imperative 通过 Tensor Interpreter (张量解释器)复用了许多 MegBrain 的代码。比方 shape 推导、计算、求导、Trace 等。 在 MegBrain 中,一个 Computing Graph 由 SymbolVar 以及许多 op (算子,operator)组成。SymbolVar 是在 MegBrain 层面 Tensor 的示意,能够了解为传递给 op 进行计算的数据。作个类比,op 是相似加减乘除这样的计算操作(在深度学习中罕用的有 convolution、pooling 等),SymbolVar 就是咱们用来进行加减乘除的“数”(在深度学习中就是 Tensor)。 MegEngine 动态图接口 —— Imperative 退场因为 MegEngine 是动静合一的深度学习框架,MegBrain 解决了动态图的训练和推理问题,还须要有一个“组件”负责解决动态图的训练和推理、以及 Python 侧的训练接口,于是便有了 Imperative,也就是说,Imperative Runtime 是为了动静训练而独自设计的一套新接口。 实际上,在 MegBrain 的 Computing Graph 中曾经有了十分多的算子实现,因而 MegEngine 的 Imperative 借助张量解释器 Tensor Interpreter 较多地复用了 MegBrain 中的 op。这样做的起因是: 重写算子代价高,且容易写错。若 Imperative 的实现和 MegBrain 的实现不统一的话,容易导致训练推理不统一。除了复用 MegBrain 的局部性能,Imperative 本身蕴含的模块次要有:Module(定义深度学习网络的根底类的实现)、Optimizer(一些优化器的实现)、Functional(提供 python 层的训练接口)、Interpreter(计算入口,底层会调用 kernel 或者 MegBrain 的算子实现)、DTR(动静重计算模块)、Tracer(记录计算图的计算过程)等。 这些模块会在之后的文章中有更具体的介绍,感兴趣的同学能够查阅 MegEngine 官网文档。 总结:Imperative 与 MegDNN / MegBrain 的关系简略来说,MegDNN 负责 MegEngine 中所有的计算操作在各个平台(CUDA 等)的最终实现,无论是 MegBrain 还是 Imperative 的 op,最终都须要通过调用 MegDNN kernel 来实现计算。 既然 MegDNN 包揽了计算的活儿,那么在训练推理过程中那些与计算无关的工作,天然就落到了 MegBrain 和 Imperative 的头上。这些工作包含:求导、内存调配、对 Tensor 的 shape 进行推导、图优化、编译等。 MegEngine 整体上是有两局部 Runtime 以及底层的一些公共组件组成的。这两局部的 Runtime 别离叫做 Graph Runtime(对应 MegBrain) 和 Imperative Runtime(对应 Imperative)。 Graph Runtime 负责动态图局部,次要提供 C++ 训练推理接口。理论计算时须要调用 MegDNN 的实现。 Imperative Runtime 负责动态图局部,次要为动静训练提供 Python 接口。理论计算时须要调用 MegBrain 的已有实现或者间接调用 MegDNN 的 kernel。 附:更多 MegEngine 信息获取,您能够:查看文档和 GitHub 我的项目,或退出 MegEngine 用户交换 QQ 群:1029741705。欢送参加 MegEngine 社区奉献,成为 Awesome MegEngineer,荣誉证书、定制礼品享不停。

June 8, 2023 · 1 min · jiezi

关于深度学习:基于PySpark的10亿级数据集LAION5B元数据快速处理实践全文分享

举荐语 多模态大模型训练热火朝天开展,但以LAION-5B为代表的大规模多模态数据集获取却成了一个令人头疼的问题。 OpenDataLab两位工程师在浦数 AI Talk做了十分实用的LAION-5B下载教训分享,咱们整顿了其演讲内容、Parquet文件、图片下载工具,心愿能对大家下载同类数据集提供帮忙和参考。以下为全文内容: 一、数据集背景依据历史钻研发现,随着训练数据减少时,ALIGN、BASIC、Turing Bletchly、FLORENCE和GLIDE等大型多模态视觉语言模型在新的短少样本标签的数据集上也有很强的迁徙能力,而且性能还在稳固进步。但这些模型须要数十亿的图文数据才有达到良好的成果,到2022年为止,还没有十亿规模的公开图文对数据集。 直到LAION-5B公布,该数据集由5.85Billoin CLIP过滤的图像文本对组成,它为多模态预训练提供十分重要的“燃料”。(之前咱们写过LAION-5B数据集解读,戳此回顾:https://zhuanlan.zhihu.com/p/571741834) 二、 LAION-5B数据集构造依据官网文件统计,LAION-5B数据有5,860,068,373个样本,依照语言被官网划分为3个子数据集,别离是: laion2b-en 2.32 billion of these contain texts in the English languagelaion2b-multi 2.26 billion contain texts from 100+ other languageslaion1b-nolang 1.27 billion have texts where a particular language couldn’t be clearly detected.其中每个数据集官网提供了原始图片的URL,能够依据URL下载图片文件,以及些URL上的标签。这部分元数据被存储在parquet文件中。样例parquet文件构造如下: data_sample├── laion2B-en│   ├── part-00006-5114fd87-297e-42b0-9d11-50f1df323dfa-c000.snappy.parquet│   ├── part-00014-5114fd87-297e-42b0-9d11-50f1df323dfa-c000.snappy.parquet│   ├── part-00039-5114fd87-297e-42b0-9d11-50f1df323dfa-c000.snappy.parquet│   ├── part-00043-5114fd87-297e-42b0-9d11-50f1df323dfa-c000.snappy.parquet│   ├── part-00078-5114fd87-297e-42b0-9d11-50f1df323dfa-c000.snappy.parquet│   ├── part-00093-5114fd87-297e-42b0-9d11-50f1df323dfa-c000.snappy.parquet│   └── part-00123-5114fd87-297e-42b0-9d11-50f1df323dfa-c000.snappy.parquet└── laion2B-multi ├── part-00001-fc82da14-99c9-4ff6-ab6a-ac853ac82819-c000.snappy.parquet ├── part-00026-fc82da14-99c9-4ff6-ab6a-ac853ac82819-c000.snappy.parquet ├── part-00030-fc82da14-99c9-4ff6-ab6a-ac853ac82819-c000.snappy.parquet ├── part-00034-fc82da14-99c9-4ff6-ab6a-ac853ac82819-c000.snappy.parquet └── part-00125-fc82da14-99c9-4ff6-ab6a-ac853ac82819-c000.snappy.parquet三、 parquet元数据处理在官网下载parquet元数据时,发现以下几个小问题: ...

June 6, 2023 · 3 min · jiezi

关于深度学习:编译-ONNX-模型

本篇文章译自英文文档 Compile ONNX Models — tvm 0.13.dev0 documentation作者是 Joshua Z. Zhang更多 TVM 中文文档可拜访 →TVM 中文站。 本文将介绍如何用 Relay 部署 ONNX 模型。 首先装置 ONNX 包,最便捷的办法举荐装置 protobuf 编译器: pip install --user onnx onnxoptimizer或参考官方网站:https://github.com/onnx/onnx import onnximport numpy as npimport tvmfrom tvm import teimport tvm.relay as relayfrom tvm.contrib.download import download_testdata加载预训练的 ONNX 模型上面示例中的超分辨率模型与 ONNX 教程 中的模型完全相同,跳过 PyTorch 模型的构建局部,下载保留的 ONNX 模型: model_url = "".join( [ "https://gist.github.com/zhreshold/", "bcda4716699ac97ea44f791c24310193/raw/", "93672b029103648953c4e5ad3ac3aadf346a4cdc/", "super_resolution_0.2.onnx", ])model_path = download_testdata(model_url, "super_resolution.onnx", module="onnx")# 当初磁盘上有 super_resolution.onnx 模型onnx_model = onnx.load(model_path)加载测试图像该模型接管大小为 224x224 的单个图像作为输出,输入沿每个轴放大 3 倍的图像(即大小为 672x672)。为适配输出的 shape,从新缩放猫图像,并转换为 YCbCr。而后超分辨率模型利用于亮度(Y)通道。 ...

June 5, 2023 · 2 min · jiezi

关于深度学习:让小白也能看懂ChatGPT入门级科普十问十答

因为当初GPT炽热,360老板曾经开始总动员. 白领的日常工作必定是要产生颠覆性变动的。上面咱们就通过自问自答的形式率领小白用户理解一下ChatGPT. 全网最全的ChatGPT材料尽在 _顶尖架构师栈 1、ChatGPT到底是什么?ChatGPT 是一个由美国人工智能公司 OpenAI 开发的自然语言解决(NLP)模型,2022年11月底正式推出。它应用了 Transformer 模型作为其基础架构,并且被训练在大量的文本数据上,使其可能生成和答复问题。 艰深地说,ChatGPT 就是一个可能生成文本,答复问题和进行自然语言对话的 AI 模型。它能够帮忙您实现各种工作,例如聊天,写作,信息检索和问题答复等。 马斯克是 OpenAI 的创始人之一。除了ChatGPT,这家公司还有很多AI产品,包含文本生成图像模型DALL·E 2和语音辨认模型Whisper等。目前这家公司的估值曾经高达290亿美元。 2、ChatGPT和小爱同学、小度、Siri等智能助手有何不同?相同点是都能对自然语言进行解决,不过一个是文字输出申请,一个是语音输入命令。 训练数据和背景:ChatGPT相比小爱同学、小度、Siri等智能助手的训练量要大的多,所以可能答复的问题范畴要比后者宽很多。 设施和接口:ChatGPT 能够在各种设施上运行,如桌面、挪动设施和云计算,并提供了 API 接口,能够与其余应用程序整合;小爱同学、小度、Siri 等智能助手通常是附带在智能手机、智能音箱等特定设施上的。 性能和利用:ChatGPT就像一个有逻辑的机器人,可能将多个文本进行从新组织,主观上让人感觉像一个人在答复。而智能助手很多都是程式化的答复,不足组织能力,答复比拟板滞,查重率高。 如果ChatGPT也做成语音助手,那恐怕就没有对手了。 3、当初大家都用ChatGPT干啥?有人用它写程序修bug,ChatGPT甚至还能拿到谷歌百万年薪offer; 有人用它写论文、考试; 还有人写文案、写简历或者调戏; 当然它还能编新闻、写评论; 当然它能做很多事,你能够把它设想成一个会思考的搜索引擎。以前你只能搜寻信息而后汇总,当初这些事它能够帮你做。 4、ChatGPT如何进化、变强?答案很简略,就是给它更多的数据,它就是变得更弱小。 而搜索引擎平台,天生就有海量的数据。将来,如果它能与搜索引擎真正合二为一,它的能力将难以想象。 不过这也引发人们对隐衷和信息安全的担心。 5、ChatGPT会不会泄露个人隐私?有哪些潜在的道德、法律危险?实践上讲,它不会被动训练新数据,但咱们不能晓得谁会将数据喂给它。 当初大型互联网公司都将推出相似的产品,尤其包含几家搜寻巨头。目前,微软的必应曾经将ChatGPT性能嵌入到搜寻中。 而且像ChatGPT这样弱小的AI,就算剽窃可能也不会被发现,因为它会二次创作。 不论什么时候,增强隐衷意识都不为过。 鉴于训练数据的起因,ChatGPT可能会答复带有种族歧视、性别歧视或其余不当舆论,这存在潜在的道德风险。 然而这种状况能够通过算法和训练数据进行纠正。 至于法律危险,ChatGPT可能基于虚伪数据生成虚伪舆论,或者对知识产权造成进犯。 6、可能取代哪些职业?Business Insider依据专家整顿出ChatGPT等AI利用可能威逼的10个行业岗位,具体如下: 技术(程序员、软件工程师、数据分析师) 媒体(广告、内容创作、科技报道) 法律(律师助理) 市场研究员 老师 金融(金融分析师、私人参谋) 交易员 立体设计师 会计师 客服 7、ChatGPT能取代搜索引擎吗?目前支流观点认为ChatGPT不会取代搜索引擎,而是逐步和搜索引擎交融,催生下一代搜索引擎。 ChatGPT的劣势在于对搜寻答案的整合,而搜索引擎的海量数据是其劣势。相较与搜索引擎,ChatGPT的数据量几乎不值一提。 而且如果想要ChatGPT取代搜索引擎,则须要时刻保持数据的更新,这对ChatGPT来说是一笔无奈设想的开销。 据报道,有分析师指出,ChatGPT单次查问的老本大概是谷歌传统搜寻查问老本的七倍。 而笔者拿着问题问ChatGPT时,他也给出了否定的答复。 它这样说:ChatGPT并不能齐全取代搜索引擎。ChatGPT 能够答复一些询问,然而它并不具备搜寻网络上的大量信息和网页的能力。 ChatGPT 和搜索引擎有各自独特的性能和用处,不能齐全互相取代。ChatGPT 能够作为搜索引擎的补充,帮忙用户疾速答复一些询问,然而不能代替搜索引擎对大量信息和网页的搜寻和筛选性能。 8、怎么判断是ChatGPT 生成,还是人创作的?事实上,很多状况下人是难以做出判断的。然而有一些准则能够作为判断的参考。 ChatGPT语言格调比拟机械化; ChatGPT的答复有时是有显著谬误的; 不过,通过工具还是可能用魔法战胜魔法的。 近日,ChatGPT的母公司openAI就推出一款名为AI Text Classifier的文件检测器,能够帮忙人们检测一段文本到底是由人类还是AI创作。 ...

June 5, 2023 · 1 min · jiezi

关于深度学习:强化学习基础篇3DQNActorCritic详细讲解

强化学习根底篇[3]:DQN、Actor-Critic具体解说1.DQN详解1.1 DQN网络概述及其翻新点在之前的内容中,咱们解说了Q-learning和Sarsa算法。在这两个算法中,须要用一个Q表格来记录不同状态动作对应的价值,即一个大小为 $[状态个数,动作个数]$ 的二维数组。在一些简略的强化学习环境中,比方迷宫游戏中(图1a),迷宫大小为4*4,因而该游戏存在16个state;而悬崖问题(图1b)的地图大小为 4*12,因而在该问题中状态数量为48,这些都属于数量较少的状态,所以能够用Q表格来记录对应的状态动作价值。但当咱们须要利用强化学习来解决理论问题时,比方解决国际象棋问题或围棋问题,那么环境中就会蕴含 $10^{47}$ 个state或 $10^{170}$ 个state,如此宏大的状态数量曾经很难用Q表格来进行存储,更不要说在3D仿真环境中,机器人手脚蜿蜒的状态是齐全不可数的。由此能够看到Q表格在大状态问题和不可数状态问题时的局限性。同时,在一个强化学习环境中,不是所有的状态都会被常常拜访,其中有些状态的拜访次数很少或简直为零,这就会导致价值预计并不牢靠。 图1: 不同强化学习环境对应的状态量 为解决上述两个问题,一种解决方案即为Q表格参数化,应用深度神经网络拟合动作价值函数 $q_\pi$。参数化能够解决有限状态下的动作价值函数的存储问题,因为算法只需记住一组参数,动作价值函数的具体值可依据这一组参数算出。同时,参数化也有助于缓解因某些状态拜访次数少而导致的估值不准问题。因为对于一个处在间断空间内的状态价值函数,如果要对拜访次数较多的状态小临域内的状态进行价值预计,其预计后果也是有肯定保障的。 然而动作价值函数的参数化也会带来一些新的问题,首先,因为相邻样本来自同一条轨迹,会导致样本间关联性过强,而集中优化关联性过强的样本会导致神经网络解决其余样本时无奈获得较好的后果。举一个例子来阐明这个问题,比方:假如一个agent的action有上下左右四种抉择,神经网络采纳一条轨迹为 $s_1 \rightarrow right \rightarrow s_2 \rightarrow right \rightarrow s_3 \rightarrow up$ 的训练样本进行训练,而当该网络解决轨迹 $s_1 \rightarrow left \rightarrow s_2 \rightarrow left \rightarrow s_3 \rightarrow down \rightarrow s_4 \rightarrow ?$ 的样本进行预测时,就不会获得很好的成果。另一个问题是,当参数 $\theta$ 被同时用来计算动作价值函数的目标值和预测的Q值时,对 $\theta$ 的更新会同时影响这两个值,使得损失函数中的优化指标变得不明确,算法收敛不稳固。 为了解决如上两个问题,Mnih 等人提出了深度Q网络 (Deep Q-Network,DQN),其本质上是Q-learning算法,但应用深度学习网络拟合Q函数,解决了有限状态下的动作价值函数存储问题,同时采纳教训重现(Experience Replay)和固定Q指标(Fixed-Q-Target)两个翻新点来解决上述两个问题。 教训重现(Experience Replay):应用一个教训池存储多条教训 $s, a, r, s^{'}$, 再从中随机抽取一批用于训练,很好的解决了样本关联性的问题,同时,因为教训池里的教训能够失去反复利用,也晋升了利用效率。固定Q指标(Fixed-Q-Target):复制一个和原来Q网络结构一样的Target Q网络,用于计算Q目标值,这样在原来的Q网络中,target Q就是一个固定的数值,不会再产生优化指标不明确的问题。1.2. 算法流程在DQN算法中,智能领会在与所处环境 $environment$ 进行交互后,取得一个环境提供的状态 $s_{t}$。 接管状态后,智能领会依据深度学习网络预测出在该状态下不同口头 $action$ 对应的Q值,并给出一个口头 $a_{t}$,当口头反馈给环境后,环境会给出对应的处分 $r_{t}$、新的状态 $s_{t+1}$,以及是否触发终止条件 $done$。每一次交互实现,DQN算法都会将 $s_{t}, a_{t}, r_{t}, s_{t+1}, done$ 作为一条教训贮存在教训池中,每次会从教训池中抽取一定量的教训作为输出数据训练神经网络。 ...

June 3, 2023 · 2 min · jiezi

关于深度学习:强化学习基础篇1基础知识点马尔科夫决策过程蒙特卡洛策略梯度定理REINFORCE-算法

强化学习根底篇【1】:根底知识点、马尔科夫决策过程、蒙特卡洛策略梯度定理、REINFORCE 算法1.强化学习根底知识点智能体(agent):智能体是强化学习算法的主体,它可能依据教训做出主观判断并执行动作,是整个智能零碎的外围。 环境(environment):智能体以外的所有统称为环境,环境在与智能体的交互中,能被智能体所采取的动作影响,同时环境也能向智能体反馈状态和处分。虽说智能体以外的所有都可视为环境,但在设计算法时经常会排除不相干的因素建设一个现实的环境模型来对算法性能进行模仿。 状态(state):状态能够了解为智能体对环境的一种了解和编码,通常蕴含了对智能体所采取决策产生影响的信息。 动作(action):动作是智能体对环境产生影响的形式,这里说的动作经常指概念上的动作,如果是在设计机器人时还需思考动作的执行机构。 策略(policy):策略是智能体在所处状态上来执行某个动作的根据,即给定一个状态,智能体可依据一个策略来抉择应该采取的动作。 处分(reward):处分是智能体贯式采取一系列动作后从环境取得的收益。留神处分概念是事实中处分和惩办的统合,个别用正值来代表处分,用负值代表理论惩办。: 在flappy bird游戏中,小鸟即为智能体,除小鸟以外的整个游戏环境可统称为环境,状态能够了解为在以后工夫点的游戏图像。在本游戏中,智能体能够执行的动作为向上飞,或什么都不做靠重力降落。策略则指小鸟根据什么来判断是要执行向上飞的动作还是什么都不做,这个策略可能是依据值函数大小判断,也可能是根据在以后状态下执行不同动作的概率或是其余的判断办法。处分分为处分和惩办两种,每当小鸟平安的飞过一个柱子都会取得一分的处分,而如果小鸟掉到地上或者撞到柱子则或取得惩办。 2.马尔科夫决策过程 图1: 经典吃豆人游戏 在经典的吃豆人游戏中,吃豆人通过对环境进行察看,抉择上下左右四种动作中的一种进行本身挪动,吃掉豆子取得分数处分,并同时规避幽灵避免被吃。吃豆人每更新一次动作后,都会取得环境反馈的新的状态,以及对该动作的分数处分。在这个学习过程中,吃豆人就是智能体,游戏地图、豆子和幽灵地位等即为环境,而智能体与环境交互进行学习最终实现目标的过程就是马尔科夫决策过程(Markov decision process,MDP)。 图2: 马尔科夫决策过程中的智能体-环境交互 上图形式化的形容了强化学习的框架,智能体(Agent)与环境(Environment)交互的过程:在 $t$ 时刻,智能体在以后状态 $S_t$ 采取动作 $A_t$。在下一时刻 $t+1$,智能体接管到环境反馈的对于动作 $A_t$ 的处分 $R_{t+1}$,以及该时刻状态 $S_{t+1}$。从而,MDP和智能体独特给出一个轨迹: $$S_0,A_0,R_1,S_1,A_1,R_2,S_2,A_2,R_3,S_3,A_3,...$$ 接下来,更具体地定义以下标识: $S_t$ 是无限的状态汇合$A_t$ 是无限的动作汇合$P$ 是基于环境的状态转移矩阵:其中每一项为智能体在某个状态 $s$ 下,采取动作 $a$ 后,与环境交互后转移到其余状态 $s^{'}$ 的概率值,示意为 $P(S_{t+1}=s^{'}|s_{t}=s,a_{t}=a)$R是处分函数:智能体在某个状态 $s$ 下,采取动作 $a$ 后,与环境交互后所取得的处分,示意为 $R(s_{t}=s,a_{t}=a)$$\gamma$ 是折扣因子(discounted factor),取值区间为 $[0,1]$所以MDP过程能够示意为 $(S,A,P,R,\gamma)$,如果该过程中的状态转移矩阵 $P$ 和处分 $R(s,a)$ 对智能体都是可见的,咱们称这样的Agent为Model-based Agent,否则称为Model-free Agent。 3.策略梯度定理策略函数的参数化可示意为$\pi_{\theta}(s,a)$,其中$\theta$为一组参数,函数取值示意在状态$s$下抉择动作$a$的概率。为了优化策略函数,首先须要有一个对策略函数优劣进行掂量的规范。假如强化学习问题的初始状态为$s_{0}$,则心愿达到最大化的指标为 $$J(\theta) := V_{\pi_{\theta}}(s_{0})$$ 其中,$v_{\pi_{\theta}}$是在策略$\pi_{\theta}$下的实在价值函数,这个价值函数代表掂量一个状态的价值,即一个状态采取所有行为后的一个价值的期望值。如果能求出梯度$\nabla_{\theta}J(\theta)$,就能够用梯度回升法求解这个问题,即求解价值函数的最大值。 在这个函数中,$J(\theta)$既依赖于动作的抉择有依赖于动作抉择时所处状态的散布。给定一个状态,策略参数对动作抉择及收益的影响能够依据参数比拟直观地计算出来,但因为状态散布和环境无关,所以策略对状态散布的影响个别很难确切晓得。而$J(\theta)$对模型参数的梯度却依赖于这种未知影响,那么如何预计这个梯度呢? Sutton等人在文献中给出了这个梯度的表达式: $$\nabla_{\theta}J(\theta)\propto\sum_{s}\mu_{\pi_{\theta}}(s)\sum_{a}q_{\pi_{\theta}}(s,a)\nabla_{\theta}\pi_{\theta}(s,a)$$ 其中,$\mu_{\pi_{\theta}}(s)$称为策略$\pi_{\theta}$的在策略散布。在继续问题中,$\mu_{\pi_{\theta}}(s)$为算法$s_{0}$登程通过有限多步后位于状态$s$的概率。 策略梯度定理的证实:(留神:在证实过程中,为使符号简略,咱们在所有公式中隐去了$\pi$对$\theta$的依赖) $$\scriptsize{\begin{align}\nabla v_{\pi}(s) &= \nabla[\sum_{a}\pi(a|s)q_{\pi}(s,a) \\&= \sum_{a}[\nabla\pi(a|s)q_{\pi}(s,a)+\pi(a|s)\nabla q_{\pi}(s,a)] \\&= \sum_{a}[\nabla\pi(a|s)q_{\pi}(s,a)+\pi(a|s)\nabla\sum_{s^{'},r}p(s^{'},r|s,a)(r+v_{\pi}(s^{'}))] \\&= \sum_{a}[\nabla\pi(a|s)q_{\pi}(s,a)+\pi(a|s)\sum_{s^{'}}p(s^{'}|s,a)\nabla v_{\pi}(s^{'})] \\&= \sum_{a}[\nabla\pi(a|s)q_{\pi}(s,a)+\pi(a|s)\sum_{s^{'}}p(s^{'}|s,a)\sum_{a^{'}}[\nabla\pi(a^{'}|s^{'})q_{\pi}(s^{'},a^{'})+\pi(a^{'}|s^{'})\sum_{s^{''}}p(s^{''}|s^{'},a^{'})\nabla v_{\pi}(s^{''})]] \\&= \sum_{s \in S}\sum_{k=0}^{\infty}Pr(s\rightarrow x,k,\pi)\sum_{a}\nabla\pi(a|x)q_{\pi}(x,a)\end{align}}$$ ...

June 2, 2023 · 1 min · jiezi

关于深度学习:常用的表格检测识别方法表格结构识别方法-下

罕用的表格检测识别方法——表格构造识别方法(下) 3.2表格构造识别方法  表格构造辨认是表格区域检测之后的工作,其指标是辨认出表格的布局构造、层次结构等,将表格视觉信息转换成可重建表格的构造形容信息。 这些表格构造形容信息包含:单元格的具体位置、单元格之间的关系、单元格的行列地位等。 在以后的钻研中,表格构造信息次要包含以下两类形容模式:1)单元格的列表(蕴含每个单元格的地位、单元格 的行列信息、单元格的内容);2)HTML代码或Latex代码(蕴含单元格的地位信息,有些也会蕴含单元格的内容)。与表格区域检测工作相似,在晚期的表格构造识别方法中,研究者们通常会依据数据集特点,设计启发式算法或者应用机器学习办法来实现表格构造辨认工作。 Itonori(1993)依据表格中单元格的二维布局的 规律性,应用连通体剖析抽取其中的文本块,而后 对每个文本块进行扩大对齐造成单元格,从而失去 每个单元格的物理坐标和行列地位。 Rahgozar等人 (1994)则依据行列来进行表格构造的辨认,其先 辨认出图片中的文本块,而后依照文本块的地位以及两个单元格两头的空白区域做行的聚类和列的聚类,之后通过行和列的穿插失去每个单元格的位 置和表格的构造。Hirayama等人(1995)则从表格线登程,通过平行、垂直等几何剖析失去表格的行和列,并应用动静布局匹配的办法对各个内容块进 行逻辑关系辨认,来复原表格的构造。 Zuyev(1997) 应用视觉特色进行表格的辨认,应用行线和列线以及空白区域进行单元格宰割。该算法曾经利用到FineReader OCR产品之中。 Kieninger等人(1998) 提出了T-Recs(Table RECognition System)零碎,以 词语区域的框作为输出,并通过聚类和列合成等启 发式办法,输入各个文本框对应的信息,复原表格 的构造。随后,其又在此基础上提出了T-Recs++系 统(Kieninger等,2001),进一步晋升了辨认成果。 Amano等人(2001)创新性地引入了文本的语义信息,首先将文档合成为一组框,并将它们半自动地 分为四种类型:空白、插入、批示和解释。而后依据 文档构造语法中定义的语义和几何常识,剖析示意 框与其关联条目之间的框关系。 Wang等人(2004) 将表格构造定义为一棵树,提出了一种基于优化方 法设计的表构造了解算法。该算法通过对训练集中 的几何散布进行学习来优化参数,失去表格的构造。 同样应用树结构定义表格构造的还有Ishitani等人 (2005),其应用了DOM(Document Object Model) 树来示意表格,从表格的输出图像中提取单元格特 征。而后对每个单元格进行分类,辨认出不规则的 表格,并对其进行批改以造成规定的单元格排布。 Hassan(2007)、Shigarov(2016)等人则以PDF文 档为表格辨认的载体,从PDF文档中反解出表格视 觉信息。后者还提出了一种可配置的启发式办法框架。国内的表格构造辨认钻研起步较晚,因而传统的启发式办法和机器学习办法较少。在晚期,Liu等 人(1995)提出了表格框线模板办法,应用表格的 框架线形成框架模板,能够从拓扑上或几何上反映 表格的构造。而后提出相应的项遍历算法来定位和 标记表格中的项。 之后Li等人(2012)应用OCR引擎抽取表单中的文本内容和文本地位,应用关键词 来定位表头,而后将表头信息和表的投影信息联合 起来,失去列分隔符和行分隔符来失去表格构造。总体来说,表格构造辨认的传统办法能够演绎为以下四种:基于行和列的宰割与后处理,基于文本的检测、扩大与后处理,基于文本块的分类和后处理,以及几类办法的交融。随着神经网络的衰亡,钻研人员开始将它们利用于文档布局剖析工作中。起初,随着更简单的架构的倒退,更多的工作被放到表列和整体构造辨认中。   A Zucker提出了一种无效的办法CluSTi,是一种用于辨认发票扫描图像中的表格构造的聚类办法。CluSTi有三个奉献。首先,它应用了一种聚类办法来打消表格图片中的高噪声。其次,它应用最先进的文本辨认技术来提取所有的文本框。最初,CluSTi应用具备最优参数的程度和垂直聚类技术将文本框组织成正确的行和列。Z Zhang提出的宰割、嵌入和合并(SEM)是一个精确的表构造识别器。 M Namysl提出了一种通用的、模块化的表提取办法。E Koci 提出了一种新的办法来辨认电子表格中的表格,并在确定每个单元格的布局角色后构建布局区域。他们应用图形模型表示这些区域之间的空间互相关系。在此基础上,他们提出了删除和填充算法(RAC),这是一种基于一组精心抉择的规范的表辨认算法。SA Siddiqui利用可变形卷积网络的后劲,提出了一种独特的办法来剖析文档图片中的表格模式。P Riba提出了一种基于图的辨认文档图片中的表格构造的技术。该办法也应用地位、上下文和内容类型,而不是原始内容(可辨认的文本),因而它只是一种结构性感知技术,不依赖于语言或文本浏览的品质。E Koci应用基于遗传的技术进行图划分,以辨认与电子表中的表格匹配的图的局部。 SA Siddiqui将构造辨认问题形容为语义宰割问题。为了宰割行和列,作者采纳了齐全卷积网络。假如表构造的一致性的状况下,该办法引入了预测拼接办法,升高了表格构造辨认的复杂性。 作者从ImageNet导入事后训练的模型,并应用FCN编码器和解码器的构造模型。当给定图像时,模型创立与原始输出图像大小雷同的特色。SA Khan提出了一个鲁棒的基于深度学习的解决方案,用于从文档图片中已辨认的表格中提取行和列。表格图片通过预处理,而后应用门控递归单元(GRU)和具备softmax激活的全连贯层发送到双向递归神经网络。 SF Rashid提供了一种新的基于学习的办法来辨认不同文档图片中的表格内容。 SR Qasim提出了一种基于图网络的表辨认架构,作为典型神经网络的代替计划。 S Raja提出了一种辨认表格构造的办法,该办法联合了单元格检测和交互模块来定位单元格,并依据行和列预测它们与其余检测到的单元格的关系。此外,减少了结构限制的损失性能的单元格辨认作为额定的差别组件。 ...

June 1, 2023 · 2 min · jiezi

关于深度学习:C4D必备的7个素材网站很多爆款素材

C4D近几年来是一个十分热门的业余/职业,特地是在建模行业大多数时候都会抉择应用C4D进行,置信也有很多粉丝敌人喜爱C4D这个类别。然而我在一些网站上,常常会看到有人说想要一些C4D的素材,然而不晓得去哪里找,也不晓得有哪些网站能够收费下载。所以明天就打算分享一期C4D素材网站,如果大家感兴趣的话能够一起来看看。1、菜鸟C4D菜鸟C4D是一家围绕C4D软件技术交换的业余C4D网站,提供大量的C4D教程和C4D模型,现已收录超1万套模型素材。涵盖多种资源分类。如C4D插件,C4D工程文件,C4D建模与C4D动画,octane渲染器等大量优良资源。该网站下面的资源能够收费下载,然而须要欠缺个人信息之后能力登录下载。2、魔顿魔顿也是一家能够分享C4D资源的网站,这下面有十分多的C4D模型、插件、纹理贴图、HDR贴图等。不过该网站上也分为付费资源和免费资源,有些资源是须要付费的,大家能够依据本人的需要下载即可。3、一酷C4D该网站也收录了很多资源,包含C4D中文材质4000+,规范渲染器专用全汉化材质材质合集,全套材质 2000+,oc材质球中文,Octane渲染器,C4D预设金属水木纸纹理贴图灯光包素材等。插件分类具体参差,大部分资源收费,局部插件须要付费。4、C4D之家C4D之家网站有十分多的资源,别离有C4D教程、C4D模型、C4D插件、C4D工程、C4D建模、C4D渲染和C4D动画、粒子动画等全方位C4D中文教学资源,收费分享C4D预设,C4D材质和3D模型等。不过该网站上大多数资源都须要付费,然而也有很多教程视频能够观看,大家能够找适宜本人的教程练习。5、C4D联盟专一于C4D自学交换、C4D视频教学教程、C4D汉化插件、渲染器下载学习、作品效果图、模型素材、CG动画制作、特效观赏等相干常识学习。局部素材下载须要付费,插件分类内容多但少数须要付费下载。6、TexturesTextures是一个外国网站,该网站上有十分多C4D材质素材,每一种类别的素材都进行了分类,如果大家须要贴图类材质素材的话能够去该网站下载。7、polyhaven该网站也是一个收录了大量材质贴图的网站,而且分类也十分全,有户外的、天空、室内的、工作室、日出日落、夜晚、天然、城市等场景贴图。END想理解更多影视教程/影视资源/影视制作/等干货内容,大家要锁定咱们!

May 31, 2023 · 1 min · jiezi

关于深度学习:大语言模型技术原理

在明天这个时代,人们的工作和生存曾经离不开数据拜访,而简直所有平台背地的数据存储和查问都离不开数据库。SQL作为一种数据库的查问和解决语言历史悠久,最早由IBM于上世纪70年代初钻研关系数据模型时提出,后续倒退为一种宽泛应用的数据库规范拜访接口。 明天大语言模型的倒退给了咱们一个契机,从新扫视这层规范,如何让人们以更加天然的形式拜访数据库,数据以更间接、更灵便的形式返回给客户。因为历史倒退的起因,从数据库剖析出一个论断,须要“剖析人员+报表前端+数据后端+SQL+数据存储”的全门路,这一应用范式在将来将受到挑战。除了自然语言自身的劣势外,语境的上下文学习能力、迁徙学习和文字总结能力也有很大的施展空间,带着这些思考,咱们有必要理解一下大语言模型背地的倒退及其技术原理。 一、大语言模型的倒退大语言模型作为一个被验证可行的方向,其“大”体现在训练数据集广,模型参数和层数大,计算量大,其价值体现在通用性上,并且有更好的泛化能力。相较于传统特定畛域训练进去的语言模型,有更宽泛的利用场景。这篇文章参考Google和OpenAI相干论文及局部作者的补充,联合我的了解尝试用大家广泛看得明确的语言,对其技术倒退和次要实现进行解析。 1.1 Transformer模型的提出在Transformer提出之前,自然语言解决畛域的支流模型是循环神经网络(RNN,recurrent neural network),应用递归和卷积神经网络进行语言序列转换。2017年,谷歌大脑团队在人工智能畛域的顶会NeurIPS发表了一篇名为“Attention is all you need”的论文,首次提出了一种新的简单网络架构,即 Transformer,它齐全基于注意力机制(attention),齐全摒弃了循环递归和卷积。 递归模型通常沿输出和输入序列的符号地位进行计算,来预测前面的值。但这种固有的程序性质妨碍了训练样例内的并行化,因为内存束缚限度了样例之间的批处理。而注意力机制容许对依赖项进行建模,而无需思考它们在输出或输入序列中的间隔。 Transformer避开了递归网络的模型体系结构,并且齐全依赖于注意力机制来绘制输出和输入之间的全局依存关系。 在八个P100 GPU上进行了仅仅12个小时的训练之后,Transformer就能够在翻译品质方面达到新的最先进程度,体现了很好的并行能力。成为过后最先进的大型语言模型(Large Language Model, LLM)。 总结两个外围冲破: 冲破了远距离文本依赖的学习限度,避开了递归网络的模型体系结构,并且齐全依赖于注意力机制来绘制输出和输入之间的全局依赖关系。关联来自两个任意输出或输入地位的信号所需的操作数随着间隔减少,原来须要线性增长或对数增长,当初被收敛成一个常量,并通过多留神头机制保障了准确性。可高度并行进行训练,这对施展硬件红利以及疾速迭代模型十分重要。下图是论文提到的Transformer模型,对编码器和解码器应用重叠式的自注意力和逐点式、全连贯层,别离如图1的左半局部(编码器)和右半局部(解码器)所示,相干技术细节前面会重点讲到。 OpenAI基于该工作根底上倒退了GPT(Generative Pre-training)生成式预训练模型,这里借用网上一张图简略改过,相干细节将在前面开展。 1.2 生成式预训练初现后劲:GPT-12018年,OpenAI公司发表了论文“Improving Language Understanding by Generative Pre-training”, 应用的模型有两个阶段,第一阶段是无监督预训练,基于海量的文本集通过Transformer学习一个大容量的语言模型,第二阶段基于标注数据进行参数微调。失去的个别工作不可知模型(或称为通用模型)优于通过判断训练的模型,在论文选定的12种数据集中有9个获得更好成果。 在 GPT-1 中,采纳了 12 层Transformer 的构造作为解码器,每个 Transformer 层是一个多头的自注意力机制,而后通过全连贯失去输入的概率分布。 这次实际对OpenAI来讲,我感觉是奠定了他们往这个路线倒退的外围因素,次要有几个重点冲破: 1、证实了通用模型训练具备很大的价值后劲。之前用于学习特定工作的标注数据难以获得,导致模型成果不能继续晋升,而通过Transformer无监督训练+大量标注数据的Finetune就获得了更优的成果。 2、论文尝试减少Transformer中间层, 在从2层到12层的数量减少中,均匀每减少1层可能晋升9%的准确性。加上Transformer自身具备并行能力,这在GPU上无疑后劲微小。 3、论文发现在第二步的Finetune中增加语言建模作为辅助学习指标,可能进步监督模型的泛化能力,并减速收敛。阐明在更海量的数据集时,模型会更收益于辅助学习指标。 尽管论文摘要重点强调了该模型在短少标注数据状况下对特定工作的劣势,但其实以上三点发现对OpenAI后续技术路线影响重大。但GPT-1在生成长文本时,依然会呈现信息忘记和反复等问题,和特定畛域的模型比照还有很多有余。 1.3 泛化能力冲破:GPT-22019年,OpenAI发表了最新进展,一篇“Language Models are Unsupervised Multitask Learners”的论文。重点实际了更大的模型更广的数据集具备更好的泛化能力。GPT-1是12层的transformer,BERT最深是24层的transformer,GPT-2则是48层,共有15亿个参数的transformer,训练集叫WebText,是从4500万个链接提取文本去重后,失去800万文档共40GB文本。 论文认为现有零碎用单个工作来训练的单个畛域数据集,是不足模型泛化能力的次要起因,因而在更广的数据集上,GPT-2采纳了多任务(multitask)的形式,每一个工作都要保障其损失函数能收敛,不同的工作共享主体transformer参数。 最终训练进去的模型在不须要任何参数和模型改变下,在zero-shot(零样本)工作中,在8个数据集中有7个体现为业界最优,这个泛化能力能够说曾经很弱小了,并且在机器翻译场景获得亮眼后果,GPT也是在2.0进去后,开始备受关注。 1.4 更大参数更大数据集:GPT3之前的模型要在特定畛域有更好体现,仍然须要上千条标注样本数据来进行finetune,很大水平影响了模型的通用性,而人类可能依据后面一句话晓得语境(in-context),从而正确答复问题。GPT3就通过调大参数(1750亿)来测试in-context 学习能力,并在没有finetune状况下失去以下数据。在参数一直减少的同时,分为三种场景看答复准确率体现:Zero-shot(0样本),One-shot(只给一个规范样本),Few-shot(大量规范样本,1000条左右)。下图能够看到模型参数和样本集对正确性的影响,随着参数增多,Few-shot相比Zero-shot的晋升成果在拉大,阐明越大的参数对样本具备更强的泛化能力。 论文做了不同参数的验证工作,n(params)是参数梳理,n(layers)是模型层数,d(model)是FFN层数的1/4,d(head)是多留神头的维数,所有测试应用的上下文token数是2048。 GPT-3 在 GPT-2 谋求无监督和零次学习的特色根底上进行了改良,转而谋求无监督模式下的 few-shot(大量学习)。GPT-3采纳了 96 层的多头 Transformer,上下文窗口大小晋升至 2048 个 token ,基于更大的数据集 45TB 的文本数据训练,在多个 NLP 数据集上实现了杰出的性能。GPT-3更多的工作在工程问题上,比方数据净化解决,GPU并行时缩小节点间网络交互和负载平衡等。 ...

May 30, 2023 · 2 min · jiezi

关于深度学习:C4D-常用-14-款插件

渲染器插件 SolidAngle ArnoldArnold渲染器是一款高级的、跨平台的渲染 API。是基于物理算法的电影级别渲染引擎,目前由Solid Angle SL 开发。正在被越来越多的好莱坞电影公司以及工作室作为首席渲染器应用。 渲染器插件 V-RAYV-RAY领有实在的“三维静止模煳”、“微三角形置换”、“焦散”、通过VRay材质的调节实现“次曲面分布”的 SSS 成果、和“网络分布式渲染”等,能够大大地进步图片和动画的渲染品质。动物制作插件 Forester + 动物制作插件 IvyGrower(藤蔓成长)+ 地形散布插件 Laubwerk SurfaceSPREADForester是一个十分受欢迎的动物生成插件,能制作出简单的动物模型,能够做出山川、草原等大气的大型场景IvyGrower是一个为C4D制作的一款"散布"插件,能够实现在制作环境时,生成石头和散布动物的性能。Laubwerk SurfaceSPREAD很容易和十分无效在地形上散发Laubwerk动物 (和其余任何对象),被专门来填充和散布 大量的对象克隆在模型的外表。(作品案例由上述三软件配合应用实现)布尔插件 TGS MeshBooleanTGS MeshBoolean又称C4D布尔插件,是专为C4D用户打造的多边形模型插件,软件提供了参数化的工作流程,领有快捷的操作形式,免去了手工制作各种参数的简单步骤。像素插件 Tools4D VoxygenTools4D Voxygen是一款C4D像素化插件,反对将动画对象生成方块像素成果,并领有自定义贴图、自定义参数批改等多种性能。烟幕插件 TurbulenceFDTurbulenceFD是业余C4D流体模仿插件,能够轻松模拟出流体、烟雾、火光、水墨等成果,一些经典的电影和电视剧中的特效就是应用这款插件进行模仿的。噪波着色器插件 CodeVonc Proc3duraleProc3durale 2是一款实用的C4D形象融洞成果动画噪波着色器插件,该插件采纳全新的建模算法,领有着色更加精确、疾速的特点。电子元件纹理贴图软件 JSplacement(独立软件)JSplacement是一款形象电子成果独立软件,该软件可主动随机生成多种图片,导出图片后可配合C4D置换性能,做出丰富多彩的视觉效果。 流体插件 RealFlowRealFlow是一款流体动力学模仿插件,能够设计出实在的模仿成果。本平台资源均为通过网络等公开非法渠道获取的材料,该材料仅作为学习交换之用,其版权归原作者或原出版社所有,本平台不对所波及的版权问题负法律责任。如有侵权请留言分割即刻删除。

May 26, 2023 · 1 min · jiezi

关于深度学习:常用的表格检测识别方法表格结构识别方法上

第三章 罕用的表格检测识别方法3.2表格构造识别方法  表格构造辨认是表格区域检测之后的工作,其指标是辨认出表格的布局构造、层次结构等,将表格视觉信息转换成可重建表格的构造形容信息。这些表格构造形容信息包含:单元格的具体位置、单元格之间的关系、单元格的行列地位等。 在以后的钻研中,表格构造信息次要包含以下两类形容模式:1)单元格的列表(蕴含每个单元格的地位、单元格 的行列信息、单元格的内容);2)HTML代码或Latex代码(蕴含单元格的地位信息,有些也会蕴含单元格的内容)。   与表格区域检测工作相似,在晚期的表格构造识别方法中,研究者们通常会依据数据集特点,设计启发式算法或者应用机器学习办法来实现表格构造辨认工作。 Itonori(1993)依据表格中单元格的二维布局的 规律性,应用连通体剖析抽取其中的文本块,而后 对每个文本块进行扩大对齐造成单元格,从而失去 每个单元格的物理坐标和行列地位。 Rahgozar等人 (1994)则依据行列来进行表格构造的辨认,其先 辨认出图片中的文本块,而后依照文本块的地位以及两个单元格两头的空白区域做行的聚类和列的聚类,之后通过行和列的穿插失去每个单元格的位 置和表格的构造。 Hirayama等人(1995)则从表格线登程,通过平行、垂直等几何剖析失去表格的行和列,并应用动静布局匹配的办法对各个内容块进 行逻辑关系辨认,来复原表格的构造。 Zuyev(1997) 应用视觉特色进行表格的辨认,应用行线和列线以及空白区域进行单元格宰割。该算法曾经利用到FineReader OCR产品之中。 Kieninger等人(1998) 提出了T-Recs(Table RECognition System)零碎,以 词语区域的框作为输出,并通过聚类和列合成等启 发式办法,输入各个文本框对应的信息,复原表格 的构造。随后,其又在此基础上提出了T-Recs++系 统(Kieninger等,2001),进一步晋升了辨认成果。 Amano等人(2001)创新性地引入了文本的语义信息,首先将文档合成为一组框,并将它们半自动地 分为四种类型:空白、插入、批示和解释。而后依据 文档构造语法中定义的语义和几何常识,剖析示意 框与其关联条目之间的框关系。 Wang等人(2004) 将表格构造定义为一棵树,提出了一种基于优化方 法设计的表构造了解算法。该算法通过对训练集中 的几何散布进行学习来优化参数,失去表格的构造。 同样应用树结构定义表格构造的还有Ishitani等人 (2005),其应用了DOM(Document Object Model) 树来示意表格,从表格的输出图像中提取单元格特 征。而后对每个单元格进行分类,辨认出不规则的 表格,并对其进行批改以造成规定的单元格排布。 Hassan(2007)、Shigarov(2016)等人则以PDF文档为表格辨认的载体,从PDF文档中反解出表格视 觉信息。后者还提出了一种可配置的启发式办法框架。 国内的表格构造辨认钻研起步较晚,因而传统的启发式办法和机器学习办法较少。 在晚期,Liu等 人(1995)提出了表格框线模板办法,应用表格的 框架线形成框架模板,能够从拓扑上或几何上反映 表格的构造。而后提出相应的项遍历算法来定位和 标记表格中的项。之后Li等人(2012)应用OCR引擎抽取表单中的文本内容和文本地位,应用关键词 来定位表头,而后将表头信息和表的投影信息联合 起来,失去列分隔符和行分隔符来失去表格构造。总体来说,表格构造辨认的传统办法能够演绎为以下四种:基于行和列的宰割与后处理,基于文本的检测、扩大与后处理,基于文本块的分类和后处理,以及几类办法的交融。随着神经网络的衰亡,钻研人员开始将它们利用于文档布局剖析工作中。起初,随着更简单的架构的倒退,更多的工作被放到表列和整体构造辨认中。   A Zucker提出了一种无效的办法CluSTi,是一种用于辨认发票扫描图像中的表格构造的聚类办法。CluSTi有三个奉献。首先,它应用了一种聚类办法来打消表格图片中的高噪声。其次,它应用最先进的文本辨认技术来提取所有的文本框。最初,CluSTi应用具备最优参数的程度和垂直聚类技术将文本框组织成正确的行和列。 Z Zhang提出的宰割、嵌入和合并(SEM)是一个精确的表构造识别器。 M Namysl提出了一种通用的、模块化的表提取办法。 E Koci 提出了一种新的办法来辨认电子表格中的表格,并在确定每个单元格的布局角色后构建布局区域。他们应用图形模型表示这些区域之间的空间互相关系。在此基础上,他们提出了删除和填充算法(RAC),这是一种基于一组精心抉择的规范的表辨认算法。 SA Siddiqui利用可变形卷积网络的后劲,提出了一种独特的办法来剖析文档图片中的表格模式。 P Riba提出了一种基于图的辨认文档图片中的表格构造的技术。该办法也应用地位、上下文和内容类型,而不是原始内容(可辨认的文本),因而它只是一种结构性感知技术,不依赖于语言或文本浏览的品质。 E Koci应用基于遗传的技术进行图划分,以辨认与电子表中的表格匹配的图的局部。 SA Siddiqui将构造辨认问题形容为语义宰割问题。为了宰割行和列,作者采纳了齐全卷积网络。假如表构造的一致性的状况下,该办法引入了预测拼接办法,升高了表格构造辨认的复杂性。作者从ImageNet导入事后训练的模型,并应用FCN编码器和解码器的构造模型。当给定图像时,模型创立与原始输出图像大小雷同的特色。 SA Khan提出了一个鲁棒的基于深度学习的解决方案,用于从文档图片中已辨认的表格中提取行和列。表格图片通过预处理,而后应用门控递归单元(GRU)和具备softmax激活的全连贯层发送到双向递归神经网络。 SF Rashid提供了一种新的基于学习的办法来辨认不同文档图片中的表格内容。 ...

May 24, 2023 · 2 min · jiezi

关于深度学习:助力青年科技人才发展蚂蚁技术研究院联合CCF推动218-Club成立

5月18号,2023 CCF青年精英大会在浙江温州举办,蚂蚁技术研究院联结中国计算机学会(以下简称“CCF”)举办CCF 218 Club(以下简称“218 Club”)启动典礼。CCF秘书长唐卫清为218 Club第一届执行委员会主席唐博授旗,CCF青年工作委员会主任韩银和、首届青年托举工程入选者清华大学崔鹏、独家反对单位蚂蚁技术研究院学术单干总监邵青及其他成员独特缺席见证。218 Club是由CCF牵头,蚂蚁技术研究院作为独家反对单位,历届CCF“青年人才倒退打算”入选者(其中局部青年学者会举荐到中国科协青年人才托举工程)自组织创立的学术社团,致力于通过组织不同模式的学术社团活动与产学研交换加深成员之间的理解互动,促成跨平台的学术单干,独特推动钻研工作的倒退。通过第一次全体成员会议的选举,北方科技大学,2022年CCF“青年人才倒退打算”入选者唐博成为218 Club首届执行委员会主席,会上218 Club发起人之一、CCF青工委主任韩银和对218 Club提出了三点期待:第一,明确218 Club的定位与使命,“有风驶尽帆”想分明“船”前行的方向 ;第二,以志愿者精力为准则,做到自发,自理,自管;第三,做好连接作用。推动与不同年龄段的科技人才交流互促,需深刻思考。 科研人才是企业倒退的源能源,推动科技翻新与冲破,已成为当代数字经济时代下企业外围竞争力的关键因素。蚂蚁团体始终器重科技翻新,器重科研投入。2018年-2021年科研经费投入年均增长率超过39%,2021年科研投入超188亿,在职员工技术人才占比达63%。 蚂蚁技术研究院关注青年科学家造就与成长,帮忙其长期倒退并继续投入资源。2022年,蚂蚁技术研究院成为CCF“青年人才倒退打算”独家反对单位,并与CCF达成为期三年的策略单干,为来自不同技术畛域的优秀青年学者提供反对。2023年2月18日,CCF“青年人才倒退打算”研讨会在京举办,青年学者们与来自学术界的前辈、蚂蚁技术研究院的研究员们共聚一堂,交换学术见解,分享科研心得及产学研单干教训。“218 Club”的命名正源起于此。 蚂蚁技术研究院将持续深度参加和长期反对218 Club的建设与倒退,继续进行投入,帮助举办各项学术交流流动,为成员搭建沟通单干的平台,助力青年科技人才疾速成长,把握科研黄金期。 将来,蚂蚁技术研究院将继续加大对青年科技人才倒退的反对力度,施展产业界的劣势提供更丰盛的反对与资源,并通过反对218 Club的长期倒退,多举并措助力青年科技人才队伍建设,为造就数字经济新时代青年人才奉献本人的力量。

May 23, 2023 · 1 min · jiezi

关于深度学习:为什么我们拥有庞大的语言模型而Vision-Transformers的规模却很小

编者按:本文探讨了语言模型为何会比视觉模型的参数数量大得多的起因,并具体介绍了传统ViT训练方法在扩大时呈现不稳定性的问题。 为此,本文介绍了如何改良架构以实现扩大,并探讨了实现模型最优状态的办法。同时,如何在扩大模型时不产生“偏见”,也是本文重点关注的问题。 很可能,咱们很快就能够看到更大型的ViT(独自或作为多模态模型的组成部分)呈现。 以下是译文,Enjoy! 作者 | Salvatore Raieli 编译 | 岳扬                    近年来,咱们看到Transformers的参数数量疾速减少。但仔细观察会发现,次要是语言模型(LLMs)的参数在一直减少,当初曾经高达惊人的540亿参数[1]。为什么这种状况没有呈现在视觉模型呢? 对于文本模型(text models),减少数据集大小、应用可随时延展的架构(scalable architectures)和新的训练方法都可能使参数数量增长。如此不仅进步了模型在实现特定工作(如分类等)时的性能,而且随着参数数量的减少,咱们还看到了 “涌现” 的呈现。 各阶段最先进NLP模型的参数大小随工夫变动的趋势图。训练这些模型所需的浮点运算数量正以指数形式增长。 [2] 此外,因为大模型可作为迁徙学习和微调的根底,因而人们对研发高性能模型的趣味一直增长。虽已大模型胜利利用于多种工作,但许多图像剖析工作仍须要专门的模型。 Transformer的自注意力机制(self-attention) 其劣势曾经失去证实,成为2016年以来的首选模型架构。因而,一些团队曾经训练了用于图像处理的Transformer模型(vision transformer, ViT)。目前,最强的ViT仅有150亿个参数。造成这一景象的起因是什么? 最近一项钻研中,谷歌胜利地训练了一个具备220亿参数的模型,并揭示了扩大ViT存在艰难的起因。 内容提纲:1.解释了为什么传统ViT训练方法在扩大时呈现不稳定性的起因。 2.介绍了如何改良架构以实现扩大,以及模型达到最优状态的办法。 3.同时,还探讨了如何在扩大模型时进步公平性(fairness)。 01 什么是vision transformers? Image from Wikipedia (https://en.wikipedia.org/wiki/Vision_transformer) Transformers实质上是不变的,但不能解决网格构造(grid-structured)数据(只能解决序列数据)。因而,为了应用Transformer解决图像,咱们须要将图像转换成序列数据。 具体如何实现呢? 第一步是将图像转换成一系列片段(patches) ,称为图像块(image patches)。这些图像块基本上是咱们须要的tokens(相似于经典Transformer中的words)。而后,这些图像被“压平”(flatten)并转换为低维度嵌入(这样能够保留信息但缩小维度)。此外,像原始Transformer一样,咱们应用地位编码(positional encoding),以便模型晓得图像块在图像中的地位。 提出ViT的论文这样形容ViT (https://arxiv.org/pdf/2010.11929.pdf) 该模型随后将进行监督学习的训练(利用带有图像标签的大型数据集),并能够用于上游工作。 02 为什么难以扩大ViT,如何解决这个问题?在引入ViTs之前,卷积网络(convolutional networks)始终是实现计算机视觉工作的规范。在《A ConvNet for the 2020s》[3]一文中,作者指出无效扩大模型规模这一问题仍未解决。 另一方面,咱们仍尚未扩充ViTs的规模。因为在Transformers中,模型的规模扩大会导致呈现无奈预知的行为,这是一个重大的问题。 作者指出,超过8B参数后,训练过程中会呈现不稳定性,在训练数千steps后呈现了不收敛的训练损失。 这是因为attention logits中的极大值造成的,导致(简直是独热编码(one-hot))的注意力权重接近于零熵(near-zero entropy)。为了解决这个问题,作者在点积计算(dot-product)之前给Queries和Keys增加了层归一化(layer-normalization)。 在上面这幅图中,展现了用这一办法如何改善训练成果。 ...

May 22, 2023 · 1 min · jiezi

关于深度学习:全是技巧ZBrush雕刻手部教程赶紧收藏

雕刻手是一项具备挑战性的工作。然而,应用正确的工具和技术,能够创立十分具体和真切的,或者风格化但可信的手部造型。明天,咱们将为你提供一系列教程和其余资源,帮忙你把握在ZBrush中雕刻手部的艺术。如果你是3D角色初学者,心愿把握在ZBrush中雕刻风格化手的艺术,你可能须要查看Gomezart的教程。1、增加指甲接下来咱们将创立指甲:先用Standard笔刷构建指甲四周的形态,构建完之后按住Ctrl键,在每个手指头上画一个遮罩塑造指甲,而后反转遮罩,应用Move笔刷凸出指甲,这个时候能够擦除遮罩,因为不再须要了—按住Ctrl键,点击并拖动画布实现这一点。2、改善指甲形态花一点工夫应用Move笔刷改善指甲的形态,指甲外观是圆形的,因为指甲自身并不齐全平坦,应用Smooth笔刷柔和线条,指尖同样也要做一些调整。从Brushes菜单中选择Pinch笔刷,用于五个指甲的边缘部位,包含拇指,切换到Standard笔刷,试着正确地帧住指甲,应用较小的半径获取精确的成果。3、褶皱和皱痕持续雕刻手指头,在关节上创立褶皱和皱痕,这一步能够本人抉择笔刷,就集体而言,我抉择应用Dam Standard笔刷,如果可能,应用参考在手背和手的另一边画出皱痕,在这一阶段不要破费太多工夫,因为后续咱们会做一些其余雕刻工作。4、改善细节接下来咱们将在手掌上十分粗略地雕刻皱痕,并增强手背上的肌腱,细化手段和前臂上的肌肉和肌腱。雕刻的时候,花一点工夫返回察看整个雕刻品,看看有没有脱漏的细节,从各个角度观察一下模型,做一些必要的调整,确保雕刻过程顺利进行。接下来咱们要将注意力集中到更小的细节了,最初一次拆散模型,在手背上画一些线条创立静脉,尽量尊重静脉的特定流,还要思考到它们的不同大小。在这一步,咱们将应用Standard和Inflate笔刷,获取丑陋真切的后果,如果你感觉作品太锐利,能够应用Smooth笔刷进行平滑,或者擦除一些细节,比方静脉。如果你感觉静脉不够,能够再画一条或更多条静脉。5、应用LazyMouse雕刻的时候,持续比照参考图片,在手段上画一些渺小的静脉,绘制规定线条举荐应用LazyMouse,它是ZBrush中的一个性能,用于更准确地雕刻,只需按L键激活即可。6、改善皱痕当初,咱们将雕刻拇指和手掌之间的区域,切换到行将集中雕刻皱痕的关节部位之前,试着细化外观,先用Inflate笔刷,而后用Pinch笔刷,在那些皱痕上做另一些雕刻通道。从新绘制并锐化你感觉不够清晰的皱痕,而后应用半径较小的Dam Standard笔刷,在指关节四周和手指头上创立渺小的细节。7、手掌和指甲上一步实现之后,集中雕刻手掌局部欠缺细节,先画出次要褶皱,而后花点工夫雕刻渺小的细节,应用Pinch笔刷锐化并将指甲变薄,因为它们太厚,须要细化,这一步可能要花一点工夫,因为要轮流雕刻每一个指甲,但为了实现真切的成果,这一步必不可少。8、设置手指头地位应用半径较小的Dam Standard笔刷在手的两边和手段反面增加十分渺小的细节,实现之后,将手转过来查看整只手,你兴许会留神到,手依然太平坦,侥幸的是这一点很容易调整,但须要先切换到较低的分辨率级别,这样才不会突破更高级别的细节。将SDiv滑动条设置为级别3,遮罩小手指和第三手指,反转遮罩,将这两根手指向下移。如果有须要,调整其余手指的高度,而后擦除遮罩,应用SDiv滑动条(或者在键盘上按几次D键)复原更高的细节级别。 以上是小编收集到的一些素材,对于内容的补充以及更多资讯的理解欢送后盾留言~

May 19, 2023 · 1 min · jiezi

关于深度学习:常用的表格检测识别方法-表格区域检测方法下

——书接上文Training 半监督网络的训练分两步进行:a)对标记数据独立训练学生模块,由老师模块生成伪标签;b)联合两个模块的训练,失去最终的预测后果。伪标签框架 试验数据集: TableBank是文档剖析畛域中用于表辨认问题的第二大数据集。该数据集有417,000个通过arXiv数据库爬虫过程正文。该数据集具备来自三类文档图像的表格:LaTeX图像(253,817)、Word图像(163,417),以及两者的组合(417,234)。它还包含一个用于辨认表格的构造的数据集。在论文的试验中,只应用进行表检测的数据。 PubLayNet是一个大型公共数据集,训练集中有335,703张图像,验证集中有11,240张图像,测试集中有11,405张图像。它包含正文,如多边形宰割和图形的边界框,列出题目、表格和来自钻研论文和文章的图像文本。应用coco剖析技术对该数据集进行了评估。在试验中,作者只应用了86,460个表正文中的102,514个。 DocBank是一个蕴含5000多个带正文的文档图像的大型数据集,旨在训练和评估诸如文本分类、实体辨认和关系提取等工作。它包含题目、作者姓名、附属关系、摘要、注释等方面的正文。 ICDAR-19:表检测和辨认(cTDaR)比赛于2019年由ICDAR组织。对于表格检测工作(TRACKA),在较量中引入了两个新的数据集(古代和历史数据集)。为了与之前的最先进的办法进行间接比拟,试验提供了在IoU阈值范畴为0.5-0.9的古代数据集上的后果。  试验设置细节: 试验应用在ImageNet数据集上事后训练的ResNet-50为主干的可变形DETR作为检测框架,以评估半监督办法的有效性。在PubLayNet、ICDAR-19、DocBank和TableBank的三类数据集上进行训练。试验应用10%、30%和50%的标记数据,其余的作为未标记数据。伪标记的阈值设置为0.7。将所有试验的训练周期设置为150,在第120期的学习率升高了0.1倍。利用强加强作为程度翻转,调整大小,去除斑块,裁剪,灰度和高斯含糊。试验应用程度翻转来利用弱加强。可变形DETR解码器输出的query数的值N被设置为30,因为它能给出最好的后果。除非另有阐明,试验都应用mAP(AP50:95)度量来评估后果。试验后果探讨:TableBank: 试验提供了对不同比例的标签数据的表库数据集的所有宰割的试验后果。还比拟了基于transformer的半监督办法与以前的基于深度学习的监督和半监督办法。 此外,试验给出了10%标记数据的TableBank-both数据集在所有IoU阈值下的后果。表1提供了半监督办法在TableBank-latex, TableBank-word, 和TableBank-both数据集,别离10%、30%和50%标记数据时的试验后果。它表明,在10%标记数据时,TableBank-both数据集的AP50值最高,为95.8%,TableBank-latex为93.5%,TableBank-word有92.5%。  表格的半监督学习的定性分析如图5所示。图5的(b)局部有一个与行和列构造类似的矩阵,网络将该矩阵检测为一个表格,给出false positive检测后果。 在这里,不正确的检测结果表明网络不能提供正确的表格区域检测。表2给出了这种半监督办法对10%标签数据上的所有数据集的不同IoU阈值的后果。在TableBank10%标记数据集上应用不同的ResNet-50骨干的半监督网络的准确率、召回率和f1-score的可视化比拟如图6所示。 与以前的监督办法和半监督办法的比拟 表3比拟了ResNet-50骨干上基于深度学习的监督网络和半监督网络。还将在10%、30%和50%TableBank-both数据集标签数据上训练的监督可变形DETR与应用可变形transformer的半监督办法进行了比拟。 结果表明,基于attention机制的半监督办法应用候选生成过程和后处理步骤,如非最大克制(NMS),获得了可观的后果。 PubLayNet: 试验探讨了在PubLayNet表类数据集上对不同标记数据百分比的试验后果。还比拟了基于transformer的半监督办法与以前的基于深度学习的监督和半监督办法。此外,试验给出了10%标记数据的PubLayNet数据集上的所有IoU阈值的后果。表4提供了半监督办法的后果,该办法对PubLayNet表类数据应用可变形transformer来解决标记数据的不同百分比。在这里,10%、30%和50%的标记数据的AP50值别离为98.5%、98.8%和98.8%  此外,半监督网络在10%的标记的PubLayNet数据集上,在不同的IoU阈值上进行训练。表5给出了半监督办法对10%标记数据上的PubLayNet表类的不同IoU阈值的后果。 在PubLayNet表类的10%标记数据集上,在不同的IoU阈值上应用具备ResNet-50骨干的可变形transformer网络的半监督网络的准确率、召回率和f1-score的可视化比拟如图6(b)所示。这里,蓝色示意不同IoU阈值的准确率后果,红色示意不同IoU阈值的召回后果,绿色示意对不同IoU阈值的f1-score后果。 与以前的监督办法和半监督办法的比拟 表6比拟了应用ResNet-50骨干网的PubLayNet表类上基于深度学习的监督网络和半监督网络。还比拟了在10%、30%和50%的PubLayNet表类标签数据上训练的有监督的可变形detr与应用可变形transformer的半监督办法。它表明,半监督办法不应用候选和后处理步骤,如非最大克制(NMS),提供了有竞争力的后果。 DocBank: 试验探讨了在DocBank数据集上的不同标签百分比数据的试验后果。在表7中比拟了基于transformer的半监督办法与以前的基于cnn的半监督办法。  此外,还比拟了表8中对不同比例的标记数据的半监督办法与之前针对不同数据集的表格检测和文档分析方法。尽管不能间接比拟作者的半监督办法与以前的监督文档分析方法。然而,能够察看到,即便有50%的标签数据,作者也取得了与以前的监督办法相似的后果。 ICDAR-19: 试验还评估了在Modern Track A数据集上的表格检测办法。作者总结了该办法在不同百分比的标签数据下的定量后果,并将其与表9中以前的监督表格检测办法进行了比拟。在更高的IoU阈值0.8和0.9下评估后果。为了与以前的表格检测办法进行间接比拟,作者还在100%的标签数据上评估了论文的办法。论文办法在100%标签数据的IoU阈值上取得了92.6%的准确率和91.3%的召回率。 融化试验: 伪标记相信阈值 阈值(称为相信阈值)在决定生成的伪标签的准确性和数量之间的均衡方面起着重要的作用。随着这个阈值的减少,通过过滤器的样本将会更少,但它们的品质将会更高。相同,较小的阈值将导致更多的样本通过,但false positive的可能性更高。从0.5到0.9的各种阈值的影响如表10所示。依据计算结果,确定最优阈值为0.7。可学习query数量的影响 在剖析中,作者钻研了扭转作为可变形DETR解码器中输出的query数量的影响。图7通过扭转作为可变形DETR解码器中输出的对象query的数量来比拟预测后果。当query数N设置为30时,达到最佳性能;偏离此值会导致性能降落。表11显示并剖析了不同对象query数量的后果。为N抉择一个较小的值可能会导致模型无奈辨认特定的对象,从而对其性能产生负面影响。另一方面,抉择一个较大的N值可能会导致模型因为过拟合而体现不佳,因为它会谬误地将某些区域分类为对象。此外,在师生模块中,该半监督自留神机制的训练复杂度依赖于对象query的数量,并通过最小化对象query的数量来升高复杂度而失去进步。 论断 本文介绍了一种利用可变形transformer对文档图像进行表格检测的半监督办法。该办法通过将伪标签生成框架集成到一个简化的机制中,加重了对大规模正文数据的须要,并简化了该过程。同时生成伪标签产生了一个被称为“飞轮效应”的动静过程,随着训练的进行,一个模型不断改进另一个模型产生的伪边框。在该框架中,应用两个不同的模块学生和老师,对伪类标签和伪边界框进行了改良。这些模块通过EMA性能互相更新,以提供准确的分类和边界框预测。 结果表明,当利用于TableBank和PubLayNet训练数据的10%、30%和50%时,该办法的性能超过了监督模型的性能。此外,当对PubLayNet的10%标记数据进行训练时,该模型的性能与以后基于cnn的半监督基线相比拟。在将来,作者的指标是钻研标记数据的比例对最终性能的影响,并开发出以最小数量的标记数据无效运行的模型。此外,作者还打算采纳基于transformer的半监督学习机制来进行表构造辨认工作。    参考文献:Gao L C, Li Y B, Du L, Zhang X P, Zhu Z Y, Lu N, Jin L W, Huang Y S, Tang Z . 2022.A survey on table recognition technology. Journal of Image and Graphics, 27(6): 1898-1917. ...

May 19, 2023 · 1 min · jiezi

关于深度学习:LoRA大模型的低秩自适应微调模型

对于大型模型来说,从新训练所有模型参数的全微调变得不可行。比方GPT-3 175B,模型蕴含175B个参数吗,无论是微调训练和模型部署,都是不可能的事。所以Microsoft 提出了低秩自适应(Low-Rank Adaptation, LoRA),它解冻了事后训练好的模型权重,并将可训练的秩的合成矩阵注入到Transformer体系结构的每一层,从而大大减少了上游工作的可训练参数数量。 LoRA 对于预训练的权重矩阵W0,能够让其更新受到用低秩合成示意后者的束缚: 在训练过程中,W0被解冻,不承受梯度更新,而A和B蕴含可训练参数。当h=W0x时,修改后的正向流传变为: 对A应用随机高斯初始化,对B应用零初始化,因而W=BA在训练开始时为零(这点须要留神)。 这种办法的一个长处是,当部署到生产环境中时,只须要计算和存储W=W0+BA,并像平常一样执行推理。与其余办法相比,没有额定的提早,因为不须要附加更多的层。 在Transformer体系结构中,自关注模块中有四个权重矩阵(Wq、Wk、Wv、Wo), MLP模块中有两个权重矩阵。LoRA只对上游工作调整关注权重,并解冻MLP模块。所以对于大型Transformer,应用LoRA可缩小高达2/3的VRAM使用量。比方在GPT-3 175B上,应用LoRA能够将训练期间的VRAM耗费从1.2TB缩小到350GB。 后果展现 采纳HuggingFace Transformers库中的预训练RoBERTa base (125M)和RoBERTa large (355M)还有DeBERTa XXL (1.5B)进行了评估。它们通过不同的微调办法进行微调。 在大多数状况下,应用LoRA能够在GLUE上获得最佳性能。 GPT-3 175B在WikiSQL和mnli匹配的几种自适应办法的可训练参数数的比拟 能够看到应用GPT-3, LoRA匹配或超过所有三个数据集的微调基线。 Stable DiffusionLora首先被利用在大语言模型上,然而可能被更多人晓得的还是他在SD上的利用: 在Stable Diffusion微调的状况下,LoRA能够利用于将图像示意与形容它们的提醒分割起来的穿插注意力层。下图的细节并不重要,只需晓得黄色块是负责构建图像和文本示意之间关系的块。 所以能够看到这样训练进去的自定义Lora模型会十分的小。 我集体试验:Stable Diffusion进行全面的微调须要起码24G的显存。然而应用Lora,批处理大小为2的单过程训练能够在单个12GB GPU上实现(不应用xformer的10GB,应用xformer的6GB)。 所以Lora在图像生成畛域也是十分好的一个微调模型的形式。如果你想理解更多,这里是论文地址: https://avoid.overfit.cn/post/407a85d672384969848f8bc5cb9bc5fe

May 18, 2023 · 1 min · jiezi

关于深度学习:MegEngine-使用小技巧用-mperf-进行安卓-opencl-算子的-roofline-分析

前言roofline 剖析是一种简略评估以后计算工作对以后平台计算/访存能力的利用状况的办法,能够帮忙剖析算子的优化方向和优化后劲。mperf 实现了安卓 mali/adreno 两种 gpu 平台的 roofline 剖析能力,上面以 mali 平台为例,简略介绍一下操作步骤。编译和集成下载repo代码 git clone https://github.com/MegEngine/mperf.gitgit submodule update --init --recursive编译装置 ./android_build.sh -g malicmake --build <mperf_build_dir> --target install我的项目集成 set(mperf_DIR /path/to/your/installed/mperfConfig.cmake)find_package(mperf REQUIRED)target_link_libraries(your_target mperf::mperf)对于编译和集成局部,详见 mperf readme 获取 roofline 数据获取 opencl 算子执行过程的 GFLOPs 和 GBPs // define the measurement setmperf::GpuCounterSet gpu_set = { mperf::GpuCounter::GFLOPs, mperf::GpuCounter::GBPs,};mperf::XPMU xpmu(gpu_set);xpmu.run();... // add your opencl kernel calls具体测试样例,参见 mali_gpu_pmu_test 获取以后 gpu 平台的峰值计算能力和访存带宽 将编译阶段失去的 build_dir/apps目录下的 gpu_inst_gflops_latency 和 gpu_spec_dram_bw 拷贝到手机上执行,即可拿到 gpu 的理论峰值算力和峰值带宽峰值性能测试的具体逻辑,参见 gpu_inst_gflops_latency 和 gpu_spec_dram_bw ...

May 16, 2023 · 1 min · jiezi

关于深度学习:数字化赋能探索智慧银行建设的最佳实践

导语 | 数字经济时代,数字化已成为银行业转型降级的策略伎俩。近年来,商业银行纷纷加大对信息科技的投入,数字化在扭转银行业务模式的同时,更是构建起了数字金融新生态。明天,咱们特邀腾讯云 TVP 行业大使、舜源科技合伙人&CTO 韩光祖老师,在上篇《数字化时代,如何从策略设计到架构来打造智慧银行?》他从策略设计到架构全面分析了银行数字化倒退的将来,本篇则次要探讨银行业在数字化转型过程中的理论施行,包含剖析市场差别以寻找新机会,应用商业模式画布和 SWOT 剖析,并通过金融科技翻新与凋谢改良价值治理,进行实际落地。作者简介 韩光祖,腾讯 TVP 行业大使,舜源科技合伙人&CTO,美国南加州大学企管硕士,有超过 26 年的企业 IT/MIS/IS 数字化转型、翻新、经营教训,蕴含软、硬件工程,包含和业余的服务解决方案、布局、施行、建设大型材料剖析、材料采集及图像物件侦测的深度学习、工艺优化及电信私有云建置及开发的教训,相熟商业系统分析及整体战略规划;有超过 20 年的工程团队治理教训,目前负责科技公司 CTO 和合伙人,曾负责过纬创团体及富邦金控两家世界前 500 大团体及老牌电商(http://Newegg.com) CIO/COO/VP/Director,有制造业、软件公司、银行甲乙方翻新、数字化转型、投资、售前及 M&A、DD 教训。 一、剖析市场差别以寻找蓝海毋庸置疑,银行在进行数字化转型的过程中必须从新旧商业模式中找到市场差别,从而造成本人独特的竞争力,实现智慧银行的建设。 在落地实际之前咱们要长于借助商业模型画布来深刻了解银行的倒退策略,只有倒退策略不出错,实际的脚步能力迈得稳。商业模型画布作为一个可视化的工具,次要用于银行梳理商业模式的思维形式和工具,帮忙咱们看到商业模式背地的逻辑关系。它能生成新的商业模式和想法,以及新的经营方式。其实,业务模型画布是由 9 个通用的构建块组成,别离用于开发新的或记录现有的业务模型,详见下图。 (图1,商业模型画布图) 而在上述业务模型画布中,咱们更须要把握每个构建块的外围要点,例如在次要资源方面,咱们须要提前相熟银行的价值主张须要哪些要害资源、单干的分销渠道以及客户关系和支出流,能力更好为银行数字化转型服务。 (图2,业务模型画布模块图) 其实,传统银行在进行差别剖析时次要受到政治、经济、社会、技术、法律和环境等因素影响。 (图3,影响因子分析图) 在理解上述影响因素后,咱们能够借助 SWOT 剖析,它作为一种结构化的布局办法,能够帮忙银行评估商业上的劣势、劣势、机会和威逼。 (图4,SWOT剖析图) 通过上述差别剖析,咱们能力找到银行数字化的新蓝海市场,蓝海策略重视于通过价值翻新来发明无竞争的市场,下图六大蓝海准则是发明无竞争市场的指南。 (图5,蓝海六准则) 二、欠缺智慧银行的价值治理值得一提的是,做好金融科技翻新平台的价值治理对于打造智慧银行也至关重要。金融科技翻新平台为银行提供了场景和需要,咱们能够通过自建模式、共建模式、投资模式、联盟模式等来实现对外获益、对内提效的双赢。 (图6,金融科技翻新平台价值治理图) 基于 IaaS 、PaaS 、SaaS 的云平台以场景金融、全面用户体验、旅程与生态联合、数字化经营、麻利驱动为外围及利用程序接口(API) 、软件开发工具包(SDK)等工具买通资产端与资金端, 实现凋谢与输入,吸引金融科技创业者进驻,银行提供场景,在其我的项目倒退初期通过资本伎俩实现疏导和管制,补充银行传统业务在互联网化上的短板,当被孵化的我的项目满足银行本身需要,能透过增资控股等路径如信托、SPV 将新业务吸进银行本体内,透过资本布局做好价值治理做为继续营运或公司平台 M&A 合并收买或卖出作为间接获利的伎俩。 业务引领,科技赋能,可能帮忙企业疾速买通资金端和资产端,从而建设全面的场景生态翻新、客户体验、数字化经营、透过麻利驱动全方位撑持 B 端、C 端、F 端、G 端业务数字化转型。 在行业数字化转型的浪潮中,业务翻新犹如追着你奔跑的黑熊,脚踏车是企业的基本功,骑车的就是企业员工,如果停下翻新的市场需求,那离失败被淘汰也不远了。 在我看来,银行要想胜利做好数字化转型,必须做到以下几点: 必须回升为全行级的策略;业务、技术的复合性的人才与人才团队建设是数字化转型胜利要害;凋谢是 DT 成绩施展价值必经之路;外围业务环节的技术自主可控;随时做好价值治理与降本提效。三、策略拆解助力智慧银行落地策略拆解施行落地是将整体战略目标拆解成可执行的指标,并将其施行到具体业务流程中的过程。以下是策略拆解施行落地的总结: 战略目标拆解。将整体战略目标依照工夫、部门、责任等维度拆解成可执行的指标。这些指标须要可能量化、可操作、具备挑战性,同时须要与公司的战略目标保持一致。流程优化。将拆解后的指标与公司的业务流程相结合,确定每个业务环节的责任人、职责、工作内容和工作形式等。优化流程能够进步工作效率,降低成本,进步服务质量等。绩效考核体系的建设。在拆解后的指标的根底上,制订适当的绩效指标、权重以及考核机制,确保指标实现的量化和可掂量性,并为后续的执行和落地提供无效的保障。建设绩效考核体系能够激励员工积极性,进步工作效率,推动指标的实现。人员培训和治理。针对拆解后的指标和流程优化,进行人员的培训和治理,确保人员可能了解和恪守各项规定和规范,并可能执行工作。同时,正当的人员治理能够进步工作效率和团队合作性。技术支持和工具应用。对于须要技术支持的局部,能够引入相应的技术支持和工具应用,例如项目管理工具、数据分析工具、协同工具等,以进步指标的实现效率和品质。同时,技术支持和工具应用也能够进步工作效率和品质,降低成本。定期监督和调整。在施行过程中,须要对指标的实现状况进行定期监督和调整,及时发现问题并进行解决,以确保指标的实现成果。定期监督和调整能够及时纠正问题,进步工作效率和品质。沟通和单干。在拆解施行落地的过程中,须要各部门之间的沟通和单干,以确保指标的顺利实现。各部门须要协调和配合,充分发挥团队合作的劣势,以达成公司的战略目标。品质管制和风险管理。在拆解施行落地的过程中,须要对品质进行管制和危险进行治理,以确保施行的指标和流程的品质,避免出现不可控的危险和影响。同时,正当的风险管理能够降低成本和提高效率。继续改良。拆解施行落地是一个继续改良的过程。在施行落地过程中,须要继续反思和改良,一直进步工作效率、服务质量和员工满意度等各方面的绩效,以放弃公司竞争力和长期倒退。整体规划和治理。拆解施行落地须要整体规划和治理,以确保指标的实现。须要建设欠缺的管理体系和布局流程,保障各项工作有序、井井有条地进行。整体规划和治理能够进步工作效率和合作成果。总之,策略拆解施行落地须要全方位的思考和施行,须要各部门之间的合作和配合,须要对指标、流程、人员和技术等方面进行迷信的治理和布局。只有全面、零碎、继续地施行落地,才可能实现银行长期的战略目标。 高低两篇文章咱们次要针对战略规划和治理、业务翻新、技术赋能及资产负债治理与合规要求等内容进行了具体解读,并明确了它们在银行数字化转型中的重要性,概述了实现长期战略目标的策略施行的要害组成部分。除此之外,深度学习、数据和生态交融也是古代金融翻新的重要因素。 在金融行业中,深度学习、数据和生态交融的翻新场景为银行提供了更加智能化、高效化和个性化的服务。深度学习技术能够通过剖析和学习客户的行为和偏好,为银行提供更加个性化的营销和服务。数据的凋谢和共享能够促成金融生态系统的倒退,进步金融服务的效率和品质。生态交融的翻新场景能够将金融服务与其余行业的服务进行交融,为客户提供更加全面的解决方案。 因而,深度学习、数据和生态交融是古代金融翻新的重要方向,为银行业数字化转型提供了新的时机和挑战。银行须要积极探索和利用这些新技术和新模式,以满足客户的需要并放弃竞争劣势。

May 16, 2023 · 1 min · jiezi

关于深度学习:LayerNorm-在-Transformers-中对注意力的作用研究

LayerNorm 始终是 Transformer 架构的重要组成部分。如果问大多人为什么要 LayerNorm,个别的答复是:应用 LayerNorm 来归一化前向流传的激活和反向流传的梯度。 其实这只是局部正确:Brody、Alon 和 Yahav 的一篇题为“On the Expressivity Role of LayerNorm in Transformer's Attention”的新论文表明,LayerNorm 的作用要深得多。 LayerNorm其实为Transformer的Attention提供了两个重要的性能: 1、Projection:LayerNorm 帮忙 Attention 设计一个注意力查问,这样所有的Key都能够平等地拜访。它通过将Key向量投影到同一个超平面上来实现这一点,从而使模型可能将查问对齐。这样一来,Attention 组件就无需本人学习如何执行此操作。 论文蕴含了更精密的细节,比方论文中的这图片能够让咱们进行可视化的查看 2、Scaling:这是更显著的局部,LayerNorm 从新缩放输出。但这种从新缩放做了什么呢?依据这篇论文潜在的益处是有两个益处: 每个Key都有可能取得“最高”关注 没有Key能够在“un-selectable”区域完结。 论文中的第二张图片在视觉上给了咱们答案: 他们还留神到:Attention 之后的 LayerNorm依然实现了雷同的目标,然而作用是用于下一个 Attention 块的。并且在较大的 Transformer 模型中,这些益处仿佛并不那么显著。论文认为这是因为更大尺寸的模型可能找到代替解决方案(也就是下面说的Attention不须要帮忙而是本人学习到了如何执行这个操作)。 然而 LayerNorm 确实隐含地具备两个外围性能,即投影和缩放。这篇论文的细节要多得多,本文的总结并以直观的模式展现这两个次要发现,因为这论文中这两个图能够间接的表白这个内容。 如果你像具体浏览,论文地址: https://avoid.overfit.cn/post/ac6bbc9b20fb4bd292009d0a5370bb46 作者:Less Wright

May 16, 2023 · 1 min · jiezi

关于深度学习:自学C4D不要错过这些教程

一、C4D 是什么? C4D 其实是一个简称,全称是 Cinema 4D,是德国公司 Maxon 开发的一款三维绘图软件。性能上和 3ds Max,Maya 这些老牌的三维软件是一样的,都被宽泛使用于电影特效和工业设计中。 这些三维软件有一个特点,就是特地简单,界面中有成千盈百个按钮和参数,对老手很不敌对,想精通更是难上加难。 然而 C4D 简化了操作界面,缩小了参数,让老手能够疾速的入门,有一句玩笑话说的很好,C4D 就是三维软件中的“美图秀秀”,尽管有点夸大,不过学起来的确是比另外两个轻松多了。 C4D 不仅能渲染动态的平面模型,还能做动效,外面的时间轴和 mograph 性能非常弱小。咱们在 UI 设计中其实只须要应用 C4D 的一小部分性能就足够了。 C4D 这类三维软件,其实和 Ps 差不多,只不过从二维变成了三维。 在 C4D 中咱们实现一个作品个别要两步,第一步是建模,就是建设模型,相似于咱们在 Ps 中用钢笔工具画出门路。第二步是渲染,相似于咱们在 Ps 中做的各种成果,比方内发光投影这些。这里只是类比,C4D 要比 Ps 简单得多,不过只有学会建模和渲染,做什么货色都不难。 二、基础教程举荐 1、IHDT 上海映速(//www.ihdt.tv/c4d.html) 第一个举荐的必定是 IHDT 上海映速,他们是 Maxon 在中国惟一的认证机构,负责 C4D 中文版的制作和校对,很多作品被选入 Maxon 官网作品,业余水平可想而知。我在零根底的时候就是看着他们的视频教程《C4D 齐全攻略》学习的。 IHDT 的视频教程从最根本的软件界面,根底操作,到如何建模,安排场景,渲染出图,能够说是最零碎的教程,所有视频一共几十个小时,十分具体,适宜想零碎学习的老手看,获取视频的形式间接淘宝搜 IHDT 就行,价格也很良心。 2、87time(87time的主页 - 站酷 (ZCOOL))87time 作为国内的 C4D 大神,他的站酷干货满满,外面有很多原创的 C4D 教程。 每个教程都联合实在的案例,具体地解说制作思路和办法。他的教程我都看过,播种很大,不过因为大部分都是实战,如果没接触过 C4D,看起来可能会吃力,倡议在看以前先相熟软件。 3、数字人 digitalmanhttp://数字人的学习空间 - 数字人 - 网易博客数字人这位大神是我以前在 C4D 贴吧发现的,C4D 中的参数切实太多了,遇到不懂的时候只能去搜索引擎或者贴吧找答案。看了他写的文章当前,几乎茅塞顿开。 ...

May 12, 2023 · 1 min · jiezi

关于深度学习:2023-开源之夏来啦报名-MegEngine-项目赢取万元奖金

“开源软件供应链点亮打算-暑期2023”是一项面向高校学生的暑期流动,为高校学生提供了绝佳的、敌对凋谢的交流平台。使学生能够真正投身于开源软件的开发保护,失去资深开源软件开发者领导的机会,取得丰硕的流动奖金,并帮忙学生获取优良企业的关注。 流动流程同学们在 6 月 4 日之前在开源之夏官网(https://summer-ospp.ac.cn)筛选我的项目,与导师沟通并筹备我的项目申请材料、提交申请。 MegEngine 我的项目介绍在本次流动中,MegEngine 设计了 6 个开发我的项目,且每个我的项目都有资深导师 1V1 领导,机会难得,不容错过!学生可自由选择我的项目,申请胜利并实现我的项目即可取得 12000 元奖金。 MegEngine 我的项目地址:https://summer-ospp.ac.cn/org/orgdetail/a216bb41-e926-4467-9f65-6d55d32c8dc5?lang=zh 我的项目一:反对 MegEngine 编译出 RISCV 的 whl 包,并可能失常训练我的项目简述:目前 MegEngine 已反对 RISCV 的 c++ 推理,短少训练的反对,此我的项目作为欠缺 MegEngine 训练的反对生态,需反对 MegEngine 编译 risc-v whl 包,并在 risc-v 板子上失常执行 我的项目产出要求: 补齐 MegEngine RISCV whl 构建反对补齐训练模型缺失算子我的项目技术要求: RISCV 基础知识c++ , python3MegEngine 模型训练我的项目成绩仓库: https://github.com/MegEngine/MegEngine我的项目社区导师:张浩龙 导师联系方式:zhanghaolong@megvii.com 我的项目二:MegEngine 反对 CV CUDA 算子我的项目简述:MegEngine 底层有很多 CV 算子,须要封装到 python 层提供给 imperative,以反对数据处理,须要封装 GaussianBlur 算子 我的项目产出要求: 补充 MegEngine 的 GaussianBlur CV CUDA 算子,并保障正确性我的项目技术要求: ...

May 12, 2023 · 1 min · jiezi

关于深度学习:倒计时2天CCIG文档图像智能分析与处理论坛开启直播预约共探智能文档处理前沿技术

文档是人们在日常生活、工作中产生的信息的重要载体,各畛域从业者简直每天都要与金融票据、商业布局、财务报表、会议记录、合同、简历、洽购订单等文档“打交道”。让计算机具备浏览、了解和解释这些文档图像的能力,在智能金融、智能办公、电子商务等许多畛域具备广大的利用价值。 现阶段,文档图像的处理过程中面临着诸多挑战:文档类型的多样产生了繁冗的版式与构造;受拍摄器材、背景环境影响,图像时常存在噪声和品质问题。文档图像处理是图像图形技术钻研的重要方向,中国图象图形学学会等业余组织及合合信息等人工智能企业长期关注文档图像智能剖析、解决焦点议题,发展了系列研发和实际工作。 文档解决中常见的问题 2023年5月11-14日,中国图象图形大会(CCIG 2023)将于苏州举办,谭铁牛院士、赵沁平院士、吴一戎院士、徐宗本院士、胡事民传授、高新波传授确定光临CCIG 2023大会,并作大会宗旨报告。泛滥专家学者将齐聚苏州,开启“最强大脑”,为大家带来一场精彩的学术盛宴。大会以“图象图形向将来”为主题,会集100余位国内顶尖学者以及知名企业专家、2000余名科研院校师生、一线技术工程师,独特摸索图像图形技术行业的最新进展。 为了促成文档图像剖析与解决畛域的技术交换及倒退,中国图象图形学学会文档图像剖析与辨认业余委员会与合合信息独特打造了《文档图像智能剖析与解决》高峰论坛。 本次论坛中,合合信息特地邀请了来自中科院自动化所、北大、中科大、华南理工大的学术专家与华为等知名企业的研究者们,围绕文档图像处理及OCR畛域的前沿技术开展“头脑风暴”,寻找文档图像处理畛域的将来进阶方向。 论坛工夫:5月13日13:30-17:30 观看形式:扫描下方议程海报二维码,在线观看直播 编辑 讲者信息 讲者一: 姓名:刘成林 单位和职称:中国科学院自动化研究所,研究员  个人简介:刘成林,中国科学院自动化研究所副所长,研究员、博士生导师,中国科学院大学人工智能学院副院长。1989年、1992年、1995年别离在武汉大学、北京工业大学、中国科学院自动化研究所获学士、硕士和博士学位。1996年至2004年先后在韩国科学技术院、日本东京农工大学、日立地方研究所从事博士后和研发工作。2005年起在中国科学院自动化研究所任研究员。2008年取得国家杰出青年科学基金。钻研趣味包含模式识别、机器学习、文字辨认与文档剖析等。在国内外期刊和学术会议上发表论文300余篇,合著英文专著一本。现任Pattern Recognition期刊和《自动化学报》的副主编,以及多个期刊的编委。任国内模式识别学会副主席,中国人工智能学会副理事长、会士,中国自动化学会会士、模式识别与智能零碎专委会主任,中国图象图形学学会常务理事。美国电气电子工程师协会会士 (IEEE Fellow)、国内模式识别学会会士(IAPR Fellow)。 报告题目:人工智能大模型时代的文档辨认与了解 报告摘要: 文档图像识别的工作包含版面剖析、文本辨认、图形符号辨认、信息抽取等。近年来,得益于深度学习办法的倒退,文档辨认性能疾速晋升,在文档数字化、票据解决、笔迹录入、智能交通、信息检索等畛域失去广泛应用。然而,理论利用也表明,现有技术在辨认精度和可靠性、可解释性、自适应性等方面还有显著有余,还有很多技术问题有待解决。另一方面,人工智能大模型的疾速倒退促使团队从新思考文档辨认畛域今后的倒退方向,除了解决辨认档次的遗留问题,应面向文档语义了解和利用,在语义信息抽取和决策层面发展钻研。本报告对文档辨认技术现状做简要回顾,剖析现有技术的有余,并提出人工智能大模型时代新的钻研问题和方向。 讲者二 姓名:邹月娴 单位和职称:北京大学,传授 邹月娴,北京大学传授/博士生导师,鹏城实验室双聘传授,电子科技大学本硕,香港大学博士, IEEE高级会员,新加坡归国学者。现任北京大学深圳研究生院党委副书记、北京大学深圳研究生院古代信号与数据处理实验室(ADSPLAB)主任;深圳市人工智能学会副理事长兼秘书长、深圳市女科技工作者协会副会长、中国自动化学会模式识别与机器智能业余委员会委员、广东省图象图形学会理事会。荣获深圳市高层次专业人才(中央级人才)、深圳市三八红旗手名称。长期从事智能信号与信息处理、跨媒体剖析与了解等相干畛域的科研与教学工作,先后主持和参加国家级、中央级科研项目30多项,荣获中国电子工业部科技进步三等奖和深圳市科学技术奖科技进步一等奖。在顶级学术期刊(TPAMI、TIP、TSP、TMM、TIM等)和旗舰学术会议(AAAI、NIPS、ACL、CVPR、IJCAI、ACMMM等)上发表学术论文270多篇,申请发明专利20项。目前致力于跨媒体剖析与了解、人机对话、深度学习实践办法与利用钻研(https://web.pkusz.edu.cn/adsp/)。 报告题目:视觉-语言预训练模型及迁徙学习办法 报告摘要:基于大规模文本数据、Transformer和无监督预训练技术的ChatGPT毫无疑问是人工智能的里程碑技术,展现了机器智能的能力和可用性。随之而来的视觉-语言双模态超大规模预训练模型GPT-4更是展示了超人的数理能力、零样本/小样本能力。本次演讲简要剖析ChatGPT的技术能力与局限性,介绍视觉-语言预训练模型及迁徙学习的前沿研究成果,分享咱们团队在视频文本预训练(VLP)和语言视频定位(Visual Grounding)工作的研究进展。 讲者三 姓名:谢洪涛 单位和职称:中国科学技术大学教授  谢洪涛,中国科学技术大学教授、博导,国家基金委优青我的项目获得者,中科院青年翻新促进会优良会员。从事多媒体内容平安方向的钻研,包含视觉内容检测与辨认、视频图像内容检索、数字图像篡改检测与取证等。发表ACM/IEEE汇刊论文和CCF-A类会议长文70余篇,主持科研项目10余项,含国家重点研发打算我的项目1项、基金委重点项目1项。研究成果在国家相干部门和商业公司的线上零碎取得利用,获得踊跃成果。获2019年度国家自然科学奖二等奖、2021年度中国专利奖优秀奖、2018年度中国电子学会自然科学奖一等奖、2022年度CSIG青年科学家奖等处分。实验室主页:http://imcc.ustc.edu.cn/ 报告题目:篡改文本图像的生成与检测 报告摘要: 近年来,通过深度学习篡改生成的文本图像已广泛传播于互联网,对金融票据、证件和网页内容辨认等多个行业畛域产生了重要影响。基于篡改生成与检测矛与盾的关系,本报告从场景文本图像的篡改生成与篡改检测两个方面进行讲述,包含摸索基于文本笔迹的文本图像生成和基于频域关系的部分纹理差异性建模,最终实现高质量的场景文本图像篡改生成以及精确的场景文本图像篡改检测。针对篡改文本图像生成品质差的问题,本报告首先从文本图像擦除的角度思考文本擦除彻底性和背景纹理完整性,并联合通用的篡改生成框架提出基于笔迹的场景文本图像篡改生成算法。其次,本报告提出了一种通用的天然场景文本图像篡改检测框架,并联合频域信息最大化实在和篡改文本的部分纹理差异性。 讲者四 姓名:廖明辉 单位和职称:华为云AI算法研究员     廖明辉,华为云AI算法研究员。2021年于华中科技大学取得博士学位。次要钻研方向为天然场景文字检测与辨认。以第一作者身份在TPAMI、TIP、CVPR、ECCV、AAAI等顶级期刊会议发表论文十余篇,其中ESI高被引论文2篇。谷歌学术援用数超3500。取得了CSIG优博、CSIG自然科学奖一等奖、CCF-CV学术新锐奖、第五届中国互联网+大学生翻新守业大赛国赛金奖、AI华人新星百强、AI 2000人工智能寰球最具影响力学者榜单等荣誉。 报告题目:华为云OCR技术停顿与行业实际 报告摘要:OCR技术有宽泛的利用场景,也是华为云AI服务的外围能力之一。本次报告将介绍华为云在OCR技术上的研究进展以及华为云在OCR行业的实际,包含文字辨认自监督预训练模型的研究进展及其在金融行业的利用、华为云OCR服务产品介绍等。 讲者五 姓名:丁凯 单位和职称:上海合合信息科技股份有限公司 高级工程师 丁凯,上海合合信息科技股份有限公司智能技术平台事业部副总经理,高级工程师,获华南理工大学博士学位。负责CSIG文档图像剖析与辨认专委会委员,CSIG机器视觉专委会委员,上海科技大学企业导师,华南理工大学校外研究生导师等职务,取得上海市人才倒退基金赞助。钻研方向为人工智能、模式识别、文档剖析与了解、OCR、常识图谱等。率领团队在ICDAR、ICPR等权威学术会议组织的国内比赛中取得多项冠军,作为次要实现人取得CSIG科技进步奖二等奖。近年来主持的名片辨认了解、电子文档还原、多模态文档了解、常识图谱构建与开掘等我的项目的研发工作,撑持了合合信息多项外围业务。 报告题目:智能文档解决技术在工业界的利用与挑战 报告摘要: 随着技术的一直倒退,OCR技术在工业界中的利用也从最开始的简略的光学字符识别拓展到涵盖图像预处理、文字辨认、版面剖析、文档了解等多项技术的智能文档解决畛域。近年来,特地是深度学习技术呈现当前,智能文档解决的各项技术均获得了突破性的停顿。然而,在理论的工业界场景中,文档解决依然面临着大量的问题和挑战,例如文档图像中的形变/蜿蜒及光照影响、文档篡改检测、简单文档图像的版式还原,以及各种简单场景下的文档的辨认与了解难题。本报告次要介绍了合合信息依靠自研的TextIn智能文字辨认服务平台,在解决工业界中面临的各类问题中所做一些相干工作进展和研究成果,并探讨以后工业界中面临的一些要害技术难题和挑战。

May 11, 2023 · 1 min · jiezi

关于深度学习:精准锁定证件材料篡改位置合合信息智能图像处理技术助力金融机构防范违规开户

得悉帮忙别人办理几张银行卡、电话卡,就能坐等“分成”,许多人怀着“吃馅饼”的心态掉入了陷阱。往年4月,海南一女子归还银行卡帮忙不法分子进行电信网络欺骗,涉案资金流水近10万元,被警方抓捕。此前,西安某高校在校学生吴某为赚取“兼职费”,将本人的3张银行卡账户提供给不法分子应用,并从中获取好处费。经查,其提供的银行卡账户中,有2张被别人用作了电信欺骗。 售卖、归还集体银行卡的行为,是“帮信罪”的典型体现。为了夺取更大的利益,不法分子还会诱导受害人通过虚伪资料违规开户,为赃款流通生产渠道。近期,合合信息推出智能开户解决方案,在智能图像处理技术的反对下,帮忙银行、证券业等金融机构解决人工审核工夫老本高、资料伪造辨认难、采集图像品质差等痛点,晋升业务自动化解决效率,升高电信网络欺骗危险。 “帮信罪”被起诉人数位列排名前三,AI帮忙金融机构防备危险 “帮信罪”全称为“帮忙信息网络犯罪活动罪”,是指明知别人利用信息网络施行立功,仍然为其立功提供互联网接入、广告推广、领取结算等帮忙的犯罪行为。“帮信罪”的立功嫌疑人多为低学历、低收入、低年龄群体,因不足法律常识和个人身份信息保护意识,沦落为电信网络立功的重要“鹰犬”。 最高人民检察院2022年披露的数据显示,帮信罪已成为各类刑事犯罪中起诉人数排名第三的罪名,仅次于危险驾驶罪、盗窃罪。 近年来,继续高发的电信欺骗案件给人民大众造成重大经济损失的同时,也冲击了金融市场的秩序。不法分子从银行等金融机构近程服务的便当中“钻篓子”,在网上办理开户时,应用被篡改的头像、出生年月等相干身份信息的证件,用意以欺诈伎俩通过实名认证。局部金融机构出于危险考量,呈现了回绝开户等 “一刀切 ”的行为,或扩充可疑账户锁定范畴。 据悉,合合信息研发了基于深度学习的图像篡改检测技术及相干零碎,通过学习图像被篡改后统计特色的变动,智能捕获图像在篡改过程中留下的轻微痕迹,可检测出复制粘贴、拼接、擦除等多种篡改模式。在AI辨认出篡改区域后,图像篡改检测零碎会以热力求的模式展现图像区域篡改地点,揭示审核员重点审核。 此外,合合信息智能图像处理技术可通过助力图像“质检”,对翻拍、含糊、曝光过强、黑白等场景图像进行辨认检测。如果图像品质不合乎进件要求,零碎将主动剔除不合格证件,并在前端实时反馈用户,揭示从新扫描或拍摄。该项技术可无效进步开户资料采集效率和图像品质,升高金融机构的二次进件状况,晋升客户体验与服务质量。 AI在图像内容平安畛域具备宽广的倒退空间 除了“帮信罪”,人们生存中还可能遭逢其余通过图像篡改进行的犯罪行为。2022年5月,四川警方破获了一起跨境涉赌POS机非法经营案。犯罪团伙应用图像处理技术,用别人身份信息伪造商户营业执照来注册申领POS机,而后提供给别人在澳门从事非法交易外汇流动,为边疆至澳门的赌客等套现近12亿元。 不法分子还会篡改各种证件图像,假冒公检法及业余人员身份。2023年3月,海南省陵水警方侦办了一起虚伪网络贷款电信欺骗案件,欺骗嫌疑人通过图像处理软件伪造银行工作证,伪装成银行贷款经理或贷款担保公司股东,通过社交软件对受害者进行近程欺骗。 技术的提高带来了便当,也引来了危险。各类社交平台中视频、图像、文本内容图片被歹意篡改的状况日益加剧,大量通过人工、AI脚本篡改合成的图片被用于散播谣言、经济欺骗、假造虚伪新闻,以达成非法获取经济利益的目标。现阶段,图像内容平安已成为AI平安的重点畛域,图像篡改检测技术是图像内容平安的“防火墙”,在将来还有广大的倒退和利用空间。

May 11, 2023 · 1 min · jiezi

关于深度学习:Blender操作笔记基本操作

视图/查看ctrl+alt+Q:进入到四视图视角ctrl+alt+0(小键盘的0):设置以后视角为相机视角;(没有小键盘的可从此处调取)n键调出侧边栏之后,视图-☑️锁定相机到视图,即可随便调整摄像机中的物体视图地位,调整完之后勾销勾选;~:可调出各个视图的抉择2.右边栏根底工具G:挪动,alt+G:挪动归零,G+X/YZ:对应的X/Y/Z轴挪动;R:旋转,alt+R:旋转角度归零,R+X/YZ:对应的X/Y/Z轴旋转,R+X+45:沿着X轴旋转45度;S:缩放,alt+S:缩放归零,S+X/YZ:对应的X/Y/Z轴缩放,S+X+5:沿着X轴缩放5倍;加选:ctal+左键w:抉择工具切换a:全选,a+a:勾销全选;shift+a:增加;x:删除;3.窗口减少视图窗口:鼠标挪动到最右侧,右键-垂直宰割;勾销新增的视图 窗口:鼠标挪动到两个窗口两头的线,右键-合并区域,抉择向左或向右的箭头即可向左或向右合并; 如果呈现鼠标挪动到边线上未呈现加号,可能是设置-界面中的拐角拆分没有勾选;新建窗口,有两个窗口可操作 ctrl+空格:窗口最大化ctrl+alt+空格:全屏4.坐标系全局坐标系:不以咱们的物体为转移的坐标系部分坐标系:以本身物体为轴心的坐标系法向坐标系:在编辑模式下,选中某个面,是以面的方向为轴心万向坐标系:通过固定两个轴的方向,旋转第三个轴在变换选项中,模式XYZ:Y轴是旋转轴,Z轴是转向轴;视图坐标系:坐标轴会永远以以后的观察者视窗为坐标系新建坐标系:选中哪个物体,新建的坐标系就以哪个物体为主游标坐标系:以游标为主的坐标系,(英文的逗号键):调出坐标系图5.变换轴心点工具.(英文的句号键):调出变换轴心点疾速切换图 选项-原点:勾上原点,可独自编辑原点原点回到几何核心:右键-设置原点-原点>几何核心原点>质心,能够依据体积或表面积计算以边界框核心为轴心:物体的框的核心就是边界框核心 以各自的原点为轴心:即多个几何体,每个几何体都沿着本人的原点缩放/挪动/旋转以流动物体为轴心:即以最初选定的物体为轴心6.吸附工具开启/敞开吸附工具:shift+tab,或者间接点击吸附图标;长期开启/敞开:选中物体时按下ctrl吸附至-顶点/面/边:是绝对于被吸附对象而言的,A被吸附至B的顶点/面/边,把某一物体放到另一物体下面吸附至-增量:挪动的时候是以吸附体的为单位挪动的吸附至-顶点:可抉择以质心/核心/流动项为基准点吸附至-体积:模型A疾速精确装入模型B7.衰减编辑开启/敞开吸附工具:o在编辑模式下,衰减工具能够辅助建模,拉出须要的形态 仅相连项:勾选当前,两个物体,只对其中一个操作从视角投影:开启后编辑左/右/前/后视图时,只对单个视图起作用8.罕用操作游标与选中项吸附性能:shift+S反复上一步操作:shift+r进入第一人称察看模式:shift+~,w是后退,s是后退,a是左移,d是右移,q是降落,e是抬升,shift减速,alt加速;以某个物体为准心:选中某个物体,按空格键就是以该物体为准心,能够间接去到该物体,右键可退出;暗藏:H暗藏=敞开小眼睛的操作,alt+h开启=关上小眼睛关上禁用:右上角限度开关-点上小电脑和小相机图标,小电脑是在视图中禁用,小相机是在渲染中禁用父子集设置:选中要绑定的对象,ctrl+P,最初抉择的流动项为父级。设置父子集指标-物体:子集随着父集变换,子集能够独自变换,变换子集不影响父集;调整父子集关系:按住shift,间接拖动物体到父集上,或者把子集物体拖出来;物体镜像:镜像是基于原点的,ctrl+m进入到交互镜像,按X/Y/Z别离在对应轴镜像,或者按住鼠标中键,指定轴疾速切换到对应轴上;

May 11, 2023 · 1 min · jiezi

关于深度学习:华为云青软杯人工智能应用挑战赛火热报名中

以后,人工智能的倒退在寰球范畴内曾经进入到一个新阶段,各国人工智能策略布局减速降级,展现出了弱小的利用后劲和发展前景。在利用方面,人工智能曾经渗透到了各个领域,带来了微小的影响和改革。在过来的一年,人工智能向咱们展现了它的有限可能。随着技术的一直成熟,落地利用不断创新,人工智能或将真正扭转生存,这也对人工智能畛域人才提出更新更高的要求。激发AI翻新灵感,开启AI翻新之旅为进一步深入人工智能教育遍及工作,增强科技后备人才培养力度,深刻施行科教兴国策略、人才强国策略、翻新驱动倒退策略,为科技和产业倒退提供更加充沛的人才撑持,特此举办“华为云·青软杯”人工智能利用挑战大赛。大赛从实际利用登程,联合企业实在我的项目案例,通过“学、训、赛”的模式,踊跃营造高校人工智能学习气氛,丰盛高校云计算教学内容,晋升高校学生云计算技术和实际能力,促成产业、学术、人才等翻新因素交融倒退,推动人工智能教育遍及和深刻倒退。>点此报名或理解详情< 一、【参赛对象】 面向重庆市整体在读大学生。 二、【参赛模式】本次较量为团队赛,不计集体问题,按团队问题排序,并设置本科和高职两个组别,参赛选手自行组队并抉择对应组别。具体参赛模式可点击查看大赛官网—参赛模式 三、【报名工夫】2023年4月1日—6月20日23:59:59具体报名地址及赛程请点击查看大赛官网—大赛赛程 四、【奖项配置】本次大赛分为选手奖及学校/老师奖除次要奖项之外,获奖选手将有机会获取华为云开发者认证资源券,并纳入青软人才库,获取企业端实习机会或免口试绿卡等附加处分具体奖项设置可点击查看大赛官网—奖项配置 五、【组织单位】领导单位:中国人工智能学会主办单位:重庆市人工智能学会承办单位:重庆文理学院,重庆师范大学智慧教育研究院,华为云计算技术有限公司协办单位:青软翻新科技集团股份有限公司 六、【注意事项】1、本次大赛无报名费,任何以本大赛名义收取任何费用均为虚伪信息。2、参赛过程中因为本身比赛项目所产生的费用自理。 冲破技术壁垒,华为云·青软杯人工智能利用挑战赛等你来战!更多大赛流动请关注华为云大赛平台

May 11, 2023 · 1 min · jiezi

关于深度学习:如何优化配置Little-Snitch-for-Mac的规则和设置

Little Snitch for Mac是一款业余的macOS防火墙软件,它能够帮忙你控制应用程序是否拜访网络或者磁盘,并对系统不可信的过程和信息进行监控。如果你想爱护你的Mac的网络安全,那么你须要理解如何配置和优化Little Snitch for Mac的规定和设置。 本文将为你介绍一些根本的操作和技巧,让你可能更好地应用这款弱小的工具。 装置Little Snitch for Mac要应用Little Snitch for Mac,你首先须要装置它。 而后双击关上dmg文件并拖拽Little Snitch Installer.app到应用程序文件夹。 运行安装程序,依照提醒进行操作,可能须要输出你的Mac开机明码和重启电脑。 2.Little Snitch如何应用? 1、Mac零碎防火墙工具Little Snitch关上后窗口敞开会在右上角显示,点击 【Show Netword Monitor】 即可关上软件页面,如下图所示: 2、软件联网后,设置您要屏蔽的软件,点❌即可设置,该防火墙软件也能够自我屏蔽,这样就不会弹出更新的提醒了,须要屏蔽官网信息的软件设置实现后,您能够放心使用软件了。 配置Little Snitch for Mac的规定当你第一次运行Little Snitch for Mac时,它会主动创立一些默认的规定,用于容许或回绝一些常见的应用程序和服务的网络连接。 你能够在Little Snitch Configuration.app中查看和批改这些规定,也能够创立本人的规定。 规定分为两种类型:应用程序规定和全局规定。 应用程序规定是针对特定的应用程序或过程的,全局规定是针对所有的应用程序或过程的。 要创立一个新的应用程序规定,你能够点击左上角的加号按钮,而后抉择一个应用程序或过程,或者间接拖拽一个应用程序或过程到窗口中。 而后,你能够抉择容许或回绝该应用程序或过程与特定的域名、IP地址、端口或协定进行连贯,也能够抉择任意方向、任意服务器或任意端口。你还能够设置该规定的无效工夫、优先级、备注等属性。 要创立一个新的全局规定,你能够点击左下角的加号按钮,而后抉择一个域名、IP地址、端口或协定,或者间接输出一个值。 而后,你能够抉择容许或回绝所有应用程序或过程与该域名、IP地址、端口或协定进行连贯,也能够抉择任意方向。你还能够设置该规定的无效工夫、优先级、备注等属性。 4 优化Little Snitch for Mac的设置 除了配置规定外,你还能够优化Little Snitch for Mac的一些设置,以进步其性能和便利性。你能够在Little Snitch Configuration.app中点击右上角的偏好设置按钮,关上偏好设置窗口。在这里,你能够调整以下几个方面: 通用:你能够设置Little Snitch for Mac在启动时是否主动运行、是否查看更新、是否显示菜单栏图标等选项。连贯警报:你能够设置当一个新的连贯尝试产生时,Little Snitch for Mac是否显示连贯警报,并让你决定是容许还是回绝连贯。你还能够设置连贯警报的显示地位、持续时间、款式等选项。网络监视器:你能够设置是否启用网络监视器,并查看Mac的网络流动和流量统计。你还能够设置网络监视器的显示模式、地图款式理解更多Mac优质软件及相干教程请持续关注小编。

May 10, 2023 · 1 min · jiezi

关于深度学习:长三角生物医药产业加速跑飞桨螺旋桨为创新药企医药技术伙伴装上AI大模型引擎

生物医药是国家“十四五”布局中明确的战略性新兴产业之一。长三角地区是中国生物医药产业的排头兵,也是《“十四五”生物经济倒退布局》的“生物经济先导区”之一。据《上海市生物医药产业投资指南》显示,2022 年上海市生物医药产业在 I 类国产翻新药数量、生物医药畛域上市企业数量、AI 制药企业落户数量上,均位居全国第一。近年来,上海、南京、杭州、苏州等多地政策反对进一步加码,推动生物医药产业高质量倒退。 长三角地区也是我国人工智能倒退的前沿。在 AI 大模型引领的新一轮科创浪潮中,人工智能科技与生物医药产业的交融翻新一直减速。杭州立德百克生物医药科技有限责任公司、索智生物科技(浙江)有限公司等生物医药畛域企业率先引入 百度飞桨螺旋桨( PaddleHelix )和文心生物计算大模型的当先技术,攻坚业内痛点,打造出令人瞩目的标杆成绩。百度飞桨螺旋桨( PaddleHelix )是基于飞桨深度学习框架打造的“ AI+生物”计算平台,提供文心大模型-生物计算大模型能力,已凋谢多个算法模型,笼罩小分子药物筛选、多肽/蛋白药物设计、mRNA 疫苗/药物设计等技术,面向新药研发、疫苗设计、精准医疗等场景,为生物医药畛域的翻新药企、医药技术提供商、科研机构、生物科技公司等提供全面的算法工具和技术计划。 翻新药企立德百克联结百度飞桨螺旋桨,提出了开发新机制的乳腺癌翻新药的办法,使用大模型底座以及 HelixVS 等技术,曾经找到具备后劲的 6 个活性小分子,将来无望开发出解决临床耐药性和副作用进一步升高的新型乳腺癌医治药物。索智生物是一家专一本身免疫疾病新药研发初创公司,通过 AI 技术实现差异化产品翻新和研发效率晋升。 索智生物在多个畛域与飞桨螺旋桨单干,其中 ADMET 性质预测大模型 HelixADMET ,曾经整合到索智本身的 AI 药物发现平台( AIxMol®️),并胜利利用于其所有在研我的项目,无效地帮忙索智晋升合成测试湿试验成功率,进而进步整体研发效率。HelixADMET 大模型可在 60 秒内计算 1000 个分子的 ADMET 相干指标。这对疾速分子评估将起到重要的作用,这一重要药物性质评估平台无望给宽广药企带来帮忙。 高效锁定 6 个分子为世界第一大癌症减速研发独创新药 依据世卫组织公布的数据,早在 2020 年,乳腺癌就在寰球新发病例上超过肺癌,成为世界第一大癌症。我国是寰球乳腺癌发病人数最多的国家,每年新发病例数靠近 42 万。CDK4/6 抑制剂是目前医治乳腺癌最为滞销的药物。但 CDK4/6 抑制剂在给宽广患者带来福音的同时,也存在着“瑕疵”,比方难以避免的产生了不同水平的耐药性以及临床副作用,而且同质化竞争异样强烈。这就要求跳出赛道,研发全新的医治药物。 立德百克聚焦于世界前沿的疾病模型和靶点药物开发畛域,为翻新药物的晚期开发提供助力服务。针对现有乳腺癌药物的有余,立德百克联结百度飞桨螺旋桨提出了开发新机制的 CDK4/6 抑制剂乳腺癌药物的办法,另辟蹊径利用 CDK4/6 的激酶活性必须依赖于本身同 CCND(细胞周期素 D )造成复合物这一要害个性,开发出能阻断 CDK4/6-CCND 蛋白-蛋白相互作用( PPI )的小分子化合物,同样能够起到使 CDK4/6 激酶失去活性,并因而克制乳腺癌细胞成长。目前已找到 6 个高后劲分子,为新药物的研发带来了曙光。 杭州立德百克生物医药总经理王紫壹介绍道,“百度领有国内当先的 AI+药物研发的技术能力,特地是文心生物计算大模型在国内是十分当先的,使用这些技术能力,飞桨螺旋桨平台帮忙咱们更高效的找到苗头化合物分子,这大大晋升了咱们药物发现的效率。” 具体来说,文心生物计算大模型的虚构筛选流程算法 HelixVS ,能高效实现千万/亿级别大规模的小分子虚构筛选。比照传统分子对接工具,HelixVS 可能多找到 40% 以上的活性分子,同时在单机上运行的速度可晋升 5 倍。在本次我的项目中,仅用一个 780 万的虚构筛选库,就胜利筛出了 110 个潜在的候选分子。 ...

May 9, 2023 · 1 min · jiezi

关于深度学习:Transformers回顾-从BERT到GPT4

人工智能已成为近年来最受关注的话题之一,因为神经网络的倒退,已经被认为纯正是科幻小说中的服务当初正在成为事实。从对话代理到媒体内容生成,人工智能正在扭转咱们与技术互动的形式。特地是机器学习 (ML) 模型在自然语言解决 (NLP) 畛域获得了重大进展。一个要害的冲破是引入了“自注意力”和用于序列解决的Transformers架构,这使得之前主导该畛域的几个关键问题得以解决。 在本文中,咱们将钻研革命性的Transformers架构以及它如何扭转NLP,咱们还将全面回顾从BERT到Alpaca的Transformers模型,重点介绍每种模型的次要特色及其潜在利用。 相似bert的文本模型第一局部是基于Transformer编码器的模型,用于向量化、分类、序列标记、QA(问答)、NER(命名实体辨认)等。 1、BERT Google / 2018 Transformer 编码器,wordpiece tokenization(30K 词汇量)。输出嵌入由三个向量组成:标记向量、可训练地位向量和片段向量(第一个文本或第二个文本)。模型输出是 CLS 标记嵌入、第一个文本的嵌入和第二个文本的嵌入。 BERT 有两个训练任务:Masked Language Modeling (MLM) 和 Next Sentence Prediction (NSP)。在 MLM 中,15% 的令牌被屏蔽,80% 被 MASK 令牌替换,10% 被随机令牌替换,10% 放弃不变。模型会预测正确的 令牌,而损失仅在这 15% 的屏蔽令牌上计算。在 NSP 中,模型预测第二个文本是否跟在第一个文本之后。预测是在 CLS 令牌的输入向量上进行的。 为了放慢训练速度,首先90%的训练在序列长度为 128 个标记上进行,而后剩下的10% 的工夫在 512 个标记上训练模型以取得更无效的地位嵌入。 2、RoBERTa Facebook / 2019 BERT的改良版本,它只在MLM上训练(因为NSP被认为不太有用),训练序列更长(512个令牌)。应用动静屏蔽(当再次解决雷同的数据时,不同的令牌被屏蔽),训练超参数是精心抉择的。 3、XLM Facebook / 2019 训练多语言模型的办法之一是应用不同的根本模型(目前最风行的模型是基于RoBERTa的XLM-R)。在最后的XLM中,所有语言都有一个共享的BPE词汇表。 XLM 有两个训练任务:MLM和翻译。翻译实质上与一对文本上的 MLM 雷同,但文本是彼此的平行翻译,具备随机掩码和段嵌入编码语言。 4、Transformer-XL Carnegie Mellon University / 2019 ...

May 9, 2023 · 2 min · jiezi

关于深度学习:安卓机上-4G-内存跑-alpaca欢迎试用轻量级-LLM-模型推理框架-InferLLM

从 LLM 火爆以来,社区曾经呈现了十分多优良的模型,当然他们最大的特点就是体积大,最近为了让大模型能够在更低端的设施上运行,社区做了十分多的工作, gptq 实现了将模型进行低比特量化,因而升高了运行大模型对CPU内存,GPU显存的要求,llama.cpp 实现了在本地 CPU/GPU 上就能够运行大模型,并且步骤非常简单,replit-code-v1-3b 用更小的模型实现了更智能的 code 生成。能够看到模型的小型化和轻量部署也是一个大模型的倒退方向。 鉴于此,MegEngine 团队开发了 InferLLM 工程,次要目标有两个: 提供一个比 llama.cpp 更简略更容易上手的本地部署框架,供大家学习和探讨让 LLM 模型在本地或者端上部署成为可能,将来能够用在一些理论的生产环境中相比 llama.cpp 工程,InferLLM 构造更简略,对一些通用组件进行了重构,防止将所有逻辑代码和 kernel 代码放在一个文件中,防止在 Kernel 中引入过多的宏影响代码浏览和开发,llama.cpp 对于学习和二次开发不是很敌对,InferLLM 也是次要借鉴 llama.cpp,如:应用 llama.cpp 的模型格局,以及 copy 了一些计算的 code,同时 InferLLM 对其进行了重构,使得代码更简略间接,非常容易上手,框架代码和 kernel 代码离开,其实在大模型推理中,真正须要优化的 kernel 是远远小于 CNN 的 kernel 的。 另外 InferLLM 也能够用在生产中,因为它能够将 LLM 量化的模型在一个性能个别的手机上晦涩的运行,能够进行晦涩的进行人机对话,目前在手机上运行一个 llama 7b 4bit 的模型,只须要 4G 左右内存,这个内存是当初大多数手机都能满足的。置信在不久之后会呈现很多大模型中的轻量化模型,能够间接在端上进行部署和推理,毕竟目前手机是大家最容易取得的计算资源,没有理由节约如此宏大的计算集群。 上面是在 xiaomi9,Qualcomm SM8150 Snapdragon 855 上应用 4 线程运行中文 alpaca 7b 4bit 量化模型的状况: ...

May 8, 2023 · 1 min · jiezi

关于深度学习:使用思维链Chainofthoughts提示在大型语言模型中引出推理

语言模型(LM)在NLP畛域的倒退速度十分快,特地是在大型语言模型(LLM)方面:当语言模型具备大量参数或权重/系数时,它们被称为“大型”。这些“大型”语言模型领有解决和了解大量自然语言数据的能力。 LLM被用于一系列自然语言工作,如文本摘要、情感剖析、主题分类、语言翻译、主动实现等。扩大LM的一些宽泛的益处包含进步性能、泛化和效率,尽管这些模型执行的大多数工作都受害于扩大,但像算术、常识和符号推理这样的工作在扩大模型时没有看到性能的进步。 这就引出了“思维链提醒”的办法,通过生成一系列两头推理步骤或思维链来进步法LLM 的简单推理能力。这种办法基于两个想法:1、思考到LM能够被训练来生成自然语言的两头步骤,减少自然语言的基本原理可能是一个额定的益处;2、当通过上下文少样本办法提醒时,LLM在问答工作中获得了显著的胜利。但在实践中,为训练训发明大量的理由是费时费力的。所以将这两种思维联合起来,就产生了一个模型,只有有几个由<input, chain-of-though, output>三元组组成的提醒,模型的性能会失去改善。 思维链提醒思维链是解决推理工作时人类思维过程遵循的一系列典型步骤。它能够帮忙咱们将一个问题分解成一系列的子问题,而后一一解决这些子问题,从而得出最终的答案。在大型语言模型中,思维链能够用来引出推理。思路链办法带来以下益处: 因为问题能够分为多个步骤,因而能够将额定的计算调配给简单的问题推理门路提供了一个调试模型可能出错的窗口任何个别的 LLM 都能够通过提供思维链提醒来为简单的推理工作做筹备数学推理 上图显示了 LLMs 在数学单词问题上应用思维链提醒的体现后果。y 轴是后果体现,x 轴上是模型大小的比例。 只有在足够大的模型中能力看到思维链提醒为 LLM 带来的益处。因而大型模型是必要的,但还不够对于更简单的推理问题,性能的进步更大。鉴于 GSM8K 与 MAWPS 中问题的复杂性升高,GSM8K 中的性能增益对于大型模型简直翻了一番大型 GPT 和 PaLM 模型中的思维链提醒的性能与之前的 SOTA 办法相当,其中包含在标记的训练数据集上微调模型除了上述几点外,对 PaLM 62B 谬误的分析表明,当模型缩放到 540B 时,很大一部分的缺失和语义了解都失去了修复,这进一步强化了通过思维链提醒进步LLM推理能力须要大模型的观点融化试验 性能改良将依据三种不同的思维链提醒进行评估 仅限方程:零碎提醒模型仅在响应数学应用题时输入方程式。这些模型在 GSM8K 上的这个提醒上体现不佳,这表明在没有给出思维链中的步骤的状况下,这些问题的语义对于模型来说太具备挑战性,无奈为它们输入方程。 仅进行变量计算:这种变动背地的思维是模型在简单问题的计算上破费(令牌)更多。在拆散提醒时,提醒的两头步骤是有用的。 答复后的思维链:这种变动测试思维链是否只是让模型拜访预训练常识。给出答案后产生思维链的提醒,其体现与基线雷同,这表明在思维链的两头步骤中可用的推理比激活常识更必要。 稳健性钻研 评估从GSM8K训练集到LaMDA 137B的不同正文和示例给出的思维链提醒的稳健性时,所有这些思维链提醒的变体都大大优于规范提醒。 除算术推理外,还对模型进行了常识性和符号推理评估 常识推理尽管PaLM模型在CSQA上的性能晋升很小,但它在StrategyQA上的体现超过了之前的SOTA,对于静止了解上也超过了一个独立的人类静止爱好者。 符号推理下图显示了PaLM模型在域内(示例和测试中的步骤数雷同)和域外/OOD(测试中的步骤多于示例)上的评估后果。只管对于域内测试,曾经在思维链中提供了完满的解决方案构造,但小型模型体现不佳。 总结尽管思维链提醒假如建设在人类推理过程的根底上,但神经网络是否“推理”的问题依然没有答案。在调优的状况下,手动提供示例的老本可能十分高,因为此过程将须要更多的示例。尽管应用示例的模型遵循“正确”推理门路的可能性很高,但不能保障这一点。为了实现思维链推理能力,模型必须“大”,这一先决条件使得它在理论利用中的应用代价昂扬。 这篇论文的钻研表明,思维链提醒进步了模型在算术、常识和符号推理工作上的性能,但扩充模型能够执行的工作范畴和升高这些模型改良推理的尺度阈值是潜在的宽泛钻研畛域。 论文地址:https://avoid.overfit.cn/post/f281ad2e54614d029c8061cc693376ed 介绍这篇论文的另外一个起因是能够应用思维链进步ChatGPT的后果,因为思维链是一种逐渐合成问题、逐渐推理的思考办法,能够疏导模型生成更精确、更有逻辑性的答案。 对问题进行合成:将一个大问题分解成多个小问题,一一解决。这样能够使模型更好地了解问题的构造,进步问题的细节解决能力。比拟和比照:将多个对象进行比拟和比照,找出它们之间的共同点和不同点。这样能够使模型更好地了解对象之间的关系,进步其分类和判断能力。推理和预测:依据已知的信息,推断可能的后果。这样能够使模型更好地解决简单的问题,进步其推理和预测能力。演绎和演绎:从具体情况中推导出个别法则,或者从个别法则中推导出具体情况。这样能够使模型更好地了解问题的实质和法则,进步其概括和推广能力。假如试验:通过模拟实验来推断事物的实质或法则。这样能够使模型更好地了解事物的属性和行为,进步其推断和预测能力。通过应用思维链的办法,能够帮忙ChatGPT更好地了解问题,进步其推理、预测、分类和判断能力。在输出问题时,能够尝试将问题分解成多个子问题,而后一一解决;在生成答复时,能够尝试进行比拟和比照、推理和预测、演绎和演绎等操作,从而生成更精确、更有逻辑性的答案。所以无论你看不看这篇论文,它的思路对咱们来说是十分重要的。

May 8, 2023 · 1 min · jiezi