Очень эффективна для обработки текстов. BERT состоит из нескольких слоев энкодеров, которые являются основными компонентами этой архитектуры.
Токенизация: Исходный текст разбивается на токены с помощью метода WordPiece.
Embedding: Токены преобразуются в векторные представления, включающие:
Token Embeddings: Представление самих токенов.
Segment Embeddings: Указание на принадлежность к конкретному предложению.
Position Embeddings: Учет порядка токенов в предложении.
Несколько слоев энкодеров, каждый из которых состоит из:
Многоголовое самовнимание (Multi-Head Self-Attention): Анализирует контекст токена из всей последовательности.
Полносвязная сеть (Feed-Forward Neural Network): Два линейных преобразования с активацией ReLU между ними.
Layer Normalization: Нормализация выходных данных каждого подслоя.
Residual Connections: Прямые соединения вокруг каждого подслоя, помогающие бороться с затуханием градиентов.
Преобразует последовательность токенов в эмбеддинги.
Состоит из многоголового самовнимания и полносвязной сети.
Генерирует векторные представления для каждого токена, используемые для различных задач NLP.
from transformers import BertModel, BertTokenizer
# Загрузка модели BERT и токенизатора
model_name = 'bert-base-uncased'
tokenizer = BertTokenizer.from_pretrained(model_name)
model = BertModel.from_pretrained(model_name)
# Токенизация текста и получение эмбеддингов
text = "Hello, how are you?"
inputs = tokenizer(text, return_tensors="pt")
outputs = model(**inputs)
# Эмбеддинги из последнего слоя
last_hidden_states = outputs.last_hidden_state
print(last_hidden_states)
Ставь 👍 и забирай 📚 Базу знаний