IlyaGusev's picture
Update README.md
fa1b8a1
metadata
datasets:
  - IlyaGusev/ru_turbo_alpaca
  - yahma/alpaca-cleaned
language:
  - ru
  - en
pipeline_tag: text2text-generation
inference: false

LLaMA 13B trained on the ru_turbo_alpaca, Russian instructions dataset

Important: You should probably use Saiga. It has regular updates and should be better in every task.

Based on LLaMA 13B.

  • This is an adapter-only version.
  • llama.cpp version: link.

Colab: link

Training code: link

Prompt template for v2:

### Задание: {instruction}
### Вход: {input}
### Ответ: 

or

### Задание: {instruction}
### Ответ: 

Versions:

  • v2, April 8, 2023: A model trained with outputs capped at 800 tokens instead of 400. Also, now only a single prompt template is supported.
    • revision="3dff86a20f80ba203fec6e986a3422b83822ca70"
    • Final loss: 0.995
    • Time: 38 hours, 35 minutes
    • Hardware: 1x RTX 3090Ti
    • Wandb link: link
  • v1, April 2, 2023: Original model trained with 400 max tokens in outputs. Both Russian and English are supported, trained on the ru_turbo_alpaca and alpaca-cleaned.
    • revision="97209c36c9261eb9527371a341c70f90c39ee158"
    • Final loss: 1.074
    • Time: 53 hours, 53 minutes
    • Hardware: 1x RTX 3090
import torch
from peft import PeftModel, PeftConfig
from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig

MODEL_NAME = "IlyaGusev/llama_13b_ru_turbo_alpaca_lora"

config = PeftConfig.from_pretrained(MODEL_NAME)
model = AutoModelForCausalLM.from_pretrained(
    config.base_model_name_or_path,
    load_in_8bit=True,
    torch_dtype=torch.float16,
    device_map="auto"
)
model = PeftModel.from_pretrained(model, MODEL_NAME, torch_dtype=torch.float16)
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model.eval()

generation_config = GenerationConfig.from_pretrained(MODEL_NAME)
data = tokenizer(["### Задание: Почему трава зеленая?\n### Ответ: "], return_tensors="pt")
data = {k: v.to(model.device) for k, v in data.items() if k in ("input_ids", "attention_mask")}
output_ids = model.generate(**data, generation_config=generation_config)[0]
print(tokenizer.decode(output_ids, skip_special_tokens=True))

Examples:

### Задание: Почему трава зеленая? 
### Ответ: Трава зеленая из-за содержания в ней хлорофилла, который является пигментом, ответственным за зеленый цвет растений.
Хлорофилл содержится в хлоропластах, органе, который находится внутри клеток растений и отвечает за фотосинтез -
процесс, который позволяет растениям использовать солнечную энергию для создания сахара из воды и углекислого газа.
Хлорофиллы способны поглощать световой спектр с длиной волны от 400 до 700 нанометров, что приводит к зеленому цвету растений.
### Задание: Сочини длинный рассказ, обязательно упоминая следующие объекты.
### Вход: Таня, мяч
### Ответ: Однажды летом Таня решила пойти на прогулку в парк. Она взяла с собой свой любимый мяч и отправилась на прогулку.
Парк был очень красивым и зеленым. Таня гуляла по его аллее, наслаждаясь свежим воздухом и красивыми цветами.
Вскоре она заметила, что рядом с ней стоит маленький мальчик. Он был немного младше Тани, но был очень добрым и дружелюбным.
"Здравствуй, девочка", - сказал мальчик, улыбаясь.
Таня улыбнулась ему в ответ и предложила сыграть в мяч. Мальчик согласился, и они начали играть вместе.
Они играли долгое время, и Таня забыла о времени и о том, что она должна была вернуться домой.
Когда они закончили играть, мальчик попросил Таню поиграть с ним еще раз. Таня согласилась, и они продолжили играть.
Когда Таня вернулась домой, она была очень уставшая, но она была очень счастлива, что провела такую замечательную прогулку и познакомилась с таким замечательным мальчиком.
С тех пор Таня и мальчик стали лучшими друзьями. Они играли вместе каждый день, и Таня всегда чувствовала себя счастливой, когда играла с ним.
Таким образом, Таня обнаружила, что игра в мяч может быть не только увлекательным, но и способствовать созданию новых дружеских отношений.