🤔 Расскажи про архитектуру N кодера на примере берта?



Очень эффективна для обработки текстов. BERT состоит из нескольких слоев энкодеров, которые являются основными компонентами этой архитектуры.



🚩Компоненты



🟠Входные данные и их представление

Токенизация: Исходный текст разбивается на токены с помощью метода WordPiece.

Embedding: Токены преобразуются в векторные представления, включающие:

Token Embeddings: Представление самих токенов.

Segment Embeddings: Указание на принадлежность к конкретному предложению.

Position Embeddings: Учет порядка токенов в предложении.



🟠Энкодеры

Несколько слоев энкодеров, каждый из которых состоит из:

Многоголовое самовнимание (Multi-Head Self-Attention): Анализирует контекст токена из всей последовательности.

Полносвязная сеть (Feed-Forward Neural Network): Два линейных преобразования с активацией ReLU между ними.



🟠Нормализация и резидуальные связи

Layer Normalization: Нормализация выходных данных каждого подслоя.

Residual Connections: Прямые соединения вокруг каждого подслоя, помогающие бороться с затуханием градиентов.



🚩Общая архитектура



🟠Входной слой

Преобразует последовательность токенов в эмбеддинги.

🟠N слоев энкодеров

Состоит из многоголового самовнимания и полносвязной сети.

🟠Выходной слой

Генерирует векторные представления для каждого токена, используемые для различных задач 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)




Ставь 👍 и забирай 📚 Базу знаний