Внесок у проєкт LLiMa
LLiMa містить компілятор GenAI для сторони хоста та C++ середовище виконання для Modalix.
Середовище виконання працює через упаковані точки входу CLI/HTTP/ZMQ; Python використовується для оркестрації CLI, а не як окремий загальнодоступний API середовища виконання. Зберігайте компілятор і середовище виконання, а також їхні залежності, окремо. Під час отримання коду з репозиторію,
CONTRIBUTING.md надає інструкції для швидкого старту, а AGENTS.md визначає
специфічні для агентів правила; цей посібник є детальним описом правил для розробників.
Навички програміста-агента.
Встановіть обидва набори навичок для учасників, LLiMa, як частину стандартного налаштування для учасників. Вони навмисно не встановлюються за допомогою стандартного індексу сценаріїв Neat SDK:
sima-cli playbooks install \
gh:sima-neat/llima/skills/sima-contribute-to-llima
sima-cli playbooks install \
gh:sima-neat/llima/skills/sima-add-llima-model-support
Загальні навички учасника охоплюють компілятор, середовище виконання, пакування, тестування, документацію та зміни, що стосуються всього репозиторію. Навички підтримки моделі додають сумісність і робочий процес реалізації для архітектур LLM і VLM, контрольних точок, розміщення тензорів, токенізаторів і шаблонів підказок. Переконайтеся, що обидва встановлено, щоб відповідні інструкції були доступні, коли внесок виходить за межі цих параметрів.
Схема репозиторію.
| Площа | Шляхи, стежки | Відповідальність. |
|---|---|---|
| Конфігурація | sima_lmm/config/ | Конфігураційні файли для LLM, VLM та ASR. |
| Вживання. | sima_lmm/hf/, sima_lmm/gguf/ | Завантаження та перетворення форматів Hugging Face і GGUF. |
| Компіляція | sima_lmm/model/, sima_lmm/preproc/ | Компоненти моделі, квантування, графіки та попередня обробка. |
| Інструменти для хостингу. | sima_lmm/host/ | Зберіть, розгорніть, LoRA, і проведіть тестування продуктивності основних точок входу. |
| Оцінювання. | sima_lmm/mole/ | MoLE робочі процеси |
| Інтерфейс командного рядка для середовища виконання. | sima_lmm/devkit/ | Python Оркестрація за допомогою інтерфейсу командного рядка та керування моделлю. |
| C++ середовище виконання | sima_lmm/devkit/cpp/ | Моделі, токенізатор, MLA, реалізації CLI/HTTP/ZMQ та внутрішнє зв’язування CLI. |
| Тести | tests/ | Тести компілятора та середовища виконання Modalix. |
| Упаковка | CMakeLists.txt, cmake/, build*.sh, tools/install_*.sh | Debian, формат wheel та збірка артефактів. |
| Кеші CI | .github/workflows/, tools/ci/, tools/hf-safetensors/ | Здійснює збірку, тестування та зберігає кеш моделі. |
| Документація/навички | README.md, docs/, skills/ | Користувач, автор, інструкції щодо використання Playbooks. |
Залежності, які потрібні лише для компіляції, не повинні включатися до sima_lmm/devkit/ або до пакетів Modalix, що використовуються в середовищі виконання.
Середовища розробки
Середовище виконання та пакування.
Використовуйте Neat SDK як підтримуване середовище для збірки. Зберіть усі пакети для середовища виконання та упаковані тести за допомогою:
./build.sh --all --clean
Під час звичайної збірки виконуються всі необхідні налаштування, зокрема, ініціалізація підмодулів; не потрібно виконувати окремий етап встановлення залежностей для стандартного процесу.
Корисні альтернативні варіанти збірки:
./build.sh --clean --core
./build.sh --clean --core --dev
./build.sh --clean --cli
./build.sh --no-dist
Результати генеруються в рамках build-deb/ і розміщуються в dist/. Modalix необхідний для виконання MLA і для реальної перевірки llima run.
Розробка компіляторів.
Використовуйте середовище Python 3.12, встановлене за допомогою Model Compiler. Здійснюйте пошук у наступному порядку:
/sdk-extensions/model-compiler/sdk-add-on/model-compiler$HOME/sdk-extensions/model-compiler
source <model-compiler-venv>/bin/activate
python -m pip install -e '.[sdk_ext,tests]'
llima-compile --help
Не створюйте додаткове середовище, яке затінюватиме встановлені пакети компілятора. Створюйте профілі для публікації за допомогою:
./build_compiler_wheel.sh
./build_mole_package.sh
Вони використовують інструменти для роботи з колісними приводами під час build/ і розміщують проміжні результати під час dist/compiler/ та dist/mole/.
Розробка Whisper та ASR.
Загальнодоступний процес llima-compile охоплює LLM та VLM. Для наявної Whisper замість попередньої використовується утиліта для розробників:
scripts/gen_models--openai--whisper.py.
python scripts/gen_models--openai--whisper.py \
--model_path /path/to/openai/whisper-small \
--output /path/to/whisper-output \
--part all
Запустіть його в середовищі Model Compiler із зазначенням явного шляху до моделі.
--part приймає all, encoder, language_detect, init, single_pre, single_post та single_cache. Додайте --enable_log_probe, щоб скомпілювати вихідні дані декодера з увімкненим журналюванням; використовуйте --part all --enable_log_probe для повної збірки з увімкненим журналюванням.
Зазвичай зміни в компіляторі стосуються файлів sima_lmm/config/whisper_config.py, sima_lmm/model/whisper_*.py та скрипту; зміни в середовищі виконання стосуються sima_lmm/devkit/cpp/whisper_*. Перевірте за допомогою упакованого тесту середовища виконання C++ ASR, описаного в tests/README.md, та репрезентативних аудіофайлів на Modalix. Це специфічний шлях для Whisper, а не загальна архітектурна структура ASR.
Тестування
Обирайте тести за типом помилки. Збірка не замінює перевірку поведінки, і пропущений обов’язковий тест не вважається успішно пройденим.
Герметичні випробування.
Забезпечте, щоб чиста конфігурація, відображення, серіалізація, перевірка та числова логіка були незалежними від завантаження моделей:
pytest -q <targeted-test-path>
Тести компілятора, що використовують модель.
Тести компілятора розміщено за адресою tests/compilation/. Оберіть відповідну групу та
маркер, описані в tests/README.md. Наприклад:
export LLIMA_HF_MODELS_PATH=/path/to/llima-model-inputs
python -P -m pytest \
-c pytest.ini \
tests/compilation/configuration \
-m compiler_config \
--strict-markers \
-vv -ra
--model-inputs-path та LLIMA_HF_MODELS_PATH визначають підготовлену кореневу директорію Hugging Face/GGUF. Система безперервної інтеграції (CI) використовує маніфести, що знаходяться в tools/hf-safetensors/.
Налаштуйте необхідні вхідні дані замість того, щоб дозволяти пропуск тестів.
Матриця тестів, очікувані значення та базові правила розміщені в tests/README.md; виклик CI розміщено в .github/workflows/model-compiler-tests.yml. Генеруйте ONNX та числові артефакти порівняння під час виконання, а не зберігайте бінарні базові значення.