Repolode
tairov

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. 1

    Установите компилятор Mojo и MAX с помощью uv

    uv venv --python 3.13 ~/.modular-venv && uv pip install --python ~/.modular-venv/bin/python mojo "max[all]"
  2. 2

    Клонируйте репозиторий

    git clone https://github.com/tairov/llama2.mojo.git
  3. 3

    Скачайте модель stories15M

    wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin
  4. 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.

10,9 тыс.+1,1 тыс. за неделю1,7 тыс.CApache-2.0Активно поддерживаетсяОбновлён в прошлом месяце