Sergey Penkovsky 32bca15069 Комплексное обновление проекта
- Добавлена документация по эмбеддингам (markdown + drawio)
- Реализован модуль PositionalEmbeddings
- Обновлен .gitignore
- Исправлено имя модуля token_embeddings.py
2025-07-18 00:25:55 +03:00
2025-07-08 14:42:24 +03:00
2025-07-11 12:21:33 +03:00

Simple LLM Tokenizer

Простой и эффективный токенизатор для языковых моделей на основе BPE (Byte Pair Encoding)

Описание проекта

Проект предоставляет реализации алгоритма BPE (Byte Pair Encoding) для токенизации текста:

  • SimpleBPE - базовая версия
  • OptimizeBPE - оптимизированная версия с улучшенной производительностью

Основные возможности:

  • Обучение на любом тексте (поддержка кириллицы и других алфавитов)
  • Гибкая настройка размера словаря
  • Простота интеграции в существующие проекты

Установка

  1. Склонируйте репозиторий:
git clone https://github.com/yourusername/simple-llm.git
cd simple-llm
  1. Установите пакет:
pip install -e .

Быстрый старт

from simple_llm.tokenizer import SimpleBPE

# Инициализация и обучение
text = "мама мыла раму, папа пил какао"
bpe = SimpleBPE(vocab_size=50)
bpe.fit(text)

# Кодирование/декодирование
encoded = bpe.encode(text)
print(f"Закодировано: {encoded}")

decoded = bpe.decode(encoded)
print(f"Декодировано: '{decoded}'")
print(f"Совпадение с оригиналом: {text == decoded}")

# Обработка неизвестных слов
unknown = bpe.encode(еизвестное_слово")
print(f"Неизвестное слово: {unknown}")

Пример вывода:

Закодировано: [12, 12, 0, 15, 8, 0, 17, 9, 1, 0, 16, 16, 0, 14, 7, 0, 10, 10, 3]
Декодировано: 'мама мыла раму, папа пил какао'
Совпадение с оригиналом: True
Неизвестное слово: [-1, -1, 3, -1, -1, -1, -1, -1, -1, 7, -1, -1, -1, 5, 7, -1, 7]

Интеграция в проект

Добавьте в ваш requirements.txt:

git+https://github.com/yourusername/simple-llm.git

Или установите напрямую:

pip install git+https://github.com/yourusername/simple-llm.git

Примеры

Дополнительные примеры использования смотрите в папке example:

  • Сравнение SimpleBPE и OptimizeBPE
  • Работа с разными языками
  • Настройка параметров токенизации

Разработка

Для запуска тестов:

pytest tests/

Для внесения изменений установите зависимости разработки:

pip install -e ".[dev]"

Лицензия

Проект распространяется под лицензией MIT. Подробнее см. LICENSE.

Description
No description provided
Readme MIT 21 MiB
Languages
Python 100%