/ Модель

Характеристики

Контекст
16 384 токена
Параметры
2,7 млрд
Лицензия
Apache 2.0
Архитектура
stablelm · dense
Базовая модель
stable-code-instruct-3b
Опубликована
29 июн 2024

stable-cypher-instruct-3b

Генерация текстаТекст → текст3 профессии

Stable-Cypher-Instruct-3B — специализированная языковая модель с примерно 3 млрд параметров, разработанная ragraph-ai на основе stable-code-instruct-3b от Stability AI.

1 662скачиваний за 30 дней34лайкавеса обновлены12 июн 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Это дообученная causal language model для преобразования текстовых запросов в запросы на языке Cypher, предназначенные прежде всего для графовых баз данных, включая Neo4j.

Модель ориентирована на генерацию Cypher по описаниям на естественном языке: поиск людей по навыкам и стажу, получение сведений о фильмах, анализ подписок пользователей и другие задачи работы с графовыми данными. В карточке указано, что заявленный язык — английский. Модель работает с текстом и не предназначена для мультимодальных сценариев. Объём контекста явно не указан; для одного из вариантов запуска приведён параметр n_ctx 512, а при обучении использовалась максимальная длина последовательности 256 токенов.

По данным README, на представленном наборе тестов модель существенно превзошла базовую модель и GPT-4o по BLEU, ROUGE, Jaro-Winkler, Jaccard и Pass@1 для генерации Cypher, однако эти результаты относятся к конкретной методике оценки и не гарантируют аналогичное качество на других схемах данных. Для практического использования потребуется дополнительное дообучение под синтаксис, сущности и структуру данных конкретной компании. Модель распространяется по лицензии Apache-2.0.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Model Description

A specialized 3B parameters model beating SOTA models such as GPT4-o at generating CYPHER. It's a finetune of https://huggingface.co/stabilityai/stable-code-instruct-3b trained on https://github.com/neo4j-labs/text2cypher/tree/main/datasets/synthetic_opus_demodbs to generate CYPHER queries from text to query GraphDB such as neo4j.

Usage

Safetensors (recommended)

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("ragraph-ai/stable-cypher-instruct-3b", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("ragraph-ai/stable-cypher-instruct-3b", torch_dtype=torch.bfloat16, trust_remote_code=True)

messages = [
    {
        "role": "user",
        "content": "Show me the people who have Python and Cloud skills and have been in the company for at least 3 years."
    }
]

prompt = tokenizer.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)

inputs = tokenizer([prompt], return_tensors="pt").to(model.device)

tokens = model.generate(
        **inputs,
        max_new_tokens=128,
        do_sample=True,
        top_p=0.9,
        temperature=0.2,
        pad_token_id=tokenizer.eos_token_id,
    )

outputs = tokenizer.batch_decode(tokens[:, inputs.input_ids.shape[-1]:], skip_special_tokens=False)[0]

GGUF

from llama_cpp import Llama

# Load the GGUF model
print("Loading model...")
model = Llama(
    model_path=r"C:\Users\John\stable-cypher-instruct-3b.Q4_K_M.gguf",
    n_ctx=512,
    n_batch=512,
    n_gpu_layers=-1,  # Use all available GPU layers
    max_tokens=128,
    top_p=0.9,
    temperature=0.2,
    verbose=False 
)

# Define your question
question = "Show me the people who have Python and Cloud skills and have been in the company for at least 3 years."

# Create the full prompt (simulating the apply_chat_template function)
full_prompt = f"<|im_start|>system\nCreate a Cypher statement to answer the following question:<|im_end|>\n<|im_start|>user\n{question}<|im_end|>\n<|im_start|>assistant\n"

# Generate response
print("Generating response...")
response = model(
    full_prompt,
    max_tokens=128,
    stop=["<|im_end|>", "<|im_start|>"],
    echo=False
)

# Extract and print the generated response
answer = response['choices'][0]['text'].strip()
print("\nQuestion:", question)
print("\nGenerated Cypher statement:")
print(answer)

Performance

Metricstable-code-instruct-3bgpt4-ostable-cypher-instruct-3b
BLEU-419.0732.3588.63
ROUGE-139.4969.1795.09
ROUGE-224.8246.9790.71
ROUGE-L29.6365.2491.51
Jaro-Winkler52.2186.3895.69
Jaccard25.5572.8090.78
Pass@10.000.0051.80

Example

image/png

Eval params

image/png

Reproducability

This is the config file from Llama Factory :

{
  "top.model_name": "Custom",
  "top.finetuning_type": "lora",
  "top.adapter_path": [],
  "top.quantization_bit": "none",
  "top.template": "default",
  "top.rope_scaling": "none",
  "top.booster": "none",
  "train.training_stage": "Supervised Fine-Tuning",
  "train.dataset_dir": "data",
  "train.dataset": [
    "cypher_opus"
  ],
  "train.learning_rate": "2e-4",
  "train.num_train_epochs": "5.0",
  "train.max_grad_norm": "1.0",
  "train.max_samples": "5000",
  "train.compute_type": "fp16",
  "train.cutoff_len": 256,
  "train.batch_size": 16,
  "train.gradient_accumulation_steps": 2,
  "train.val_size": 0.1,
  "train.lr_scheduler_type": "cosine",
  "train.logging_steps": 10,
  "train.save_steps": 100,
  "train.warmup_steps": 20,
  "train.neftune_alpha": 0,
  "train.optim": "adamw_torch",
  "train.resize_vocab": false,
  "train.packing": false,
  "train.upcast_layernorm": false,
  "train.use_llama_pro": false,
  "train.shift_attn": false,
  "train.report_to": false,
  "train.num_layer_trainable": 3,
  "train.name_module_trainable": "all",
  "train.lora_rank": 64,
  "train.lora_alpha": 64,
  "train.lora_dropout": 0.1,
  "train.loraplus_lr_ratio": 0,
  "train.create_new_adapter": false,
  "train.use_rslora": false,
  "train.use_dora": true,
  "train.lora_target": "",
  "train.additional_target": "",
  "train.dpo_beta": 0.1,
  "train.dpo_ftx": 0,
  "train.orpo_beta": 0.1,
  "train.reward_model": null,
  "train.use_galore": false,
  "train.galore_rank": 16,
  "train.galore_update_interval": 200,
  "train.galore_scale": 0.25,
  "train.galore_target": "all"
}

I used llama.cpp to merge the LoRa and generate the quants.

The progress achieved from the base model is significant but you will still need to finetune on your company's syntax and entities. I've been tickering with the training parameters for a few batches of training but there is room for improvements. I'm open to the idea of making a full tutorial if there is enough interest in this project.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

vLLM

Можно запустить

Подбираем GPU…

Класс архитектуры
StableLmForCausalLM
Ревизия весов
644bb45

0 моделей