一、软件介绍
文末提供源码和程序下载学习
Trinity三位一体开源程序是可解释的 AI 分析工具和 3D 可视化。Trinity 提供性能分析和 XAI 工具,非常适合深度学习系统或其他执行复杂分类或解码的模型。
二、软件作用和特征
Trinity 通过结合具有超维感知能力的不同交互式 3D 投影来实现这一目标。(向量的向量)
Hyperspace 超空间
Trinity 的 Hyperspace 视图提供 3D 散点图,其中包含特征/因子数据的自动 2D 投影。维度组合可以立即切换,以便在超维空间中快速搜索。用户可以平移、旋转和缩放 3D 相机或点本身。散点是交互式的,允许用户选择单个点来调出与该特征相关的数据/图像。

Hypersurface 超曲面
Trinity 可以将更高维的输入(在解码之前)可视化为 3D 表面。超表面视图使分析人员能够深入了解哪些输入与解码/分类结果最相关。此视图与与 Hyperspace 视点相同的 FeatureVectors 和 Timeline 同步。

Projections and Manifolds投影和流形
Trinity 提供了一个快速并行的 UMAP 工具,具有易于使用的 GUI,可将超维嵌入投影到任意的低维空间。这允许分析师将近似流形投影为 3D 集群。

三、Data Formats 数据格式
Trinity 主要使用 JSON,并且具有一组可以导入的可序列化 JSON 消息对象。大多数应用程序将利用的主要消息是 FeatureVector。 例:
{
"messageType": "feature_vector",
"messageId": 0, #optional long value for order or id of data point
"data": [-0.4232191175986961, -0.5031443592838056, 0.30497221256679125,
0.4157550505277444, -0.46174460409303325, -0.12950797668733202,
0.6323170694189965, 0.20112482321095512, -0.0770502704073328,
#... some arbitrarily long vector of embeddings...#
-0.021781132983331605, 0.2855062868586593, -0.11389146262348109,
-0.4338320677142379, 0.14545007041168245, 0.34325194689681915
],
"score": -2.753245759396493, #Typically the classification score provide by model but could be any floating point value you choose
"pfa": 0.0008605957637858228, #Auxiliary floating point between 0 and 1 typically associated with a probability
"label": "some_object", #human readable string that is categorical
"bbox": [0.0, 0, 16.0, 0], #optional Coordinate set typically used for Bounding box identification but could be used for anything
"imageURL": "/media/images/video_frame_9001.jpg", #image associated with this data point. Supports *.png or *.jpg files. Also supports http based urls
"layer": 3, #Typically the layer of the model the embeddings were taken from but can represent any Integer based hierarchal info
"metaData" : { # Totally optional info hash map
"some name" : "some value",
"optional" : "string name/value pairs that provide additional info"
}
}
FeatureVector 对象可以使用 ZeroMQ 作为流发送到 Trinity。ZeroMQ 连接是从 Data UI 面板配置的。可以使用 FeatureCollection JSON 对象以文件拖放形式一次性加载大型 FeatureVector 对象集合。FeatureCollection 对象只是一个 FeatureVector 对象的数组,带有一个类型字段,Trinity 使用它来检测拖放时的文件类型。
{ "type": "FeatureCollection",
"features": [
...boat load of FeatureVector objects
]
}
Trinity 将通过 label 字段自动为 Hyperspace 和 Projections 视图中的数据着色。它使用具有 12 种预定义颜色的旋转颜色映射表。可以通过 GUI 使用分数、图层、pFa 甚至原始坐标位置将颜色重新分配给颜色渐变。用户可以使用 LabelConfig 消息按标签创建自定义颜色映射表。标签可以通过 RGBA 十六进制代码显式着色。LabelConfig 还支持与 Java 兼容的正则表达式通配符。LabelConfig json 文件可以简单地拖放到 Trinity 应用程序上,它会自动更新视图。
{
"messageType": "label_config",
"wildcards" : {
"human_.*":"#0000FFFF",
"human_Original.*":"#FFFF00FF",
"chatGPT_.*":"#FF0000FF",
"chatGPT_Original.*":"#00FF00FF"
},
"clearAll" : "false"
}
四、Example Use Cases 示例用例
Trinity 已应用于一系列用例,包括:
深度学习对象检测模型

COVID 基因/组织分类

脑机接口解码器
大型语言模型 (ChatGPT) 嵌入分析

五、Building and Running 构建和运行
您可以使用 Maven
或 Gradle
以及现代版本的 Java (>=17) 进行构建。如果您使用 Jetbrains IDE 或 Netbeans 来促进项目的冷启动,则已经有一组用于构建和运行的脚本。要在构建后从 jar 运行项目,您可以查看 scripts
目录以开始使用。否则,请确保在启动时至少在 JVM 参数上使用 -Dprism.maxvram=2G
。对于 JLink/JPackage 构建,这些 JVM 参数已经嵌入到包中。
Troubleshooting 故障 排除
**执行权限 ** 可能需要执行权限才能运行 JPackage
、JLink
或 Native
版本 具体取决于您运行的系统。例如,在 OSX 系统上,您可能会获得 未知错误:111
或启动错误,因此您需要允许应用程序通过 GateKeeper xattr -r -d com.apple.quarantine /path/to/Trinity.app
。在某些情况下,您可能还需要在使用 JPackage
构建时添加 chmod +x /path/to/Trinity.app/Contents/MacOS/Trinity
执行权限。
** 在 Ubuntu 系统上启用 3D 渲染 ** 有时,在 Ubuntu 计算机上运行带有 3D 场景的 JavaFX 应用程序时,您会在运行时收到 Scene3D.conditionalfeature 错误。应用程序和所有 2D 组件将继续运行,但任何 3D 子场景和节点都不会渲染,而日志将被上述错误压垮。
从 jar 文件运行时,帮助 linux ubuntu 在 trinity 中渲染 3D 场景的 cmdline 参数:-Dprism.forceGPU=true
对于 Jpackage 本机可执行文件,您可以更新 trinity/app 文件夹下名为 Trinity.cfg 的 cfg 文件,您可以在此处将 forceGPU 标志添加为单独行的另一个选项。这基本上迫使 Ubuntu 执行 GPU 巫毒教。进行此更改后,只需运行 trinity,3D 场景就可以正常工作了。
六、软件下载
本文信息来源于GitHub作者地址:https://github.com/trinity-xai/Trinity