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