Семена смены парадигмы машинного обучения (ML) существовали на протяжении десятилетий, но с помощью готовой доступности практически бесконечной вычислительной способности, массового распространения данных и быстрого развития технологий ML, клиенты в разных отраслях быстро внедряют и используют технологии ML для трансформации своих бизнеса.
Совсем недавно генеративные приложения ИИ привлекли внимание и воображение каждого. Мы действительно находимся в захватывающей точке перегиба в широком распространении ML, и мы считаем, что каждый опыт работы с клиентами и применение будут заново изобретены с помощью генеративного ИИ.
Генеративный ИИ - это тип ИИ, который может создавать новый контент и идеи, включая разговоры, истории, изображения, видео и музыку. Как и все ИИ, генеративный ИИ оснащен моделями ML-очень большими моделями, которые предварительно обучены на обширной корпорации данных и обычно называют моделями фундамента (FMS).
Размер и общий характер FMS отличает их от традиционных моделей ML, которые обычно выполняют определенные задачи, такие как анализ текста для настроений, классификации изображений и тенденций прогнозирования.

С традиционными моделями ML, чтобы выполнить каждую конкретную задачу, вам необходимо собирать маркированные данные, обучить модель и развернуть эту модель. С моделями фундамента, вместо того, чтобы собирать маркированные данные для каждой модели и обучать несколько моделей, вы можете использовать один и тот же предварительно обученный FM для адаптации различных задач. Вы также можете настроить FMS для выполнения специфичных для домена функций, которые дифференцируются по вашему бизнесу, используя лишь небольшую часть данных и вычисления, необходимые для обучения модели с нуля.
Генеративный ИИ может нарушить многие отрасли, революционизируя способ создания и потребления контента. Оригинальное производство контента, генерация кода, улучшение обслуживания клиентов и суммирование документов - это типичные варианты использования генеративного ИИ.
Amazon SageMaker Jumpstart предоставляет предварительно обученные модели с открытым исходным кодом для широкого спектра типов проблем, которые помогут вам начать работу с ML. Вы можете постепенно тренировать и настроить эти модели перед развертыванием. Jumpstart также предоставляет шаблоны решений, которые настраивают инфраструктуру для общих вариантов использования, и исполняемые примеры ноутбуков для ML с Amazon SageMaker.
Благодаря более 600 предварительно обученным моделям, доступным и растущим каждый день, Jumpstart позволяет разработчикам быстро и легко включать передовые методы ML в свои рабочие процессы производства. Вы можете получить доступ к предварительно обученным моделям, шаблонам решений и примерам через целевую страницу Jumpstart в Amazon Sagemaker Studio. Вы также можете получить доступ к моделям Jumpstart, используя SageMaker Python SDK. Информацию о том, как использовать модели Jumpstart, программно, см. Алгоритмы SageMaker Jumpstart с предварительно предварительными моделями.
В апреле 2023 года AWS представила Amazon Bedrock, которая предоставляет способ создать генеративные приложения с AI с помощью предварительно обученных моделей от стартапов, включая AI21 Labs, Anpropic и AI Stability. Amazon Bedrock также предлагает доступ к моделям Foundation Titan, семейству моделей, обученных на месте AWS. Благодаря серверному опыту Amazon Bedrock вы можете легко найти правильную модель для ваших потребностей, начать быстро, настраивать FMS с вашими собственными данными, а также легко интегрировать и развернуть их в ваши приложения, используя инструменты AWS и возможности, с которыми вы знакомы (включая интеграции с функциями SageMaker ML, такие как эксперименты Amazon SageMaker, чтобы проверить модели и Amazon SageMaker, чтобы управлять вашими FMS в SCLESTRURERERS, чтобы в соответствии с тем, что в соответствии с тем, что в соответствии с тем, что в соответствии с тем, что в соответствии с тем, что они управляют вашим FMS, в соответствии с тем, что они управляют вашим FMS в SAGEMARERS, чтобы выполнить все возможное.
В этом посте мы показываем, как развернуть модели изображений и генеративных искусственных интеллекта с изображением и текста из JumpStart, используя комплект разработки AWS Cloud (AWS CDK). AWS CDK-это структура разработки программного обеспечения с открытым исходным кодом для определения ваших облачных ресурсов приложений с использованием знакомых языков программирования, таких как Python.
Мы используем модель стабильной диффузии для генерации изображений и модель Flan-T5-XL для понимания естественного языка (NLU) и генерации текста от обнимающего лица в JumpStart.
Веб-приложение построено на Streamlit, библиотеке Python с открытым исходным кодом, которая позволяет легко создавать и обмениваться красивыми, пользовательскими веб-приложениями для ML и Data Science. Мы размещаем веб -приложение с помощью Amazon Elastic Container Service (Amazon ECS) с AWS Fargate, и к нему доступ к балансировщику нагрузки приложения. Fargate - это технология, которую вы можете использовать с Amazon ECS для запуска контейнеров без необходимости управления серверами, кластерами или виртуальными машинами. Генеративные конечные точки модели искусственного интеллекта запускаются из изображений Jumpstart в реестре Amazon Elastic Contastic Contastic (Amazon ECR). Данные модели хранятся в Amazon Simple Service (Amazon S3) в учетной записи Jumpstart. Веб -приложение взаимодействует с моделями с помощью функций Amazon API и AWS Lambda, как показано на следующей диаграмме.

API Gateway предоставляет веб -приложению и другим клиентам стандартный Restful Interface, защищая функции Lambda, которые взаимодействуют с моделью. Это упрощает код приложения клиента, который потребляет модели. В этом примере конечные точки API шлюза доступны общедоступным, что позволяет расширить эту архитектуру для реализации различных элементов управления доступа API и интеграции с другими приложениями.
В этом посте мы проведем вас по следующим шагам:
Мы предоставляем обзор кода в этом проекте в Приложении в конце этого поста.
У вас должны быть следующие предпосылки:
Вы можете развернуть инфраструктуру в этом уроке с вашего локального компьютера, или вы можете использовать AWS Cloud9 в качестве рабочей станции развертывания. AWS Cloud9 предварительно загружен с AWS CLI, AWS CDK и Docker. Если вы выберете AWS Cloud9, создайте среду из консоли AWS.
Ориентировочная стоимость для завершения этого поста составляет 50 долларов США, при условии, что вы оставляете ресурсы, работающие в течение 8 часов. Убедитесь, что вы удаляете ресурсы, которые вы создаете в этом посте, чтобы избежать текущих сборов.
Если у вас еще нет AWS CLI на вашей локальной машине, см. Установку или обновление последней версии CLI AWS и настройку CLI AWS.
Установите инструментарий AWS CDK по всему миру, используя следующую команду диспетчера пакетов узлов:
npm install -g aws-cdk-lib@latest
Запустите следующую команду, чтобы проверить правильную установку и распечатать номер версии AWS CDK:
cdk --version
Убедитесь, что у вас установлен Docker на местной машине. Выпустите следующую команду для проверки версии:
docker --version
На вашей локальной машине клонируйте приложение AWS CDK со следующей командой:
git clone https://github.com/aws-samples/generative-ai-sagemaker-cdk-demo.git
Перейдите к папке проекта:
cd generative-ai-sagemaker-cdk-demo
Прежде чем развернуть приложение, давайте рассмотрим структуру каталогов:
.
├── LICENSE
├── README.md
├── app.py
├── cdk.json
├── code
│ ├── lambda_txt2img
│ │ └── txt2img.py
│ └── lambda_txt2nlu
│ └── txt2nlu.py
├── construct
│ └── sagemaker_endpoint_construct.py
├── images
│ ├── architecture.png
│ ├── ...
├── requirements-dev.txt
├── requirements.txt
├── source.bat
├── stack
│ ├── __init__.py
│ ├── generative_ai_demo_web_stack.py
│ ├── generative_ai_txt2img_sagemaker_stack.py
│ ├── generative_ai_txt2nlu_sagemaker_stack.py
│ └── generative_ai_vpc_network_stack.py
├── tests
│ ├── __init__.py
│ └── ...
└── web-app
├── Dockerfile
├── Home.py
├── configs.py
├── img
│ └── sagemaker.png
├── pages
│ ├── 2_Image_Generation.py
│ └── 3_Text_Generation.py
└── requirements.txt Папка stack содержит код для каждого стека в приложении AWS CDK. code папка содержит код для функций Amazon Lambda. Репозиторий также содержит веб-приложение, расположенное под папкой web-app .
Файл cdk.json сообщает The AWS CDK Toolkit, как запустить ваше приложение.
Это приложение было протестировано в регионе us-east-1 , но оно должно работать в любом регионе, в котором есть необходимые услуги и тип экземпляра вывода ml.g4dn.4xlarge указанные в App.py.
Этот проект настроен как стандартный проект Python. Создайте виртуальную среду Python, используя следующий код:
python3 -m venv .venv
Используйте следующую команду для активации виртуальной среды:
source .venv/bin/activate
Если вы на платформе Windows, активируйте виртуальную среду следующим образом:
.venvScriptsactivate.bat
После того, как виртуальная среда активирована, обновите PIP до последней версии:
python3 -m pip install --upgrade pip
Установите требуемые зависимости:
pip install -r requirements.txt
Прежде чем развернуть какое -либо приложение AWS CDK, вам необходимо загрузить пространство в своей учетной записи и регион, в который вы используете. Для начальной загрузки в регионе по умолчанию выпустите следующую команду:
cdk bootstrap
Если вы хотите развернуть в конкретной учетной записи и регионе, выполните следующую команду:
cdk bootstrap aws://ACCOUNT-NUMBER/REGION
Для получения дополнительной информации об этой настройке, посетите работу с AWS CDK.
Приложение AWS CDK содержит несколько стеков, как показано на следующей диаграмме.

Вы можете перечислить стеки в своем приложении CDK со следующей командой:
cdk listВы должны получить следующий вывод:
GenerativeAiTxt2imgSagemakerStack
GenerativeAiTxt2nluSagemakerStack
GenerativeAiVpcNetworkStack
GenerativeAiDemoWebStack
Другие полезные команды AWS CDK:
cdk ls - перечисляет все стеки в приложенииcdk synth - испускает синтезированный шаблон облачной информации AWScdk deploy - развертывает этот стек в вашу учетную запись и регион по умолчанию.cdk diff - сравнивает развернутый стек с текущим состояниемcdk docs - открывает документацию AWS CDKВ следующем разделе показано, как развернуть приложение AWS CDK.
Приложение AWS CDK будет развернуто в регионе по умолчанию на основе вашей конфигурации рабочей станции. Если вы хотите заставить развертывание в определенном регионе, установите соответствующую переменную среды AWS_DEFAULT_REGION .
На этом этапе вы можете развернуть приложение AWS CDK. Сначала вы запускаете стек VPC Network:
cdk deploy GenerativeAiVpcNetworkStack
Если вам предложено, введите y , чтобы продолжить развертывание. Вы должны увидеть список ресурсов AWS, которые предоставляются в стеке. Этот шаг занимает около 3 минут.
Затем вы запускаете стек веб -приложений:
cdk deploy GenerativeAiDemoWebStack
После анализа стека AWS CDK отобразит список ресурсов в стеке. Введите Y, чтобы продолжить развертывание. Этот шаг занимает около 5 минут.

Обратите внимание на WebApplicationServiceURL с вывода, так как вы будете использовать его позже. Вы также можете получить его позже в консоли CloudFormation, в рамках выходов стека GenerativeAiDemoWebStack .
Теперь запустите стек конечных точек с генерацией изображений.
cdk deploy GenerativeAiTxt2imgSagemakerStack
Этот шаг занимает около 8 минут. Конечная точка генерации изображений развернута, мы теперь можем использовать ее.
Первый пример демонстрирует, как использовать стабильную диффузию, мощную методику генеративного моделирования, которая позволяет создавать высококачественные изображения из текстовых подсказок.
WebApplicationServiceURL с вывода GenerativeAiDemoWebStack в вашем браузере. 
На панели навигации выберите генерацию изображений .
Имя конечной точки SageMaker и поля URL API GW будут предварительно заполнены, но вы можете изменить подсказку для описания изображения, если хотите.
Выберите «Создать изображение» .

Приложение позвонит в конечную точку SageMaker. Это занимает несколько секунд. Будет отображаться изображение с чарастеристикой в описании изображения.

Второй пример сосредоточен на использовании модели FLAN-T5-XL, которая представляет собой основу или модель большого языка (LLM), для достижения внутреннего обучения для генерации текста, а также для решения широкого спектра задач понимания естественного языка (NLU) и генерации естественного языка (NLG).
Некоторые среды могут ограничить количество конечных точек, которые вы можете запустить за раз. Если это так, вы можете запустить одну конечную точку SageMaker за раз. Чтобы остановить конечную точку SageMaker в приложении AWS CDK, вы должны уничтожить развернутую стек конечной точки и перед запуском другой стеки конечных точек. Чтобы отказаться от конечной точки с генерацией изображений ИИ, выпустите следующую команду:
cdk destroy GenerativeAiTxt2imgSagemakerStack
Затем запустите стек конечных точек AI генерации текста:
cdk deploy GenerativeAiTxt2nluSagemakerStack
Введите y в подсказках.
После того, как стек конечной точки генерации текста запускается, выполните следующие шаги:

Ниже контекст вы найдете несколько заполненных запросов в вариантах раскрывающегося меню.

Вы также можете ввести свой собственный запрос в поле «Входные запросы» и выбрать «Создать ответ» .

На консоли AWS CloudFormation выберите стеки на панели навигации, чтобы просмотреть развертываемые стеки.

На консоли Amazon ECS вы можете увидеть кластеры на странице кластеров .

На консоли AWS Lambda вы можете увидеть функции на странице функций .

На консоли API Gateway вы можете увидеть конечные точки API Gateway на странице APIS .

На консоли SageMaker вы можете увидеть развернутые конечные точки модели на странице конечных точек .

Когда стеки запускаются, создаются некоторые параметры. Они хранятся в магазине параметров AWS Systems Manager. Чтобы просмотреть их, выберите хранилище параметров на панели навигации на консоли AWS Systems Manager.

Чтобы избежать ненужных затрат, очистите всю инфраструктуру, созданную со следующей командой на вашей рабочей станции:
cdk destroy --all
Введите y в подсказке. Этот шаг занимает около 10 минут. Проверьте, удаляются ли все ресурсы на консоли. Также удалите активы S3, созданные AWS CDK на консоли Amazon S3, а также репозитории активов на Amazon ECR.
Как показано в этом посте, вы можете использовать AWS CDK для развертывания генеративных моделей искусственного интеллекта в Jumpstart. Мы показали пример генерации изображений и пример генерации текста с использованием пользовательского интерфейса, питаемого от Streamlit, Lambda и API -шлюза.
Теперь вы можете создать свои генеративные проекты искусственного интеллекта, используя предварительно обученные модели искусственного интеллекта в Jumpstart. Вы также можете расширить этот проект, чтобы настраивать модели фундамента для вашего варианта использования и управлять доступом к конечным точкам шлюза API.
Мы приглашаем вас проверить решение и внести свой вклад в проект на GitHub.
Этот пример кода предоставляется в соответствии с измененной лицензией MIT. См. Файл лицензии для получения дополнительной информации. Кроме того, просмотрите соответствующие лицензии на стабильную диффузию и модели Flan-T5-XL на обнимающееся лицо.
Hantzley Tauckoor - лидер архитектуры APJ Solutions Architecture, базирующийся в Сингапуре. Он имеет 20 -летний опыт работы в индустрии ИКТ, охватывающих несколько функциональных областей, включая архитектуру решений, развитие бизнеса, стратегию продаж, консалтинг и лидерство. Он возглавляет группу архитекторов Senior Solutions, которые позволяют партнерам разрабатывать совместные решения, создавать технические возможности и управлять ими на этапе реализации, когда клиенты мигрируют и модернизируют свои приложения в AWS. Вне работы он любит проводить время со своей семьей, смотреть фильмы и походы.
Kwonyul Choi - технический директор Babitalk, корейской платформы красоты, базирующейся в Сеуле. До этой роли Кониол работал инженером по разработке программного обеспечения в AWS, сосредоточившись на AWS CDK и Amazon SageMaker.
Arunprasath Shankar - старший архитектор специализированных решений AI/ML с AWS, помогая глобальным клиентам эффективно и эффективно масштабировать свои решения в области искусственного интеллекта в облаке. В свободное время Арун любит смотреть научно-фантастические фильмы и слушать классическую музыку.
Satish Upreti - это миграционный ведущий PSA и Security MME в организации партнера в APJ. Сатиш имеет 20-летний опыт работы, охватывающий локальный личный облако и общественные облачные технологии. С момента присоединения к AWS в августе 2020 года в качестве специалиста по миграции он предоставляет обширные технические консультации и поддержку партнерам AWS для планирования и реализации сложных миграций.
В этом разделе мы предоставляем обзор кода в этом проекте.
Приложение AWS CDK
Основное приложение AWS CDK содержится в файле app.py в корневом каталоге. Проект состоит из нескольких стеков, поэтому мы должны импортировать стеки:
#!/usr/bin/env python3
import aws_cdk as cdk
from stack . generative_ai_vpc_network_stack import GenerativeAiVpcNetworkStack
from stack . generative_ai_demo_web_stack import GenerativeAiDemoWebStack
from stack . generative_ai_txt2nlu_sagemaker_stack import GenerativeAiTxt2nluSagemakerStack
from stack . generative_ai_txt2img_sagemaker_stack import GenerativeAiTxt2imgSagemakerStackМы определяем наши генеративные модели искусственного интеллекта и получаем связанные URI от SageMaker:
from script . sagemaker_uri import *
import boto3
region_name = boto3 . Session (). region_name
env = { "region" : region_name }
#Text to Image model parameters
TXT2IMG_MODEL_ID = "model-txt2img-stabilityai-stable-diffusion-v2-1-base"
TXT2IMG_INFERENCE_INSTANCE_TYPE = "ml.g4dn.4xlarge"
TXT2IMG_MODEL_TASK_TYPE = "txt2img"
TXT2IMG_MODEL_INFO = get_sagemaker_uris ( model_id = TXT2IMG_MODEL_ID ,
model_task_type = TXT2IMG_MODEL_TASK_TYPE ,
instance_type = TXT2IMG_INFERENCE_INSTANCE_TYPE ,
region_name = region_name )
#Text to NLU image model parameters
TXT2NLU_MODEL_ID = "huggingface-text2text-flan-t5-xl"
TXT2NLU_INFERENCE_INSTANCE_TYPE = "ml.g4dn.4xlarge"
TXT2NLU_MODEL_TASK_TYPE = "text2text"
TXT2NLU_MODEL_INFO = get_sagemaker_uris ( model_id = TXT2NLU_MODEL_ID ,
model_task_type = TXT2NLU_MODEL_TASK_TYPE ,
instance_type = TXT2NLU_INFERENCE_INSTANCE_TYPE ,
region_name = region_name ) Функция get_sagemaker_uris получает всю информацию о модели из Amazon Jumpstart. См. Script/sagemaker_uri.py.
Затем мы создаем создание стеков:
app = cdk . App ()
network_stack = GenerativeAiVpcNetworkStack ( app , "GenerativeAiVpcNetworkStack" , env = env )
GenerativeAiDemoWebStack ( app , "GenerativeAiDemoWebStack" , vpc = network_stack . vpc , env = env )
GenerativeAiTxt2nluSagemakerStack ( app , "GenerativeAiTxt2nluSagemakerStack" , env = env , model_info = TXT2NLU_MODEL_INFO )
GenerativeAiTxt2imgSagemakerStack ( app , "GenerativeAiTxt2imgSagemakerStack" , env = env , model_info = TXT2IMG_MODEL_INFO )
app . synth () Первым стеком запуска является стек VPC, GenerativeAiVpcNetworkStack . Стек веб -приложений, GenerativeAiDemoWebStack , зависит от стека VPC. Зависимость осуществляется с помощью параметров прохождения vpc=network_stack.vpc .
См. App.py для полного кода.
VPC Network Stack
В стеке GenerativeAiVpcNetworkStack мы создаем VPC с публичной подсети и частной подсети, охватывающей две зоны доступности (AZS):
self . output_vpc = ec2 . Vpc ( self , "VPC" ,
nat_gateways = 1 ,
ip_addresses = ec2 . IpAddresses . cidr ( "10.0.0.0/16" ),
max_azs = 2 ,
subnet_configuration = [
ec2 . SubnetConfiguration ( name = "public" , subnet_type = ec2 . SubnetType . PUBLIC , cidr_mask = 24 ),
ec2 . SubnetConfiguration ( name = "private" , subnet_type = ec2 . SubnetType . PRIVATE_WITH_EGRESS , cidr_mask = 24 )
]
)См. /Stack/generative_ai_vpc_network_stack.py для полного кода.
Демо -веб -прикладной стек
В стеке GenerativeAiDemoWebStack мы запускаем функции Lambda и соответствующие конечные точки Api API API, через которые веб -приложение взаимодействует с конечными точками модели SageMaker. Смотрите следующий фрагмент кода:
# Defines an AWS Lambda function for Image Generation service
lambda_txt2img = _lambda . Function (
self , "lambda_txt2img" ,
runtime = _lambda . Runtime . PYTHON_3_9 ,
code = _lambda . Code . from_asset ( "code/lambda_txt2img" ),
handler = "txt2img.lambda_handler" ,
role = role ,
timeout = Duration . seconds ( 180 ),
memory_size = 512 ,
vpc_subnets = ec2 . SubnetSelection (
subnet_type = ec2 . SubnetType . PRIVATE_WITH_EGRESS
),
vpc = vpc
)
# Defines an Amazon API Gateway endpoint for Image Generation service
txt2img_apigw_endpoint = apigw . LambdaRestApi (
self , "txt2img_apigw_endpoint" ,
handler = lambda_txt2img
)Веб -приложение используется в контейнер и размещено на Amazon ECS с FARGATE. Смотрите следующий фрагмент кода:
# Create Fargate service
fargate_service = ecs_patterns . ApplicationLoadBalancedFargateService (
self , "WebApplication" ,
cluster = cluster , # Required
cpu = 2048 , # Default is 256 (512 is 0.5 vCPU, 2048 is 2 vCPU)
desired_count = 1 , # Default is 1
task_image_options = ecs_patterns . ApplicationLoadBalancedTaskImageOptions (
image = image ,
container_port = 8501 ,
),
#load_balancer_name="gen-ai-demo",
memory_limit_mib = 4096 , # Default is 512
public_load_balancer = True ) # Default is TrueСм. /Stack/Generative_AI_DEMO_WEB_STACK.PY для полного кода.
Генерация изображений SageMaker модель конечных точек
Степень GenerativeAiTxt2imgSagemakerStack создает конечную точку модели генерации изображений от Jumpstart SageMaker и хранит имя конечной точки в магазине параметров AWS Systems Manager. Этот параметр будет использоваться веб -приложением. Смотрите следующий код:
endpoint = SageMakerEndpointConstruct ( self , "TXT2IMG" ,
project_prefix = "GenerativeAiDemo" ,
role_arn = role . role_arn ,
model_name = "StableDiffusionText2Img" ,
model_bucket_name = model_info [ "model_bucket_name" ],
model_bucket_key = model_info [ "model_bucket_key" ],
model_docker_image = model_info [ "model_docker_image" ],
variant_name = "AllTraffic" ,
variant_weight = 1 ,
instance_count = 1 ,
instance_type = model_info [ "instance_type" ],
environment = {
"MMS_MAX_RESPONSE_SIZE" : "20000000" ,
"SAGEMAKER_CONTAINER_LOG_LEVEL" : "20" ,
"SAGEMAKER_PROGRAM" : "inference.py" ,
"SAGEMAKER_REGION" : model_info [ "region_name" ],
"SAGEMAKER_SUBMIT_DIRECTORY" : "/opt/ml/model/code" ,
},
deploy_enable = True
)
ssm . StringParameter ( self , "txt2img_sm_endpoint" , parameter_name = "txt2img_sm_endpoint" , string_value = endpoint . endpoint_name )См. /Stack/Generative_AI_TXT2IMG_SAGEMAKER_STACK.PY для полного кода.
NLU и генерация текста SageMaker Model Stack
Степень GenerativeAiTxt2nluSagemakerStack создает конечную точку модели NLU и генерации текста из Jumpstart и сохраняет имя конечной точки в хранилище параметров Systems Manager. Этот параметр также будет использоваться веб -приложением. Смотрите следующий код:
endpoint = SageMakerEndpointConstruct ( self , "TXT2NLU" ,
project_prefix = "GenerativeAiDemo" ,
role_arn = role . role_arn ,
model_name = "HuggingfaceText2TextFlan" ,
model_bucket_name = model_info [ "model_bucket_name" ],
model_bucket_key = model_info [ "model_bucket_key" ],
model_docker_image = model_info [ "model_docker_image" ],
variant_name = "AllTraffic" ,
variant_weight = 1 ,
instance_count = 1 ,
instance_type = model_info [ "instance_type" ],
environment = {
"MODEL_CACHE_ROOT" : "/opt/ml/model" ,
"SAGEMAKER_ENV" : "1" ,
"SAGEMAKER_MODEL_SERVER_TIMEOUT" : "3600" ,
"SAGEMAKER_MODEL_SERVER_WORKERS" : "1" ,
"SAGEMAKER_PROGRAM" : "inference.py" ,
"SAGEMAKER_SUBMIT_DIRECTORY" : "/opt/ml/model/code/" ,
"TS_DEFAULT_WORKERS_PER_MODEL" : "1"
},
deploy_enable = True
)
ssm . StringParameter ( self , "txt2nlu_sm_endpoint" , parameter_name = "txt2nlu_sm_endpoint" , string_value = endpoint . endpoint_name )См. /Stack/Generative_AI_TXT2NLU_SAGEMAKER_STACK.PY для полного кода.
Веб -приложение
Веб-приложение находится в каталоге /Web-App. Это приложение для потокового часа, которое в контейнерировании в соответствии с DockerFile:
FROM --platform=linux/x86_64 python:3.9
EXPOSE 8501
WORKDIR /app
COPY requirements.txt ./requirements.txt
RUN pip3 install -r requirements.txt
COPY . .
CMD streamlit run Home.py
--server.headless true
--browser.serverAddress= "0.0.0.0"
--server.enableCORS false
--browser.gatherUsageStats falseЧтобы узнать больше о потоковой линии, см. Документацию Streamlit.