Home Машинное обучение Оптимизируйте устойчивое развитие с помощью Amazon CodeWhisperer | DeepTech

Оптимизируйте устойчивое развитие с помощью Amazon CodeWhisperer | DeepTech

0
Оптимизируйте устойчивое развитие с помощью Amazon CodeWhisperer
 | DeepTech

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

Amazon CodeWhisperer — это помощник в области генеративного ИИ-кодирования, который ускоряет разработку программного обеспечения, внося предложения на основе существующего кода и комментариев на естественном языке, сокращая общие усилия по разработке и высвобождая время для мозгового штурма, решения сложных проблем и создания дифференцированного кода. Amazon CodeWhisperer может помочь разработчикам оптимизировать рабочие процессы, повысить качество кода, создать более строгие меры безопасности, создавать надежные наборы тестов и писать код, экономящий вычислительные ресурсы, что может помочь вам оптимизировать экологическую устойчивость. Он доступен как часть набора инструментов для Visual Studio Code, AWS Cloud9, JupyterLab, Amazon SageMaker Studio, AWS Lambda, AWS Glue и JetBrains IntelliJ IDEA. Amazon CodeWhisperer в настоящее время поддерживает Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, сценарии Shell, SQL и Scala.

Влияние неоптимизированного кода на облачные вычисления и углеродный след приложений

Инфраструктура AWS в 3,6 раза более энергоэффективна, чем в среднем среди опрошенных корпоративных центров обработки данных в США, и до 5 раз более энергоэффективна, чем средний европейский корпоративный центр обработки данных.. Таким образом, AWS может помочь снизить выбросы углекислого газа в атмосферу до 96 %. Теперь вы можете использовать Amazon CodeWhisperer для написания качественного кода с меньшим использованием ресурсов и энергопотребления, а также для достижения целей масштабируемости и одновременного использования энергоэффективной инфраструктуры AWS.

Увеличение использования ресурсов

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

  • Загрузка процессора – Неоптимизированный код часто содержит неэффективные алгоритмы или методы кодирования, для выполнения которых требуется чрезмерное количество циклов ЦП.
  • Потребление памяти – Неэффективное управление памятью в неоптимизированном коде может привести к ненужному выделению, освобождению памяти или дублированию данных.
  • Операции дискового ввода-вывода – Неэффективный код может выполнять чрезмерные операции ввода/вывода (I/O). Например, если данные считываются или записываются на диск чаще, чем необходимо, это может увеличить загрузку дискового ввода-вывода и задержку.
  • Использование сети – Из-за неэффективных методов передачи данных или дублирования связи плохо оптимизированный код может вызвать чрезмерный объем сетевого трафика. Это может привести к увеличению задержки и увеличению использования полосы пропускания сети. Увеличение использования сети может привести к увеличению расходов и потребности в ресурсах в ситуациях, когда сетевые ресурсы облагаются налогом в зависимости от использования, например, в облачных вычислениях.

Более высокое энергопотребление

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

Проблемы масштабируемости

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

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

Amazon CodeWhisperer использует машинное обучение (ML) и большие языковые модели для предоставления рекомендаций по коду в режиме реального времени на основе исходного кода и комментариев на естественном языке, а также предоставляет рекомендации по коду, которые могут быть более эффективными. Эффективность использования инфраструктуры программы можно повысить за счет оптимизации кода с использованием стратегий, включая усовершенствования алгоритмов, эффективное управление памятью и сокращение бессмысленных операций ввода-вывода.

Генерация кода, завершение и предложения

Давайте рассмотрим несколько ситуаций, в которых Amazon CodeWhisperer может быть полезен.

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

Генеративный ИИ потенциально может сделать программирование более устойчивым за счет оптимизации распределения ресурсов. Важно комплексно оценить выбросы углекислого газа приложения. Такие инструменты, как Amazon CodeGuru Profiler, могут собирать данные о производительности для оптимизации задержки между компонентами. Служба профилирования проверяет выполнение кода и выявляет потенциальные улучшения. Затем разработчики могут вручную усовершенствовать автоматически сгенерированный код на основе этих результатов для дальнейшего повышения энергоэффективности. Сочетание генеративного искусственного интеллекта, профилирования и человеческого контроля создает петлю обратной связи, которая может постоянно повышать эффективность кода и снижать воздействие на окружающую среду.

На следующем снимке экрана показаны результаты, полученные с помощью CodeGuru Profiler в режиме задержки, который включает сетевой и дисковый ввод-вывод. В этом случае приложение по-прежнему проводит большую часть своего времени в ImageProcessor.extractTasks (второй нижний ряд), и почти все время внутри он работоспособен, а значит, ничего не ждал. Вы можете просмотреть эти состояния потоков, перейдя в режим задержки из режима ЦП. Это может помочь вам получить хорошее представление о том, что влияет на время настенных часов приложения. Дополнительную информацию см. в разделе «Уменьшение выбросов углекислого газа вашей организации с помощью Amazon CodeGuru Profiler».

изображение

Генерация тестовых случаев

Amazon CodeWhisperer может помочь предложить тестовые сценарии и проверить функциональность кода, учитывая граничные значения, крайние случаи и другие потенциальные проблемы, которые, возможно, потребуется протестировать. Кроме того, Amazon CodeWhisperer может упростить создание повторяющегося кода для модульного тестирования. Например, если вам нужно создать образец данных с помощью инструкций INSERT, Amazon CodeWhisperer может сгенерировать необходимые вставки на основе шаблона. Общие требования к ресурсам для тестирования программного обеспечения также можно снизить за счет выявления и оптимизации ресурсоемких тестовых примеров или удаления избыточных. Усовершенствованные наборы тестов могут сделать приложение более экологичным за счет повышения энергоэффективности, снижения потребления ресурсов, минимизации отходов и сокращения выбросов углекислого газа от рабочей нагрузки.

Более подробную информацию о практическом опыте работы с Amazon CodeWhisperer см. в статье Оптимизация разработки программного обеспечения с помощью Amazon CodeWhisperer. В публикации представлены рекомендации по коду от Amazon CodeWhisperer в Amazon SageMaker Studio. Он также демонстрирует предлагаемый код на основе комментариев для загрузки и анализа набора данных.

Заключение

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

Предлагая незначительные корректировки и альтернативные подходы, Amazon CodeWhisperer позволяет разработчикам значительно сократить использование ресурсов и выбросы без ущерба для функциональности. Если вы хотите оптимизировать существующую кодовую базу или обеспечить эффективное использование ресурсов в новых проектах, Amazon CodeWhisperer может оказаться неоценимым подспорьем. Чтобы узнать больше о ресурсах Amazon CodeWhisperer и AWS Sustainability для оптимизации кода, рассмотрите следующие шаги:


Об авторах

Иша Дуа — старший архитектор решений в районе залива Сан-Франциско. Она помогает корпоративным клиентам AWS расти, понимая их цели и проблемы, а также помогает им создавать облачные приложения, обеспечивая при этом устойчивость и масштабируемость. Она увлечена технологиями машинного обучения и экологической устойчивостью.

Аджай Говиндарам — старший архитектор решений в AWS. Он работает со стратегическими клиентами, которые используют AI/ML для решения сложных бизнес-задач. Его опыт заключается в обеспечении технического руководства, а также помощи в проектировании скромных и крупномасштабных развертываний приложений AI/ML. Его знания варьируются от архитектуры приложений до больших данных, аналитики и машинного обучения. Ему нравится слушать музыку во время отдыха, отдыха на свежем воздухе и проводить время со своими близкими.

Эрик Иригойен — архитектор решений в Amazon Web Services, специализирующийся на клиентах из отрасли полупроводников и электроники. Он тесно сотрудничает с клиентами, чтобы понять их бизнес-задачи и определить, как можно использовать AWS для достижения их стратегических целей. Его работа в основном сосредоточена на проектах, связанных с искусственным интеллектом и машинным обучением (ИИ/МО). До прихода в AWS он был старшим консультантом в отделе расширенной аналитики Deloitte, где руководил рабочими направлениями в нескольких проектах в США, уделяя особое внимание аналитике и искусственному интеллекту и машинному обучению. Эрик получил степень бакалавра бизнеса в Университете Сан-Франциско и степень магистра аналитики в Университете штата Северная Каролина.

LEAVE A REPLY

Please enter your comment!
Please enter your name here