Пример 1. n-грамма «на пальцах»
Идею статистической модели легко показать на чистом Python — без нейросетей.
# bigrams.py — простая биграммная модель
from collections import defaultdict, Counter
text = "я хочу попить я хочу есть я люблю код".split()
bigrams = defaultdict(Counter)
for a, b in zip(text, text[1:]):
bigrams[a][b] += 1
# самое вероятное продолжение после «я»
print(bigrams["я"].most_common(1)) # [('хочу', 2)]
Пример 2. Внимание «на пальцах»
Attention — это взвешивание слов по важности. Условный пример весов внимания к слову «разбудила»:
# attention_idea.py — иллюстрация (не настоящая модель)
weights = {"Собака": 0.45, "которая": 0.05, "лаяла": 0.10,
"всю": 0.03, "ночь": 0.02, "разбудила": 0.30, "соседей": 0.05}
# модель «смотрит» в основном на «Собака» и «разбудила»
top = sorted(weights, key=weights.get, reverse=True)[:2]
print(top) # ['Собака', 'разбудила']
Пример 3. Готовый трансформер через Hugging Face
Самый быстрый способ увидеть трансформер в деле — высокоуровневый pipeline из библиотеки transformers. Модель скачается автоматически.
# first_transformer.py
# Установка: pip install transformers torch
from transformers import pipeline
# анализ тональности (под капотом — трансформер, напр. BERT-семейство)
clf = pipeline("sentiment-analysis")
print(clf("Этот курс невероятно интересный!"))
# генерация текста (GPT-семейство)
gen = pipeline("text-generation", model="distilgpt2")
print(gen("Artificial intelligence is", max_new_tokens=20)[0]["generated_text"])
⚠️ Конкретные модели/веса в
pipeline() и их размеры зависят от версии библиотеки и доступа к Hugging Face. Это демонстрация подхода; полноценную работу с API LLM разберём в уроке 03. Сверяйтесь с документацией transformers.