Как стать автором
Обновить
45.62
Wunder Fund
Мы занимаемся высокочастотной торговлей на бирже
Сначала показывать

Опыт PostHog: 50 советов о создании успешных продуктов

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров1.3K

Для того чтобы отпраздновать то, что рассылка Product for Engineers набрала 50000 подписчиков, мы решили поделиться пятьюдесятью советами, в которых собрано всё самое важное, что мы узнали о разработке успешных программных продуктов.

Читать далее

Плавающие запятые и ящики

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров2K

Компьютеры имеют дело с числами — с большими и маленькими. При этом компьютерам необходимо оставаться в рамках ограничений, которые на них накладывает их физическая природа (размер регистров процессора и объём оперативной памяти). Следствием этого является тот факт, что процессоры обычно, на самом низком уровне, понимают лишь два типа чисел.

Читать далее

NVIDIA cuDF и 100-кратное ускорение чтения данных формата JSON Lines в pandas

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.4K

JSON — это широко распространённый формат, применяемый для хранения информации, основанной на обычном тексте. Он поддерживается самыми разными системами, обеспечивая их взаимодействие. Чаще всего это — веб-приложения и большие языковые модели (Large Language Model, LLM). Хотя JSON-данные удобны для восприятия человеком, их сложно обрабатывать, используя инструменты из сфер Data Science (наука о данных) и Data Engineering (инженерия данных).

JSON-данные часто существуют в виде JSON-строк (формат JSON Lines), отделённых друг от друга символами перевода строки (NDJSON, Newline-Delimited JSON). NDJSON используется для представления записей, входящих в состав набора данных. Часто первым этапом обработки данных является чтение файлов формата JSON Lines и преобразование их в объекты DataFrame (датафрейм).

В это материале мы сравним производительность и функционал API, доступных в Python и применяемых для преобразования формата JSON Lines в датафреймы.

Читать далее

Советы по эффективному обучению ML-моделей

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров3.6K

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

Читать далее

Индивидуальные встречи в Data Science: от отчётов по проектам до карьерного роста

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.6K

Я работаю руководителем команды дата-сайентистов уже шесть месяцев. Команда за это время выросла с трёх до пяти человек.

В ноябре я писал о моих первых шагах в роли менеджера. В этой статье я хочу поговорить кое-о чём, что гораздо важнее во взаимоотношениях дата-сайентиста или аналитика данных, играющих роль самостоятельных специалистов, с их руководителем — об индивидуальных встречах (встречах формата 1:1). Я помню, что, когда только начал строить карьеру, нервничал, и чувствовал себя неловко на таких встречах. Дело в то, что я не знал — чего от них ожидать, или — что на них может оказаться особенно полезным. Теперь, когда я побывал и в одной, и в другой ролях, характерных для таких встреч, я лучше понял то, как проводить их эффективно.

Вы когда-нибудь сталкивались с трудностями в попытках извлечь из индивидуальных встреч максимум пользы? Если так — я могу дать вам несколько советов.

Читать далее

Истории

Где твои системные вызовы?

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров3K

Ядро OpenBSD становится уже очень старым — ну просто очень — ему около сорока пяти лет. Оно, следовательно, не любит сюрпризов. Поэтому программы должны сообщать ему о том, где находятся их системные вызовы. В сегодняшнем выпуске «Вежливого программиста» мы поговорим о том, как это делать по всем правилам этикета.

Если вы программируете на C — всё это делается автоматически. Поэтому мы будем писать код только на языке, который совершенно нельзя назвать C, и при этом обойдёмся без линковки с libc.

Читать далее

Как пустой S3 бакет может вас обанкротить

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров41K

Представьте, что вы создали пустую, приватную корзину (их ещё называют «бакетами» — от «bucket») AWS S3 в выбранном вами регионе. Каким будет счёт за услуги AWS на следующее утро?

Несколько недель назад я начал работу над прототипом системы индексирования документов для моего клиента. Я создал одну корзину S3 в регионе eu-west-1 и загрузил туда несколько файлов для тестирования. Через два дня я проверил мою страницу выставления счетов AWS, заглянув туда, преимущественно, для того, чтобы проверить, что то, чем я занимаюсь, нормально укладывается в лимиты бесплатного тарифного плана. Но, судя по тому, что я там увидел, ни о какой нормальности речи не шло. Мой счёт превышал $1300, а в консоли выставления счетов были видны сто миллионов PUT-запросов к корзине S3, выполненных всего за один день!

Читать далее

Восстание DeepSeek: что не попало в заголовки новостей

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров43K

Недавние публикации об ИИ-моделях компании DeepSeek посвящены, в основном, двум моментам. Первый —  эти модели гораздо лучше, чем другие, показывают себя в тестах. Второй — они обходят другие модели в плане эффективности работы. Эти достижения достойны внимания, они несут определённые политические последствия (ниже мы поговорим об этом подробнее). Но дело в том, что реальная картина, включающая в себя и доступ к вычислительным ресурсам, и экспортные ограничения, и разработки в сфере ИИ, гораздо сложнее, чем это представлено во многих материалах. Вот несколько важных вопросов, которые заслуживают более пристального внимания.

Читать далее

С++ — это настоящий кайфǃ

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров47K

Я хочу, чтобы вы задали себе один вопрос и честно на него ответили. Когда в последний раз вы получали настоящее удовольствие от программирования? Оглядываясь назад, я понимаю, что не испытывал подобных ощущений, наверное… уже лет десять. Удовольствия у меня не было ни от JavaScript, ни от Python, ни от Ruby или C — ни от чего. Когда я говорю «удовольствие» — я имею в виду ощущения человека, которого во время работы над неким проектом переполняет искренний восторг. Этот человек постоянно ловит себя на такой мысли: «Ох, ну какая ж круть. Поверить не могу, что моя безумная идея и правда сработала!».

Например, я писал маленькую игру-«рогалик». У меня была такая идея: «Готов поспорить, что у меня получиться воспользоваться этим вашим алгоритмом Дейкстры для соединения комнат при генерировании карты, сначала инвертируя карту, а потом его запуская. Вероятно, мне удастся прокопать отличнейшие туннели между комнатами». То было благословенное время, когда я пытался справиться с этой задачей, и при этом не чувствовал, что C++ мне мешает. Мне тогда удалось решить эту задачу, попутно многому научившись. Потом у меня появилась такая мысль: «Интересно, получится мне взять пользовательский интерфейс, сделанный на FTXUI, и просто напрямую его отрендерить в окно визуализации SFML?». Как и следовало ожидать, у меня всё отлично получилось. И хотя это было не так уж и сложно, я по ходу дела много узнал о том, как в C++ обрабатывается юникод. Ни одна из этих задач лёгкой не была, но все их, в принципе, можно было решить, и я не могу напридумывать себе достаточно много «подводных камней», которыми C++ мог бы помешать мне сделать то, что я хочу. Это — то, что я называю «удовольствием».

Читать далее

Разработка цифровых открыток в масштабах Airbnb

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров1.2K

Это — статья о том, как команда Media Ingestion компании Airbnb создала цифровые открытки для групповых путешествий. Открытки было решено задействовать в летнем выпуске платформы 2024 года. В проекте использовался новый алгоритм подбора материалов под различные туристические направления. Здесь же применялись возможности платформы по обработке изображений и локализованных текстов.

Готовясь к летнему выпуску Airbnb 2024 года, команда Media Ingestion взяла на себя интереснейшую задачу. Она заключалась в разработке надёжной системы для создания цифровых открыток. Это должны были быть открытки, выглядящие, как изделия ручной работы, и при этом отражающие особенности самых разных уголков мира. Отправка открытки — это прекрасный способ приглашать гостей в групповое путешествие, и, в то же время, держать в курсе происходящего семью и друзей. Система требовала нового подхода к сопоставлению открыток со всеми возможными местами проживания, которые гости бронируют на Airbnb. Эта система должна была очень быстро создавать открытки, причём — не только на всех наших клиентских платформах (iOS, Android, Web), но и в разных системах обмена сообщениями, которые находятся за пределами приложения Airbnb. И всё это должно было делаться без отступления от высоких стандартов графического дизайна компании.

Читать далее

«Брендометр» Airbnb: автоматизация оценки восприятия бренда в социальных сетях с помощью ИИ

Время на прочтение11 мин
Количество просмотров916

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

Читать далее

Знакомство со слоем абстракции Netflix для хранения временных рядов

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров4.2K

Netflix продолжает расширять бизнес и диверсифицироваться в различных направлениях, вроде доставки видео по запросу и гейминга. В результате всё важнее становятся технологии, обеспечивающие загрузку временных (темпоральных) данных в системы компании и их хранение. Речь идёт об огромных объёмах данных, измеряемых петабайтами. А задержки доступа к этим данным должны укладываться в миллисекунду. В предыдущих материалах мы рассказывали о нашем слое абстракции для хранения данных типа «ключ-значение», и о платформе, реализующий возможности шлюза данных. И то и другое — это неотъемлемые части подсистемы, отвечающей в Netflix за работу с данными. Система хранения данных типа «ключ-значение» — это гибкое и хорошо масштабируемое решение для работы со структурированными данными соответствующего формата. А шлюз данных — это платформа, которая даёт компании базовую инфраструктуру, обеспечивающую защиту, настройку, развёртывание компонентов, ориентированных на работу с данными.

Читать далее

Знакомство со слоем абстракции Netflix для хранилищ данных типа «ключ-значение»

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров5.5K

Наша компания — Netflix — способна организовывать бесперебойную, высококачественную потоковую передачу видео миллионам пользователей благодаря своей надёжной глобальной серверной инфраструктуре. В самом центре этой инфраструктуры лежит множество онлайновых распределённых баз данных. Среди них — Apache Cassandra — NoSQL-СУБД, известная высокой доступностью и хорошей масштабируемостью. Cassandra играет роль опорной технологии для множества самых разных возможностей Netflix: от механизма входа пользователя в систему — до хранения истории просмотренных материалов и до поддержки аналитики реального времени и прямых трансляций.

Со временем появлялись новые базы данных типа «ключ-значение» (Key-Value, KV), владельцы сервисов вводили в строй новый функционал. В результате мы столкнулись с массой сложностей, связанных с неправильным использованием хранилищ данных. Во-первых — разработчикам сложно оперировать такими понятиями, как производительность хранилищ данных, согласованность и устойчивость данных. Ведь речь идёт о взаимодействии со сложной системой глобальных масштабов, представленной множеством хранилищ. Во-вторых — разработчикам приходилось постоянно переучиваться, осваивая новые подходы к моделированию данных и распространённые, но очень важные паттерны доступа к данным. В перечень сложностей, встающих перед разработчиками, входят высокие задержки, которым подвержен небольшой процент запросов, находящихся в «хвосте» распределения задержек (tail latency) и идемпотентность операций. Тут же можно упомянуть и поддержку работы «широких» разделов хранилищ с множеством строк, и работу в условиях, когда для хранения данных применяется единственный «толстый» столбец, и медленную пагинацию ответов. Кроме того — наши системы были связаны с множеством собственных API разных баз данных — с API, которые постоянно развивались, и в которых иногда появлялись изменения, нарушающие обратную совместимость. Всё это привело к тому, что инженеры, в масштабах всей организации, тратили много времени на поддержку и оптимизацию механизмов доступа к данным наших микросервисов.

Читать далее

Pushy на пределе: рост и развитие WebSocket-прокси Netflix

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров2.9K

Pushy — это WebSocket‑сервер Netflix, который поддерживает долговременные WebSocket‑соединения с устройствами, на которых работает приложение Netflix. Благодаря этому данные с бэкенд‑сервисов можно отправлять на устройства по мере необходимости. При таком подходе нет нужды в постоянного опроса сервисов устройствами. За последние несколько лет Pushy пережил огромный рост, превратившись из сервиса для негарантированной доставки сообщений в неотъемлемую часть экосистемы Netflix. В этом материале вы узнаете о том, как мы развивали и масштабировали сервер Pushy, стремясь к тому, чтобы он хорошо справлялся со своими текущими обязанностями, и к тому, чтобы подготовить его к будущим нагрузкам. Он поддерживает сотни миллионов одновременных WebSocket‑подключений, доставляет адресатам сотни тысяч сообщений в секунду и удерживает стабильный уровень надёжности доставки сообщений в 99,999%.

Читать далее

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
22 апреля
VK Видео Meetup 2025
МоскваОнлайн
23 апреля
Meetup DevOps 43Tech
Санкт-ПетербургОнлайн
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область

Обнаружение «шумных соседей» с помощью eBPF

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров4.1K

Команды подразделения Netflix Compute and Performance Engineering регулярно анализируют происшествия, связанные с падением производительности программ, работающих в нашей многоарендной среде. Первый шаг такого анализа заключается определении того, что является источником проблемы: приложение или инфраструктура. Надо отметить, что подобные изыскания часто усложняет одна неприятность, известная как проблема «шумного соседа» («noisy neighbor»). На нашей многоарендной вычислительной платформе Titus «шумный сосед» представляет собой контейнер или системный сервис, который интенсивно использует серверные ресурсы, что приводит к падению производительности близких к нему контейнеров. Обычно мы уделяем особое внимание использованию CPU, так как именно за этот ресурс чаще всего борются наши рабочие нагрузки и их «шумные соседи».

Читать далее

Идеально ли текстовые эмбеддинги кодируют текст?

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.6K

Этот материал посвящён исследованию восстановления текстов из текстовых эмбеддингов.

Рост популярности векторных баз данных

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

Читать далее

Обманчивая статистическая значимость

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров6.4K

Статистическая значимость похожа на автокафе научно‑исследовательского мира. Подъезжаешь к исследованию, забираешь свой «бургер значимости», и — бабах — у тебя в руках оказывается вкусный вывод, которым можно поделиться с друзьями. Применение показателей статистической значимости удобно не только с точки зрения читателей научных статей. Они облегчают жизнь и самим исследователям. Зачем долго и мучительно что‑то объяснять, когда можно вместо этого ограничиться парой простых слов?

Но не так всё просто.

Читать далее

Последовательное A/B-тестирование в Netflix. Часть 2: процессы подсчёта

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров1.9K

Сталкивались вы когда-нибудь с ошибкой при просмотре потокового видео на Netflix? Может — неожиданно останавливался или вовсе не запускался фильм, который вас заинтересовал? В первой части этой серии статей мы рассказали о методологии тестирования канареечных релизов, применяемой к показателям, которые представлены непрерывными потоками данных. Среди таких показателей — «задержка воспроизведения» (play‑delay). Вот комментарий одного из читателей:

«А что если выход нового релиза не связан с изменениями в функционале воспроизведения и потоковой передачи видео? Например — что если в новом релизе будет изменено что-то, ответственное за вход пользователя в систему? Тестируя такой релиз вы, как и в других случаях, так же будете наблюдать за метрикой «задержка воспроизведения»?»

Читать далее

Последовательное A/B-тестирование в Netflix. Часть 1: непрерывные потоки данных

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров3.3K

Привет, Хабр! Из этой статьи вы узнаете про применение последовательного A/B‑тестирования в Netflix.

Читать далее

Автоматическая система Netflix для восстановления заданий после сбоев, основанная на машинном обучении

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров1.7K

Это — первый материал из серии статей, посвящённой использованию анализа данных и машинного обучения (Machine Learning, ML) в Netflix. Мы применяем то, о чём собираемся рассказать, совершенствуя автоматизацию оперативной деятельности. Делается это ради повышения производительности и экономической эффективности задач, связанных с обработкой больших данных. В понятие «автоматизация оперативной деятельности», кроме прочих, входят следующие операции: диагностика систем, исправление сбоев, конфигурирование, настройка, масштабирование, отладка, тестирование. Всё это — та база, от которой зависит успешность современных платформ, ориентированных на обработку данных. В этом материале речь пойдёт о нашем проекте Auto Remediation, направленном на автоматическое восстановление задач после сбоев. В соответствующую систему интегрированы классификатор ошибок, основанный на правилах, используемый в настоящий момент, и ML‑служба. Цель этой системы заключается в автоматическом восстановлении работоспособности заданий, с которыми что‑то случилось. Мы развернули систему Auto Remediation в продакшне для того, чтобы исправлять с её помощью ошибки заданий Spark. Это — ошибки, связанные с настройками памяти, и неклассифицированные ошибки. Система доказала свою эффективность. Так — было автоматически исправлено 56% ошибок, связанных с памятью, на 50% снижены расходы, вызванные всеми ошибками. Мы, кроме того, видим в Auto Remediation большой потенциал для дальнейшего развития.

Читать далее
1
23 ...

Информация

Сайт
wunderfund.io
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
xopxe