|
|
--- |
|
|
library_name: transformers |
|
|
language: |
|
|
- ru |
|
|
tags: |
|
|
- CoT |
|
|
--- |
|
|
|
|
|
# Model Card |
|
|
|
|
|
CoT(Chain of Thoughts) модель на русском языке! |
|
|
|
|
|
### Model Description |
|
|
|
|
|
- **Developed by:** eridAI |
|
|
- **Model type:** GPT-reasoner |
|
|
- **Language(s) (NLP):** Russian |
|
|
|
|
|
|
|
|
- **Demo:** |
|
|
``` |
|
|
from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer |
|
|
import torch |
|
|
|
|
|
model_name = "eridai/eridaRE" |
|
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
|
model_name, |
|
|
device_map="auto", |
|
|
) |
|
|
|
|
|
|
|
|
input_instruct = input(">>> ") |
|
|
|
|
|
|
|
|
|
|
|
reasoning_prompt = """ |
|
|
Ниже приведена инструкция, описывающая задачу. Напишите рассуждение, которое поможет решить эту задачу. |
|
|
Инструкция: |
|
|
{} |
|
|
Рассуждение: |
|
|
""" |
|
|
|
|
|
|
|
|
answer_prompt = """ |
|
|
Ниже приведена инструкция, описывающая задачу, вместе с рассуждением. Напишите ответ, который соответствующим образом выполняет запрос. |
|
|
Инструкция: |
|
|
{} |
|
|
Рассуждение: |
|
|
{} |
|
|
Ответ: |
|
|
""" |
|
|
|
|
|
reasoning_inputs = tokenizer( |
|
|
[reasoning_prompt.format(input_instruct)], |
|
|
return_tensors="pt" |
|
|
).to("cuda") |
|
|
|
|
|
|
|
|
text_streamer_main = TextStreamer(tokenizer, skip_prompt=True) |
|
|
reasoning_output = model.generate( |
|
|
**reasoning_inputs, |
|
|
streamer=text_streamer_main, |
|
|
max_new_tokens=1000, |
|
|
pad_token_id=tokenizer.eos_token_id |
|
|
) |
|
|
|
|
|
reasoning = tokenizer.decode(reasoning_output[0], skip_special_tokens=True) |
|
|
answer_inputs = tokenizer( |
|
|
[answer_prompt.format( |
|
|
input_instruct, |
|
|
reasoning |
|
|
)], |
|
|
return_tensors="pt" |
|
|
).to("cuda") |
|
|
|
|
|
_ = model.generate( |
|
|
**answer_inputs, |
|
|
streamer=text_streamer_main, |
|
|
max_new_tokens=600, |
|
|
pad_token_id=tokenizer.eos_token_id |
|
|
) |
|
|
``` |
|
|
|
|
|
### Output |
|
|
``` |
|
|
>>> У Брайана есть несколько марок номиналом 3 цента и несколько марок номиналом 4 цента. Какое наименьшее количество марок он может объединить, чтобы их стоимость составляла 33 цента? |
|
|
Сначала я определю, сколько марок по 3 и 4 цента я могу использовать, чтобы их общая стоимость составляла 33 цента. Я подумаю о том, как разбить 33 на суммы из 3 и 4. Возможно, я начну с наименьшего количества марок, например, с 0 марок по 4 цента и посмотреть, сколько марок по 3 цента мне понадобится. Если я использую 11 марок по 3 цента, это даст 33 цента, но тогда я использую 11 марок, что, возможно, не оптимально. Затем я попробую использовать 1 марку по 4 цента и посчитаю, сколько марок по 3 цента мне нужно: (33 - 4) = 29, и 29 делится на 3? 29/3 ≈ 9.666, что не целое число, поэтому это не подходит. Next, я попробую 2 марки по 4 цента: (33 - 8) = 25, 25/3 ≈ 8.333, также не целое. Потом 3 марки: (33 - 12) = 21, 21/3 = 7. Это целое! Значит, я могу использовать 3 марки по 4 цента и 7 марок по 3 цента, что даст 3 + 7 = 10 марок. Мне нужно проверить, есть ли способ с меньшим количеством марок. Допустим, я использую 4 марки по 4 цента: (33 - 16) = 17, 17/3 ≈ 5.666, не целое. 5 марок: (33 - 20) = 13, 13/3 ≈ 4.333, не целое. 6 марок: (33 - 24) = 9, 9/3 = 3. Значит, я могу использовать 6 марок по 4 цента и 3 марок по 3 цента, что даст 6 + 3 = 9 марок. Это лучше, чем 10. Проверю, есть ли еще лучший способ. 7 марок по 4 цента: (33 - 28) = 5, 5/3 ≈ 1.666, не целое. 8 марок: (33 - 32) = 1, 1/3 ≈ 0.333, не целое. 9 марок: (33 - 36) = -3, что не подходит. Значит, наименьшее количество марок равно 9. |
|
|
</think> |
|
|
|
|
|
Чтобы решить задачу,我们必须 найти наименьшее количество марок с nominalem 3 и 4 центов,能够让 их общая стоимость равняться 33 центам. |
|
|
|
|
|
**Шаг 1:** Обозначим количество марок по 3 цента за \( x \), а по 4 цента за \( y \). Тогда общая стоимость марок может быть представлена уравнением: |
|
|
\[ 3x + 4y = 33 \] |
|
|
|
|
|
**Шаг 2:** Нам нужно найти наименьшее значение \( x + y \), при котором \( x \) и \( y \) — целые неотрицательные числа. |
|
|
|
|
|
**Шаг 3:** Попробуем разные значения \( y \) и постараемся найти соответствующее \( x \), чтобы общая стоимость составляла 33 центов: |
|
|
- Если \( y = 0 \), тогда \( 3x = 33 \) → \( x = 11 \). Всего марок: \( 11 + 0 = 11 \). |
|
|
- Если \( y = 1 \), тогда \( 3x = 33 - 4 = 29 \) → \( x \) не целое. |
|
|
- Если \( y = 2 \), тогда \( 3x = 33 - 8 = 25 \) → \( x \) не целое. |
|
|
- Если \( y = 3 \), тогда \( 3 |
|
|
\[ |
|
|
\boxed{9} |
|
|
\]<|end▁of▁sentence|> |
|
|
``` |