предложения кода на базе ИИ и проверки безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Амазонки

предложения кода на базе ИИ и проверки безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Амазонки

Создатель мудреца Амазонки поставляется с двумя вариантами развертывания полностью управляемых ноутбуков для изучения данных и построения моделей машинного обучения (ML). Первый вариант — это быстрый старт, совместные блокноты, доступные в пределах Студия Amazon SageMaker— полностью интегрированная среда разработки (IDE) для машинного обучения. Вы можете быстро запускать записные книжки в Studio, легко подключать или отключать базовые вычислительные ресурсы, не прерывая свою работу, и даже делиться своей записной книжкой в ​​виде ссылки всего за несколько кликов. Помимо создания блокнотов, вы можете выполнять все этапы разработки машинного обучения для создания, обучения, отладки, отслеживания, развертывания и мониторинга ваших моделей в единой панели Studio. Второй вариант Инстансы записных книжек Amazon SageMaker— единый полностью управляемый вычислительный экземпляр машинного обучения, на котором работают записные книжки в облаке, что дает вам больший контроль над конфигурациями ваших записных книжек.

Сегодня мы рады сообщить о доступности Amazon Code Whisperer и Безопасность Amazon CodeGuru расширения в блокнотах SageMaker. Эти расширения на основе ИИ помогают ускорить разработку машинного обучения, предлагая варианты кода по мере ввода, а также гарантируют, что ваш код безопасен и соответствует рекомендациям AWS.

В этом посте мы покажем, как начать работу с Amazon CodeGuru Security и CodeWhisperer в экземплярах ноутбуков Studio и SageMaker.

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

Ассоциация Расширение CodeWhisperer — это компаньон по программированию на основе ИИ, который предоставляет разработчикам рекомендации по коду в реальном времени в блокнотах. Отдельные разработчики могут бесплатно использовать CodeWhisperer в записных книжках Studio и SageMaker. Компаньон по кодированию генерирует предложения однострочного или полнофункционального кода в режиме реального времени. Он понимает семантику и контекст вашего кода и может рекомендовать предложения, основанные на AWS и передовых методах разработки, повышая эффективность, качество и скорость разработки.

Ассоциация Расширение безопасности CodeGuru предлагает сканирование безопасности и качества кода для экземпляров ноутбуков Studio и SageMaker. Это помогает пользователям ноутбуков обнаруживать уязвимости в системе безопасности, такие как недостатки внедрения, утечки данных, слабая криптография или отсутствие шифрования в ячейках ноутбука. Вы также можете обнаружить множество распространенных проблем, влияющих на удобочитаемость, воспроизводимость и правильность вычислительных записных книжек, таких как неправильное использование API-интерфейсов библиотеки машинного обучения, неверный порядок выполнения и недетерминизм. Когда в записной книжке обнаруживаются уязвимости или проблемы с качеством, CodeGuru создает рекомендации, позволяющие устранить эти проблемы на основе передовых методов обеспечения безопасности AWS.

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

Предпосылки

Если вы впервые работаете со Studio, вам сначала нужно создать Домен SageMaker. Кроме того, убедитесь, что у вас есть соответствующий доступ к обоим шифровальщик и КодГуру через Управление идентификацией и доступом AWS (Я).

Вы можете использовать эти расширения в любом регионе AWS, но запросы к CodeWhisperer будут обслуживаться через us-east-1 Область, край. Запросы будут обслуживаться CodeGuru в регионе домена Studio, и если CodeGuru поддерживается в регионе. Для всех неподдерживаемых регионов запросы будут обслуживаться через us-east-1.

Настройка CodeWhisperer с блокнотами SageMaker

В этом разделе мы покажем, как настроить CodeWhisperer с помощью SageMaker Studio.

Обновите разрешения IAM, чтобы использовать расширение

Вы можете использовать расширение CodeWhisperer в любом регионе, но все запросы к CodeWhisperer будут обслуживаться через us-east-1 Область.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeWhispererPermissions", "Effect": "Allow", "Action": ["codewhisperer:GenerateRecommendations"], "Resource": "*" } ]
}

Установите расширение CodeWhisperer

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

  1. На Файл Меню, выберите Новые и Терминал.
  2. Выполните следующие команды, чтобы установить расширение:
    conda activate studio
    pip install amazon-codewhisperer-jupyterlab-ext
    jupyter server extension enable amazon_codewhisperer_jupyterlab_ext
    conda deactivate
    restart-jupyter-server

Обновите браузер, и вы успешно установите расширение CodeWhisperer.

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Используйте CodeWhisperer в Studio

После того, как мы завершим шаги установки, мы можем использовать CodeWhisperer, открыв новый блокнот или файл Python. Для нашего примера мы откроем блокнот-образец.

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

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

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Чтобы начать, поместите курсор в блок кода в блокноте, и CodeWhisperer начнет предлагать предложения. Если вы не видите предложений, нажмите Alt + C в Windows или Опция+С в Mac, чтобы вручную вызывать предложения.

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

В следующем видео показано, как использовать CodeWhisperer для чтения и выполнения описательной статистики для файла данных в Studio.

Использование CodeWhisperer в экземплярах SageMaker Notebook

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

  1. Перейдите к экземпляру блокнота SageMaker.
  2. Убедитесь, что вы присоединили политику CodeWhisperer ранее к роли IAM экземпляра записной книжки.
  3. Когда разрешения будут добавлены, выберите Откройте JupyterLab.
    Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  4. Установите расширение. с помощью терминала на Файл Меню, выберите Новые и Терминали введите следующие команды:
    pip install amazon-codewhisperer-jupyterlab-ext
    jupyter server extension enable amazon_codewhisperer_jupyterlab_ext

  5. После завершения команд на Файл Меню, выберите Завершение работы чтобы перезапустить наш сервер Jupyter.
    Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  6. Обновите окно браузера.

Теперь вы увидите, что расширение CodeWhisperer установлено и готово к использованию.

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Давайте проверим это в файле Python.

  1. На Файл Меню, выберите Новые и Файл Python.

В следующем видео показано, как создать функцию для преобразования файла JSON в CSV.

Настройка CodeGuru Security с блокнотами SageMaker

В этом разделе мы покажем, как настроить CodeGuru Security с помощью SageMaker Studio.

Обновите разрешения IAM, чтобы использовать расширение

Чтобы использовать расширение CodeGuru Security, убедитесь, что у вас есть необходимые разрешения. Выполните следующие действия, чтобы обновить политики разрешений с помощью IAM:

  1. Предпочтительно: На консоли IAM вы можете прикрепить AmazonCodeGuruSecurityScanAccess управляемую политику для ваших удостоверений IAM. Эта политика предоставляет разрешения, которые позволяют пользователю работать со сканированием, включая создание сканирования, просмотр информации о сканировании и просмотр результатов сканирования.
  2. Для настраиваемых политик введите следующие разрешения:
    { "Version": "2012-10-17", "Statement": [ { "Sid": "AmazonCodeGuruSecurityScanAccess", "Effect": "Allow", "Action": [ "codeguru-security:CreateScan", "codeguru-security:CreateUploadUrl", "codeguru-security:GetScan", "codeguru-security:GetFindings" ], "Resource": "arn:aws:codeguru-security:*:*:scans/*" } ] }

  3. Прикрепите политику к любому пользователю или роли, которые будут использовать расширение CodeGuru Security.

Для получения дополнительной информации см. Политики и разрешения в IAM.

Установите расширение безопасности CodeGuru

Вы можете установить расширение CodeGuru Security через командная строка. Для начала выполните следующие шаги:

  1. На Файл Меню, выберите Новые и Терминал.
  2. Выполните следующие команды, чтобы установить расширение в conda Окружающая среда:
    conda activate studio
    pip install amazon-codeguru-jupyterlab-extension
    conda deactivate

Обновите браузер, и вы успешно установите расширение CodeGuru.

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Запустите сканирование кода

Следующие шаги демонстрируют запуск вашего первого сканирования безопасности CodeGuru с использованием файла примера:

  1. Создайте новый блокнот с именем example.ipynb со следующим кодом для целей тестирования:
    import torch
    # import tensorflow as tf def tensorflow_avoid_using_nondeterministic_api_noncompliant(): data = tf.ones((1, 1)) # Noncompliant: Determinism of tf.compat.v1.Session # can not be guaranteed in TF2. Ítf.config.experimental.enable_op_determinism() tf.compat.v1.Session( target='', graph=None, config=None ) layer = tf.keras.layers.Input(shape=[1]) model = tf.keras.models.Model(inputs=layer, outputs=layer) model.compile(loss="categorical_crossentropy", metrics="AUC") model.fit(x=data, y=data) def pytorch_sigmoid_before_bceloss_compliant(): # Compliant: `BCEWithLogitsLoss` function integrates a `Sigmoid` # layer and the `BCELoss` into one class # and is numerically robust. loss = nn.BCEWithLogitsLoss() input = torch.randn(3, requires_grad=True) target = torch.empty(3).random_(2) output = loss(input, target) output.backward()

Приведенный ниже код намеренно включает распространенные неверные методы, чтобы продемонстрировать возможности Amazon CodeGuru Security.

  1. важно: Убедитесь, что расширение CodeGuru-Security установлено, и если сервер LSP говорит Fully initialized как показано ниже, когда вы открываете блокнот.

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

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

  1. Запустите сканирование. Вы можете запустить сканирование одним из следующих способов:
    • Выберите любую ячейку кода в вашем файле, затем выберите значок лампочки.
      Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
    • Выберите (щелкните правой кнопкой мыши) любую ячейку кода в вашем файле, затем выберите Запустите сканирование CodeGuru.
      Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Когда сканирование запущено, статус сканирования будет отображаться как CodeGuru: Идет сканирование.

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Через несколько секунд, когда сканирование будет завершено, статус изменится на CodeGuru: сканирование завершено.

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Просмотр и рассмотрение результатов

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

Это откроет панель, содержащую дополнительную информацию и предложения, связанные с выводами, расположенную в нижней части файла записной книжки.

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

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

Включить автоматическое сканирование кода

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

  1. В студии, на Настройки Меню, выберите Редактор расширенных настроек.
    Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  2. Что касается Автоматическое сканирование, выберите Включено.
  3. Укажите частоту сканирования в секундах и регион для сканирования CodeGuru Security.

В нашем примере мы настраиваем CodeGuru для выполнения автоматического сканирования безопасности каждые 240 секунд в us-east-1 Область. Вы можете изменить это значение для любого региона, в котором поддерживается CodeGuru Security.

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Заключение

Инстансы SageMaker Studio и SageMaker Notebook теперь поддерживают расширения CodeWhisperer и CodeGuru на основе ИИ, которые помогают быстрее писать безопасный код. Мы рекомендуем вам попробовать оба расширения. Чтобы узнать больше о CodeGuru Security для SageMaker, см. Начните работу с расширением Amazon CodeGuru для JupyterLab и SageMaker Studio., а чтобы узнать больше о CodeWhisperer для SageMaker, см. Настройка CodeWhisperer с помощью Amazon SageMaker Studio. Пожалуйста, поделитесь любым отзывом в комментариях!


Об авторах

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Радж Патхак является старшим архитектором решений и технологом, специализирующимся на финансовых услугах (страхование, банковское дело, рынки капитала) и машинном обучении. Он специализируется на обработке естественного языка (NLP), больших языковых моделях (LLM) и проектах инфраструктуры и операций машинного обучения (MLOPs).

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Гаурав Парех — архитектор решений, помогающий клиентам AWS создавать крупномасштабную современную архитектуру. Его основная область знаний включает аналитику данных, сетевую и технологическую стратегию. Вне работы Гаурав любит играть в крикет, футбол и волейбол.

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Аркаправа Де является старшим инженером-программистом в AWS. Он работает в Amazon более 7 лет и в настоящее время работает над улучшением среды разработки Amazon SageMaker Studio. Вы можете найти его на LinkedIn.

Предложения кода на основе искусственного интеллекта и сканирование безопасности в блокнотах Amazon SageMaker с использованием Amazon CodeWhisperer и Amazon CodeGuru | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Прашант Паван Писипати является главным менеджером по продуктам в Amazon Web Services (AWS). Он создал различные продукты для AWS и Alexa и в настоящее время сосредоточен на том, чтобы помочь специалистам по машинному обучению работать более продуктивно с помощью сервисов AWS.

Отметка времени:

Больше от Машинное обучение AWS