Глубинный котер
94 subscribers
60 photos
7 videos
4 files
70 links
Download Telegram
Мальчик стал мужчиной
😁1
В голос
Админ сегодня в ударе
👍1
Forwarded from DevFM
This media is not supported in your browser
VIEW IN TELEGRAM
Load balancing

Прочитал на одном дыхании замечательную статью о балансировке нагрузки (load balancing).

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

По сути, оптимизировать можно два показателя: задержки при запросах и количество отклонённых сервером запросов.

Автор рассматривает:
– алгоритм round robin, когда запросы отправляются на сервера по кругу. Этот алгоритм не учитывает, что сервера могут иметь разную мощность. Тогда более мощные сервера будут быстро обрабатывать запросы, а менее мощные могут загибаться и давать отлупы.

– алгоритм dynamic weighted round robin учитывает мощность серверов. На основе среднего времени ответа им динамически устанавливаются веса. И, в зависимости от весов, будет автоматически варьироваться количество запросов.

– алгоритм least connection учитывает количество подключений, поддерживаемых серверами в текущий момент времени. Запрос будет передан серверу с наименьшим количеством активных подключений.

– алгоритм peak exponentially weighted moving average (PEWMA) направлен на уменьшение задержек в запросах. По сути, сочетает в себе dynamic weighted round robin, least connection и немного магии сверху.

Каждый из описанных алгоритмов сопровождается красивой и понятной анимацией. А в конце статьи можно поиграться с наглядным симулятором каждого из методов.

Помимо теоретических выкладок, автор проводит целое исследование, и смотрит, как в разных ситуациях ведёт себя каждый из алгоритмов.
Вас ожидают интересные выводы :)

#skills
💔1
Forwarded from Experimental chill
Сегодня прям праздник статей!

Я тут писал про оптимизации хеширования и сортировок с помощью Reinforcement Learning, Deepmind выложили статью, я в acknowledgements.

AlphaDev discovers faster sorting and hashing algorithms
https://www.deepmind.com/blog/alphadev-discovers-faster-sorting-algorithms

Faster sorting algorithms discovered using deep reinforcement learning
https://www.nature.com/articles/s41586-023-06004-9

Из очень хорошего, работать мне с ними понравилось. Из интересного -- результаты не самые революционные, но какие-то циклы серверов сэкономили.

HN: https://news.ycombinator.com/item?id=36228125
🤔1
npm найдётся всё !
🔥1
к слову это весь код, ага...
Когда сегодня утром Кирилл кинул мне этот код я подумал что это прикол и я прокомментировал это как: Чо за olympyad style code? Слили кодовую базу tg?
👏1
А вы знали, что есть способ улучшить генерализацию любой кодовой модели? Как? Применив до этого модель от Microsoft – CodeExecutor

Сложно-сложно, непонятно. Как я могу улучшить результаты своей модели, применив до этого CodeExecutor? А как именно надо применить?🤨

Итак, модель вышла в мае этого года. Основана она на предыдущей модели Microsoft под названием UnixCoder (2022). Коротко – чуваки взяли и поверх предыдущей модели на претрэйне обучали ее на предсказание трассировки по коду. Что за трассировка можно посмотреть во вложении, но по сути это состояние переменных в течении выполнения кода.

Они кстати выложили, как выглядит их датасет, но я нашла только test. 😠 А собирали они его следующим образом: брали код из датасета CodeNet и прогоняли в песочнице, которая будет комплитить этот код и выдавать трассировку. Вау, как неожиданно. Ладно, на самом деле это не все, они еще зааугали данные различными операциями (вложения, там список). И получив AST дерево (тоже напомню во вложениях как оно выглядит), они получали элементы к которым они могут применить операции «мутаций»

Еще мне понравилось, что авторы вспомнили древний (ну реально, на фоне всех методов NLP) подход curriculum learning. Если коротко – это обучение с постепенным усложнением функции. Ну то есть начинаем с линейной, постепенно продвигаемся к выпуклой. Соответственно они начинали учить с однострочных кодов и увеличивали постепенно количество строк.

Так вот, как же она может то давать прирост величины результатов любой модели. Перед тем, как использовать кодовые модели просто прогоняем трестировку на данных и скарливаем. Все🧠. По метрикам у моделей действительно увеличивается понимание кода.

🤗Модель
🖥Код
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Мартин Фаулер по существу даёт базу
👍1
Шутники
😁1
Затравочка на написание своего плагина для ruff
Forwarded from Блог*
Чат*, у меня для вас задачка.

Есть вот такое простенькое AST для подмножества арифметических выражений:

enum Expr {
Lit(i32),
Neg(Box<Self>),
Add(Box<Self>, Box<Self>),
}

(взял отсюда, да)

Напишите код для вывода этих выражений так, чтобы:

* в них были корректно расставлены скобки (в частности, никаких два знака операции подряд)
* с учётом ассоциативности сложения (то есть add(lit(1), add(lit(2), lit(3))) должно выводиться, как 1 + 2 + 3, а не 1 + (2 + 3))
* без избыточных скобок (в частности, без скобок на топ-левеле и без скобок вокруг положительных литералов).

Отрицание на вычитание переправлять не надо.

Не то чтобы сильно сложная задача, но сложнее, чем кажется на первый взгляд.
👍1
Это полный прикол. Сертификат курса
👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Пересматриваю доклад прошлогоднего ArchDays и прям сердечко ёкает
👍1
Не остался в стороне
👍2🎉1
Профессор Фортран существует!!
😁1