--- 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 нанометров, что приводит к зеленому цвету растений. ``` ``` ### Задание: Сочини длинный рассказ, обязательно упоминая следующие объекты. ### Вход: Таня, мяч ### Ответ: Однажды летом Таня решила пойти на прогулку в парк. Она взяла с собой свой любимый мяч и отправилась на прогулку. Парк был очень красивым и зеленым. Таня гуляла по его аллее, наслаждаясь свежим воздухом и красивыми цветами. Вскоре она заметила, что рядом с ней стоит маленький мальчик. Он был немного младше Тани, но был очень добрым и дружелюбным. "Здравствуй, девочка", - сказал мальчик, улыбаясь. Таня улыбнулась ему в ответ и предложила сыграть в мяч. Мальчик согласился, и они начали играть вместе. Они играли долгое время, и Таня забыла о времени и о том, что она должна была вернуться домой. Когда они закончили играть, мальчик попросил Таню поиграть с ним еще раз. Таня согласилась, и они продолжили играть. Когда Таня вернулась домой, она была очень уставшая, но она была очень счастлива, что провела такую замечательную прогулку и познакомилась с таким замечательным мальчиком. С тех пор Таня и мальчик стали лучшими друзьями. Они играли вместе каждый день, и Таня всегда чувствовала себя счастливой, когда играла с ним. Таким образом, Таня обнаружила, что игра в мяч может быть не только увлекательным, но и способствовать созданию новых дружеских отношений. ```