--- language: - en - ru license: apache-2.0 base_model: Qwen/Qwen2.5-Coder-3B-Instruct tags: - lua - code - code-review - gguf - qwen2 library_name: llama-cpp-python pipeline_tag: text-generation --- # Lua Coder — Qwen 2.5 Coder 3B (GGUF) Модель для написания, ревью и объяснения Lua-кода. Обучена на базе Qwen 2.5 Coder 3B Instruct с использованием QLoRA файнтюнинга. ## Возможности - **Написание кода** — генерация Lua-функций, модулей, структур данных - **Код-ревью** — анализ кода с выявлением багов (SQL injection, утечки переменных, проблемы производительности) - **Агентское поведение** — задаёт 1-2 уточняющих вопроса перед написанием, если задача неоднозначная - **Объяснение кода** — разбор сложного Lua-кода с пояснениями ## Примеры **Написание кода:** ``` Запрос: Write a Lua event system with on, off, and emit methods. Ответ: local Event = {listeners = {}} function Event:on(name, fn) self.listeners[name] = self.listeners[name] or {} table.insert(self.listeners[name], fn) end function Event:emit(name, ...) for _, fn in ipairs(self.listeners[name] or {}) do fn(...) end end return Event ``` **Код-ревью:** ``` Запрос: Review this Lua code (SQL query with string concatenation) Ответ: SQL Injection — используйте параметризованные запросы. Stale cache — очищайте кэш при ошибке. ``` **Агентское поведение:** ``` Запрос: I need a Lua save system for my game. Ответ: Before I write the code, I have a couple questions: 1. Are you saving data to a file or a database? 2. Do you need to handle encryption for sensitive information? ``` ## Параметры обучения | Параметр | Значение | |----------|----------| | Базовая модель | Qwen 2.5 Coder 3B Instruct | | Метод | QLoRA (4-bit) | | LoRA rank | 128 | | LoRA alpha | 256 | | Learning rate | 8e-5 | | Эпох | 3 | | Оптимизатор | AdamW 8-bit | | Квантизация GGUF | Q8_0 | ## Оптимизация Гиперпараметры подобраны с помощью автоматизированного поиска (50 экспериментов). Лучшая конфигурация выбрана по минимальному val_loss. ## Использование ### Ollama ```bash ollama run hf.co/kertpoli/lua-coder-qwen25-3b-gguf ``` ### llama.cpp ```bash ./llama-server -m lua-coder-q8_0.gguf -ngl 99 -c 1024 --port 8091 ``` ### Python (llama-cpp-python) ```python from llama_cpp import Llama llm = Llama(model_path="lua-coder-q8_0.gguf", n_gpu_layers=-1, n_ctx=1024) result = llm.create_chat_completion( messages=[{"role": "user", "content": "Write a Lua stack with push and pop"}], max_tokens=200, temperature=0.3, ) print(result["choices"][0]["message"]["content"]) ``` ## Темы обучения Модель обучена на примерах из следующих областей: - Структуры данных (стеки, очереди, деревья) - Игровые механики (ECS, state machine, collision) - Утилиты (event system, config loader, object pool) - Love2D, Roblox, OpenResty, Neovim - Metatables, coroutines, closures ## Требования | Формат | Размер | VRAM (GPU) | RAM (CPU) | |--------|--------|------------|-----------| | Q8_0 | 3.1 ГБ | 4 ГБ | 4 ГБ | ## Лицензия Apache 2.0 (наследуется от Qwen 2.5 Coder)