Код IT
← Каталог

Алгоритмы ИИ — Пример реализации на Python

Фрагмент из «Алгоритмы ИИ»: Пример реализации на Python.

python aiencyclopedia6-02-mashinnoe-obuchenie-2 embed URL статья в энциклопедии
Python main.py
from transformers import BertTokenizer, BertModel

import torch

# Загрузка токенизатора и модели
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')

# Подготовка текста
text = "Машинное обучение преобразует современные технологии"
inputs = tokenizer(text, return_tensors='pt', padding=True, truncation=True, max_length=128)

# Получение эмбеддингов
with torch.no_grad():
    outputs = model(**inputs)
    last_hidden_states = outputs.last_hidden_state

# Эмбеддинг предложения как среднее по токенам
sentence_embedding = last_hidden_states.mean(dim=1)
print(f"Размерность эмбеддинга предложения: {sentence_embedding.shape}")

# Эмбеддинги отдельных токенов
tokens = tokenizer.convert_ids_to_tokens(inputs['input_ids'][0])
for i, token in enumerate(tokens):
    if token not in ['[CLS]', '[SEP]', '[PAD]']:
        token_embedding = last_hidden_states[0, i]
        print(f"Токен '{token}': вектор размерности {token_embedding.shape}")
from transformers import BertTokenizer, BertModel

import torch

# Загрузка токенизатора и модели
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')

# Подготовка текста
text = "Машинное обучение преобразует современные технологии"
inputs = tokenizer(text, return_tensors='pt', padding=True, truncation=True, max_length=128)

# Получение эмбеддингов
with torch.no_grad():
    outputs = model(**inputs)
    last_hidden_states = outputs.last_hidden_state

# Эмбеддинг предложения как среднее по токенам
sentence_embedding = last_hidden_states.mean(dim=1)
print(f"Размерность эмбеддинга предложения: {sentence_embedding.shape}")

# Эмбеддинги отдельных токенов
tokens = tokenizer.convert_ids_to_tokens(inputs['input_ids'][0])
for i, token in enumerate(tokens):
    if token not in ['[CLS]', '[SEP]', '[PAD]']:
        token_embedding = last_hidden_states[0, i]
        print(f"Токен '{token}': вектор размерности {token_embedding.shape}")