hybridgroup/yzma

Go with your own intelligence - Write Go applications that directly integrate llama.cpp for local inference using hardware acceleration on Linux, macOS, Windows, & WebAssembly.

解決する課題

yzma は、Go 開発者が C コンパイラ(CGo)や外部モデルサーバーを必要とせずに、ローカル LLM および視覚言語モデル(VLM)推論をアプリケーションに直接統合する方法を提供します。デスクトップ OS やウェブブラウザを含む多様なプラットフォームで、高性能でハードウェアアクセラレーションされた AI モデルを実行するプロセスを簡素化します。

仕組み

このプロジェクトは llama.cpp の Go ラッパーとして機能し、purego および ffi パッケージを利用して同じプロセス内で llama.cpp ライブラリを呼び出します。これにより、アプリケーションは CGo を必要とせずにハードウェアアクセラレーション(CUDA、Metal、Vulkan、OpenVINO など)を活用できます。また、TinyGo を介して WebAssembly(WASM)もサポートし、CPU または WebGPU を使用してモデルをブラウザ内で完全に実行できます。

対象者

外部依存関係や C ベースのビルドチェーンを管理する複雑さなしに、複数のプラットフォーム(Linux、macOS、Windows、ブラウザ)で組み込みのローカル AI 機能(テキストおよびビジョン)を備えたアプリケーションを構築したい Go 開発者。

ハイライト

  • CGo フリー統合:purego と ffi を使用して、ビルド時に C コンパイラを不要にします。
  • 幅広いハードウェアアクセラレーション:CUDA、Metal、OpenVINO、Vulkan、HIP、ROCm、SYCL をサポート。
  • マルチモーダル機能:テキストベースの LLM と視覚言語モデル(VLM)の両方をサポート。
  • ブラウザサポート:TinyGo を使用して WebAssembly と WebGPU を介してブラウザで実行。
  • 直接プロセス実行:外部サーバーの必要性を排除し、低遅延と高性能を実現。
  • C ライブラリ管理:プリビルドされた llama.cpp ライブラリをダウンロードおよび検証する CLI ツールを含む。

関連

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