6 крутых новых проектов с открытым исходным кодом от Netflix, Facebook, Google и других компаний

Опубликовано: 2 Марта, 2023
6 крутых новых проектов с открытым исходным кодом от Netflix, Facebook, Google и других компаний

На заре вычислительной техники программисты делились программным обеспечением, чтобы учиться друг у друга и развиваться. Хотя концепция открытого исходного кода постепенно перешла к коммерциализации, внимание, которое уделяется свободному программному обеспечению, значительно. Netscape была пионером в публикации исходного кода своего бесплатного программного обеспечения. Инициатива открытого исходного кода (OSI) 1998 года — одна из тех вещей, которые произошли благодаря вдохновляющему программному обеспечению Netscape. Затем OSI вдохновила разработчиков по всему миру публиковать программное обеспечение с открытым исходным кодом, а остальное уже история. Культура открытого исходного кода поощряла сотрудничество между разработчиками, что привело к созданию программного обеспечения более высокого качества. Аудиты, быстрые исправления, обновления и управление лицензиями лучше, когда программное обеспечение с открытым исходным кодом. Вот список из шести лучших новых проектов с открытым исходным кодом, выпущенных за последний год.

1. Людвиг от Uber

Ludwig — это набор инструментов на основе TensorFlow, который позволяет обучать и тестировать модели глубокого обучения без необходимости написания кода. Вынашиваемый в Uber в течение последних двух лет, Ludwig наконец-то был открыт в феврале этого года, чтобы включить вклад сообщества специалистов по обработке и анализу данных. С помощью Ludwig специалист по данным может обучить модель глубокого обучения, просто предоставив CSV-файл, содержащий обучающие данные, а также YAML-файл с выходными и входными данными модели.

Людвиг был создан с пятью фундаментальными принципами:

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

2. FlameScope от Netflix

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

Netflix имеет долгую историю выпуска утилит, разработанных внутри компании для анализа производительности и отладки, в качестве программного обеспечения с открытым исходным кодом. Новый инструмент визуализации мгновенно генерирует графики пламени из разделов системных профилей. Этот инструмент полезен для программистов, которые хотят определить источник проблем с производительностью.

FlameScope написан на языках Java, JavaScript, Python и Node.js. Но у команды есть планы по расширению поддержки на других языках, чтобы сделать ее более универсальной и удобной для пользователя. Кроме того, вероятно, будут добавлены дополнительные интерактивные функции, такие как преобразование данных, выбор палитры, возможность экспорта полученного графа пламени в виде SVG.

3. Кракен от Uber

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

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

4. Вулканизатор от Github

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

Vulcanizer отлично подходит для доступа к узлам настроек кластера. Он безопасно добавляет (и удаляет) узлы из настроек, чтобы гарантировать, что осколки не будут неожиданно размещены на узле. Эта библиотека Golang взаимодействует с кластером Elasticsearch. Это не полноценный клиент API, но он помогает вам выполнять общие задачи при работе с кластером. Эти задачи включают запрос состояния работоспособности, обновление настроек кластера и перенос данных с узлов. Идея Vulcanizer родилась из тщетных попыток администрировать свои кластеры путем создания упакованного приложения для чата. Изначально проект выполнялся с учетом следующих простых целей:

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

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

5. Спектр от Facebook

Spectrum — это библиотека обработки изображений с открытым исходным кодом, выпущенная Facebook. Мобильные камеры становятся все более мощными. Это приводит к множеству технических последствий с точки зрения обмена в социальных сетях. Большие изображения потребляют больше пропускной способности сети при публикации в Интернете. Вот почему Facebook автоматически сжимает изображения. Но это приводит к снижению качества изображения (сжатие с потерями).

С Facebook Spectrum вам не нужно жертвовать качеством ради удобства загрузки. Spectrum обеспечивает изменение размера без потерь даже при обрезке и вращении изображений JPEG. Он поставляется с собственными библиотеками сжатия изображений, такими как Mozjpeg (флагманский кодировщик JPEG от Mozilla). Единый API позволяет разработчикам управлять расширенными параметрами, включая подвыборку цветности. Spectrum помог компании улучшить качество изображений, загружаемых через собственный набор приложений.

6. Дофамин от Google

Dopamine — это фреймворк на основе TensorFlow, выпущенный командой Google DeepMind. Дофамин призван обеспечить стабильность, гибкость и воспроизводимость для исследователей обучения с подкреплением (RL). Этот выпуск включал набор коллабораций, чтобы прояснить, как использовать фреймворк. Он удовлетворяет потребность в легко разбираемой кодовой базе, в которой пользователи могут самостоятельно экспериментировать с спекулятивными исследованиями. Платформа компактна, надежна, гибка и обеспечивает воспроизводимость результатов.

Несмотря на достижения в области технологий искусственного интеллекта, системы глубокого обучения по-прежнему не поспевают за попытками имитировать человеческий мозг. Им требуются сотни часов, чтобы освоить даже простые видеоигры. Фреймворки вроде Dopamine позволяют машинам учиться быстрее. Концепция была построена вокруг подхода метаобучения, при котором правила выводятся из примеров, а концепции изучаются из результатов. Он поставляется с радужным агентом с одним графическим процессором, реализующим три жизненно важных компонента: n-шаговые обновления Bellman, воспроизведение опыта с приоритетами и обучение распределенному подкреплению. Проект был назван в честь дофамина, нейротрансмиттера, отвечающего за ощущения, эмоции и движения.

Проекты с открытым исходным кодом: все еще впереди

Открытый подход к сотрудничеству открыл совершенно новый уровень прозрачности. В прошлом году открытый исходный код стал значительным ускорителем инноваций, особенно в таких областях, как машинное обучение, облачные вычисления, микросервисы и блокчейн. В прошлом году было совершено транзакций на сумму 53 миллиарда долларов, связанных с проектами с открытым исходным кодом. Эксперты прогнозируют, что в 2019 году этот показатель удвоится. Приобретение IBM Red Hat за 34 миллиарда долларов за ее технологию с открытым исходным кодом укрепляет эту надежду. В будущем появится множество очень успешных проектов с открытым исходным кодом, таких как операционная система Linux, браузер Firefox, WordPress и веб-сервер Apache.