簡單介紹
開源版本可以自由獲取,自由建模,自己解決識別問題,而項目框架設計,底座和平台化,落地等環節並不開源,也不提供文檔
算法體係由算法api+算法支持組成,算法支持是指運行算法條件,例如建模系統,算法應用思路,比如dnn-thread系統就是一種算法支持,樣本數據庫也是一種算法支持,基於樣本數據庫搭建的建模工具也是一種支持.
算法api這一部分就是大家在git接觸各種CV+識別性質的開源項目.ZAI會有些自主創新,而算法思路和方向,與這些開源項目基本算一致,甚至一些開源項目比ZAI的算法更加先進,識別率也會更高.看開源項目是看更新強度,持續的強更新才能真正推進到社會生產和應用,否則會被時間洗掉.
在ZAI的早期版本(1.2/1.3),一直很注重算法體系的建設,基本每次更新,都會增加一大堆新算法.後來做完發行版本以後,這些算法加在一起,已經可以等同於數十個開源項目了,同時這些算法大部分都沒有被應用.這就很尷尬!因為應用最多的只有,目標檢測,目標分類,場景分類,其餘算法基本不會應用,即使再增加幾十種算法,也不會改變什麼,例如把yolov7加進來也會一樣.在計算引擎集成多個同性質算法無意義,這並不會改變應用模式,也不會改變建模成果和項目成敗.
算法與實際項目的匹配性其實非常小,而我們通過百度,虹軟,商湯,這類公司使用的AI方案都是挖空心思做出來的,這並不是算法層面的.這些公司,他們有自己的技術體系,以及,應用層思路,算法是一種資源,算法的命運是被技術體系篩选和重構.算法的方案性佔比非常小.算法周邊的體系,這才是AI類公司賴以生存的核心.換個角度來說,AI公司靠時代紅利生存,算法是AI公司吃下去的食物,框架和算法支持體係是AI公司的消化系統,最後,產出各種應用方案.
明確了算法的本質定位以後,回到ZAI的算法體系中,算法的核心是算法支持體系,在此之後,才是建立應用層框架落地.
ZAI的算法支持體係部分,經歷了3年洗禮,現在,ZAI正在走出自己的路線.
AI數據庫體系只能適用建模體系,例如場景分類器的樣本最少也會上萬張720p/1080p,稍微堆大一點,這些樣本回答道百萬級規模.這時候,大數據管理,高效存取必須使用服務器硬件設備,例如大內存,>20核的cpu.這對於數據庫技術有一定要求.
AI數據庫體係並不是傳統數據庫,而是程序級的數據結構,這些數據結構一律支持多線程加速,以及Large-Scale(TB級大數據支持體系).傳統mis/erp開髮用的pc無法適應AI數據庫:樣本規模一旦大了,內存就不夠了,必須精簡or使用Large-Scale方式來管理數據庫,這會導致浪費大把時間去乾一些和硬件較勁的無意義工作.
AI數據庫結構=適應所有的模型的數據要求的+樣本鏈結構+樣本鏈矩陣結構
AI數據庫體系=Z.AI.Common(AI數據庫)+Z.AI.Editor(AI工具鏈副本數據庫)+*.dproj(整個建模工具鏈體系,大約20-30個建模支持工具),這些數據庫在存儲底層大量使用DFE,ZDB1,ZDB2工具形式支持庫.
AI數據庫體係不區分目標模型,但凡模型凡需要的數據都會在AI數據庫體係對應支持,這些支持包括API支持,規範化支持,工具鏈支持.
由於項目的開發,AI工具鏈一直作為內部版本在更新.
撰寫本文時,工具鏈已經構建了接近150個版本,歷經大量修復+更新.
版本計數歷史自1.4 Eval1..Eval9(這裡走了90%版本數量)
之後, Beta1..Beta3(這時候,已經逼近2023-6月出發行版本時間計劃)
提示:開源版本不包含平台支持技術
簡單來說:只能使用AI建模和識別,應用落地靠自己解決
首先,明確ZDB2的未來使用路線:大數據底層地基
其次,明確大數據問題solve:數據庫引擎必須遵守計算機機理,數據庫應用場景永遠不確定,數據庫不會是一套體系解決一切數據問題,ZDB2認為:解決數據庫問題就要自己設計數據庫引擎,在所有的項目中都要使用獨特自主設計的數據庫引擎.
ZDB2體系的技術路線推進回顧
暫時沒有放到前台推廣計劃,但會開源ZDB2,也會提供一些相關Demo.底層邏輯是因為我是程序員,我與世界的關係就是世界需要我的貢獻,同時世界也在隨時計算和剽竊我,但世界不能阻擋我的貢獻行為,長久以來我和世界都是一種相互踩平衡木的關係,這也是只開源技術,而不開源項目的初衷:擁抱技術,建立開源過濾機制.
因為ZDB2具備了大數據支持能力,未來高機率會在某些條件成立時,在底層會給出非常棒的數據地基.只有自定義數據引擎才能勝任一切需求.
ZNet代表整個後台服務器體系,以ZNet為基礎的上層架構.
從宏觀來看,C4體系+ZDB2體系+BigList體系+Core體系
這套組合拳只能在1.4或未來的版本使用.
ZDB2後台系統的數據引擎是獨特的,ZNet後台服務器幾乎全部工作於線程模型(凡處理延遲大於100ms的請求都用線程拉),BigList體係為數據鏈帶來大容量提升,C4為服務器後台提供了高級架構.
pas圈子有許多以設計模式為工作路線的程序員,他們為廣大入門者帶來了傻瓜化的後台框架,他們有非常深厚的計算機理論基礎.這造成了一個局面:使用者和設計者是依賴關係,不是完全性互相依賴,當設計者不能自我提升時,使用者就會被動.反應在真實生活和工作中就是當世界出現新事物的徵兆,有許多人發現了它,但設計者無法駕馭,導致位於設計者下游的使用者無從下手.
以delphi廠商的某些程序員+設計者為例,他們的工作是維護和開發delphi.我在2016年時看見他們還在折騰opengl入門,顯然錯過了open1.x(固管) -> open2.0(可編程管線)的歷史性升級時代,delphi通過商業路線收購dxscene,fmx被提上前台,這是被動行為,這並不是開創型做法.如果設計者在半路上出現自我局限,項目無法達標,使用者就會非常非常被動.
總結:ZNet代表未來整個後台服務器體系,保持開放,保持升級更新.
DrawEngine簡稱DE,定位是輕量+標準化,它需要渲染輸出接口.位於前端用戶層.
圖形API標準源自Khronos,軟硬廠商也會有自己的規範,這些規範,大都反應在像素排列,像素優化,api優化這些機制上.
同時圖形api也有許多標準,metal,opengl,gles,vulkan,d3d,這就造成了一種局面:渲染器要兼容各種平台和api,需要大量接口,並且這些接口升級更新非常快,這讓渲染引擎的開發和維護變得不容易了.DE在設計定位直接避開了前面的標準接口和平台化,做中間件:渲染api差異大沒事,渲染器能在目標平台把至少一種api體系支持到位那就沒問題.
FMX的底層是一種渲染器,對於多平台api支持程度,其實做的是可以的,用來設計遊戲,VR都是沒問題的.DE是把FMX當成輸出接口來用,但不會局限於FMX.DE不是渲染器定位.
DrawEngine的應用並不是直接讓程序寫完流程,因為渲染需要數據來源,例如,視頻,圖片,各種可視線框,大多時候,這要工具鏈,後台,內容生產這類體係來支撐.純代碼路線無法駕馭.
另一方面,DE有一定計算機圖形學的全局視野.它走了自己路線.
在1.4更新中,DrawEngine的渲染調度能力被大幅優化.
計算機圖形學solve組成部分
請閱讀: 1.34老版本文檔
請閱讀: 詳情
| 架構 | AI-Demo | tools | Net-tools | Net-Advance-Demo | Net-C4-Demo | Net-demo |
|---|---|---|---|---|---|---|
| x86 | Passed | Passed | Passed | Passed | Passed | Passed |
| x64 | Passed | Passed | Passed | Passed | Passed | Passed |
| MKL64 | Passed | Passed | Passed | Passed | Passed | Passed |
| CUDA10 | Passed | Passed | Passed | Passed | Passed | Passed |
| CUDA11 | Passed | Passed | Passed | Passed | Passed | Passed |
| CUDA12 | Passed | Passed | Passed | Passed | Passed | Passed |
fpc編譯器測試通過source目錄中的全部庫,source目錄子目錄為平台關聯性,fpc不支持
完
2023-7-26