joaopauloschuler/neural-api

CAI NEURAL API - Pascal based deep learning neural network API optimized for AVX, AVX2 and AVX512 instruction sets plus OpenCL capable devices including AMD, Intel and NVIDIA.

是什麼

CAI Neural API 是以 Free Pascal / Lazarus 寫成的深度學習函式庫。它實作了廣泛的神經網路層(如 Transformer、Mixture‑of‑Experts、RWKV、xLSTM、脈衝神經元、歸一化流、CNN 等),可在 支援 AVX/AVX2/AVX‑512 的 CPUAMD、Intel、NVIDIA 的 OpenCL 加速 GPU 上執行。整個框架編譯為單一原生可執行檔——無需 Python 解釋器、無需 CUDA 執行時、無需龐大的相依性鏈條。

你能用它做什麼

功能 工作方式(如 README 所述)
執行大型語言模型 加載 HuggingFace 的 instruct 檢查點(例如 Qwen 2.5、Qwen 3、Llama、Mistral、Phi‑3、OLMoE),透過 ChatTerminal CLI 互動,或使用 ChatServer 暴露一個 OpenAI 相容的 HTTP 伺服器。
文字轉音樂 MusicGenText 使用 T5 編碼器 + MusicGen 解碼器,將「低音質嘻哈,帶有柔和鋼琴」的提示轉換為音訊檔。
音訊處理 MusicSourceSeparation 將歌曲分離為音軌;Qwen2AudioChat 允許你與具備音訊感知能力的模型對話。
影像超解析度 SuperResolution 使用隨倉儲提供的預訓練網路對影像進行放大。
標準視覺示範 CIFAR‑10/‑100、MNIST、Fashion‑MNIST 分類,ResNet‑20、DenseNet、MobileNet 風格的可分離卷積,自編碼器,GAN 藝術,梯度上升可視化等。
訓練工具 TNNetFit 風格的類別(如 TNeuralImageFit)提供簡單 API,用於擬合網路、學習率控制、慣性以及模型檢查點儲存。
資料處理 TNNetVolume 是一種靈活的 1D/2D/3D 數組類型,支援 SIMD 操作,並可與 OpenCL 缓衝區之間傳輸。

誰會使用它

  • 希望在原生 Pascal 應用中整合深度學習,但不想引入 Python、PyTorch 或 CUDA 的 系統程式設計師
  • 偏好單一二進位檔的 嵌入式或低相依性部署(例如邊緣裝置、無 Python 執行時的 Windows/Linux 伺服器)。
  • 尋找可與現有程式碼庫無縫整合的即用型神經網路堆疊的 Pascal 愛好者 / Lazarus 開發者
  • 希望在可編譯為高度優化機器碼的語言中,實驗較少見架構(如 RWKV、脈衝神經元、Mixture‑of‑Experts)的研究人員。

如何開始

  1. 安裝 Lazarus(IDE),若需 GPU 加速,請安裝相應的 OpenCL 驅動程式
  2. 克隆倉儲,並將 neural/ 資料夾加入 Lazarus 的單元搜尋路徑中。
  3. 建構一個範例程式(例如 examples/ChatTerminal/ChatTerminal.lpr)。
  4. 指定一個 HuggingFace 檢查點(README 列出支援的模型),然後執行。

限制 / 注意事項

  • 此函式庫為 純 Pascal;在 master 分支上不支援 Delphi(Delphi 支援僅限於舊版 v2.0.0 發布版)。
  • GPU 支援依賴於 OpenCL,而非 CUDA,因此 NVIDIA GPU 需要 OpenCL 驅動層。
  • 性能關鍵程式碼已針對 AVX/AVX2/AVX‑512 手動優化;舊型 CPU 可能執行較慢。
  • 項目提供許多教育性範例與預訓練模型,但生產級模型資料庫整合由使用者自行完成。

  • 上述所有資訊均直接取自倉儲的 README;未推斷任何額外功能。*

相關

  • 專案
  • 專案
  • Dispatch
  • 專案
  • 專案