Каждое обновление может стать началом чего-то значительного, поэтому мы собрали самые интересные релизы октября, чтобы вы оставались в курсе событий и могли найти для себя что-то полезное.
Сегодня мы рассмотрим важные новшества, включая обновление Apple TestFlight, появление многоязычной модели PANGEA, улучшения в PyTorch 2.5 с поддержкой GPU от Intel и мощный компилятор Tinygo для маломощных систем.
Также среди новостей прошедшего месяца свежий патч для ядра Linux с оптимизацией алгоритма CRC32C и тревожные находки незашифрованных ключей AWS и Azure в популярных приложениях.
TestFlight от Apple — платформа для бета-тестирования приложений, игр и App Clips — получила важные улучшения для упрощения взаимодействия разработчиков с тестировщиками. Новые возможности предоставляют разработчикам больше контроля над тестированием, помогая находить и привлекать нужные аудитории.
Новые приглашения теперь содержат описание бета-версии, что позволяет демонстрировать уникальные возможности приложения и привлекать внимание. Тестировщики также могут оставить отзыв, если отказываются от участия. Предполагается, что такие отзывы также помогут в улучшении продукта.
Что самое интересное, в новой версии разработчики могут задавать критерии, например, устройство и версию ОС, чтобы привлекать только подходящих тестировщиков и собирать релевантные отзывы.
Также стала доступна статистика по приглашениям, позволяющая разработчикам анализировать эффективность ссылок и видеть, сколько тестировщиков не соответствуют критериям, сколько людей просмотрело описание приложения и установило бета-версию.
PANGEA — это мощная языковая модель с 7,94 млрд параметров, созданная для преодоления культурных и языковых барьеров. Работая на базе современных архитектур, она обучена на уникальном мультиязычном датасете с 6 млн инструкций на 39 языках.
Модель предназначена для преодоления культурных и языковых барьеров в задачах визуального понимания, таких как мультимодальный чат, аннотирование изображений, понимание культурных особенностей, многоязычная обработка вопросов и ответов по изображениям (VQA) и рассуждения на различные темы.
PANGEA уже показала впечатляющие результаты на тестах PANGEABENCH, охватывающих 14 наборов данных на 47 языках. Мы считаем, что для исследователей и энтузиастов в области ИИ это отличная находка!
Репозиторий PANGEA на Github содержит подробные инструкции и скрипты по установке, тонкой настройке, оценке результатов обучения и примеры разметки данных для файнтюна.
Мы решили не уходить далеко от темы машинного обучения, поэтому расскажем об обновлении библиотеки машинного обучения PyTorch с открытым исходным кодом до версии 2.5.0.
Одним из главных нововведений в PyTorch 2.5.0 стало внедрение бэкенда SDPA (Self-Defined Precision Arithmetic) CuDNN. Этот бэкенд позволяет пользователям настраивать точность вычислений нейронных сетей, что обеспечивает большую гибкость и эффективность при обучении и выполнении задач. Использование SDPA CuDNN помогает разработчикам достичь более высокой производительности и уменьшить потребление памяти, особенно при работе с моделями смешанной точности.
Еще одна важная функция в PyTorch 2.5.0 - Flex Attention, новый механизм внимания, который повышает производительность и снижает нагрузку на память для моделей на базе трансформеров. Flex Attention динамически подстраивает вычисления внимания в зависимости от длины входной последовательности, уменьшая тем самым вычислительные затраты и потребность в памяти. Эта функция особенно полезна для обучения и внедрения крупных трансформерных моделей, применяемых в задачах обработки естественного языка и компьютерного зрения.
PyTorch 2.5.0 включает и другие усовершенствования:
PyTorch 2.5.0 доступен для загрузки на официальном сайте PyTorch и поддерживает платформы Windows, Linux и macOS. Он совместим с версиями Python 3.7, 3.8, 3.9 и 3.10.
Еще одна хорошая новость для разработчиков и энтузиастов, которые искали компилятор языка программирования Go для систем с ограниченными ресурсами. Tinygo, открытый компилятор языка Go для маломощных систем, выпустил новую версию - 0.34. Он позволяет создавать компактные исполняемые файлы и имеет низкое потребление ресурсов, что делает его идеальным для микроконтроллеров и встраиваемых устройств.
Ключевые особенности Tinygo 0.34:
Tinygo поддерживает более ста моделей микроконтроллеров (включая различные платы Adafruit, Arduino, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary и Phytec), так что вы точно найдете подходящую для своего проекта. А если вам нужно взаимодействовать с датчиками или другими внешними устройствами, то для этого есть специальные драйверы.
Tinygo сохраняет оригинальную модель управления памятью Go с использованием сборщика мусора и вместо компиляции в представление на языке C, задействует LLVM для генерации эффективного машинного кода.
В программах с использованием Tinygo может без изменений использоваться уже существующий типовой код на языке Go, а также большая часть стандартных пакетов. Tinygo также поддерживает генерацию WebAssembly с возможностью создания обособленных WebAssembly-приложений, используя интерфейс WASI (WebAssembly System Interface).
Если вы хотите расширить свои технические навыки в программировании в изолированной среде, то присмотритесь к виртуальному частному серверу. VPS отлично подходит как для экспериментов и тестирования, так и для полноценного развертывания процесса разработки.
Измените один алгоритм, и вся система Linux сможет работать быстрее - именно такая цель стояла перед командой разработчиков Anthropic, оптимизируя функцию CRC32C. Отметим сразу, что исходный код реализации CRC32C уменьшен примерно в 10 раз (с 4546 до 418 байт).
Алгоритм CRC32C используется для обнаружения ошибок в передаче и хранении данных, соответственно, его оптимизация была направлена на уменьшение размера бинарного кода и улучшение производительности, особенно в системах с включенной техникой retpoline. И в октябре команда разработчиков выпустила патч для ядра Linux.
Патч включает изменения в ассемблерном файле crc32c-pcl-intel-asm_64.S, заменяя таблицы переходов на циклы, что снижает объём кода. Кроме того, развёртывание цикла уменьшено до четырёх раз вместо 127, чтобы уменьшить накладные расходы на инструкции учёта циклов.
Результаты производительности показывают значительные улучшения в пропускной способности для различных микроструктур CPU и длин входных данных. Например, на Intel Haswell с включенным retpoline улучшения варьируются от 35% до 66,8% в зависимости от длины входных данных. Патч также демонстрирует приросты производительности на процессорах Intel Emerald Rapids и AMD Zen 2. Это отличная новость и для тех, кто работает на серверах на базе Linux.
В конце дайджеста мы решили немного уйти от полезных релизов и напомнить всем о не менее важном аспекте - безопасности. Недавний анализ Symantec выявил тревожную тенденцию: несколько популярных приложений содержат хардкодированные и незащищенные учётные данные облачных сервисов. Это подвергает риску конфиденциальную информацию пользователей и бэкенд-сервисы.
К сожалению, на этом список не заканчивается, что демонстрирует серьезные риски для безопасности, которые представляют собой хардзакодированные и незашифрованные учетные данные облачных сервисов в мобильных приложениях. Такая практика подвергает критическую инфраструктуру потенциальным атакам, подвергая риску данные пользователей и внутренние сервисы.
Хорошего месяца и до встречи в следующем дайджесте от is*hosting!