/ Модель

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

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

llama-7b-finnish-instruct-v0.2

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

Инструктивно дообученная модель Llama на 6,7 млрд параметров для диалога и генерации ответов преимущественно на финском языке.

25скачиваний за 30 дней3лайкавеса обновлены13 фев 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Finnish-NLP/llama-7b-finnish-instruct-v0.2 — инструктивно дообученная модель семейства Llama, выпущенная командой Finnish-NLP. Это плотная авторегрессионная языковая модель на 6,7 млрд параметров для генерации ответов и выполнения инструкций, прежде всего на финском языке. Контекстное окно составляет 2048 токенов.

Версия обучалась три эпохи на 21 946 примерах из LIMA, Dolly, OASST и других наборов; часть англоязычных данных переводилась на финский. Модель подходит для диалога, ответов на вопросы и решения учебных задач на финском. Доступна в формате Safetensors для Transformers. Лицензия — Apache-2.0.

Авторы предупреждают, что интернет-данные обучения могут приводить к смещениям и токсичным ответам, несмотря на фильтрацию исходной модели. Результаты FIN-bench приведены с оговоркой: при запуске оценки возникали проблемы, поэтому показатели следует трактовать осторожно.

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

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

Ограничения

Модель может выдавать смещённые или токсичные ответы из-за состава обучающих данных. Результаты FIN-bench требуют осторожной интерпретации, поскольку в скрипте оценки возникали проблемы.

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

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

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

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

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

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

Открыть на Hugging Face

Llama-7b-instruct-v0.2 for Finnish

  • This is 0.2 version release of our Instruct finetuned model from https://huggingface.co/Finnish-NLP/llama-7b-finnish
  • Model was trained for 3 epochs using 21946 samples and for this release we chose checkpoint at 8000 steps.
  • Future DPO/SFT+DPO variants are in the pipeline. Also we are investigating and testing different merging techiques

For finetuning we try to select well known and widely used dataset and then filter/translate those with multiple methods: For this version we used a mix 21946 samples in total from the the following datasets:

How to use

Here is an example of using this model with Unsloth with some generation arguments you can modify:

import torch
from unsloth import FastLlamaModel

max_seq_length = 2048
dtype = None # None for auto detection. Float16 for Tesla T4, V100, Bfloat16 for Ampere+
load_in_4bit = True # Use 4bit quantization to reduce memory usage. Can be False.


use_unsloth = True
# use_transformers = True

# LOADING MODEL USIINIG TRANSFORMERS assumes at least 16GB of memory. Tested with this configuration
# If you have less memory use load_in_4bit or load_in_8_bit as needed
if use_transformers:
  major_version, minor_version = torch.cuda.get_device_capability()
  model = AutoModelForCausalLM.from_pretrained("Finnish-NLP/llama-7b-finnish-instruct-v0.2", device_map='cuda:0', torch_dtype = torch.bfloat16 if major_version >=8 else torch.float16)
  tokenizer = AutoTokenizer.from_pretrained("Finnish-NLP/llama-7b-finnish-instruct-v0.2")

# USING UNSLOTH, tested with load_in_4bit
if use_unsloth:
  model, tokenizer = FastLlamaModel.from_pretrained(
      model_name = "Finnish-NLP/llama-7b-finnish-instruct-v0.2"
      max_seq_length = max_seq_length,
      dtype = dtype,
      load_in_4bit = load_in_4bit
  )

alpaca_prompt = """<|alku|> Olet tekoälyavustaja. Seuraavaksi saat kysymyksen tai tehtävän. Kirjoita vastaus parhaasi mukaan siten että se täyttää kysymyksen tai tehtävän vaatimukset.
<|ihminen|> Kysymys/Tehtävä:
{}
<|avustaja|> Vastauksesi:
"""

sample_questions = ["Ketkä ovat Aku Ankan luona asuvat kolme ankanpoikaa?",\
"Mikä on Suomen korkein tunturi?",\
"Suomi soti Neuvostoliittoa vastaan talvisodan 1939-1940. Kuinka monta päivää sota kesti?",\
"Luettele viisi yleistä Suomessa yleisesti käytettyä pojan nimeä. Nimet:",\
"Luettele lyhyt, maksimissaan 50 sanan mittainen runo Suomesta. Runo:",\
]

from transformers import GenerationConfig

generation_config = GenerationConfig(
    pad_token_id=tokenizer.eos_token_id,
    eos_token_id=tokenizer.convert_tokens_to_ids("<|loppu|>"),
)


for sample_question in sample_questions:

  model.eval()
  
  inputs = tokenizer(
[
    alpaca_prompt.format(
        sample_question, # instruction
    )
]*1, return_tensors = "pt").to("cuda")
  
  with torch.no_grad():
      generated_ids = model.generate(
      input_ids=inputs["input_ids"], 
      attention_mask=inputs["attention_mask"], 
      generation_config=generation_config, **{
        "temperature": 0.1,
        "penalty_alpha": 0.6,
        "top_k": 3,
        "do_sample": True,
        "repetition_penalty": 1.28,
        "min_length": 10,
        "max_new_tokens": 200
      })
  
  generated_text = tokenizer.batch_decode(generated_ids, skip_special_tokens=True, clean_up_tokenization_spaces=True)[0]
  print(len(generated_ids[0]))
  print("KYSYMYS:")
  print(generated_text.split('<|avustaja|>')[0])
  print("VASTAUS:")
  print(generated_text.split('<|avustaja|> Vastauksesi:')[1])
  print('##################################')

'''
-->
<s><|alku|> Olet tekoälyavustaja. Seuraavaksi saat kysymyksen tai tehtävän. Kirjoita vastaus parhaasi mukaan siten että se täyttää kysymyksen tai tehtävän vaatimukset.
<|ihminen|> Kysymys/Tehtävä:
 Aku Ankan luona asuu kolme ankanpoikaa. Mitkä ovat heidän nimet?
VASTAUS:
 Ankka Akun kanssa asuvat pojat ovat nimeltään Tupu, Hupu ja Lupu <|loppu|>
##################################

KYSYMYS:
<s><|alku|> Olet tekoälyavustaja. Seuraavaksi saat kysymyksen tai tehtävän. Kirjoita vastaus parhaasi mukaan siten että se täyttää kysymyksen tai tehtävän vaatimukset.
<|ihminen|> Kysymys/Tehtävä:
 Mikä on Suomen korkein tunturi?
VASTAUS:
 Suomen korkein tunturihuippu on Haltitunturi (1 324 metriä). <|loppu|>
##################################

KYSYMYS:
<s><|alku|> Olet tekoälyavustaja. Seuraavaksi saat kysymyksen tai tehtävän. Kirjoita vastaus parhaasi mukaan siten että se täyttää kysymyksen tai tehtävän vaatimukset.
<|ihminen|> Kysymys/Tehtävä:
 Suomi soti Neuvostoliittoa vastaan talvisodan 1939-1940. Kuinka monta päivää sota kesti?
VASTAUS:
 Talvisodan aikana Neuvostoliitto hyökkäsi Suomeen 30. marraskuuta ja 13. maaliskuuta välisenä aikana. Tämä tarkoittaa, että talvisota kesti 105 päivää. <|loppu|>
##################################

KYSYMYS:
<s><|alku|> Olet tekoälyavustaja. Seuraavaksi saat kysymyksen tai tehtävän. Kirjoita vastaus parhaasi mukaan siten että se täyttää kysymyksen tai tehtävän vaatimukset.
<|ihminen|> Kysymys/Tehtävä:
 Luettele viisi yleistä Suomessa yleisesti käytettyä pojan nimeä. Nimet:
VASTAUS:
 Yleisiä suomalaisia poikien nimiä ovat Eino, Onni, Olavi, Väinö ja Ilmari. <|loppu|>
##################################

KYSYMYS:
<s><|alku|> Olet tekoälyavustaja. Seuraavaksi saat kysymyksen tai tehtävän. Kirjoita vastaus parhaasi mukaan siten että se täyttää kysymyksen tai tehtävän vaatimukset.
<|ihminen|> Kysymys/Tehtävä:
 Luettele lyhyt, maksimissaan 50 sanan mittainen runo Suomesta. Runo:
VASTAUS:
 Olipa kerran kaunis maa,
 jossa ihmiset elivät sopusoinnussa.
 Se oli täynnä metsiä ja järviä,
 ja siellä asui onnellisia ja ystävällisiä ihmisiä. <|loppu|>

Limitations and bias

The training data used for this model contains a lot of content from the internet, which is far from neutral. Therefore, the model can have biased predictions. This bias will also affect all fine-tuned versions of this model. To reduce toxic content, the pretrained version of thiis model was trained with dataset filtered with a toxicity classifier but it cannot truly eliminate all toxic text.

Finetuning

Training was conducted on RTX 4080 using Unsloth framework https://github.com/unslothai/unsloth
Training script is available in this repo.

Evaluation results

This model was evaluated using FIN-bench by TurkuNLP with zero-shot setting, but
the evaluation script had some problems running succesfully, so the results reported below should perhaps be viewed with some caution.

llama-7b-finnish-instruct-v0.2:

TaskVersionMetricValueStderr
bigbench_analogies0multiple_choice_grade0.5385±0.0439
bigbench_arithmetic_1_digit_addition0multiple_choice_grade0.3400±0.0476
bigbench_arithmetic_1_digit_division0multiple_choice_grade0.4783±0.1065
bigbench_arithmetic_1_digit_multiplication0multiple_choice_grade0.5200±0.0502
bigbench_arithmetic_1_digit_subtraction0multiple_choice_grade0.3400±0.0476
bigbench_arithmetic_2_digit_addition0multiple_choice_grade0.3200±0.0469
bigbench_arithmetic_2_digit_division0multiple_choice_grade0.3400±0.0476
bigbench_arithmetic_2_digit_multiplication0multiple_choice_grade0.2200±0.0416
bigbench_arithmetic_2_digit_subtraction0multiple_choice_grade0.2800±0.0451
bigbench_arithmetic_3_digit_addition0multiple_choice_grade0.3000±0.0461
bigbench_arithmetic_3_digit_division0multiple_choice_grade0.2500±0.0435
bigbench_arithmetic_3_digit_multiplication0multiple_choice_grade0.2200±0.0416
bigbench_arithmetic_3_digit_subtraction0multiple_choice_grade0.4000±0.0492
bigbench_arithmetic_4_digit_addition0multiple_choice_grade0.3500±0.0479
bigbench_arithmetic_4_digit_division0multiple_choice_grade0.2600±0.0441
bigbench_arithmetic_4_digit_multiplication0multiple_choice_grade0.2100±0.0409
bigbench_arithmetic_4_digit_subtraction0multiple_choice_grade0.4400±0.0499
bigbench_arithmetic_5_digit_addition0multiple_choice_grade0.4500±0.0500
bigbench_arithmetic_5_digit_division0multiple_choice_grade0.1800±0.0386
bigbench_arithmetic_5_digit_multiplication0multiple_choice_grade0.2000±0.0402
bigbench_arithmetic_5_digit_subtraction0multiple_choice_grade0.5000±0.0503
bigbench_cause_and_effect_one_sentence0multiple_choice_grade0.5294±0.0706
bigbench_cause_and_effect_one_sentence_no_prompt0multiple_choice_grade0.8627±0.0487
bigbench_cause_and_effect_two_sentences0multiple_choice_grade0.4314±0.0700
bigbench_emotions0multiple_choice_grade0.4750±0.0396
bigbench_empirical_judgments0multiple_choice_grade0.4141±0.0498
bigbench_general_knowledge0multiple_choice_grade0.4429±0.0598
bigbench_hhh_alignment_harmless0multiple_choice_grade0.3793±0.0643
bigbench_hhh_alignment_helpful0multiple_choice_grade0.3220±0.0614
bigbench_hhh_alignment_honest0multiple_choice_grade0.3898±0.0640
bigbench_hhh_alignment_other0multiple_choice_grade0.5581±0.0766
bigbench_intent_recognition0multiple_choice_grade0.2717±0.0169
bigbench_misconceptions0multiple_choice_grade0.5373±0.0432
bigbench_paraphrase0multiple_choice_grade0.5000±0.0354
bigbench_sentence_ambiguity0multiple_choice_grade0.5333±0.0649
bigbench_similarities_abstraction0multiple_choice_grade0.5921±0.0567

Team Members

Feel free to contact us for more details 🤗

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей