Смотреть в Telegram
Всем привет! Начнем этот год с бенчмарков on-premise VL и Cloud моделей и их производительности в анализе неструктурированных документов и извлечении данных из них через подход Structured output. У нас сегодня открытые данные (таможенные декларации и неструктурированные документы): паспорта качества, СЭС-сертификаты, сертификаты пожарной безопасности. Все эти документы объединяет то, что они общедоступные и неструктурированные. Соревнуются четыре модели: Qwen/Qwen2-VL-7B-Instruct и Qwen/Qwen2-VL-72B-Instruct (вторая запущена в динамической квантизации на 8FP. А так же claude-3.5-sonnet и gpt-4o Куда смотрим для понимания точности на метрику DocVQAtest Qwen2-VL-7B: 94.5% (в сравнении с gpt-4o-mini) Qwen2-VL-72B: 96.5% (в сравнении с моделями ниже) GPT-4o: 92.8% Claude-3.5 Sonnet: 95.2% Итак, на вход у нас задача извлекать 5 типов данных: 1) Производитель 2) Номер документа 3) Даты 4) Организация, которая выдала 5) Описание Примерный промпт, который мне понравился:
Analyze the document image and extract the following fields with special attention to mixed character sets:
1. MANUFACTURER (ПРОИЗВОДИТЕЛЬ):
   - Extract complete legal name
   - Include organization type (ООО, АО etc.)
   - Preserve original formatting
2. DOCUMENT NUMBER (НОМЕР ДОКУМЕНТА):
   - Extract complete number maintaining original format
   - Pay special attention to:
     * Cyrillic characters (А-Я, а-я)
     * Latin characters (A-Z, a-z)
     * Numbers (0-9)
     * Special characters (-, .)
   - Preserve exact case of letters
3. DATES (ДАТЫ):
   - Issue date (дата регистрации)
   - Expiry date (действительна по)
   - Format: DD.MM.YYYY
   - Validate date format
4. ISSUING ORGANIZATION (ОРГАНИЗАЦИЯ):
   - Extract complete legal name
   - Include location if specified
   - Maintain original spelling
5. DESCRIPTION (ОПИСАНИЕ):
   - Extract document type and purpose
   - Include scope of application
   - Preserve key regulatory references
Structured Output схема (специально максимально скрыл данные в некоторых полях, считаю это уже интеллектуальной собственностью):
{
  "type": "object",
  "properties": {
    "manufacturer": {
      "type": "string",
      "description": "..."
    },
    "document_number": {
      "type": "string",
      "description": "..."
    },
    "issue_date": {
      "type": "string",
      "description": "..."
    },
    "expiry_date": {
      "type": "string",
      "description": "..."
    },
    "issuing_organization": {
      "type": "string",
      "description": "..."
    },
    "description": {
      "type": "string",
      "description": "..."
    }
  },
  "required": [
    "manufacturer",
    "document_number",
    "issue_date",
    "expiry_date",
    "issuing_organization",
    "description"
  ]
}
Так как мы запускаемся на VLLM, то у нас на сегодня есть три бэкенда для Structured Output. Но я использую xgrammar. Конфиг железа: 1) 7b модель запущена на 4090
gpu_executor.py:80] Maximum concurrency for 20000 tokens per request: 3.82x
2) 72b модель в динамической FP8 влезает в одну H100, так что тут не густо по потокам, но хватает для анализа
gpu_executor.py:80] Maximum concurrency for 6000 tokens per request: 2.38x
А что по времени с on-premise 4 сек у 7b и 10 сек у 72b на одну страничку! В картинку вынес сравнительную таблицу по стоимости(учитывая аренду сервера на месяц), скорости своим комментариям, и емкости взял за пример, что в сутки надо анализировать 20к документов. Какие выводы можем сделать? Если у вас огромные потоки данных для анализа в сутки от 10-20к в день, и вам очень важна секьюрность, то on-premise решения уже догоняют Cloud решения по многим характеристикам. Да начинаем с cloud (так как надо SO то пока что только openai) Главное - грамотно подойти к настройке сервиса и железу (что мы и делаем для наших клиентов), именно разрабатываем выгодную стратегию использования LLM решений в контуре компаний клиентов!
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Бот для знакомств