/ Модель

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

Контекст
32 768 токенов
Параметры
7,1 млрд
Размер весов
14,5 ГБ
Лицензия
Apache 2.0
Архитектура
mistral · dense
Опубликована
8 окт 2023

MistralSQL-7b

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

Дообученная Mistral-7B для генерации SQL-запросов по вопросам на естественном языке и контексту схемы таблиц.

22скачиваний за 30 дней5лайковвеса обновлены8 окт 2023

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MistralSQL-7B — дообученная модель bugdaryan на базе mistralai/Mistral-7B-Instruct-v0.1, предназначенная для преобразования вопросов на естественном языке в SQL с учётом схемы таблиц. Модель создана с помощью LoRA и обучена на наборе bugdaryan/sql-create-context-instruction, содержащем примеры запросов, инструкций CREATE TABLE и соответствующих SQL-запросов из WikiSQL и Spider.

Это плотная авторегрессионная модель семейства Mistral с 7,1 млрд параметров и контекстом до 32 768 токенов. Она принимает текстовые инструкции в формате Mistral [INST] и генерирует текст, включая SQL. Карточка указывает поддержку английского языка. Репозиторий содержит веса PyTorch; лицензия — Apache-2.0.

Модель подходит для прототипов интерфейсов «вопрос к базе данных» и генерации SQL по описанию структуры таблиц. Качество зависит от соответствия схемы и формулировки запроса обучающим примерам; карточка не приводит оценок качества или результатов тестирования.

Сценарии применения

  • генерация SQL по вопросу пользователя
  • составление SQL-запросов с учётом CREATE TABLE
  • создание прототипа интерфейса для запросов к базе данных на естественном языке

Ограничения

Карточка не содержит результатов оценки качества; точность может снижаться на схемах и формулировках, отличающихся от обучающих примеров. Для вывода модель генерирует SQL как текст, поэтому запросы следует проверять перед выполнением.

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

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

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

Также подходит для

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

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

Открыть на Hugging Face

Model Card for MistralSQL-7B

Model Information

  • Model Name: MistralSQL-7B
  • Base Model Name: mistralai/Mistral-7B-Instruct-v0.1
  • Base Model URL: Mistral-7B-Instruct-v0.1
  • Dataset Name: bugdaryan/sql-create-context-instruction
  • Dataset URL: SQL Create Context Dataset
  • Dataset Description: This dataset is built upon SQL Create Context, sourced from WikiSQL and Spider, providing 78,577 examples of natural language queries, SQL CREATE TABLE statements, and SQL queries answering questions using the CREATE statement as context.

Model Parameters

  • LoRA Attention Dimension: 64
  • LoRA Alpha Parameter: 16
  • LoRA Dropout Probability: 0.1
  • Bitsandbytes Parameters:
    • Activate 4-bit precision base model loading: True
    • Compute dtype for 4-bit base models: float16
    • Quantization type (fp4 or nf4): nf4
    • Activate nested quantization for 4-bit base models: False
  • TrainingArguments Parameters:
    • Output directory: "./results"
    • Number of training epochs: 1
    • Enable fp16/bf16 training: False/True
    • Batch size per GPU for training: 80
    • Batch size per GPU for evaluation: 4
    • Gradient accumulation steps: 1
    • Enable gradient checkpointing: True
    • Maximum gradient norm (gradient clipping): 0.3
    • Initial learning rate (AdamW optimizer): 2e-4
    • Weight decay: 0.001
    • Optimizer: paged_adamw_32bit
    • Learning rate schedule: cosine
    • Number of training steps (overrides num_train_epochs): -1
    • Ratio of steps for a linear warmup: 0.03
    • Group sequences into batches with the same length: True
    • Save checkpoint every X update steps: 0
    • Log every X update steps: 10
  • SFT Parameters:
    • Maximum sequence length: 500
    • Packing: False

Inference Parameters

  • Temperature: 0.7

Hardware and Software

  • Training Hardware: 2 RTX A6000 48GB GPUs

License

  • Apache-2.0

Instruction Format

To leverage instruction fine-tuning, prompts should be surrounded by [INST] and [/INST] tokens. The very first instruction should begin with a begin of sentence id. The next instructions should not. The assistant generation will be ended by the end-of-sentence token id.

For example:

from transformers import (
    AutoModelForCausalLM,
    AutoTokenizer,
    pipeline
)
import torch

model_name = 'bugdaryan/MistralSQL-7b'

model = AutoModelForCausalLM.from_pretrained(model_name, device_map='auto')
tokenizer = AutoTokenizer.from_pretrained(model_name)

pipe = pipeline('text-generation', model=model, tokenizer=tokenizer)

table = "CREATE TABLE sales ( sale_id number PRIMARY KEY, product_id number, customer_id number, salesperson_id number, sale_date DATE, quantity number, FOREIGN KEY (product_id) REFERENCES products(product_id), FOREIGN KEY (customer_id) REFERENCES customers(customer_id), FOREIGN KEY (salesperson_id) REFERENCES salespeople(salesperson_id)); CREATE TABLE product_suppliers ( supplier_id number PRIMARY KEY, product_id number, supply_price number, FOREIGN KEY (product_id) REFERENCES products(product_id)); CREATE TABLE customers ( customer_id number PRIMARY KEY, name text, address text ); CREATE TABLE salespeople ( salesperson_id number PRIMARY KEY, name text, region text ); CREATE TABLE product_suppliers ( supplier_id number PRIMARY KEY, product_id number, supply_price number );"

question = 'Find the salesperson who made the most sales.'

prompt = f"[INST] Write SQLite query to answer the following question given the database schema. Please wrap your code answer using ```: Schema: {table} Question: {question} [/INST] Here is the SQLite query to answer to the question: {question}: ``` "

ans = pipe(prompt, max_new_tokens=100)
print(ans[0]['generated_text'].split('```')[2])

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

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

GPU в ailist

Универсальный рантайм

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

Подбираем GPU…

Класс архитектуры
MistralForCausalLM
Ревизия весов
1c0eec3

0 моделей