Языковые моделиtrjxter
Spark-X2.6-4B-SQL-Cypher-Agent
4B-агент для SQL и Cypher
2 мин чтения
Это объединённый в bf16 LoRA-файнтюн XHToken/Spark-X2.6-4B (4,11 млрд параметров) от trjxter. Модель отвечает на вопросы по базе: сначала думает, затем вызывает один read-only инструмент — SQLite SQL для реляционной схемы или Neo4j Cypher для графовой. Обучена на одной потребительской GPU AMD RX 7800 XT 16 ГБ.
✅ Ключевые особенности
- 💻 Поддерживает SQLite SQL и Neo4j Cypher; другие SQL-диалекты работают в пределах пересечения синтаксиса с SQLite.
- ✅ Сначала reasoning, потом tool call; thinking включён по умолчанию, в тестах бюджет 1024 токена.
- 🔥 На тесте из 1000 вопросов execution accuracy 43,7% против 32,5% у базы (+10,7 п.п.).
- ✔ 97,8% well-formed tool calls и 95,8% запросов парсятся.
- 📚 Обучение: 94 745 примеров, около 66 млн токенов, один epoch; LoRA rank 16 / alpha 32.
- 📌 Есть GGUF-вариант для llama.cpp: Q8_0, Q6_K_XL, Q6_K, Q4_K_XL, Q4_K_M.
💻 Пример
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = 'trjxter/Spark-X2.6-4B-SQL-Cypher-Agent'
tok = AutoTokenizer.from_pretrained(repo, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(repo, trust_remote_code=True, torch_dtype='bfloat16', device_map='auto')
messages = [{'role': 'system', 'content': system}, {'role': 'user', 'content': 'Which team scored the most points at home in 2024?'}]
ids = tok.apply_chat_template(messages, tools=tools, add_generation_prompt=True, return_tensors='pt').to(model.device)
out = model.generate(ids, max_new_tokens=2048, do_sample=False)
print(tok.decode(out[0, ids.shape[1]:]))
Подробнее
Execution accuracy: 43,7% overall, 35,5% CypherBench, 64,6% gretel, 43,2% SQaLe, 27,7% text2cypher.Обучение шло на AMD RX 7800 XT 16 ГБ под ROCm/WSL около 24 часов; для llama.cpp нужен b10828 или новее.
Ограничения: около 44% ответов совпадают с эталоном, один запрос за ответ без многошагового цикла; только английский; SQLite SQL и Neo4j Cypher.
Выбран checkpoint step 1 500 из 2 961.
Комментарии
Без регистрации: достаточно имени.