Клиенты из сферы здравоохранения и биологических наук (HCLS) используют генеративный искусственный интеллект в качестве инструмента, позволяющего получать больше от своих данных. Варианты использования включают обобщение документа, чтобы помочь читателям сосредоточиться на ключевых моментах документа, и преобразование неструктурированного текста в стандартизированные форматы для выделения важных атрибутов. Благодаря уникальным форматам данных и строгим нормативным требованиям клиенты ищут возможность выбрать наиболее производительную и экономически эффективную модель, а также возможность выполнить необходимую настройку (тонкую настройку) в соответствии со своим бизнес-вариантом использования. В этом посте мы покажем вам, как развернуть модель большого языка (LLM) Falcon с помощью Amazon SageMaker JumpStart и использовать эту модель для обобщения длинных документов с помощью LangChain и Python.
Обзор решения
Amazon SageMaker основан на двадцатилетнем опыте Amazon в разработке реальных приложений машинного обучения, включая рекомендации продуктов, персонализацию, интеллектуальные покупки, робототехнику и устройства с голосовой поддержкой. SageMaker — это управляемая служба, соответствующая требованиям HIPAA, которая предоставляет инструменты, которые позволяют специалистам по данным, инженерам ML и бизнес-аналитикам внедрять инновации с помощью ML. В состав SageMaker входит Amazon SageMaker Studio, интегрированная среда разработки (IDE), специально созданная для совместных рабочих процессов машинного обучения, которая, в свою очередь, содержит широкий спектр решений для быстрого запуска и предварительно обученных моделей машинного обучения в интегрированном хабе под названием SageMaker JumpStart. С помощью SageMaker JumpStart вы можете использовать предварительно обученные модели, такие как Falcon LLM, со встроенными образцами блокнотов и поддержкой SDK, чтобы экспериментировать и развертывать эти мощные модели-трансформеры. Вы можете использовать SageMaker Studio и SageMaker JumpStart для развертывания и запроса собственной генеративной модели в своей учетной записи AWS.
Вы также можете гарантировать, что полезные данные вывода не покинут ваше VPC. Вы можете подготовить модели как конечные точки с одним арендатором и развернуть их с сетевой изоляцией. Кроме того, вы можете курировать и управлять выбранным набором моделей, которые удовлетворяют вашим собственным требованиям безопасности, используя функцию концентратора частных моделей в SageMaker JumpStart и сохраняя там утвержденные модели. SageMaker распространяется на HIPAA BAA, SOC123 и HITRUST CSF.
Сокол, LLM — это большая языковая модель, обученная исследователями из Института технологических инноваций (TII) на более чем 1 триллионе токенов с использованием AWS. Falcon имеет множество различных вариаций: два его основных компонента Falcon 40B и Falcon 7B содержат 40 миллиардов и 7 миллиардов параметров соответственно, а также тонко настроенные версии, обученные для выполнения конкретных задач, например, выполнения инструкций. Falcon хорошо справляется с различными задачами, включая обобщение текста, анализ настроений, ответы на вопросы и общение. В этом посте представлено пошаговое руководство, которому вы можете следовать, чтобы развернуть Falcon LLM в своей учетной записи AWS, используя экземпляр управляемого блокнота через SageMaker JumpStart, чтобы поэкспериментировать со суммированием текста.
Центр моделей SageMaker JumpStart включает полные блокноты для развертывания и запроса каждой модели. На момент написания этой статьи в концентраторе моделей SageMaker JumpStart доступно шесть версий Falcon: Falcon 40B Instruct BF16, Falcon 40B BF16, Falcon 180B BF16, Falcon 180B Chat BF16, Falcon 7B Instruct BF16 и Falcon 7B BF16. В этом посте используется модель Falcon 7B Instruct.
В следующих разделах мы покажем, как приступить к обобщению документов, развернув Falcon 7B в SageMaker Jumpstart.
Предварительные условия
Для работы с этим руководством вам понадобится учетная запись AWS с доменом SageMaker. Если у вас еще нет домена SageMaker, см. раздел «Включение в домен Amazon SageMaker», чтобы создать его.
Разверните Falcon 7B с помощью SageMaker JumpStart
Чтобы развернуть модель, выполните следующие шаги:
- Перейдите в среду SageMaker Studio из консоли SageMaker.
- В IDE под SageMaker JumpStart в области навигации выберите Модели, ноутбуки, решения.
- Разверните модель инструкции Falcon 7B в конечной точке для вывода.
Откроется карточка модели модели Falcon 7B Instruct BF16. На этой странице вы можете найти Развертывать или Тренироваться параметры, а также ссылки для открытия образцов блокнотов в SageMaker Studio. В этом посте для развертывания модели будет использоваться образец блокнота из SageMaker JumpStart.
- Выбирать Открыть блокнот.
- Запустите первые четыре ячейки блокнота, чтобы развернуть конечную точку Falcon 7B Instruct.
Вы можете просмотреть развернутые модели JumpStart на странице Запущены ресурсы JumpStart страница.
- На панели навигации под SageMaker Jumpstartвыбирать Запущены ресурсы JumpStart.
- Выбрать Конечные точки модели вкладка, чтобы просмотреть состояние вашей конечной точки.
Развернув конечную точку Falcon LLM, вы готовы запросить модель.
Запустите свой первый запрос
Чтобы выполнить запрос, выполните следующие шаги:
- На Файл меню, выбирай Новый и Блокнот открыть новый блокнот.
Вы также можете скачать готовый блокнот здесь.
- При появлении запроса выберите образ, ядро и тип экземпляра. Для этого поста мы выбираем образ Data Science 3.0, ядро Python 3 и экземпляр ml.t3.medium.
- Импортируйте модули Boto3 и JSON, введя следующие две строки в первую ячейку:
- Нажимать Шифт + Ввод для запуска ячейки.
- Далее вы можете определить функцию, которая будет вызывать вашу конечную точку. Эта функция принимает полезные данные словаря и использует их для вызова клиента среды выполнения SageMaker. Затем он десериализует ответ и печатает введенный и сгенерированный текст.
Полезная нагрузка включает в себя приглашение в качестве входных данных, а также параметры вывода, которые будут переданы в модель.
- Вы можете использовать эти параметры вместе с подсказкой, чтобы настроить выходные данные модели для вашего варианта использования:
Запрос с подсказкой резюмирования
В этом посте используется образец исследовательской работы для демонстрации обобщения. Пример текстового файла относится к автоматическому обобщению текста в биомедицинской литературе. Выполните следующие шаги:
- Скачать PDF и скопируйте текст в файл с именем
document.txt
. - В SageMaker Studio выберите значок загрузки и загрузите файл в свой экземпляр SageMaker Studio.
В стандартной комплектации Falcon LLM обеспечивает поддержку суммирования текста.
- Давайте создадим функцию, которая будет использовать методы быстрого проектирования для подведения итогов.
document.txt
:
Вы заметите, что для более длинных документов появляется ошибка — Falcon, как и все другие LLM, имеет ограничение на количество токенов, передаваемых в качестве входных данных. Мы можем обойти это ограничение, используя расширенные возможности суммирования LangChain, которые позволяют передавать в LLM гораздо больший объем входных данных.
Импортируйте и запустите цепочку обобщения
LangChain — это программная библиотека с открытым исходным кодом, которая позволяет разработчикам и специалистам по данным быстро создавать, настраивать и развертывать собственные генеративные приложения без управления сложными взаимодействиями машинного обучения. Обычно она используется для абстрагирования многих распространенных случаев использования генеративных языковых моделей ИИ всего за несколько строки кода. Поддержка LangChain сервисов AWS включает поддержку конечных точек SageMaker.
LangChain предоставляет доступный интерфейс для LLM. Его функции включают инструменты для создания шаблонов подсказок и цепочек подсказок. Эти цепочки можно использовать для суммирования текстовых документов, длина которых превышает длину поддерживаемой языковой моделью, за один вызов. Вы можете использовать стратегию сокращения карт для обобщения длинных документов, разбивая их на управляемые фрагменты, суммируя их и комбинируя (и суммируя снова, если необходимо).
- Давайте для начала установим LangChain:
- Импортируйте соответствующие модули и разбейте длинный документ на части:
- Чтобы LangChain эффективно работал с Falcon, вам необходимо определить классы обработчиков контента по умолчанию для корректного ввода и вывода:
- Вы можете определить пользовательские подсказки как
PromptTemplate
объекты, основной механизм подсказок с помощью LangChain, для подхода к суммированию с сокращением карты. Это необязательный шаг, поскольку подсказки сопоставления и объединения предоставляются по умолчанию, если параметры в вызове для загрузки цепочки суммирования (load_summarize_chain
) не определены.
- LangChain поддерживает LLM, размещенные на конечных точках вывода SageMaker, поэтому вместо использования AWS Python SDK вы можете инициализировать соединение через LangChain для большей доступности:
- Наконец, вы можете загрузить цепочку обобщения и выполнить сводку по входным документам, используя следующий код:
Поскольку verbose
параметр установлен на True
, вы увидите все промежуточные результаты метода сокращения карты. Это полезно для отслеживания последовательности событий и получения окончательного итога. Благодаря такому подходу с сокращением карты вы можете эффективно суммировать документы гораздо дольше, чем обычно допускается максимальным пределом входных токенов модели.
Очистить
После того как вы закончите использовать конечную точку вывода, важно удалить ее, чтобы избежать ненужных затрат на следующие строки кода:
Использование других моделей фундамента в SageMaker JumpStart
Использование других базовых моделей, доступных в SageMaker JumpStart, для обобщения документов требует минимальных затрат на настройку и развертывание. LLM иногда различаются в зависимости от структуры входных и выходных форматов, а по мере добавления в SageMaker JumpStart новых моделей и готовых решений в зависимости от реализации задачи может потребоваться внести следующие изменения в код:
- Если вы выполняете суммирование через
summarize()
(метод без использования LangChain), возможно, вам придется изменить структуру JSONpayload
параметр, а также обработку переменной ответа вquery_endpoint()
функция - Если вы выполняете суммирование через LangChain
load_summarize_chain()
метод, возможно, вам придется изменитьContentHandlerTextSummarization
класс, в частностиtransform_input()
иtransform_output()
функции, чтобы правильно обрабатывать полезную нагрузку, которую ожидает LLM, и выходные данные, возвращаемые LLM.
Модели Foundation различаются не только по таким факторам, как скорость и качество вывода, но также по форматам ввода и вывода. См. соответствующую информационную страницу LLM об ожидаемом вводе и выводе.
Заключение
Модель Falcon 7B Instruct доступна в центре моделей SageMaker JumpStart и подходит для ряда вариантов использования. В этом посте показано, как вы можете развернуть собственную конечную точку Falcon LLM в своей среде с помощью SageMaker JumpStart и провести первые эксперименты в SageMaker Studio, что позволит вам быстро создавать прототипы моделей и плавно переходить к производственной среде. С помощью Falcon и LangChain вы можете эффективно суммировать подробные документы в области здравоохранения и биологических наук в любом масштабе.
Дополнительную информацию о работе с генеративным ИИ на AWS см. в разделе «Анонс новых инструментов для разработки с использованием генеративного ИИ на AWS». Вы можете начать экспериментировать и создавать доказательства концепции обобщения документов для своих приложений GenAI, ориентированных на здравоохранение и медико-биологические науки, используя метод, описанный в этом посте. Когда Amazon Bedrock станет общедоступным, мы опубликуем следующий пост, показывающий, как можно реализовать обобщение документов с помощью Amazon Bedrock и LangChain.
Об авторах
Джон Китаока — архитектор решений в Amazon Web Services. Джон помогает клиентам проектировать и оптимизировать рабочие нагрузки AI/ML на AWS, чтобы помочь им достичь своих бизнес-целей.
Джош Феймстад — архитектор решений в Amazon Web Services. Джош работает с клиентами из государственного сектора над созданием и внедрением облачных подходов для достижения бизнес-приоритетов.