T-lite-instruct-0.1 / README.md
Anatoly Potapov
Cite Vikhrmodels
a7f8ed0
metadata
language:
  - ru

T-lite-instruct-0.1

🚨 T-lite is designed for further fine-tuning and is not intended as a ready-to-use conversational assistant. Users are advised to exercise caution and are responsible for any additional training and oversight required to ensure the model's responses meet acceptable ethical and safety standards. The responsibility for incorporating this model into industrial or commercial solutions lies entirely with those who choose to deploy it.

Description

T-lite-instruct-0.1 is an instruct version of the T-lite-0.1 model.

T-lite-instruct-0.1 was trained in bf16.

📚 Dataset

Contexts

For the instruction dataset, the contexts are obtained from:

  • Open Source English-language datasets (such as UltraFeedback, HelpSteer, SHP, and so on)
  • Translations of English-language datasets through machine translation
  • Synthetic grounded QA contexts, generated from pre-training datasets

The translated contexts are filtered using classifiers.

SFT

The responses to the contexts are generated by a strong model and the training is exclusively carried out on these responses. This avoids training the model on poor-quality translations.

Reward Modeling

RM is trained on such pairs:

  • Strong Model > Our Model
  • Stronger Model > Weaker Model
  • Chosen Translated Response > Rejected Translated Response
  • Pairs from original English datasets

The translated preference data are preliminarily filtered by the RM ensemble.

Preference tuning

Two stages were used in preference tuning:

  • Stage 1: SPiN on the responses of the teacher model (Strong Model > Our Model)
  • Stage 2: SLiC-HF using our RM

📊 Benchmarks

Here we present the results of T-lite-instruct-0.1 on automatic benchmarks.

🏆 MT-Bench

This benchmark was carefully translated into Russian and measured with LLM Judge codebase, using gpt-4-1106-preview as a judge.

MT-Bench Total Turn_1 Turn_2 coding humanities math reasoning roleplay stem writing
T-lite-instruct-0.1 6.458 6.833 6.078 4.136 8.45 4.25 4.5 7.667 7.7 7.706
gpt3.5-turbo-0125 6.373 6.423 6.320 6.519 7.474 4.75 4.15 6.333 6.7 7.588
suzume-llama-3-8B-multilingual-orpo-borda-half 6.051 6.577 5.526 4.318 8.0 4.0 3.6 7.056 6.7 7.889
Qwen2-7b-Instruct 6.026 6.449 5.603 5.0 6.95 5.8 4.15 7.167 5.85 7.278
Llama-3-8b-Instruct 5.948 6.662 5.224 4.727 7.8 3.9 2.8 7.333 6.053 7.0
suzume-llama-3-8B-multilingual 5.808 6.167 5.449 5.409 6.4 5.05 3.8 6.556 5.0 7.056
saiga_llama3_8b 5.471 5.896 5.039 3.0 7.4 3.55 3.5 6.444 5.15 7.812
Mistral-7B-Instruct-v0.3 5.135 5.679 4.584 4.045 6.35 3.15 3.2 5.765 5.2 7.333

🏟️ Arena

We used Russian version of Arena benchmark from Vikhrmodels and Arena Hard Auto codebase for evaluation. As baseline model we chose gpt3.5-turbo-0125 and the judge was gpt-4-1106-preview.

Arena General Score 95% CI Average Tokens
T-lite-instruct-0.1 57.26 -2.9/2 870
gpt3.5-turbo-0125 50 0/0 254
suzume-llama-3-8B-multilingual-orpo-borda-half 47.17 -2.6/2.4 735
Llama-3-8b-Instruct 42.16 -2.1/2.1 455
saiga_llama3_8b 39.88 -2.3/2.5 616
suzume-llama-3-8B-multilingual 38.25 -1.7/1.7 625
Qwen2-7b-Instruct 33.42 -1.9/2.2 365
Mistral-7B-Instruct-v0.3 28.11 -2/2.2 570

👨‍💻 Examples of usage

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
torch.manual_seed(42)

model_name = "t-bank-ai/T-lite-instruct-0.1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto")

messages = [
    {"role": "user", "content": "Напиши рецепт классной пиццы!"},
]

input_ids = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    return_tensors="pt"
).to(model.device)

terminators = [
    tokenizer.eos_token_id,
    tokenizer.convert_tokens_to_ids("<|eot_id|>")
]

outputs = model.generate(
    input_ids,
    max_new_tokens=256,
    eos_token_id=terminators,
)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Output:

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

### Ингредиенты для теста:
- 500 г муки (лучше использовать смесь пшеничной и цельнозерновой)
- 1 ч. л. сухих дрожжей (или 7 г свежих)
- 1 ч. л. сахара
- 1 ч. л. соли
- 1 ст. л. оливкового масла
- 300 мл тёплой воды
- 1 яйцо (для смазки)

### Ингредиенты для начинки (примерный набор):
- 200 г томатного соуса (можно сделать самому из свежих помидоров или использовать готовый)
- 200 г моцареллы, нарезанной ломтиками
- 100 г сыра пармезан (тертый)
- 100 г ветчины или колбасы
- 100 г грибов (шампин