Создание финансового исследовательского помощника с помощью Cohere AI на AWS

Источник: Cohere•

Создание финансового исследовательского помощника с помощью Cohere AI на AWS

Создайте финансового исследовательского помощника на AWS с использованием Cohere Embed, Rerank и Parse. Улучшите поиск документов, точность извлечения и ответы с поддержкой цитирования.

Основные выводы

  • Создайте финансового исследовательского помощника на AWS. Объедините Cohere Embed, Rerank и Parse с Amazon SageMaker AI, OpenSearch Serverless и Amazon Bedrock для поиска по финансовой отчетности и генерации ответов с цитированием на уровне страниц.
  • Оптимизируйте качество извлечения, задержку и стоимость. Используйте Embed Pro для высококачественной индексации документов и Embed Fast для запросов с низкой задержкой, с настраиваемыми размерностями эмбеддингов и квантованием для балансировки точности и объема памяти.
  • Повысьте релевантность поиска с помощью Rerank. Изменяйте порядок извлеченных страниц с помощью Rerank Pro и используйте Context Focus для определения релевантных отрывков и уменьшения объема текста, отправляемого модели ответов.
  • Работайте со сложными финансовыми документами. Используйте Cohere Parse для сканированных страниц или страниц с большим количеством таблиц и объединяйте текст с изображениями страниц, чтобы помочь модели ответов интерпретировать финансовые показатели и сохранять контекст.
  • Развертывайте и экспериментируйте в собственном аккаунт AWS. Используйте демоверсию на базе CloudFormation для изучения поиска, ранжирования, Context Focus и ответов с цитированием, одновременно понимая компромиссы различных конфигураций.

Для финансового аналитика большая часть рабочего дня сводится к поиску одного числа в отчете объемом в сотни страниц, а затем к доказательству того, откуда оно взялось. Ни то, ни другое не так просто, как звучит. Число редко находится в основном тексте. Обычно оно живет в таблице, сноске или графике и может появляться в разных местах под разными именами.

В этой статье мы покажем, как создать исследовательского помощника для финансовой отчетности с помощью моделей Cohere на Amazon SageMaker AI: Embed для поиска, Rerank для упорядочивания результатов и Parse для превращения сложных страниц в чистый текст. Anthropic Claude на Amazon Bedrock будет использоваться для написания ответов со ссылкой на каждое утверждение.

Мы начнем с того, что именно делает эту задачу сложной, затем дадим обзор решения и большую часть статьи посвятим проектным решениям, лежащим в его основе, а также тому, когда вы могли бы принять другое решение. В конце мы покажем, как развернуть решение в вашем собственном аккаунте AWS и попробовать его самостоятельно.

Почему финансовые исследования сложно автоматизировать. Финансовые исследования выглядят как задача поиска, но у них есть особенности, которые ломают простые подходы.

Ответ кроется в структуре. Возьмем форму 10-К — годовой отчет, который американские публичные компании подают в Комиссию по ценным бумагам и биржам (SEC) и который охватывает бизнес, его риски и аудированную финансовую отчетность (what a Form 10-K contains). Нужный вам показатель из этого отчета обычно находится в таблице в виде чистого процентного дохода по годам, регулятивного капитала по уровням, списаний по типам кредитов и т. д. При конвертации PDF в простой текст таблицы теряют связи между строками и столбцами, многоколоночные страницы могут выходить в неправильном порядке, а графики часто исчезают.

Проверяемый ответ — это необходимость. Аналитик не может написать в служебной записке «коэффициент CET1 составил 11,9%», не зная, из какого отчета и с какой страницы он взят и получено ли значение из таблицы, графика или предложения. Помощник для такой работы должен показывать свои источники, а читающий должен иметь возможность быстро их проверить.

Объем и стоимость накапливаются. Исследовательская группа может индексировать тысячи отчетов за много лет. Каждая страница эмбеддируется один каждый раз, но каждый вопрос также эмбеддируется, и каждая модель, работающая с каждым вопросом, добавляет времени и затрат.

Не каждый документ чист. Отчеты поступают в виде цифровых PDF-файлов, а также сканированных приложений, соглашений, переданных по факсу, и сфотографированных страниц, у которых вообще нет текстового слоя.

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

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

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

  • Cohere Embed превращает каждую страницу и каждый вопрос в вектор — список чисел, отражающий его смысл, — так что страницы о том же самом, что и вопрос, располагаются близко к нему. Embed выпускается в двух версиях: Embed Pro, созданная для наивысшего качества извлечения и автономной индексации, и Embed Fast, созданная для низкой задержки на пути реальных запросов.
  • Cohere Rerank принимает вопрос и лучшие страницы-кандидаты из векторного поиска, считывает каждую пару вместе и располагает их в лучшем порядке. С помощью Context Focus Rerank также может отмечать отрывки на каждой странице, которые отвечают на вопрос. Как и Embed, Rerank имеет две версии: Rerank Pro, созданную для максимальной точности, и Rerank Fast, созданную для меньшей задержки. Мы используем Rerank Pro, потому что для финансового помощника поиск правильной страницы обычно важнее более быстрого ответа.
  • Cohere Parse считывает изображение страницы и возвращает чистый Markdown с таблицами в виде реальных строк и столбцов. Он используется для страниц со слабым текстом.
  • Anthropic Claude на Amazon Bedrock читает верхние страницы и пишет ответ, цитируя каждую страницу.

Люди могут использовать его через веб-приложение с тремя функциями:

  • Assistant (Помощник). Задайте вопрос по отчетам. Помощник находит наиболее релевантные страницы, читает их и пишет ответ, в котором каждое утверждение ссылается на свою страницу. Каждая цитата также говорит о том, получено ли утверждение из таблицы, графика, основного текста, сноски или рисунка, а один клик открывает изображение страницы для ее проверки.
  • Search (Поиск). Тот же поиск, но без сгенерированного ответа. Он может показывать результаты с ранжированием и без него бок о бок, чтобы вы могли видеть, как изменение порядка меняет их, а в столбце Rerank отображается отрывок, выбранный Context Focus на каждой странице.
  • Parse (Парсинг). Parse извлекает таблицы в виде строк со страниц, которые вы можете скачать, а также превращает похожие на сканы страницы в текст.

Под капотом работают два потока. Ввод данных (Ingestion) выполняется один раз для каждой страницы, причем Parse запускается в первую очередь для тех страниц, которые в нем нуждаются, затем текст эмбеддируется с помощью Embed Pro, а вектор сохраняется в векторный индекс. Ответ (Answering) выполняется для каждого вопроса: Embed Fast создает эмбеддер вопроса, затем извлекаются ближайшие страницы и, при необходимости, переупорядочиваются с помощью Rerank. Наконец, Claude пишет ответ на основе топ-страниц. Модели Cohere работают как эндпоинты реального времени на Amazon SageMaker AI, развернутые из AWS Marketplace; векторным индексом является Amazon OpenSearch Serverless; веб-приложение, вход в систему, API и конвейер ввода данных представляют собой бессерверные сервисы AWS.

Проектные решения и почему мы их приняли. Каждая из проблем заставляла делать выбор.

Ответы хранятся в таблицах

Поиск по тексту страницы, который сохраняет разметку таблицы, и предоставление Claude возможности просматривать изображение страницы при написании ответа

Текст дешево эмбеддить и искать; изображение восстанавливает то, что потерял текст, в момент цитирования показателя

Ответы должны быть проверяемыми

Цитируйте каждое утверждение с указанием его страницы и места на ней (таблица, график, текст, сноска, рисунок) и показывайте изображение страницы

Читатель может сразу перейти к источнику и увидеть, какого рода это доказательство

Стоимость и задержка

Индексируйте с помощью Embed Pro и отправляйте запросы с Embed Fast. Сохраняйте векторы в формате 1,024-размерных int8 векторов и сделайте Rerank и Parse опциональными этапами, чтобы эти эндпоинты можно было легко отключать

Тратьте средства на качество один раз — при индексации; поддерживайте высокую скорость обработки каждого вопроса; платите за дополнительные этапы только там, где они приносят пользу

Страницы, которые плохо распознаны

Направляйте на Parse только страницы с малым объемом текста и большим количеством таблиц

Parse применяется там, где это может изменить результат, и каждая страница обрабатывается ровно один раз

Длинные страницы, где важны лишь несколько строк

Отправляйте Claude фрагменты, которые выбрал инструмент Context Focus из Rerank, вместе с изображением страницы

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

Индексируйте с помощью Embed Pro, делайте запросы с помощью Embed Fast. У индексации и запросов разные задачи. Страница индексируется один раз заранее, поэтому вы можете позволить себе наиболее точную модель. Вопрос обрабатывается в момент ожидания пользователя, тысячи раз в день, поэтому скорость и стоимость одного вызова имеют первостепенное значение. Embed Pro и Embed Fast используют единое векторное пространство, а это значит, что вопрос, обработанный с помощью Fast, можно напрямую сравнить со страницами, обработанными с помощью Pro. Вы получаете качество Pro в индексе и скорость Fast для каждого вопроса без необходимости перестраивать индекс. На рисунке ниже показано, где располагается каждая модель.

Второй выбор — размер каждого вектора. Embed предлагает шесть вариантов размера выходных данных: от 256 до 2048 размерностей в формате float, int8 или в бинарном формате. Векторные представления используют метод Matryoshka, при котором модель обучается так, чтобы первые размерности несли в себе наибольший смысл, поэтому более короткий вектор сохраняет большую часть информации более длинного. Мы выбрали 1,024 размерности, сохраненные как int8, по одному байту на размерность:

  • Хранилище — 1,024-размерный вектор int8 занимает 1 КБ «сырого» хранилища по сравнению с 8 КБ для 2,048-размерного вектора float32, что дает уменьшение в 8 раз. Для миллиона страниц это составляет приблизительно от 1 ГБ до 8 ГБ исходных векторных данных. Фактический объем хранилища векторного индекса и затраты также будут зависеть от структур индексации, метаданных и накладных расходов инфраструктуры.
  • Качество — 1,024 находится в середине диапазона, а int8 сохраняет гораздо больше деталей, чем бинарный формат. Это разумный выбор по умолчанию, когда ответом должна быть именно правильная страница, а не просто похожая.
  • Когда стоит изменить настройки — Используйте 2,048 размерностей, если качество поиска важнее объема хранилища. Используйте векторы размерностью 512, 256 или бинарные векторы для очень больших архивов, где стоимость играет решающую роль; бинарный формат в 32 раза меньше, чем float32.

Что бы вы ни выбрали, на стороне запроса должны использоваться те же размерность и формат, что и в индексе. Изменение настроек в дальнейшем потребует повторного индексирования каждой страницы, поэтому стоит определиться на раннем этапе.

Встраивайте текст страницы и сохраняйте изображение для ответа. Embed может создавать векторы из текста страницы, страницы как изображения или из того и другого вместе в одном пространстве. Каждый вариант подходит для определенного типа документов.

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

Изображение страницы не требует извлечения текста. Таблицы, графики и макет отображаются такими, какими они выглядят на странице, и это работает для сканированных копий и фотографий. Это стоит дороже в расчете на страницу, сложнее объяснить, почему страница совпала с запросом, а для Rerank все равно требуется текст.

И то, и другое вместе (объединенный вектор текста и изображения) дает поиску оба представления страницы по цене изображения и с более ресурсоемким вызовом эмбеддинга.

Годовые отчеты и формы 10-K — это цифровые документы с хорошим текстом, поэтому мы индексируем текст страницы. То, что текст теряет (в основном графики и сложные таблицы), мы восстанавливаем в момент выдачи ответа, позволяя Claude увидеть изображение страницы. Если ваши страницы в основном представляют собой сканы, слайды, диаграммы или графики, такие как презентации для инвесторов, сканированные соглашения или факсимильные приложения, индексируйте изображение или оба варианта.

Единое векторное пространство для любого языка. Embed поддерживает более 100 языков и контекстное окно в 128 тыс. токенов. Вопрос и страница попадают в одно и то же пространство независимо от языка, поэтому вопрос на французском языке, например «impact de l'immobilier commercial sur le segment Global Banking de Bank of America», может напрямую найти английские страницы Bank of America. Затем Claude пишет ответ на языке вопроса и сохраняет цитаты в неизменном виде.

Мы выбрали этот подход вместо предварительного перевода вопросов на английский. Здесь нет этапа перевода, который нужно создавать, запускать или оплачивать, и нет риска, что неправильно переведенный термин направит поиск по ложному пути. Rerank Pro также является многоязычным и поддерживает более 100 языков. Как всегда, проверяйте важные для вас языки на собственных документах.

Сделайте Rerank опциональным этапом и сделайте его эффект видимым. Векторный поиск работает быстро, потому что каждая страница сравнивается с вопросом с помощью одного числа — расстояния между двумя векторами. Инструмент переранжирования работает иначе: он считывает вопрос и каждую страницу-кандидат вместе, что позволяет учитывать детали, которые один вектор вместить не может. Rerank Pro обрабатывает до 32 тыс. токенов вопроса и страницы вместе, работает более чем со 100 языками и обрабатывает полуструктурированный контент, такой как таблицы и JSON. При таком проектировании векторный поиск возвращает 30 кандидатов, а Rerank выбирает пять из них, которые отправляются в Claude.

Rerank находится на пути запроса, поэтому задержка его работы ощущается при каждом вопросе. Мы все равно выбрали Rerank Pro вместо Rerank Fast, потому что в финансовых исследованиях цена ошибки страницы выше, чем более медленный ответ. Если интерактивная скорость важнее для ваших пользователей, Rerank Fast принимает те же запросы и возвращает такие же результаты, поэтому переключение между ними — это настройка конфигурации, а не изменение кода.

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

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

Rerank 5 также возвращает откалиброванную оценку релевантности от 0 до 1 для каждой страницы, поэтому один и тот же порог означает одно и то же от одного вопроса к другому. Вы можете использовать его, чтобы сообщить пользователю об отсутствии хороших совпадений или инициировать другой поиск вместо предоставления ответов на основе слабых страниц.

Распознавайте с помощью Parse только те страницы, которые в этом нуждаются. Parse считывает изображение страницы и возвращает Markdown or content blocks, with bounding boxes, and understands tables, forms, diagrams and images. Это эндпоинт на базе GPU, оплачиваемый по часам, а чистая цифровая страница уже содержит пригодный для использования текст, поэтому мы используем его избирательно. Маршрутизатор на этапе приема данных решает для каждой страницы:

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

Результат Parse сохраняется, поэтому каждая страница обрабатывается только один раз, независимо от того, как часто вы перестраиваете индекс. Если вам нужны таблицы в виде данных для электронной таблицы или базы данных, Parse также является способом извлечь их со страницы.

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

Claude также получает указание отвечать исключительно на основе этих страниц, прямо заявлять об отсутствии ответа на них и цитировать каждое утверждение в формате [страница документа | тип], где типом может быть table (таблица), chart (диаграмма), text (текст), footnote (сноска) или figure (иллюстрация). Приложение превращает каждую цитату в пронумерованную ссылку на изображение страницы, отображает рядом с ней тип и повторяет его на странице ("Ответ взят из: таблица"). Аналитик может увидеть, на какую страницу и какой тип контента ссылается ассистент в подтверждение показателя капитала, и открыть исходную страницу для прямой проверки информации.

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

Отправляйте Claude только те фрагменты, которые имеют значение. Даже при наличии пяти правильных страниц большая часть каждой страницы не относится к вопросу. Страница формы 10-K может содержать целую таблицу, страницу факторов риска или несколько несвязанных примечаний, и Claude читает все это (и вы за это платите).

Rerank 5 может делать больше, чем просто упорядочивать страницы. При включенной функции Context Focus она также возвращает фрагменты на каждой странице, соответствующие вопросу, в виде диапазонов символов с оценкой релевантности. Это настройка в запросе Rerank, а не отдельная модель, и она не меняет ранжирование. В этой архитектуре функция запроса запрашивает у Rerank фрагменты на пяти выбранных страницах и отправляет Claude только эти фрагменты в порядке следования страниц вместо полного текста страницы.

Это дает три эффекта:

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

Компромиссом выступает контекст. Фрагмент сам по себе может терять то, что его окружает, например заголовки столбцов таблицы или год, к которому относится столбец. Context Focus наиболее эффективна для целевых вопросов, где можно идентифицировать и извлечь конкретную информацию. Структурированный контент, такой как таблицы и формы, сложнее разбивать на осмысленные фрагменты, поскольку важные взаимосвязи могут охватывать несколько разделов. Для более масштабных задач, таких как создание сводки по всей странице, предоставление полного содержимого страницы обычно дает более полные и точные результаты. Тем не менее внутренние оценки Cohere показывают, что Context Focus сохраняет подавляющее большинство показателей точности ответов даже при сокращении входных токенов на 50–75%, что доказывает: компромисс между сокращением токенов и точностью далеко не линейен.

Именно здесь изображение страницы оправдывает свое применение: Claude по-прежнему видит всю страницу целиком, поэтому может прочитать заголовки и единицы измерения, пропущенные во фрагментах. Если критически важен минимальный объем токенов, отправляйте фрагменты без изображений; если показатели должны быть абсолютно точными, отправляйте фрагменты вместе с изображениями. Context Focus возвращает релевантные фрагменты в рамках того же запроса Rerank без необходимости использования отдельной модели или дополнительного вызова API.

В демоверсии предусмотрены переключатели для каждого параметра: Context Focus и изображения страниц. Для каждого ответа отображается количество токенов, потраченных на Claude, и подсвечиваются отправленные фрагменты, что позволяет оценить этот компромисс на собственных вопросах.

Сделайте дорогие компоненты легко отключаемыми. Модели Cohere работают как эндпоинты SageMaker в реальном времени, а эндпоинт реального времени тарифицирует каждый час своего существования независимо от того, задает ли кто-либо вопросы. Для пилотного проекта или команды, работающей короткими сессиями, часы простоя графических процессоров составляют наибольшую статью расходов. Поэтому развертывание включает в себя одну настройку, которая удаляет все эндпоинты моделей, сохраняя при этом данные, индекс и веб-приложение. Повторное включение моделей в дальнейшем не требует повторной загрузки данных. В условиях стабильной промышленной эксплуатации вместо этого вы бы добавили автомасштабирование и оповещения.

Выбор конвейера для ваших документов. Набор необходимых этапов зависит от ваших документов. Приведенная ниже схема представляет собой руководство по принятию решений, которое мы используем. Оно состоит из двух шагов:

1. Нужно ли парсить страницы перед их встраиванием (эмбеддингом)2. Нужно ли выполнять переранжирование (rerank) результатов

  • Embed + Rerank — хорошая отправная точка для чистых цифровых документов, когда порядок важнее скорости.
  • Embed only — самый быстрый вариант, когда скорость важнее порядка.
  • Parse + Embed (с переранжированием или без него) предназначен для сканов, факсов, фотографий и плотных таблиц, где важны точные цифры.
  • Parse only используется для преобразования таблиц, форм и счетов в структурированные данные, а не для поиска.

Примечание: Rerank не ограничивается векторным поиском. Он также может улучшать результаты методов извлечения на основе ключевых слов, таких как BM25, обеспечивая такие рабочие процессы, как Parse + Rerank без необходимости использования эмбеддингов.

Вопросы, которые стоит задать о собственных документах:

Ваши документы цифровые и содержат качественный текст

Выполните эмбеддинг текста; начните без Parse

Страницы представляют собой сканы, фотографии или факсы

Выполните парсинг перед эмбеддингом или выполните эмбеддинг изображения страницы

Ответы представляют собой точные показатели в плотных таблицах

Выполните парсинг этих страниц и позвольте модели ответов прочитать изображение страницы

Страницы в основном состоят из диаграмм, слайдов или схем

Выполните эмбеддинг изображения страницы (отдельно или вместе с текстом) и позвольте модели ответов прочитать его

Интерактивная скорость имеет важнейшее значение

Выполните запрос с помощью Embed Fast; оставьте Rerank выключенным

Правильная страница часто оказывается внизу результатов

Добавьте Rerank

Страницы длинные, или стоимость входных токенов имеет значение

Включите Rerank с параметром Context Focus и отправьте модели ответов фрагменты

Что бы вы ни выбрали, протестируйте это на собственных документах и вопросах. Публичный бенчмарк показывает поведение модели на страницах этого бенчмарка, а не на ваших отчетах, сканах или руководствах по корпоративному стилю.

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

  • Страхование: документы полисов, претензии и формы, где структурированный вывод Parse может передаваться в последующие системы.
  • Юриспруденция: контракты, материалы дел и нормативные документы, где поиск пунктов требует цитирования на уровне страниц.
  • Производство и энергетика: технические руководства и документы по обеспечению соответствия требованиям, содержащие диаграммы и таблицы, где эмбеддинг или чтение изображения страницы позволяют сохранить применимость показателей.
  • Государственный сектор и науки о жизни: правительственные и нормативные отчеты, научные статьи.

Попробуйте самиМы создали демонстрационную версию этого решения, которую вы можете развернуть в собственном аккаунте AWS с помощью одного шаблона AWS CloudFormation. Шаблон создает эндпоинты моделей Cohere, векторный индекс, конвейер приема данных, API и веб-приложение с возможностью входа. Код находится на GitHub. [TODO: link to the GitHub repository.]

Масштаб демонстрацииДемонстрационная версия представляет собой рабочий отправной пункт, а не производственную систему. Она работает на трех публичных годовых отчетах (Bank of America, Morgan Stanley и Wells Fargo за 2024 финансовый год; 928 страниц) из финансового подмножества ViDoRe V3 benchmark (paper), в котором также представлены примеры вопросов на английском, французском, испанском, немецком, итальянском и португальском языках.

Чтобы демонстрация была компактной и быстрой в оценке, мы сделали несколько выборов, отличающихся от приведенного выше дизайна:

  • Предварительно извлеченный текст документов: Страницы индексируются с использованием текста, предоставленного набором данных бенчмарка, что упрощает развертывание. Хотя архитектура поддерживает Cohere Parse для сканированных и сложных документов, демоверсия не включает синтаксический анализ произвольных загруженных PDF-файлов.
  • Embed Pro как для индексации, так и для запросов: Демоверсия использует Embed Pro для индексации документов и эмбеддингов запросов, что исключает необходимость в отдельном эндпоинте Embed Fast и снижает затраты на GPU.
  • Rerank Fast вместо Rerank Pro: Rerank Fast работает на инстансах GPU меньшего размера, позволяя избежать более высоких требований к GPU и потенциальных ограничений емкости Rerank Pro. Обе модели используют одинаковый формат запросов и ответов, поэтому переключение на Rerank Pro требует лишь изменения конфигурации шаблона.
  • Настраиваемое извлечение и генерация ответов: Rerank включен по умолчанию в Ассистенте, с переключателями для Rerank, фокуса контекста и изображений страниц. Поиск выполняется без Rerank по умолчанию, но позволяет проводить сравнение бок о бок для оценки влияния на релевантность, задержку и использование токенов.
  • Минимальная инфраструктура GPU: Демоверсия использует один инстанс ml.g5.xlarge на каждую развернутую модель в регионе us-east-1 с пакетами моделей AWS Marketplace, настроенными для этого региона.
  • Упрощенная безопасность и доступ: Демоверсия включает одного пользователя, коллекцию OpenSearch с публичным сетевым доступом, защищенную политикой доступа к данным, и не содержит Bedrock Guardrails. Эти настройки минимизируют сложность развертывания и предназначены для оценки, а не для продакшна.
  • Фиксированный набор данных документов: Демоверсия загружает предопределенный набор страниц финансовой отчетности, а не поддерживает загрузку PDF-файлов пользователями.

Что следует учесть перед развертыванием в производственной среде:

  • Сеть: используйте эндпоинт VPC и частный доступ для OpenSearch Serverless.
  • Идентификация: используйте вашего провайдера идентификации с доступом к документам для каждого пользователя или команды.
  • Шифрование: корзина данных использует ключ AWS KMS, управляемый клиентом; другие хранилища используют ключи, управляемые или принадлежащие AWS.
  • Эксплуатация: добавьте мониторинг, алармы, автомасштабирование эндпоинтов и аларм по бюджету.
  • Модель запросов: добавьте Embed Fast для вопросов.
  • Реренкер: используйте Rerank Pro.

Разверните это

Ключевые соображения при проектировании:

  • Начните с качества извлечения. Выберите стратегию эмбеддингов на основе ваших документов и проверьте производительность извлечения перед оптимизацией генерации ответов.

Чтобы изучить модели, технологии и тесты производительности, относящиеся к этому решению:

  • Cohere Embed

О чём эта статья

Ещё в разделе «AI и машинное обучение»

Все →

Ещё от Cohere