|
--- |
|
license: mit |
|
datasets: |
|
- Egor-AI/Russian_thinking_dataset |
|
language: |
|
- ru |
|
- en |
|
base_model: |
|
- t-tech/T-lite-it-1.0 |
|
pipeline_tag: question-answering |
|
library_name: peft |
|
tags: |
|
- chat |
|
- o1 |
|
- cot |
|
- thinking |
|
- reflection |
|
--- |
|
|
|
# Russian o1 / T-lite-it-1.0 LoRA |
|
|
|
Based on https://huggingface.co/evilfreelancer/o1_t-lite-it-1.0_lora |
|
|
|
LoRA-адаптер для модели [T-lite-it-1.0](https://huggingface.co/t-tech/T-lite-it-1.0) обученный на |
|
датасете [Egor-AI/Russian_thinking_dataset](https://huggingface.co/datasets/Egor-AI/Russian_thinking_dataset) (машинный |
|
перевод на русский язык |
|
датасета [BintangFortuna/OpenO1-SFT-EN-SY](https://huggingface.co/datasets/BintangFortuna/OpenO1-SFT-EN-SY)). |
|
|
|
Обученная модель способна имитировать логические размышлению на русском языке по аналогии с тем, как |
|
это делает `o1` от `OpenAI`. |
|
|
|
Необходимо использовать следующего вида системный промт: |
|
|
|
``` |
|
Вы — ИИ-помощник. Отформатируйте свои ответы следующим образом: <Thought> Ваши мысли (понимание, рассуждения) </Thought> <output> Ваш ответ </output> |
|
``` |
|
|
|
Обучение производилось при помощи утилиты [impruver](https://github.com/EvilFreelancer/impruver) используя конфигурацию |
|
[T-lite-it/7B_lora_thinking](https://github.com/EvilFreelancer/impruver/blob/main/recipes/configs/T-lite-it/7B_lora_thinking.yaml) с донастройкой: |
|
- load_in_4bit: false |
|
- без max_tokens_count |
|
- optim: adamw_8bit |
|
- gradient_accumulation_steps: 1 |
|
|
|
На всё про всё ушло примерно 17.6 часов на 1xH100 80GB, при этом понадобилось 67Гб видеопамяти. |
|
|
|
Результатирующий eval_loss: 0.5200754404067993 |
|
|
|
W&B run: https://wandb.ai/b37h3z3n/trains/runs/6vwvuu46?nw=nwuserb37h3z3n |
|
|
|
|
|
```yaml |
|
output_dir: ./models/T-lite-it_7B_lora_thinking |
|
train_path: ./train.T-lite-it_7B_lora_thinking.jsonl |
|
val_path: ./val.T-lite-it_7B_lora_thinking.jsonl |
|
|
|
datasets: |
|
- name: Egor-AI/Russian_thinking_dataset |
|
converter: impruver.instruction_to_messages |
|
add_global_bos: false |
|
add_global_eos: false |
|
mapping: |
|
system: system |
|
instruction: prompt |
|
output: response |
|
|
|
model: |
|
class: transformers.AutoModelForCausalLM |
|
name: t-tech/T-lite-it-1.0 |
|
load_in_4bit: false |
|
load_in_8bit: false |
|
dtype: bf16 |
|
|
|
lora: |
|
r: 16 |
|
lora_alpha: 16 |
|
lora_dropout: 0 |
|
bias: none |
|
target_modules: [ q_proj, k_proj, v_proj, o_proj, gate_proj, down_proj, up_proj ] |
|
task_type: CAUSAL_LM |
|
|
|
tokenizer: |
|
class: transformers.AutoTokenizer |
|
name: t-tech/T-lite-it-1.0 |
|
# max_tokens_count: 1500 |
|
|
|
trainer: |
|
eval_strategy: steps |
|
save_strategy: steps |
|
eval_steps: 100 |
|
save_steps: 100 |
|
per_device_train_batch_size: 1 |
|
per_device_eval_batch_size: 1 |
|
gradient_accumulation_steps: 1 |
|
logging_steps: 10 |
|
learning_rate: 0.0004 |
|
num_train_epochs: 3 |
|
lr_scheduler_type: cosine |
|
warmup_steps: 16 |
|
optim: adamw_8bit |
|
metric_for_best_model: eval_loss |
|
load_best_model_at_end: true |
|
save_total_limit: 2 |
|
seed: 42 |
|
remove_unused_columns: false |
|
max_grad_norm: 1.0 |
|
weight_decay: 0.08 |
|
torch_compile: false |
|
``` |