Перейти к содержанию
modelium.
Начать с задачи
←

Qdrant: ошибка размерности вектора — что проверить

При ошибке размерности сравните число координат отправленного вектора с полем size нужной коллекции Qdrant. Эти числа должны совпадать для выбранного имени вектора. Не пересоздавайте рабочую коллекцию вслепую: сначала проверьте, какая модель и настройка кодирования сформировали массив, затем повторите запись на отдельной учебной коллекции.

Qdrant отклоняет запись вектора из-за его размерности? Размерность — это количество чисел в массиве, который модель создаёт для поиска. Коллекция — место хранения таких записей — ожидает заданное число координат. Ниже можно воспроизвести несовпадение только в новой учебной коллекции, не трогая документы и настройки рабочей. s1 s2 s4

Инструкция по документации, 20 октября 2026 года. Нужен уже запущенный собственный Qdrant с локальным адресом 127.0.0.1:6333, терминал с curl и доступ на создание учебной коллекции. Это инженерная диагностика, не установка модели дома. Редакция сверила официальные API и проверила форму команд на синтетическом HTTP-сервере, но не запускала настоящий Qdrant или AI-модель. s2 s3 s4

Как увидеть несовпадение на безопасном примере?

  1. Сначала убедитесь, что имя учебной коллекции ещё не занято: curl -sS -i 'http://127.0.0.1:6333/collections/demo_dim_20261020'. Для отсутствующей коллекции ожидайте HTTP 404. Если ответ 200 — остановитесь; не записывайте туда ничего. Выберите другое уникальное имя и одинаково замените его во всех следующих командах. На сервере с API-ключом понадобится предусмотренная им авторизация; не отключайте защиту ради опыта. s3
  2. Создайте только новую коллекцию с размерностью 3: curl -sS -X PUT 'http://127.0.0.1:6333/collections/demo_dim_20261020' -H 'Content-Type: application/json' -d '{"vectors":{"size":3,"distance":"Cosine"}}'. Ожидайте status: ok и result: true; при ошибке не переходите к записи. Число 3 годится только для искусственных координат, не для векторов настоящей текстовой модели. s2
  3. Прочитайте её настройки: curl -sS 'http://127.0.0.1:6333/collections/demo_dim_20261020'. В ответе проверьте result.config.params.vectors.size: здесь должно быть 3. Если работаете с именованными векторами, сначала выберите точное имя, затем смотрите size именно под ним — нельзя сравнивать с соседним полем. s1 s3
  4. Отправьте заведомо неподходящий двухэлементный вектор: curl -sS -i -X PUT 'http://127.0.0.1:6333/collections/demo_dim_20261020/points?wait=true' -H 'Content-Type: application/json' -d '{"points":[{"id":1,"vector":[0.1,0.2]}]}'. Ожидайте отказ сервера: длина массива 2 не равна настроенной 3. Точный текст ошибки и код ответа сверяйте на своей версии, мы не воспроизводили их на живом сервере. Если запись неожиданно принята, остановитесь и выясните причину, не применяйте пример к рабочим данным. s1 s4
  5. Теперь отправьте трёхэлементный искусственный вектор в ту же учебную коллекцию: curl -sS -X PUT 'http://127.0.0.1:6333/collections/demo_dim_20261020/points?wait=true' -H 'Content-Type: application/json' -d '{"points":[{"id":1,"vector":[0.1,0.2,0.3]}]}'. Ожидайте подтверждение операции, затем прочитайте ID 1: curl -sS 'http://127.0.0.1:6333/collections/demo_dim_20261020/points/1'. Сверьте result.id и наличие вектора; при хранении с метрикой Cosine числа могут быть нормализованы, поэтому не требуйте побуквенного совпадения координат. Этот опыт проверяет форму запроса, а не качество поиска текста. s1 s4 s5

Как исправить свою запись, не повредив рабочую коллекцию?

Прочитайте конфигурацию своей коллекции таким же запросом на чтение, но с её настоящим именем; сначала измерьте длину реального выходного массива приложения и варианта embedding-модели — модели, превращающей текст в числа для поиска. Сравните её с size для нужного имени вектора, затем проверьте, что запросы к поиску кодируются совместимым образом. Например, авторская карточка Qwen3-Embedding-0.6B указывает максимум 1024, но модель поддерживает уменьшенную размерность: название модели само по себе не доказывает длину именно вашего ответа. s1 s3 s6

Если числа не совпали, исправляйте конфигурацию генерации или готовьте новую отдельную коллекцию под фактическую размерность и переиндексируйте документы совместимой моделью. Не обрезайте и не дополняйте массив нулями «для прохода проверки»: это не подтверждает, что поиск сохраняет смысл. Не удаляйте и не пересоздавайте действующую коллекцию по этой инструкции. Размер скачанных весов не даёт минимальную RAM/VRAM для запуска модели; память и качество поиска здесь редакцией не измерялись. s1 s6

Если после совпадения чисел поиск по-прежнему плох, это уже другая проверка: размерность удостоверяет форму данных, но не правильность модели, текста или метрики. Следующий шаг — сверить конкретный вариант embedding-модели и проверить результат на собственных вопросах и документах. s1 s6

Источники

  1. Qdrant — Collections: размерность и named vectors — Фиксированная размерность для обычных векторов коллекции, отдельные настройки у именованных. Сохранён HTML и SHA-256 в research/raw.. Получено 20.10.2026.
  2. Qdrant API — Create a collection — PUT /collections/{collection_name}, vectors.size и distance; учебные числа — авторский пример.. Получено 20.10.2026.
  3. Qdrant API — Get collection details — GET конфигурации существующей коллекции без записи.. Получено 20.10.2026.
  4. Qdrant API — Upsert points — PUT /collections/{collection_name}/points?wait=true; существующий ID перезаписывается, поэтому пример на отдельной коллекции.. Получено 20.10.2026.
  5. Qdrant API — Retrieve a point — GET /collections/{collection_name}/points/{id} для чтения результата.. Получено 20.10.2026.
  6. Qwen — карточка Qwen3-Embedding-0.6B на закреплённой ревизии — revision 97b0c614be4d77ee51c0cef4e5f07c00f9eb65b3; Авторские характеристики модели, не результат запуска Modelium.. Получено 20.10.2026.