IlyaGusev's picture
Update README.md
fa1b8a1
---
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](https://huggingface.co/IlyaGusev/saiga_13b_lora). It has regular updates and should be better in every task.
Based on [LLaMA 13B](https://huggingface.co/decapoda-research/llama-13b-hf).
* This is an adapter-only version.
* llama.cpp version: [link](https://huggingface.co/IlyaGusev/llama_13b_ru_turbo_alpaca_lora_llamacpp).
Colab: [link](https://colab.research.google.com/drive/18GG-zwxyGAHoVXghlOQONkxb_GpR7USj)
Training code: [link](https://github.com/IlyaGusev/rulm/tree/master/self_instruct)
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](https://wandb.ai/ilyagusev/rulm_self_instruct/runs/wy66bwim/overview?workspace=user-ilyagusev)
- 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
```python
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 нанометров, что приводит к зеленому цвету растений.
```
```
### Задание: Сочини длинный рассказ, обязательно упоминая следующие объекты.
### Вход: Таня, мяч
### Ответ: Однажды летом Таня решила пойти на прогулку в парк. Она взяла с собой свой любимый мяч и отправилась на прогулку.
Парк был очень красивым и зеленым. Таня гуляла по его аллее, наслаждаясь свежим воздухом и красивыми цветами.
Вскоре она заметила, что рядом с ней стоит маленький мальчик. Он был немного младше Тани, но был очень добрым и дружелюбным.
"Здравствуй, девочка", - сказал мальчик, улыбаясь.
Таня улыбнулась ему в ответ и предложила сыграть в мяч. Мальчик согласился, и они начали играть вместе.
Они играли долгое время, и Таня забыла о времени и о том, что она должна была вернуться домой.
Когда они закончили играть, мальчик попросил Таню поиграть с ним еще раз. Таня согласилась, и они продолжили играть.
Когда Таня вернулась домой, она была очень уставшая, но она была очень счастлива, что провела такую замечательную прогулку и познакомилась с таким замечательным мальчиком.
С тех пор Таня и мальчик стали лучшими друзьями. Они играли вместе каждый день, и Таня всегда чувствовала себя счастливой, когда играла с ним.
Таким образом, Таня обнаружила, что игра в мяч может быть не только увлекательным, но и способствовать созданию новых дружеских отношений.
```