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 APIFree Pascal / Lazarus で書かれたディープラーニングライブラリです。トランスフォーマー、Mixture‑of‑Experts、RWKV、xLSTM、スパイキングニューロン、ノーマライジングフロー、CNNなど、幅広いニューラルネットワーク層を実装しており、AVX/AVX2/AVX‑512対応CPUまたはAMD、Intel、NVIDIAのOpenCL対応GPU上で実行できます。フレームワーク全体が1つのネイティブ実行可能ファイルにコンパイルされ、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バッファ間での転送も可能。

どんな人が使うか

  • Python、PyTorch、CUDAを導入せずにネイティブPascalアプリケーション内にディープラーニングを組み込みたいシステムプログラマー
  • 単一のバイナリが望ましい組み込み環境や低依存デプロイ(例:エッジデバイス、PythonランタイムのないWindows/Linuxサーバー)。
  • 既存コードベースと統合できる即戦力のニューラルネットワークスタックを探しているPascal愛好家/Lazarus開発者
  • RWKV、スパイキングニューロン、Mixture‑of‑Expertsなど、あまり一般的でないアーキテクチャを、高度に最適化されたマシンコードにコンパイルできる言語で実験したい研究者

使い始め方

  1. Lazarus(IDE)をインストールし、GPUアクセラレーションが必要な場合は適切なOpenCLドライバーをインストール。
  2. リポジトリをクローンし、neural/フォルダをLazarusのユニット検索パスに追加。
  3. 例題プログラムの1つ(例:examples/ChatTerminal/ChatTerminal.lpr)をビルド。
  4. READMEに記載された対応モデルのHuggingFaceチェックポイントを指定して実行。

制限事項/注意点

  • ライブラリはPascalのみmasterブランチではDelphiでは動作しません(Delphi対応は古いv2.0.0リリースに限定)。
  • GPUサポートはCUDAではなくOpenCLに依存しているため、NVIDIA GPUにはOpenCLドライバー層が必要です。
  • パフォーマンスが重要なコードはAVX/AVX2/AVX‑512向けに手動最適化されています。古いCPUでは実行速度が遅くなる可能性があります。
  • 複数の教育用例や事前学習済みモデルを提供していますが、プロダクション用モデルズーとの統合はユーザーに任されています。

  • 上記のすべての情報はリポジトリのREADMEから直接取得したものであり、追加機能は推測されていません。*

関連

  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト