yzma: библиотека для интеграции llama.cpp в приложения на Go

yzma: библиотека для интеграции llama.cpp в приложения на Go

yzma — это библиотека для интеграции llama.cpp в приложения на Go, позволяющая выполнять локальный инференс с аппаратным ускорением.

Проект решает задачу использования современных языковых моделей в приложениях на Go, обеспечивая высокую производительность за счёт поддержки различных технологий аппаратного ускорения, таких как CUDA и OpenVINO. В отличие от альтернатив, yzma ориентирован на разработчиков, которые хотят использовать возможности языковых моделей локально, без зависимости от внешних API или серверов.

Поддерживает платформы Linux, macOS и Windows, а также WebAssembly через TinyGo. Чтобы запустить, нужно просто установить библиотеку и следовать инструкциям в README. Однако стоит помнить, что проект находится на ранних стадиях разработки, и могут быть проблемы с совместимостью или отсутствием функциональности.

Проект yzma предназначен для разработчиков, работающих с языковыми моделями на языке Go. С его помощью можно интегрировать библиотеку llama.cpp для локального вывода без необходимости в удалённых серверах. Это позволяет использовать аппаратное ускорение с помощью технологий, таких как CUDA, Metal и Vulkan, чтобы сделать работу приложений наиболее производительной.

Основные возможности yzma включают поддержку Vision Language Models (VLM) и Large/Small/Tiny Language Models (LLM) на операционных системах Linux, macOS и Windows. Также проект поддерживает запуск в браузере с помощью WebAssembly и TinyGo.

Установка и запуск

Для установки yzma выполните следующую команду:

go install github.com/hybridgroup/yzma@latest
yzma install --lib /path/to/lib
export YZMA_LIB=/path/to/lib

После установки можно скачать требуемую модель с помощью команды:

yzma model get -u https://huggingface.co/QuantFactory/SmolLM2-135M-GGUF/resolve/main/SmolLM2-135M.Q4_K_M.gguf

И запустить пример программы на Go:

go run ./examples/hello/

Примеры использования

В проекте представлены различные примеры, демонстрирующие использование yzma:

  • Мульти-модальная модель (VLM): пример обработки текстового запроса и изображения для получения результата.
  • Интерактивный чат: использование языковых моделей для ведения диалогов. Программа запрашивает у пользователя ввод и отвечает на него.
  • Пример WebAssembly: работает в браузере, позволяя выполнять текстовые и визуальные запросы, используя WebGPU для повышения производительности.

Ограничения

Хотя yzma поддерживает более 96% возможностей llama.cpp, он имеет некоторые ограничения. Например, WebAssembly-версия содержит сокращённый API и не поддерживает работу с аудио или видео. Также все загружаемые модели должны быть в формате GGUF, совместимом с llama.cpp.

Проблемы совместимости могут возникнуть при обновлениях llama.cpp, поэтому важно следить за версиями и совместимостью библиотек.

Заключение

Проект yzma предоставляет гибкие инструменты для разработки приложений с использованием языковых моделей в экосистеме Go, предлагая высокую производительность благодаря локальному выполнению и поддержке разнообразного аппаратного ускорения. Он идеально подходит для разработчиков, стремящихся интегрировать передовые AI-технологии в свои приложения.

Открыть на GitHub: hybridgroup/yzma →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте