/ Модель

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

Контекст
16 384 токена
Параметры
6,6 млрд
Размер весов
13,5 ГБ
Лицензия
Apache 2.0
Архитектура
llama · dense
Опубликована
14 мар 2024

unSQLv1-7b-sqlite-lora

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

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

42скачиваний за 30 дней5лайковвеса обновлены21 мар 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

unSQLv1-7b-sqlite-lora — модель генерации SQL-запросов для SQLite, созданная unsqldotai. Это LoRA-дообучение CodeLlama-7B; архитектура — плотная авторегрессионная Llama с 6,6 млрд параметров. Модель предназначена для преобразования запросов на естественном языке в SQL с учётом схемы базы данных SQLite. Контекст — до 16 384 токенов.

Модель рассчитана на работу с синтаксисом SQLite; README указывает, что варианты для других диалектов SQL планировались отдельно. Веса доступны в формате safetensors, лицензия — Apache-2.0.

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

  • преобразование вопросов к базе SQLite в SQL-запросы
  • составление SQL-запросов по описанию нужных данных
  • генерация запросов с учётом схемы SQLite

Ограничения

Модель настроена на синтаксис SQLite и может выдавать неподходящие запросы для других диалектов SQL. README не приводит оценки качества или результаты тестирования.

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

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

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

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

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

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

Открыть на Hugging Face

Description

This is a LoRA-finetuned codellama/CodeLlama-7b-hf text2SQL model that generates SQLite queries. This is a relatively small model that was fine-tuned on 8 x A10Gs with a total GPU memory of 192GB for over 4 days for 3 epochs. For databases with different SQL syntaxes that do not adhere to SQLite's syntax, we plan to launch other models specifically catered to them.

Usage

Huggingface Transformers Library

from transformers import AutoTokenizer, AutoModelForCausalLM

model_name = 'unSQLv1-7b-generic-lora'
device = 'cuda'

model = AutoModelForCausalLM.from_pretrained(model_name).to(device)
tokenizer = AutoTokenizer.from_pretrained(model_name)

example_prompt = '''
### Schema and the Natural Language Query:
CREATE TABLE stadium (
    stadium_id number,
    location text,
    name text,
    capacity number,
    highest number,
    lowest number,
    average number
)

CREATE TABLE singer (
    singer_id number,
    name text,
    country text,
    song_name text,
    song_release_year text,
    age number,
    is_male others
)

CREATE TABLE concert (
    concert_id number,
    concert_name text,
    theme text,
    stadium_id text,
    year text
)

CREATE TABLE singer_in_concert (
    concert_id number,
    singer_id text
)

-- Using valid SQLite, answer the following questions for the tables provided above.

-- What is the maximum, the average, and the minimum capacity of stadiums ?
'''


inputs = tokenizer.encode(example_prompt, return_tensors="pt").to(device)
outputs = model.generate(inputs, max_length=512)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Sagemaker Endpoint I/O Example

payload = {
    "inputs": "### Schema and the Natural Language Query:\nCREATE TABLE stadium (\n    stadium_id number,\n    location text,\n    name text,\n    capacity number,\n    highest number,\n    lowest number,\n    average number\n)\n\nCREATE TABLE singer (\n    singer_id number,\n    name text,\n    country text,\n    song_name text,\n    song_release_year text,\n    age number,\n    is_male others\n)\n\nCREATE TABLE concert (\n    concert_id number,\n    concert_name text,\n    theme text,\n    stadium_id text,\n    year text\n)\n\nCREATE TABLE singer_in_concert (\n    concert_id number,\n    singer_id text\n)\n\n-- Using valid SQLite, answer the following questions for the tables provided above.\n\n-- What is the maximum, the average, and the minimum capacity of stadiums ?",
    "parameters": {
        "maxNewTokens": 512,
        "topP": 0.9,
        "temperature": 0.2
    }
}

client = boto3.client('runtime.sagemaker')
endpoint_name = 'deployed_model_name'
response = client.invoke_endpoint(
    EndpointName=endpoint_name,
    ContentType='application/json',
    Body=json.dumps(payload).encode('utf-8'),
)
response = response["Body"].read().decode("utf8")
response = json.loads(response)
print(response[0]['generated_text'])

{
    "body": [
        {
            "generated_text": "\n\n\n### Response:\nSELECT MAX(capacity), AVG(capacity), MIN(capacity) FROM stadium",
            "details": {
                "finish_reason": "eos_token",
                "generated_tokens": 30,
                "seed": 14524408611356330000,
                "prefill": [],
                "tokens": [
                    {
                        "id": 13,
                        "text": "\n",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 13,
                        "text": "\n",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 13,
                        "text": "\n",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 2277,
                        "text": "##",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 29937,
                        "text": "#",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 13291,
                        "text": " Response",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 29901,
                        "text": ":",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 13,
                        "text": "\n",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 6404,
                        "text": "SELECT",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 18134,
                        "text": " MAX",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 29898,
                        "text": "(",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 5030,
                        "text": "cap",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 5946,
                        "text": "acity",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 511,
                        "text": "),",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 16884,
                        "text": " AV",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 29954,
                        "text": "G",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 29898,
                        "text": "(",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 5030,
                        "text": "cap",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 5946,
                        "text": "acity",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 511,
                        "text": "),",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 341,
                        "text": " M",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 1177,
                        "text": "IN",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 29898,
                        "text": "(",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 5030,
                        "text": "cap",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 5946,
                        "text": "acity",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 29897,
                        "text": ")",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 3895,
                        "text": " FROM",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 10728,
                        "text": " stad",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 1974,
                        "text": "ium",
                        "logprob": 0,
                        "special": false
                    },
                    {
                        "id": 2,
                        "text": "</s>",
                        "logprob": 0,
                        "special": true
                    }
                ]
            }
        }
    ],
    "contentType": "application/json",
    "invokedProductionVariant": "AllTraffic"
}

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
LlamaForCausalLM
Ревизия весов
fd7845c

0 моделей