← На главную

LLM с MiniLM дешево классифицирует товары в обход structured outputs

10.08.2026 20:50 · hackernews

Классифицировать товары и поисковые запросы с помощью LLM — задача привычная, но с подвохом: модель нужно удерживать в рамках допустимого словаря брендов, цветов и категорий. В датасете Wayfair WANDS таких категорий сотни. Например, запрос «wood coffee table» должен попасть в Furniture / Living Room Furniture / Coffee Tables & End Tables / Coffee Tables, а не в соседний Furniture / Office Furniture / Desks или Décor & Pillows / Decorative Pillows & Blankets / Throw Pillows.

Классический способ — structured outputs. В Pydantic заводится гигантский Literal из всех разрешённых значений, и gpt-5.4-mini через client.responses.parse обязан выбирать только из них. Это работает, но дорого на масштабе, а у запроса ещё и есть верхний предел по размеру.

Вместо этого можно поступить наоборот. Берём дешёвую LLM и просим её придумать правдоподобные, но выдуманные классификации для запроса. В промпте даём примеры реальных категорий и запрос «brown coffee table». Модель выдумывает что-то в духе Furniture / Living Room / Tables / Coffee. Формально это мусор, которого нет в таксономии, — но именно он и нужен.

Дальше фейковый путь резолвится в настоящий словарь. Строится дешёвое in-memory множество эмбеддингов реальных классификаций — в статье для этого используется MiniLM. Для каждой реальной категории считается эмбеддинг, для выдуманного от LLM — тоже. Потом скалярное произведение фейкового эмбеддинга с реальными находит ближайшего соседа. Для «кофейного столика» получается правильное Furniture / Living Room Furniture / Coffee Tables & End Tables / Coffee Tables.

Такой подход позволяет отдавать задачу маленьким и слабым моделям: им не нужно передавать всю схему допустимых значений, достаточно попросить галлюцинировать. А резолвинг делает дешёвый поиск по эмбеддингам. В конце статьи анонсируется Vectors Week — серия мероприятий про векторный поиск, гибридный поиск и создание своей векторной базы данных.

Читать оригинал →