Построение двуязычной NER для грузовой логистики с Amazon Bedrock — ИИ для бизнеса

Построение двуязычной NER для грузовой логистики с Amazon Bedrock

Прослушать статью

IBS Software эксплуатирует систему Cargo, которая ежедневно обрабатывает тысячи двуязычных писем по грузовой логистике. Система извлекает критически важные данные, такие как номера air waybill (AWB), детали рейсов, вес и инструкции по доставке, на английском и японском языках. Это усложняло создание надежного решения Named Entity Recognition (NER). Среди проблем были ручная обработка, замедлявшая операции, и компромисс между точностью и стоимостью. IBS Software требовалось ИИ-решение, способное точно определять 23 типа сущностей на двух языках и при этом оставаться экономичным при масштабировании.

После изучения нескольких подходов IBS Software использовала управляемые возможности distillation в Amazon Bedrock, чтобы создать готовое к продакшену решение. Дистиллировав знания из Amazon Nova Pro в более эффективную модель Amazon Nova Lite, IBS Software достигла точности 95.085 percent по F1-Score и снизила операционные расходы в 14 раз. Этот кейс описывает путь от сложных open-source-реализаций к успешному развертыванию на AWS, которое теперь обрабатывает письма по грузовой логистике в реальном времени.

В этом материале мы рассказываем о техническом подходе с использованием token-based distillation, полученных уроках и архитектуре развертывания. Если вы сталкиваетесь с похожими задачами двуязычного NER, вам может быть полезен опыт IBS Software и возможности knowledge distillation в Amazon Bedrock.

Обзор решения

Цель состояла в том, чтобы построить двуязычную систему NER, способную извлекать 23 типа сущностей из писем по грузовой логистике, написанных на английском и японском языках. Ключевые сущности включали:

  • Номера AWB (Air Waybill).
  • Номера рейсов и маршруты.
  • Вес (gross, chargeable, dimensional).
  • Размеры и объем.
  • Описание товара.
  • Информацию об отправителе и получателе.
  • Коды специальной обработки.
  • Инструкции по доставке.

Основные риски заключались в необходимости сохранять высокую точность на обоих языках, контролировать стоимость inference при масштабировании и обеспечивать низкую задержку для обработки в реальном времени. С помощью возможностей model distillation в Amazon Bedrock можно использовать более маленькие, быстрые и экономичные модели. Такие модели обеспечивают точность, сопоставимую с самыми продвинутыми моделями в Amazon Bedrock, для вашего сценария использования.

На следующей диаграмме показан сквозной workflow двуязычного NER в Amazon Bedrock.

End-to-end bilingual NER workflow on Amazon Bedrock
Рисунок 1. Сквозной workflow двуязычного NER в Amazon Bedrock

Решение

Команда IBS из девяти исследователей и инженеров потратила примерно 4 месяца на разработку и внедрение этого решения. План проекта включал:

  • Месяц 1: Подготовка датасета и разметка 500 двуязычных писем.
  • Месяц 2: Проблемы с open-source-фреймворками (PyTorch, TextBrewer).
  • Месяц 3: Успешное distillation с помощью Amazon Bedrock (Nova Pro → Nova Lite).
  • Месяц 4: Продуктовое развертывание и оптимизация.

Выполненные ключевые задачи:

  • Разметили 500 писем по грузовой логистике (350 на английском, 150 на японском) по 23 типам сущностей.
  • Настроили distillation в Amazon Bedrock с пользовательскими hyperparameters.
  • Обучили student model в течение 4 эпох и 70 шагов.
  • Добились снижения loss с 0.05 до 0.008.
  • Развернули endpoint для inference с pipeline обработки файлов .eml.
  • Подтвердили F1-Score 95.085 percent на тестовом наборе.

IBS Software развернула всю инфраструктуру с использованием управляемых сервисов Amazon Bedrock, что позволило обойтись без собственной инфраструктуры для hosting модели.

Проблемы с open-source-подходами

Сначала команда пыталась выполнить knowledge distillation с использованием open-source-фреймворков, включая PyTorch-based implementations и библиотеку TextBrewer. Эти подходы не подошли по нескольким причинам:

  • Сложность настройки distillation pipeline для двуязычных данных.
  • Отсутствие управляемой инфраструктуры для обучения и развертывания.
  • Трудности с настройкой hyperparameters для token-level distillation.
  • Несовместимость с производственным workflow обработки писем.

Подробнее об основах knowledge distillation см. AWS Machine Learning Best Practices.

Подход Amazon Bedrock к distillation

Затем команда перешла на Amazon Bedrock Model Distillation, используя Amazon Nova Pro как teacher model и Nova Lite как student model. Ключевые преимущества включали:

  • Управляемую инфраструктуру обучения с автоматической оптимизацией hyperparameters.
  • Нативную поддержку token-level distillation.
  • Простую интеграцию с pipeline обработки писем.
  • Встроенный мониторинг и метрики оценки.

Конфигурация обучения:

Формулы и расчет
distillation_config = {
    "teacher_model": "amazon.nova-pro-v1:0",
    "student_model": "amazon.nova-lite-v1:0",
    "max_sequence_length": 2048,
    "epochs": 4,
    "training_steps": 70,
    "loss_function": "token_level_kl_divergence"
}

Процесс обучения снизил loss с 0.05 до 0.008 за 70 шагов, что указывает на сильную передачу знаний от teacher к student.

Документация Amazon Bedrock по distillation доступна здесь: Настройка модели с помощью distillation в Amazon Bedrock.

Подготовка датасета

Набор данных состоял из 500 реальных писем по грузовой логистике:

  • 350 писем на английском: стандартная грузовая документация с номерами AWB, деталями рейсов, весом и инструкциями по обработке.
  • 150 писем на японском: аналогичный контент с японской спецификой форматирования и терминологии.

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

Оценка модели

Мы оценивали teacher и student model с помощью F1-Score, гармонического среднего precision и recall:

Результаты:

Хотя базовая модель Nova Lite показывала примерно 84 percent общего F1-Score, teacher model и доработанная Nova Lite достигли примерно 10 percent прироста точности. В таблице ниже показаны результаты F1-Score.

Модель Общий F1-Score F1-Score для английского F1-Score для японского
Nova Pro (teacher) 97.0% 97.8% 96.2%
Nova Lite (student) 95.085% 96.535% 93.635%

Дистиллированная модель Nova Lite сохранила 98 percent производительности teacher model, обеспечив при этом 14-кратное снижение стоимости production inference.

Анализ ошибок и сложности

Мы заметили, что у student model F1-Score для японского текста был на 2.565 percent ниже, чем для английского. Этот разрыв в основном объяснялся сложными комбинациями иероглифов kanji в описаниях товаров, нечеткими границами сущностей в японском тексте без пробелов и меньшим объемом японских обучающих данных (150 против 350 писем). Многострочные инструкции по доставке со встроенными сущностями тоже иногда приводили к ошибкам определения границ.

Чтобы преодолеть эти сложности, мы дополнили японские обучающие данные синтетическими примерами. Мы также применили правила post-processing для известных шаблонов сущностей (формат AWB, regex для номера рейса) и внедрили thresholding по confidence, чтобы помечать низкоуверенные предсказания для ручной проверки.

Workflow развертывания

Примечание: Следующее развертывание создает ресурсы AWS, за которые начисляется плата. Хранение в Amazon Simple Storage Service (Amazon S3), вызовы AWS Lambda, inference модели Amazon Bedrock и хранение в Amazon DynamoDB имеют сопутствующие расходы. Удалите эти ресурсы, когда они больше не нужны, чтобы избежать постоянных списаний.

Наше production-развертывание обрабатывает файлы .eml по следующему workflow:

  1. Ввод писем: Письма по грузовой логистике поступают в виде файлов .eml в Amazon S3.
  2. Предобработка: AWS Lambda извлекает тело письма и метаданные.
  3. Inference: Endpoint Amazon Bedrock обрабатывает текст с помощью дистиллированной модели Nova Lite.
  4. Извлечение сущностей: Модель возвращает 23 типа сущностей с оценками confidence.
  5. Post-processing: Применяются правила валидации и фильтрация по confidence.
  6. Вывод: Структурированный JSON с извлеченными сущностями сохраняется в Amazon DynamoDB.
Формулы и расчет
import boto3
import json

bedrock_runtime = boto3.client('bedrock-runtime')

def extract_entities(email_text):
    response = bedrock_runtime.invoke_model(
        modelId='<custom model arn>',
        body=json.dumps({
            "inputText": email_text,
            "taskType": "NER",
            "entityTypes": [
                "AWB_NUMBER", "FLIGHT_NUMBER", "WEIGHT_GROSS",
                "WEIGHT_CHARGEABLE", "DIMENSIONS", "COMMODITY",
                "SHIPPER", "CONSIGNEE", "HANDLING_CODE",
                # ... 14 more entity types
            ]
        })
    )

    result = json.loads(response['body'].read())
    return result['entities']

Паттерны интеграции с Lambda см. в материале AWS Lambda with Amazon Bedrock.

Весь pipeline обрабатывает письма менее чем за 2 секунды при точности 95.085 percent, что соответствует требованиям к обработке в реальном времени.

Заключение

В этом материале мы показали, как IBS Software использовала управляемые возможности distillation в Amazon Bedrock, чтобы построить экономичную двуязычную NER-систему для грузовой логистики. Система достигает F1-Score 95.085 percent и снижает операционные расходы в 14 раз. Дистиллированная модель Nova Lite сохраняет 98 percent производительности teacher model, что делает ее подходящей для высоконагруженных production workloads.

Наш главный вывод заключался в том, что управляемые возможности distillation в Amazon Bedrock снимают сложность open-source-фреймворков. Token-level knowledge distillation сохраняет точность на английском и японском языках, а последовательность длиной 2048 tokens подходит для типичных писем по грузовой логистике. Production-развертывание с интеграцией AWS Lambda и Amazon S3 требует минимальной собственной инфраструктуры.

Следующие шаги:

Если вы сталкиваетесь с похожими задачами двуязычного NER, стоит:

  1. Начать с foundation models Amazon Bedrock по запросу для быстрого прототипирования.
  2. Инвестировать в качественную разметку двуязычных обучающих данных.
  3. Изучить model distillation вместе с обучающим датасетом. Одно ограничение model distillation заключается в том, что teacher model и student model должны быть из одной family модели.
  • Руководство по Amazon Bedrock Model Distillation
  • Ускорение распознавания пользовательских сущностей с помощью Claude tool use в Amazon Bedrock
  • Построение платформы для AI-обработки документов с open-source NER model и LLM на Amazon SageMaker AI

Если вы работаете над двуязычным NER или knowledge distillation для собственного сценария, нам будет интересно узнать о вашем опыте. Поделитесь вопросами или отзывами в комментариях.


Материал — перевод статьи с английского.

Оригинал: Building bilingual NER for cargo logistics with Amazon Bedrock