初始化项目,由ModelHub XC社区提供模型
Model: kertpoli/lua-coder-qwen25-3b-gguf Source: Original Platform
This commit is contained in:
119
README.md
Normal file
119
README.md
Normal file
@@ -0,0 +1,119 @@
|
||||
---
|
||||
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)
|
||||
Reference in New Issue
Block a user