展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > python架构PyNeuraLogic源码分析

python架构PyNeuraLogic源码分析

引言展示神经符号编程的力量1.简介在过去的几年里,我们看到了基于Transformer的模型的兴起,并在自然语言处理或计算机视觉等许多领域取得了成功的应用。在本文中,我们将探索一种简洁、可解释和可扩展的方式来表达深度学习模型,特别是Transformer,作为混合架构,即通过将深度学习与符号人工智能结合起来。为此,我们将在名为PyNeuraLogic的Python神经符号框架中实现模型。将符号表示与深度学习相结合,填补了当前深度学习模型的空白,例如开箱即用的可解释性或缺少推理技术。也许,增加参数的数量并不

本文目录

    引言

    展示神经符号编程的力量

    python架构PyNeuraLogic源码分析

    1. 简介

    在过去的几年里,我们看到了基于 Transformer 的模型的兴起,并在自然语言处理或计算机视觉等许多领域取得了成功的应用。在本文中,我们将探索一种简洁、可解释和可扩展的方式来表达深度学习模型,特别是 Transformer,作为混合架构,即通过将深度学习与符号人工智能结合起来。为此,我们将在名为 PyNeuraLogic 的 Python 神经符号框架中实现模型。

    将符号表示与深度学习相结合,填补了当前深度学习模型的空白,例如开箱即用的可解释性或缺少推理技术。也许,增加参数的数量并不是实现这些预期结果的最合理方法,就像增加相机百万像素的数量不一定会产生更好的照片一样。

    python架构PyNeuraLogic源码分析

    PyNeuraLogic 框架基于逻辑编程——逻辑程序包含可微分的参数。该框架非常适合较小的结构化数据(例如分子)和复杂模型(例如 Transformers 和图形神经网络)。另一方面,PyNeuraLogic 不是非关系型和大型张量数据的最佳选择。

    该框架的关键组成部分是一个可微分的逻辑程序,我们称之为模板。模板由以抽象方式定义神经网络结构的逻辑规则组成——我们可以将模板视为模型架构的蓝图。然后将模板应用于每个输入数据实例,以生成(通过基础和神经化)输入样本独有的神经网络。这个过程与其他具有预定义架构的框架完全不同,这些框架无法针对不同的输入样本进行自我调整。

    2. Symbolic Transformers

    python架构PyNeuraLogic源码分析

    我们通常倾向于将深度学习模型实现为对批处理成一个大张量的输入令牌的张量操作。这是有道理的,因为深度学习框架和硬件(例如 GPU)通常针对处理更大的张量而不是形状和大小不同的多个张量进行了优化。 Transformers 也不例外,通常将单个标记向量表示批处理到一个大矩阵中,并将模型表示为对此类矩阵的操作。然而,这样的实现隐藏了各个输入标记如何相互关联,这可以在 Transformer 的注意力机制中得到证明。

    3. Attention 机制

    注意力机制构成了所有 Transformer 模型的核心。具体来说,它的经典版本使用了所谓的多头缩放点积注意力。让我们用一个头(为了清楚起见)将缩放的点积注意力分解成一个简单的逻辑程序。

    python架构PyNeuraLogic源码分析

    注意力的目的是决定网络应该关注输入的哪些部分。注意通过计算值 V 的加权和来实现,其中权重表示输入键 K 和查询 Q 的兼容性。在这个特定版本中,权重由查询 Q 和查询的点积的 softmax 函数计算键 K,除以输入特征向量维数 d_k 的平方根。

    (R.weights(V.I, V.J) <= (R.d_k, R.k(V.J).T, R.q(V.I))) | [F.product, F.softmax_agg(agg_terms=[V.J])],
    (R.attention(V.I) <= (R.weights(V.I, V.J), R.v(V.J)) | [F.product]

    在 PyNeuraLogic 中,我们可以通过上述逻辑规则充分捕捉注意力机制。第一条规则表示权重的计算——它计算维度的平方根倒数与转置的第 j 个键向量和第 i 个查询向量的乘积。然后我们用 softmax 聚合给定 i 和所有可能的 j 的所有结果。

    然后,第二条规则计算该权重向量与相应的第 j 个值向量之间的乘积,并对每个第 i 个标记的不同 j 的结果求和。

    4. Attention Masking

    在训练和评估期间,我们通常会限制输入令牌可以参与的内容。例如,我们想限制标记向前看和关注即将到来的单词。流行的框架,例如 PyTorch,通过屏蔽实现这一点,即将缩放的点积结果的元素子集设置为某个非常低的负数。这些数字强制 softmax 函数将零指定为相应标记对的权重。

    (R.weights(V.I, V.J) <= (
        R.d_k, R.k(V.J).T, R.q(V.I), R.special.leq(V.J, V.I)
    )) | [F.product, F.softmax_agg(agg_terms=[V.J])],

    使用我们的符号表示,我们可以通过简单地添加一个身体关系作为约束来实现这一点。在计算权重时,我们限制第 j 个指标小于或等于第 i 个指标。与掩码相反,我们只计算所需的缩放点积。

    python架构PyNeuraLogic源码分析

    5. 非标准 Attention

    当然,象征性的“掩蔽”可以是完全任意的。我们大多数人都听说过基于稀疏变换器的 GPT-3⁴(或其应用程序,例如 ChatGPT)。⁵ 稀疏变换器的注意力(跨步版本)有两种类型的注意力头:

    • 一个只关注前 n 个标记 (0 ≤ i − j ≤ n)

    • 一个只关注每第 n 个前一个标记 ((i − j) % n = 0)

    两种类型的头的实现都只需要微小的改变(例如,对于 n = 5)。

    (R.weights(V.I, V.J) <= (
        R.d_k, R.k(V.J).T, R.q(V.I),
        R.special.leq(V.D, 5), R.special.sub(V.I, V.J, V.D),
    )) | [F.product, F.softmax_agg(agg_terms=[V.J])],
    (R.weights(V.I, V.J) <= (
        R.d_k, R.k(V.J).T, R.q(V.I),
        R.special.mod(V.D, 5, 0), R.special.sub(V.I, V.J, V.D),
    )) | [F.product, F.softmax_agg(agg_terms=[V.J])],

    python架构PyNeuraLogic源码分析

    我们可以走得更远,将对类似图形(关系)输入的注意力进行概括,就像在关系注意力中一样。⁶ 这种类型的注意力在图形上运行,其中节点只关注它们的邻居(由边连接的节点)。查询 Q、键 K 和值 V 是边嵌入与节点向量嵌入相加的结果。

    (R.weights(V.I, V.J) <= (R.d_k, R.k(V.I, V.J).T, R.q(V.I, V.J))) | [F.product, F.softmax_agg(agg_terms=[V.J])],
    (R.attention(V.I) <= (R.weights(V.I, V.J), R.v(V.I, V.J)) | [F.product],
    R.q(V.I, V.J) <= (R.n(V.I)[W_qn], R.e(V.I, V.J)[W_qe]),
    R.k(V.I, V.J) <= (R.n(V.J)[W_kn], R.e(V.I, V.J)[W_ke]),
    R.v(V.I, V.J) <= (R.n(V.J)[W_vn], R.e(V.I, V.J)[W_ve]),

    在我们的例子中,这种类型的注意力与之前显示的缩放点积注意力几乎相同。唯一的区别是添加了额外的术语来捕获边缘。将图作为注意力机制的输入似乎很自然,这并不奇怪,因为 Transformer 是一种图神经网络,作用于完全连接的图(未应用掩码时)。在传统的张量表示中,这并不是那么明显。

    6. Encoder

    现在,当我们展示 Attention 机制的实现时,构建整个 transformer 编码器块的缺失部分相对简单。

    我们已经在 Relational Attention 中看到了如何实现嵌入。对于传统的 Transformer,嵌入将非常相似。我们将输入向量投影到三个嵌入向量中——键、查询和值。

    R.q(V.I) <= R.input(V.I)[W_q],
    R.k(V.I) <= R.input(V.I)[W_k],
    R.v(V.I) <= R.input(V.I)[W_v],

    查询嵌入通过跳过连接与注意力的输出相加。然后将生成的向量归一化并传递到多层感知器 (MLP)。

    (R.norm1(V.I) <= (R.attention(V.I), R.q(V.I))) | [F.norm],

    对于 MLP,我们将实现一个具有两个隐藏层的全连接神经网络,它可以优雅地表达为一个逻辑规则。

    (R.mlp(V.I)[W_2] <= (R.norm(V.I)[W_1])) | [F.relu],

    最后一个带有规范化的跳过连接与前一个相同。

    (R.norm2(V.I) <= (R.mlp(V.I), R.norm1(V.I))) | [F.norm],

    我们已经构建了构建 Transformer 编码器所需的所有部分。解码器使用相同的组件;因此,其实施将是类似的。让我们将所有块组合成一个可微分逻辑程序,该程序可以嵌入到 Python 脚本中并使用 PyNeuraLogic 编译到神经网络中。

    R.q(V.I) <= R.input(V.I)[W_q],
    R.k(V.I) <= R.input(V.I)[W_k],
    R.v(V.I) <= R.input(V.I)[W_v],
    R.d_k[1 / math.sqrt(embed_dim)],
    (R.weights(V.I, V.J) <= (R.d_k, R.k(V.J).T, R.q(V.I))) | [F.product, F.softmax_agg(agg_terms=[V.J])],
    (R.attention(V.I) <= (R.weights(V.I, V.J), R.v(V.J)) | [F.product],
    (R.norm1(V.I) <= (R.attention(V.I), R.q(V.I))) | [F.norm],
    (R.mlp(V.I)[W_2] <= (R.norm(V.I)[W_1])) | [F.relu],
    (R.norm2(V.I) <= (R.mlp(V.I), R.norm1(V.I))) | [F.norm],
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Python
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    Maya(Autodesk Maya) Windows版
    Maya(Autodesk Maya) Windows版

    Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirServer Windows版
    AirServer Windows版

    AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。