Forwarded from ДНСЙ 🫀
Было дело❓
🔥Огонек, если собесился и не получилось
❤️Сердечко, если работаешь в Яше
🔥Огонек, если собесился и не получилось
❤️Сердечко, если работаешь в Яше
🔥2
Адекватная разработка 🦄
Звучит как сказочный единорог, но в своём докладе Евгений сформулировал те принципы, к которым сам шёл долго. Тут и чистая архитектура, тут и локальная среда разработки с тестированием и транк бейсд. Всё это вместе делает разработку приятной, безопасной и немного скучной.
К сожалению, кровавый интерпрайз ещё далёк от таких адекватных условий. Каждый релиз разработчик просыпается в муках и в холодном поту. Тестирование живет своей жизнью. Одна боль, печаль и тихое выгорание. Но верю, что адекватная разработка прийдет и в интепрайз как опенсурс с микросервисами ранее.
У докладчика есть свой канал в тг
Звучит как сказочный единорог, но в своём докладе Евгений сформулировал те принципы, к которым сам шёл долго. Тут и чистая архитектура, тут и локальная среда разработки с тестированием и транк бейсд. Всё это вместе делает разработку приятной, безопасной и немного скучной.
К сожалению, кровавый интерпрайз ещё далёк от таких адекватных условий. Каждый релиз разработчик просыпается в муках и в холодном поту. Тестирование живет своей жизнью. Одна боль, печаль и тихое выгорание. Но верю, что адекватная разработка прийдет и в интепрайз как опенсурс с микросервисами ранее.
У докладчика есть свой канал в тг
YouTube
Как Event Storming, DDD и чистая архитектура помогают запустить стартап. Евгений Лукьянов
Выступление на ArchDays 2022. Подробнее о конференции: https://archconf.ru/arch
Бытует мнение, что все эти DDD и прочие DD нужны, только когда ваш проект вырос и генерирует сотни денег. На примере нашей конторы мы убедились, что это не так и все это позволяет…
Бытует мнение, что все эти DDD и прочие DD нужны, только когда ваш проект вырос и генерирует сотни денег. На примере нашей конторы мы убедились, что это не так и все это позволяет…
Forwarded from эйай ньюз
This media is not supported in your browser
VIEW IN TELEGRAM
Че за Symbolic Search и как он ищет новые оптимизаторы?
Условно, Symbolic Search — это Эволюционый Поиск для программ на стероидах. Параллельно запускается целая популяция программ. Из них выбираются те, что лучше всего перформят на целевой задаче (в нашем случае — это оптимизация нейронок). Далее к лучшим применяются мутации, то есть в них случайным образом менется часть кода. И цикл продолжается.
Через много-много сожженных МВатт⋅часов мы получаем финальную програму с наилучшим перформансом на целевой задаче.
Для любопытных — подробности в блогпосте AutoML-Zero от гугла (2020).
@ai_newz
Условно, Symbolic Search — это Эволюционый Поиск для программ на стероидах. Параллельно запускается целая популяция программ. Из них выбираются те, что лучше всего перформят на целевой задаче (в нашем случае — это оптимизация нейронок). Далее к лучшим применяются мутации, то есть в них случайным образом менется часть кода. И цикл продолжается.
Через много-много сожженных МВатт⋅часов мы получаем финальную програму с наилучшим перформансом на целевой задаче.
Для любопытных — подробности в блогпосте AutoML-Zero от гугла (2020).
@ai_newz
Forwarded from ☕️ Мерлин заваривает τσάι 🐌
Сайт с реализациями алгоритмов на графах с пошаговым выполнением и песочницей
https://dstruct.pro/playground
https://dstruct.pro/playground
Люблю тебя ❤️🔥
def closure_func_0():
cnt = [0]
def f():
cnt[0] += 1
return cnt[0]
return f
def closure_func_1():
cnt = 0
def f():
nonlocal cnt
cnt += 1
return cnt
return f
f_0 = closure_func_0()
f_1 = closure_func_1()
cnt_0 = f_0()
cnt_1 = f_1()
assert cnt_0 == cnt_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
Прочитал на одном дыхании замечательную статью о балансировке нагрузки (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
Я тут писал про оптимизации хеширования и сортировок с помощью 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
Deepmind
AlphaDev discovers faster sorting algorithms
In our paper published today in Nature, we introduce AlphaDev, an artificial intelligence (AI) system that uses reinforcement learning to discover enhanced computer science algorithms – surpassing those honed by scientists and engineers over decades.
🤔1
Forwarded from Love. Death. Transformers.
к слову это весь код, ага...
Когда сегодня утром Кирилл кинул мне этот код я подумал что это прикол и я прокомментировал это как: Чо за olympyad style code? Слили кодовую базу tg?
Когда сегодня утром Кирилл кинул мне этот код я подумал что это прикол и я прокомментировал это как: Чо за olympyad style code? Слили кодовую базу tg?
👏1
Forwarded from что-то на DL-ском
А вы знали, что есть способ улучшить генерализацию любой кодовой модели? Как? Применив до этого модель от Microsoft – CodeExecutor
Сложно-сложно, непонятно. Как я могу улучшить результаты своей модели, применив до этого CodeExecutor? А как именно надо применить?🤨
Итак, модель вышла в мае этого года. Основана она на предыдущей модели Microsoft под названием UnixCoder (2022). Коротко – чуваки взяли и поверх предыдущей модели на претрэйне обучали ее на предсказание трассировки по коду. Что за трассировка можно посмотреть во вложении, но по сути это состояние переменных в течении выполнения кода.
Они кстати выложили, как выглядит их датасет, но я нашла только test.😠 А собирали они его следующим образом: брали код из датасета CodeNet и прогоняли в песочнице, которая будет комплитить этот код и выдавать трассировку. Вау, как неожиданно. Ладно, на самом деле это не все, они еще зааугали данные различными операциями (вложения, там список). И получив AST дерево (тоже напомню во вложениях как оно выглядит), они получали элементы к которым они могут применить операции «мутаций»
Еще мне понравилось, что авторы вспомнили древний (ну реально, на фоне всех методов NLP) подход curriculum learning. Если коротко – это обучение с постепенным усложнением функции. Ну то есть начинаем с линейной, постепенно продвигаемся к выпуклой. Соответственно они начинали учить с однострочных кодов и увеличивали постепенно количество строк.
Так вот, как же она может то давать прирост величины результатов любой модели. Перед тем, как использовать кодовые модели просто прогоняем трестировку на данных и скарливаем. Все🧠 . По метрикам у моделей действительно увеличивается понимание кода.
🤗Модель
🖥 Код
Сложно-сложно, непонятно. Как я могу улучшить результаты своей модели, применив до этого CodeExecutor? А как именно надо применить?
Итак, модель вышла в мае этого года. Основана она на предыдущей модели Microsoft под названием UnixCoder (2022). Коротко – чуваки взяли и поверх предыдущей модели на претрэйне обучали ее на предсказание трассировки по коду. Что за трассировка можно посмотреть во вложении, но по сути это состояние переменных в течении выполнения кода.
Они кстати выложили, как выглядит их датасет, но я нашла только test.
Еще мне понравилось, что авторы вспомнили древний (ну реально, на фоне всех методов NLP) подход curriculum learning. Если коротко – это обучение с постепенным усложнением функции. Ну то есть начинаем с линейной, постепенно продвигаемся к выпуклой. Соответственно они начинали учить с однострочных кодов и увеличивали постепенно количество строк.
Так вот, как же она может то давать прирост величины результатов любой модели. Перед тем, как использовать кодовые модели просто прогоняем трестировку на данных и скарливаем. Все
🤗Модель
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1