一、軟件介紹
文末提供源碼和程序下載學習
? ? ? ?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