/ Модель

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

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

malaysian-mistral-7b-32k-instructions

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

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

59скачиваний за 30 дней3лайкавеса обновлены28 ноя 2023

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

mesolitica разработала эту инструкционную модель на архитектуре Mistral с 7,1 млрд параметров. Модель получена полным дообучением Mistral Instruct на датасете инструкций на малайском языке; для диалога используется исходный шаблон чата Mistral Instruct.

Модель предназначена для генерации ответов на инструкции и вопросы на малайском языке. Контекстное окно составляет 32 768 токенов, поэтому модель может обрабатывать длинные запросы и контекст. В карточке приведён пример ответа на вопрос о малайзийском пенсионном фонде KWSP.

Модель принимает текст и генерирует текст. Репозиторий содержит веса в формате Safetensors. Лицензия в предоставленных данных не указана. Качество и ограничения дообучения отдельно не описаны.

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

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

Ограничения

В предоставленной карточке не приведены оценки качества или подробные сведения об ограничениях дообучения. Лицензия не указана в доступных данных.

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

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

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

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

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

Открыть на Hugging Face

Full Parameter Finetuning 7B 32768 context length Mistral on Malaysian instructions dataset

README at https://github.com/mesolitica/malaya/tree/5.1/session/mistral#instructions-7b-16384-context-length

We use exact Mistral Instruct chat template.

WandB, https://wandb.ai/mesolitica/fpf-mistral-7b-hf-instructions-16k?workspace=user-husein-mesolitica

how-to

from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
import torch
import json

def parse_mistral_chat(messages, function_call = None):

    user_query = messages[-1]['content']

    users, assistants = [], []
    for q in messages[:-1]:
        if q['role'] == 'user':
            users.append(q['content'])
        elif q['role'] == 'assistant':
            assistants.append(q['content'])

    texts = ['<s>']
    
    if function_call:
        fs = []
        for f in function_call:
            f = json.dumps(f, indent=4)
            fs.append(f)
        fs = '\n\n'.join(fs)
        texts.append(f'\n[FUNCTIONCALL]\n{fs}\n')
        
    for u, a in zip(users, assistants):
        texts.append(f'[INST] {u.strip()} [/INST] {a.strip()}</s>')

    texts.append(f'[INST] {user_query.strip()} [/INST]')
    prompt = ''.join(texts).strip()
    return prompt

TORCH_DTYPE = 'bfloat16'
nf4_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type='nf4',
    bnb_4bit_use_double_quant=True,
    bnb_4bit_compute_dtype=getattr(torch, TORCH_DTYPE)
)

tokenizer = AutoTokenizer.from_pretrained('mesolitica/malaysian-mistral-7b-32k-instructions')
model = AutoModelForCausalLM.from_pretrained(
    'mesolitica/malaysian-mistral-7b-32k-instructions',
    use_flash_attention_2 = True,
    quantization_config = nf4_config
)

messages = [
    {'role': 'user', 'content': 'kwsp tu apa'}
]
prompt = parse_mistral_chat(messages)
inputs = tokenizer([prompt], return_tensors='pt', add_special_tokens=False).to('cuda')
generate_kwargs = dict(
    inputs,
    max_new_tokens=1024,
    top_p=0.95,
    top_k=50,
    temperature=0.9,
    do_sample=True,
    num_beams=1,
)
r = model.generate(**generate_kwargs)
tokenizer.decode(r[0])
<s> [INST] kwsp tu apa [/INST]KWSP bermaksud Kumpulan Wang Simpanan Pekerja. Ia adalah sebuah institusi simpanan persaraan yang ditubuhkan oleh Kementerian Kewangan Malaysia untuk tujuan mengumpul simpanan ahli untuk dibayar pada umur persaraan, penuh atau penuh persaraan penuh. KWSP ditubuhkan pada tahun 1951 dan mula beroperasi pada tahun 1952. KWSP adalah salah satu institusi simpanan persaraan terbesar di dunia, dengan pangkalan ahli sekitar 14 juta ahli.</s>
messages = [
    {'role': 'user', 'content': 'camne nak kill pid dalam linux'}
]
prompt = parse_mistral_chat(messages)
inputs = tokenizer([prompt], return_tensors='pt', add_special_tokens=False).to('cuda')
generate_kwargs = dict(
    inputs,
    max_new_tokens=1024,
    top_p=0.95,
    top_k=50,
    temperature=0.9,
    do_sample=True,
    num_beams=1,
)
r = model.generate(**generate_kwargs)
print(tokenizer.decode(r[0]))
<s> [INST] camne nak kill pid dalam linux [/INST]Untuk membunuh pid dalam Linux, ikuti langkah-langkah berikut:

1. Cari pid menggunakan perintah `ps aux | grep 'pid'`. Pilih pid yang anda ingin bunuh.

2. Gunakan perintah `kill` diikuti dengan nombor pid. Sebagai contoh, jika anda ingin membunuh pid dengan nombor 1234, gunakan perintah `kill -1234`.

3. Sahkan pembunuhan dengan menjalankan perintah `kill -id`. Jika perintah tidak mengembalikan sebarang ralat, maka pid telah dibunuh dengan berjaya.

4. Anda juga boleh menggunakan perintah `kill -s` untuk membunuh semua pid dengan nama atau atribut tertentu.</s>
f = {
    'name': 'parse_entities',
    'description': 'extract entities from the text',
    'parameters': {
        'type': 'object',
        'properties': {
            'drink': {
                'type': 'string',
                'description': 'drink name',
            },
            'event': {
                'type': 'string',
                'description': 'event name',
            },
            'person_name': {
                'type': 'string',
                'description': 'person name',
            }
        },
        'required': [
            'drink',
            'event',
            'person_name'
        ]
    }
}
messages = [
    {'role': 'user', 'content': 'nama saya husein bin zolkepli, saya sekarang berada di jomheboh 2023 sambil minum starbucks'}
]
prompt = parse_mistral_chat(messages, function_call = [f])
inputs = tokenizer([prompt], return_tensors='pt', add_special_tokens=False).to('cuda')
generate_kwargs = dict(
    inputs,
    max_new_tokens=128,
    top_p=0.95,
    top_k=50,
    temperature=0.9,
    do_sample=True,
    num_beams=1,
)
r = model.generate(**generate_kwargs)
print(tokenizer.decode(r[0]))
<s> 
[FUNCTIONCALL]
{
    "name": "parse_entities",
    "description": "extract entities from the text",
    "parameters": {
        "type": "object",
        "properties": {
            "drink": {
                "type": "string",
                "description": "drink name"
            },
            "event": {
                "type": "string",
                "description": "event name"
            },
            "person_name": {
                "type": "string",
                "description": "person name"
            }
        },
        "required": [
            "drink",
            "event",
            "person_name"
        ]
    }
}
[INST] nama saya husein bin zolkepli, saya sekarang berada di jomheboh 2023 sambil minum starbucks [/INST] <functioncall> {"name": "parse_entities", "arguments": '{
  "drink": "Starbucks",
  "event": "Jom Heboh 2023",
  "person_name": "Husein Bin Zolkepli"
}'}</s>

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей