Токен (искусственный интеллект)
Токен — минимальная учитываемая при обучении систем генеративного искусственного интеллекта единица данных, получаемая при разбиении входного набора данных, как правило - текста. В большинстве современных БЯМ, токен обязательно не соответствует токену в смысле лексического анализа, т.к. разбиение входного потока данных может производиться на базе чисто статистических методов на такие единицы как символьные диграммы и триграммы и им подобные без учёта морфологии слов и прочих лингвистических категорий.
Конкретный метод/программу токенизации называют токенизатором. Современные модульные технологии разработки систем искусственного интеллекта позволяют исследователям и разработчикам, экспериментируя, заменять одни модели токенизаторов на другие в рамках одного и того же конвейера разработки системы ИИ/NLP.
Аналогичная техника разбиения на токены используется при эмбединге - векторизации внешних по отношению к модели ИИ массивов данных для целей их последующего использования в рамках техники RAG.
Размер контекстного окна трансформеров, обобщённо определяющий мощность модели ИИ измеряется в токенах.
Также отработанные моделью токены используют как единицу учёта потребления мощности коммерческих ИИ-систем.
Проблемы подхода[править | править код]
Токены как способ представления текстов используются в большинстве современных ИИ-систем. Она обеспечивает упрощение обработки больших массивов разнородных текстов, и для моделей классического машинного обучения этот подход часто выглядит предпочтительным, в том числе из-за простоты. Однако в контексте больших языковых моделей токенизация порождает ряд проблем[1]:
- Токенизаторы часто обучаются относительно простыми алгоритмами отдельно от основного процесса обучения модели. В итоге качество обученной LLM оказывается частично ограничено самим токенизатором. При выборе (или создании) лучшего токенизатора модель без изменения архитектуры может показать значительно лучшие результаты.
- Конечный словарь токенов, дающий ряд преимуществ при применении с методами классического машинного обучения, создаёт определённые сложности при обучении нейронных сетей. Эти сложности возникают при обработке новых или редких терминов.
- Обновление словаря токенов во многих случаях требует ресурсозатратного переобучения модели.
- Методы токенизации обычно разбивают текст на слова или части слов, что приводит к потере информации на уровне символов или частей слов. Например, именно с этим связана знаменитая проблема с количеством букв «r» в слове «raspberry».
- Проблема с мультиязычностью. Если использовать токенизацию с использованием лексем, то каждого языка часто требуется свой токенизатор, что усложняет задачу, особенно в случае мультиязычных моделей. Качество токенизации для разных языков будет неодинаковым.
- Токенизация может быть затруднена при обработке текстов с шумом или нестандартными символами.
- Модели, основанные на токенизации, выделяют одинаковое количество вычислительных ресурсов для каждого токена. Это жертвует эффективностью ради производительности, поскольку токены создаются с использованием эвристик сжатия, которые не всегда коррелируют со сложностью предсказаний.
Несмотря на все проблемы, токенизация продолжает использоваться, так как прямое обучение на байтах или символах слишком дорого для больших масштабов из-за длинных последовательностей. Эта эвристика позволяет сократить объем данных и упростить их обработку, что делает ее пока еще нужным компромиссом в современных LLM.
Токенизаторы[править | править код]
Токенизация в случае текстового входного потока является процедурой разбиения текста на минимальные значимые единицы, такие как слова, части слова, символы или их сочетания. Процесс сводится к построению словаря токенов, которые, затем, заменяются числами. Числа составляют словарь, размер которого может быть заранее ограничен.
Здесь содержится неисчерпывающий список известных токенизаторов.
- Разбиение текста пробелами.
- Byte Pair Encoding (BPE) — алгоритм, итеративно объединяющий наиболее частые пары символов или байтов.
- WordPiece — алгоритм, максимизирующий правдоподобие обучающих данных вместо объединения частых пар.
- Unigram Language Model — алгоритм, моделирующий токенизацию как вероятностный процесс.