Инструмент на C++ распределяет инференс LLM между несколькими домашними устройствами по Ethernet, ускоряя генерацию.
tairov/llama2.mojo
Инференс трансформера в стиле Llama 2 на чистом Mojo, в одном файле, с SIMD-векторизацией и многопоточностью.
- Звёзды
- 2,128
- Форки
- 139
- Открытые issues
- 0
- Последний коммит
- в прошлом месяце
Что это?
llama2.mojo выполняет инференс небольших моделей архитектуры Llama целиком на Mojo, без Python в процессе инференса. Это порт более раннего проекта автора llama2.py. Код использует примитивы SIMD и векторизации Mojo, а для параллельного выполнения — пул рабочих потоков на основе parallelize.
Проект загружает модели stories Карпати (от 260K до 110M параметров) и TinyLlama-1.1B-Chat. Пользователь указывает файл чекпойнта, файл токенизатора, промпт и параметры семплирования, например температуру, число шагов, seed и количество рабочих потоков. В README приведены таблицы бенчмарков, сравнивающие пропускную способность с llama2.c, llama.cpp и llama2.py на Apple M1 Max и компьютерах с x86.
Код распространяется по лицензии MIT. Для работы нужны компилятор Mojo и пакет MAX, предоставляющий функцию parallelize.
Ключевые возможности
- 01Запускает модели архитектуры Llama 2 из одного исходного файла Mojo.
- 02Использует примитивы SIMD и векторизации для матричных операций.
- 03Поддерживает многопоточный инференс с настраиваемым числом рабочих потоков.
- 04Загружает чекпойнты stories размером от 260K до 110M параметров, а также TinyLlama-1.1B-Chat.
- 05Предоставляет параметры командной строки для промпта, температуры, seed и числа шагов.
Сценарии использования
- Изучение того, как прямой проход трансформера реализуется с помощью SIMD и кода для многоядерных CPU.
- Эксперименты с небольшими чекпойнтами Llama на локальном CPU.
- Сравнение реализаций одной задачи инференса на разных языках программирования.
- Изучение Mojo на примере полноценной и понятной численной программы.
Быстрый старт
- 1
Установите компилятор Mojo и MAX с помощью uv
uv venv --python 3.13 ~/.modular-venv && uv pip install --python ~/.modular-venv/bin/python mojo "max[all]" - 2
Клонируйте репозиторий
git clone https://github.com/tairov/llama2.mojo.git - 3
Скачайте модель stories15M
wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin - 4
Запустите модель
mojo llama2.mojo stories15M.bin -s 100 -n 256 -t 0.5 -i "Once upon a time"
Что важно знать
- Для компоновки исполняемых файлов Mojo на хосте требуется компилятор C.
- Требуются инструментарий Mojo 1.1 и MAX, версии которых имеют значение.
В подборках
Темы
Частые вопросы
- Что такое llama2.mojo?
- Инференс трансформера в стиле Llama 2 на чистом Mojo, в одном файле, с SIMD-векторизацией и многопоточностью. llama2.mojo выполняет инференс небольших моделей архитектуры Llama целиком на Mojo, без Python в процессе инференса. Это порт более раннего проекта автора llama2.py. Код использует примитивы SIMD и векторизации Mojo, а для параллельного выполнения — пул рабочих потоков на основе parallelize.
- llama2.mojo можно использовать бесплатно? Какая у него лицензия?
- llama2.mojo распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- llama2.mojo всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в llama2.mojo — 30 сент. 2026 г..
- Для чего можно использовать llama2.mojo?
- Изучение того, как прямой проход трансформера реализуется с помощью SIMD и кода для многоядерных CPU. Эксперименты с небольшими чекпойнтами Llama на локальном CPU. Сравнение реализаций одной задачи инференса на разных языках программирования. Изучение Mojo на примере полноценной и понятной численной программы.
- Как установить llama2.mojo?
- Установите компилятор Mojo и MAX с помощью uv: uv venv --python 3.13 ~/.modular-venv && uv pip install --python ~/.modular-venv/bin/python mojo "max[all]" Клонируйте репозиторий: git clone https://github.com/tairov/llama2.mojo.git Скачайте модель stories15M: wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin Запустите модель: mojo llama2.mojo stories15M.bin -s 100 -n 256 -t 0.5 -i "Once upon a time"
- Где скачать llama2.mojo?
- Исходный код и инструкции по установке — на GitHub: https://github.com/tairov/llama2.mojo
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Движок инференса на C99 запускает модель Kimi K3 с 2,78 трлн параметров на одном CPU, загружая экспертов с диска без GPU и BLAS.
Лёгкий автономный C++-движок для запуска моделей Google Gemma на CPU.
Форк llama.cpp с упором на скорость инференса на CPU, дополнительными типами квантования и функциями для локального запуска LLM в формате GGUF.
Высокопроизводительный движок инференса LLM от Alibaba, который используют разные бизнес-подразделения компании для обслуживания больших языковых моделей.
Высокоточный симулятор систем инференса LLM, позволяющий изучать производительность, планировать развертывание и проверять идеи по планированию без GPU.