Создание векторных представлений предложений с помощью BERT
Извлекайте контекстные векторы в коде
«Создание векторных представлений предложений с помощью BERT» — бесплатный урок NLP Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения NLP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс NLP Academy содержит 4 уроков всего.
От слов к предложениям
BERT создаёт собственный вектор для каждого токена. Но часто нужен один вектор для всего предложения, а не для каждого слова.
Токен CLS
BERT добавляет специальный токен с именем CLS в самое начало каждого входа. Его выход часто используют как краткое представление предложения.
Усреднение
Другой распространённый приём — усреднить все векторы токенов в один. Этот этап усреднения часто даёт результат лучше исходного вектора CLS.
Загрузка модели
Hugging Face упрощает загрузку: получите токенизатор и модель, выполнив по одной строке для каждого. Вместе они образуют ваш конвейер для векторных представлений.
from transformers import AutoTokenizer, AutoModel
tok = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModel.from_pretrained("bert-base-uncased")Токенизация текста
Токенизатор превращает предложение в номера идентификаторов и маску внимания, понятные BERT. Это этап кодирования.
inputs = tok("I love NLP", return_tensors="pt")Запуск модели
Передайте закодированные входные данные в BERT, чтобы получить скрытые состояния каждого токена. Эти векторы — необработанный выход, который вы будете усреднять.
out = model(**inputs)
states = out.last_hidden_stateСведение к одному вектору
Усредните состояния токенов по последовательности, чтобы свести их к одному векторному представлению предложения, которое можно сохранить.
vec = states.mean(dim=1)Более простой путь
Библиотека Sentence-Transformers выполняет всё это за вас. Один вызов возвращает готовый к использованию вектор предложения. ✨
from sentence_transformers import SentenceTransformer
m = SentenceTransformer("all-MiniLM-L6-v2")
vec = m.encode("I love NLP")Сравнение предложений
Имея два вектора предложений, можно измерить близость с помощью косинусного сходства. Более высокие оценки означают, что предложения имеют похожий смысл.
Что можно создать
Векторные представления предложений поддерживают семантический поиск, кластеризацию и обнаружение дубликатов. Они превращают смысл в нечто, что можно искать.
Примечание о качестве
Модели, настроенные для предложений, например MiniLM, обычно превосходят обычный BERT в этой задаче. Выбирайте модель, обученную для конкретной задачи, которая вам нужна.
Быстрая проверка
Как превратить множество векторов токенов в один вектор предложения?
Итоги
Токенизируйте текст, пропустите его через BERT, а затем выполните объединение или используйте CLS, чтобы получить одно вложенное представление предложения. Sentence-Transformers выполняет это одним вызовом. ✅
Изучай Python с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 30
- Уроки
- 120
Часто задаваемые вопросы
Урок «Создание векторных представлений предложений с помощью BERT» бесплатный?
Да — полный текст урока «Создание векторных представлений предложений с помощью BERT» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс NLP Academy, подпишись на CoddyKit PRO. Курс NLP Academy содержит 4 уроков всего.
Чему я научусь в уроке «Создание векторных представлений предложений с помощью BERT»?
Извлекайте контекстные векторы в коде Ты практикуешь NLP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать NLP Academy?
Предыдущий опыт не требуется. NLP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Создание векторных представлений предложений с помощью BERT»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке NLP Academy?
Да. Каждый урок NLP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Почему контекст меняет значение слова
- Маскированное языковое моделирование
- Создание векторных представлений предложений с помощью BERT
- Выбор подходящей предварительно обученной модели