Views
No views yet
1from transformers import AutoTokenizer, AutoModelForCausalLM
2
3repo = 'attn-signs/Watari-32b-v2'
4
5model = AutoModelForCausalLM.from_pretrained(repo)
6tokenizer = AutoTokenizer.from_pretrained(repo)
7
8model.to('cuda')
9
10prompt = 'Расскажи мне про теорию категорий. Как мне построить коммутативную диаграмму? Знаешь ли ты что-то про театры ходжа-аракелова?'
11# Model does not know about Θ±ell-Hodge theaters, it must say that it does not know.
12# Модель не знает про театры ходжа, поэтому говорит, что не знает, чтобы не путать пользователя
13# Hodge Theaters are taken from ABC conjecture proof from source: https://www.kurims.kyoto-u.ac.jp/~gokun/DOCUMENTS/abc2018Jul13.pdf
14# Театры Ходжа-Аракелова были взяты из доказательства ABC гипотезы в источнике: https://www.kurims.kyoto-u.ac.jp/~gokun/DOCUMENTS/abc2018Jul13.pdfм
15messages = [
16 {"role": "system", "content": "Ты Ватари, ассистент и помощник в решении различных задач. Отвечай на вопросы пользователя, рассуждая."},
17 {"role": "user", "content": prompt}
18]
19text = tokenizer.apply_chat_template(
20 messages,
21 tokenize=False,
22 add_generation_prompt=True
23)
24model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
25
26generated_ids = model.generate(
27 **model_inputs,
28 max_new_tokens=32768
29)
30generated_ids = [
31 output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
32]
33
34response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
35
36print(response)Теория категорий — это раздел математики, который изучает абстрактные структуры и их взаимосвязи. Она предоставляет общий язык для описания математических объектов и преобразований между ними. Основные понятия теории категорий включают категории, объекты, морфизмы (стрелки), композиции морфизмов и коммутативные диаграммы.
**Коммутативная диаграмма** — это визуальное представление того, как различные морфизмы взаимодействуют друг с другом. Чтобы построить её:
1. **Определите объекты**: Выберите математические объекты (например, множества, группы, векторные пространства), которые будут вершинами диаграммы.
2. **Укажите морфизмы**: Нарисуйте стрелки между объектами, обозначающие функции или отображения между ними.
3. **Убедитесь в коммутативности**: Убедитесь, что для любой пары путей из одной вершины в другую, композиция морфизмов вдоль этих путей дает одинаковое преобразование. Это означает, что независимо от выбранного пути результат будет одинаковым.
Пример: Если у вас есть объекты A, B, C и морфизмы f: A → B, g: B → C, h: A → C, то диаграмма коммутирует, если g ∘ f = h.
Для построения диаграмм часто используют программы вроде TikZ в LaTeX, где можно точно указать расположение объектов и стрелки между ними.
Что касается **театров Ходжа-Аракелова**, я не располагаю информацией о таком понятии. Возможно, имеется в виду теория Ходжа или Аракеловская геометрия, но "театры" не являются стандартным термином в математике. Если вы имеете в виду конкретную концепцию или предмет исследования, уточните, пожалуйста, чтобы я мог предоставить точный ответ.# prompt is:
# Пожалуйста, помоги мне написать код на Python и функцию, которая принимает в качестве входных данных три числа: текущее_значение, ставку и время. Функция должна рассчитать аннуитетный платеж на основе заданной текущей стоимости, процентной ставки и времени и вернуть результат.
# model answer is:
Для расчета аннуитетного платежа можно использовать формулу:
\[
A = P \times \frac{r(1 + r)^n}{(1 + r)^n - 1}
\]
где:
- \( A \) — аннуитетный платеж,
- \( P \) — текущая стоимость (present value),
- \( r \) — периодическая процентная ставка (ставка за период),
- \( n \) — количество периодов.
Периодическая процентная ставка рассчитывается как годовая ставка, деленная на количество периодов в году. Если периоды указаны в годах, то годовая ставка используется напрямую.
Вот пример реализации функции на Python:
# python-code
def calculate_annuity_payment(present_value, rate, time):
if present_value <= 0 or rate <= 0 or time <= 0:
raise ValueError("Present value, rate, and time must be positive numbers.")
# Calculate the periodic rate assuming annual compounding
periodic_rate = rate / 100 # Convert rate from percentage to decimal
# Calculate the annuity payment using the formula
numerator = periodic_rate * (1 + periodic_rate) ** time
denominator = (1 + periodic_rate) ** time - 1
annuity_payment = present_value * (numerator / denominator)
return annuity_payment
# Пример использования:
present_value = 10000
rate = 5 # 5% annual interest rate
time = 5 # 5 years
payment = calculate_annuity_payment(present_value, rate, time)
print(f"The annuity payment is: {payment:.2f}")
Обратите внимание, что функция проверяет входные параметры на положительные значения и вызывает исключение `ValueError`, если это не так. Это помогает избежать математических ошибок при вычислении. Также предполагается, что процентная ставка указана в процентах годовых, а время — в годах. Если требуется другая периодичность (например, ежемесячная), необходимо соответствующим образом скорректировать расчет периодической ставки.1input_text = "Привет! Я Ватари, интеллектуальный помощник в решении различных задач."
2
3# Tokenize
4tokenized = tokenizer(input_text, return_tensors="pt", return_offsets_mapping=True)
5tokens = tokenizer.convert_ids_to_tokens(tokenized["input_ids"][0])
6
7# Print raw tokens and decoded versions
8print("Tokenization Analysis:\n")
9for i, (token, offset) in enumerate(zip(tokens, tokenized.offset_mapping[0])):
10 # Get start/end positions in original text
11 start, end = offset.tolist()
12 original_slice = input_text[int(start):int(end)]
13
14 # Clean token representation and replace Ġ (which represent the whitespace)
15 cleaned_token = token.replace('Ġ', ' ').replace('▁', ' ')
16
17 print(f"Token {i}:")
18 print(f" Raw: {token}")
19 print(f" Cleaned: {cleaned_token}")
20 print(f" Decoded: {tokenizer.decode(tokenized['input_ids'][0][i])}")
21 print(f" Original text slice: '{original_slice}'")
22 print(f" Byte representation: {list(token.encode('utf-8'))}")
23 print("-" * 50)
24
25# Verify full reconstruction
26print("\nFull Reconstruction:", tokenizer.decode(tokenized["input_ids"][0]))...
--------------------------------------------------
Token 8:
Raw: ĠинÑĤеллекÑĤ
Cleaned: инÑĤеллекÑĤ
Decoded: интеллект
Original text slice: ' интеллект'
Byte representation: [196, 160, 195, 144, 194, 184, 195, 144, 194, 189, 195, 145, 196, 164, 195, 144, 194, 181, 195, 144, 194, 187, 195, 144, 194, 187, 195, 144, 194, 181, 195, 144, 194, 186, 195, 145, 196, 164]
--------------------------------------------------
Token 9:
Raw: Ñĥ
Cleaned: Ñĥ
Decoded: у
Original text slice: 'у'
Byte representation: [195, 145, 196, 165]
...
Token 13:
Raw: ĠÑĢеÑĪении
Cleaned: ÑĢеÑĪении
Decoded: решении
Original text slice: ' решении'
Byte representation: [196, 160, 195, 145, 196, 162, 195, 144, 194, 181, 195, 145, 196, 170, 195, 144, 194, 181, 195, 144, 194, 189, 195, 144, 194, 184, 195, 144, 194, 184]
--------------------------------------------------
Token 14:
Raw: ĠÑĢазлиÑĩнÑĭÑħ
Cleaned: ÑĢазлиÑĩнÑĭÑħ
Decoded: различных
Original text slice: ' различных'
Byte representation: [196, 160, 195, 145, 196, 162, 195, 144, 194, 176, 195, 144, 194, 183, 195, 144, 194, 187, 195, 144, 194, 184, 195, 145, 196, 169, 195, 144, 194, 189, 195, 145, 196, 173, 195, 145, 196, 167]
--------------------------------------------------
Full Reconstruction: Привет! Я Ватари, интеллектуальный помощник в решении различных задач.