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 开发者提供了一种方式,可以直接将本地 LLM 和视觉语言模型(VLM)推理集成到应用程序中,无需 C 编译器(CGo)或外部模型服务器。它简化了在各种平台上运行高性能、硬件加速 AI 模型的过程,包括桌面操作系统和网页浏览器。
工作原理
此项目作为 llama.cpp 的 Go 包装器,利用 purego 和 ffi 包在同一进程中调用 llama.cpp 库。这允许应用程序利用硬件加速(如 CUDA、Metal、Vulkan 和 OpenVINO),而无需 CGo。它还通过 TinyGo 支持 WebAssembly(WASM),使模型能完全在浏览器中运行,使用 CPU 或 WebGPU。
适用对象
希望构建具备嵌入式本地 AI 功能(文本和视觉)的应用程序,并跨多个平台(Linux、macOS、Windows 和浏览器)运行的 Go 开发者,无需管理外部依赖或基于 C 的构建链。
亮点
- 无 CGo 集成:使用
purego和ffi避免在构建时需要 C 编译器。 - 广泛的硬件加速:支持 CUDA、Metal、OpenVINO、Vulkan、HIP、ROCm 和 SYCL。
- 多模态能力:支持基于文本的 LLM 和视觉语言模型(VLM)。
- 浏览器支持:通过 WebAssembly 和 WebGPU 使用 TinyGo 在浏览器中运行。
- 直接进程执行:消除外部服务器的需求,以降低延迟并提高性能。
- C 库管理:包含 CLI 工具,用于下载和验证预构建的
llama.cpp库。
相关
- 项目
- 项目
- 项目
- 项目
- Dispatch