
Как создать анимированные шейдеры в Jetpack Compose

Скромный пастух нулей и единиц…
Point in Time Recovery (PiTR) — это восстановление базы данных на какой‑то конкретный момент времени (с точностью до секунд или до конкретной транзакции).
PiTR невероятно полезен для восстановления базы данных после того, как «случилось непоправимое». Если достаточно точно выбрать точку на которую восстанавливать базу, то можно восстановить базу данных практически без потери данных.
В этой статье мы рассмотрим классический PiTR и еще два способа путешествовать во времени быстрее, и уменьшить количество операций, которые надо выполнять руками.
Создание кластера Kubernetes может быть сложным процессом, который включает в себя множество опций, но сложные вещи могут стать более понятными, когда их разложить на части. В этой статье мы демистифицируем процесс создания кластера Kubernetes, понимая минимальный набор компонентов и настроек, необходимых для запуска узла Kubernetes внутри виртуальной машины.
Дисперсионный анализ (ANOVA) — это статистический метод, который используется для сравнения средних значений двух или более выборок. Он позволяет определить, различаются ли средние значения между группами, или же различия случайны. ANOVA используется в различных областях, включая науку, инженерию, медицину, социологию и многие другие, где необходимо доказать связь между переменными.
ANOVA является мощным инструментом, который может использоваться в статистическом анализе для оценки влияния исследуемого фактора на зависимую переменную. Это помогает установить, является ли фактор значимым, и позволяет идентифицировать взаимодействие между переменными. ANOVA также позволяет определить, насколько сильно различия между группами, что может быть полезно при выборе стратегий манипулирования факторами.
Правильное применение ANOVA может доставить большую пользу и сделать исследование намного более информативным.
Привет! Меня зовут Михаил Боровиков, я тимлид команды, которая отвечает за систему процессинга заказов Lamoda — Orders Management. Эта система, словно «сердце» Lamoda, через которое проходит самый важный для бизнеса шаг — оформление заказа.
Раньше система представляла из себя монолит. Теперь вместо него у нас много отдельных сервисов, которые общаются по сети. В рамках новой схемы взаимодействия сервисов между собой мы и столкнулись с проблемой потери данных в процессе создания заказа, чего допускать в важной для нас системе было категорически нельзя.
Для решения этой проблемы мы выбрали паттерн Outbox. И в этой статье я расскажу, что он из себя представляет, как мы его применили, почему пошли по пути at-least-once и не положились на работу одного брокера сообщений.
Всем привет, я Илья Сергунин, веб-разработчик из продуктовой команды Авито. Мы пишем на Go сервис для трейд-ин мобильных телефонов. На его примере покажу, как устроен наш менеджер транзакций.
Однажды я столкнулся с проблемой отклонений при начислении процентов. Суть в том, что бухгалтера обязаны начислять проценты ежемесячно и делать соответствующие проводки в бухгалтерской программе, но сумма помесячных начислений зачастую не равна произведению процентной ставки на сумму займам (при условии неизменности долга).
Я решил посмотреть, что на этот счёт говорит ГК РФ:
Всем привет! Меня зовут Анатолий, я лидирую команду машинного обучения в онлайн-кинотеатре more.tv. В своей работе мы активно прототипируем и внедряем сервисы на основе обучения с подкреплением. Этот раздел машинного обучения всё ещё продолжает стоять особняком в индустрии, однако ситуация начинает постепенно меняться. Два года назад я впервые разработал контекстуальных бандитов для решения задачи ранжирования. По сравнению с мейнстримными listwise, pairwise и pointwise подходами, результат лично меня удивил. Конечно, как и всё, что делается в первый раз, было сделано с не очень большим пониманием дела.
Однако, уже было понимание того, что RL - парадигмально иной раздел машинного обучения, требующий, в каком-то смысле, перестроения способа мышления. Полученный результат заставил меня более детально разбираться с теоретическими основами обучения с подкреплением и различными постановками задач.
Я более чем уверен, что мой пример не является аномалией или каким-то выдающимся случаем. Умея разрабатывать RL, каждый сможет существенно улучшить качество имеющихся ML/DL моделей, которые уже хорошо зарекомендовали себя в проде, или разработать собственное перспективное sota-решение для нового сервиса. Мне всегда было интересно разобраться в том, какие новаторские способы применяются в ML за пределами мейнстримных библиотек и сервисов. К примеру, в первую очередь я ознакомился не с функциональностью chatGPT, а с её разработкой по исходной статье.
Возможно, я “подсмотрю” интересное решение, которое смогу применить в своём рабочем проекте? А если и не получится, то получу опыт и расширю кругозор. И как же было забавно наблюдать, что RL подходы, описанные в оригинале статьи о разработке chatGPT, я уже применил на практике вместе со своей командой в наших бизнес-задачах.
GPT-4 позволяет достаточно просто писать boilerplate код с использованием различных языков, технологий и библиотек. Но, есть небольшая проблема, данные GPT-4 не совсем актуальные и ограничены серединой 2021 года.
Проблема ясна, надо как то решать, потому что работать по-старому совсем не хочется. Уже привык, что можно достаточно просто попросить объяснить и сгенерировать код, пускай даже достаточно простого и можно сказать примитивного, но этого зачастую хватает, чтобы быстро понять как можно сделать задачу или найти нужную информацию.
Для описания объектов и процессов в терминах бизнес-логики, конфигурирования и определения структуры и логики в сложных системах популярным подходом является использование предметно-специфических языков (Domain Specific Language - DSL), которые реализуются либо через синтаксические особенности языка программирования (например, с использованием средств метапрограммирования, аннотаций/декораторов, переопределения операторов и создания инфиксных операторов, как например в Kotlin DSL) или с помощью применения специализированных инструментов разработки и компиляторов (например, Jetbrains MPS или парсеров общего назначения, таких как ANTLR или Bison). Но существует также подход реализации DSL, основанный на синтаксическом разборе и одновременной кодогенерации для создания исполняемого кода по описанию и в этой статье мы рассмотрим некоторые примеры использования библиотеки textx для создания DSL на Python.
Эта статья послужит введением в представление (embedding), подобие (similarity) и кластеризацию (clustering).
Знать эти ключевые понятия машинного обучения нужно, чтобы понять, что такое скрытое пространство.
За подробностями приглашаем под кат.
Авторский обзор 90+ нейросетевых моделей на основе Transformer для тех, кто не успевает читать статьи, но хочет быть в курсе ситуации и понимать технические детали идущей революции ИИ.
Началось все на лекциях. Для иллюстрации работы нейронной сети нужны простые примеры. Достаточно хорошо известно, что одиночный нейрон формирует разделяющую гиперплоскость, и поэтому задачки типа "а найди мне, какой прямой разделяются два цвета на флаге Монако (который состоит из двух горизонтальных полос)" один нейрон решает на раз. Проблемы начинаются позже, например с флагом Японии (который состоит из красного круга на белом фоне) - один нейрон эту задачу хорошо не решает. Обычно, стандартным методом решения является 'в лоб': а давайте увеличим число нейронов, поставим решаюший слой, и задача решится. И тут возникает проблема номер 1: сколько нейронов в скрытом слое ставить. Традиционный ответ из всей обучающей литературы - подбирайте опытным путем. С одной стороны, их не должно быть сильно много, потому-что будет много неизвестных параметров, а с другой стороны - и сильно мало тоже не очень хорошо, ведь с одним нейроном мы уже обожглись. Итак, стандартный вопрос: сколько-же нейронов все-таки надо?
Оказывается, ответ на этот вопрос давно уже есть: в этой задаче - ровно пять. Есть такая теорема Колмогорова-Арнольда, где доказано, что если взять пять нейронов, то для них существуют какие-то гладкие функции активации, при которых двухслойная нейронка будет решать почти любую простую задачу для двумерных входных данных. И это было доказано аж в конце 50х годов 20 века и решало одну из важнейших математических задач 20го века - 13ю проблему Гильберта. Ключевая проблема здесь - "какие-то гладкие функции активации". Ведь, какие они конкретно - никто не сказал, и поэтому нужно их искать.
В этой статье мы рассмотрим как рендерить капли на OpenGL и расчитывать на лету нормаль для отражения и прозрачности. А так же, что такое Metaballs, баги графических чипсетов и какие трюки оптимизации можно применить для 60 FPS на мобильных девайсах.
Эта статья - вторая в серии, после статьи Ретеншен — основная метрика F2P игры, вероятностный подход
Здесь я рассматриваю ретеншен не как скалярную случайную величину, а как случайный временной ряд. Далее создаю модель нелинейной аппроксимации метрики, учитывающую сезонность и выпуск патчей.
Рассмотренная методика реализована в виде Jupyter-ноутбука retention-rate-approximator, выложенного в общий доступ.
Инженеры Apple придумали прекрасные по быстродействию и производительности процессоры Apple Silicon (M1, M1 Max и так далее) на архитектуре arm64. Но за полученное быстродействие разработчикам пришлось платить своим временем.
Рассказываем, к каким проблемам мог привести апгрейд рабочего мака и что нужно учитывать с изобретением процессоров Apple Silicon.
Статья вдохновлена ограничениями в недавно вышедшем Xcode 14.3: запуск из-под Rosetta в нём стал deprecated.