«Не классифицируй, галлюцинируй»: приём Дага Тёрнбулла для тегирования текста через LLM

Саймон Уиллисон написал в своём блоге о приёме тегирования текста, который придумал Даг Тёрнбулл. У самого Уиллисона в блоге накопилось 1856 тегов, слишком много, чтобы разом отдать их LLM и попросить выбрать подходящие из списка. Решение Тёрнбулла: не показывать модели существующий словарь тегов вообще. Вместо этого модели ставят задачу самой придумать теги, которые кажутся ей подходящими к контенту, без оглядки на то, что уже есть в системе. Затем эти придуманные («галлюцинированные») теги превращают в векторные эмбеддинги и сравнивают с эмбеддингами реальных тегов из существующего корпуса, находя ближайшие совпадения. Так модель, не зная словаря, всё равно приводит текст к уже существующим тегам. В примере промпта, который приводит Тёрнбулл, показана классификация товаров: модели дают образец того, как выглядят целевые категории (например, «Furniture / Living Room Furniture / Coffee Tables & End Tables / Coffee Tables»), и просят придумать похожую классификацию для конкретного запроса, в примере это «brown coffee table» (коричневый журнальный столик). Такой пример-образец помогает модели давать более полезные догадки о форме тегов, даже не видя полного списка.

Ключевые факты

  • Даг Тёрнбулл предложил приём: не давать LLM список существующих тегов, а просить её придумать («галлюцинировать») свои теги под контент.
  • Придуманные моделью теги затем сопоставляют с реальными тегами из словаря через векторные эмбеддинги, находя ближайшие по смыслу.
  • У Саймона Уиллисона в блоге 1856 тегов, по его словам, это слишком много, чтобы разом отдать модели для выбора из списка.
  • Пример промпта Тёрнбулла показан на классификации мебели и товаров для дома: модели дают образец формата категорий и просят классифицировать запрос вроде «brown coffee table».
  • Источник не приводит результатов или метрик, насколько хорошо приём работает на практике, не оценивается.

Почему это важно

Классический подход к тегированию через LLM, отдать модели весь словарь тегов и попросить выбрать подходящие. Это упирается в предел контекста, когда тегов тысячи, как у Уиллисона (1856 штук). Приём Тёрнбулла обходит это ограничение: модель вообще не видит словарь, а придумывает теги свободно, и уже потом эмбеддинги сводят её догадки к реальным категориям.

Кому это важно

Тем, кто строит системы тегирования, классификации или категоризации контента и товаров с помощью LLM и сталкивается с большими или постоянно растущими справочниками категорий, в блогах, каталогах товаров, базах знаний, где список меток слишком велик, чтобы каждый раз передавать его модели целиком.

Как это применить

Промпт формулируется так, чтобы модель придумывала новые, ранее не виденные теги под конкретный контент, опираясь на образец формата (пример иерархии категорий), а не на конкретный список. Полученные текстовые теги переводят в векторные эмбеддинги и ищут ближайшие соседи среди эмбеддингов существующих тегов корпуса, это и даёт финальную классификацию.

Можно ли доверять

Источник, личный блог Саймона Уиллисона, известного разработчика и автора инструментов для работы с LLM, который пересказывает и одобряет решение стороннего автора, Дага Тёрнбулла. При этом в тексте нет ни результатов эксперимента, ни метрик точности, приём описан как идея, а не как проверенное и измеренное решение.

Риски и подводные камни

Главный риск, отсутствие данных об эффективности: неизвестно, насколько точно эмбеддинги сопоставляют «галлюцинированные» теги с правильными реальными категориями и как часто модель промахивается. Пример с мебелью в тексте иллюстративный, источник не говорит, что Уиллисон уже применил именно этот приём к тегам собственного блога.