Forwarded from DevFM
Очереди – что сложного то?
Знание и понимание очередей очень важно для разработчика. Очереди обеспечивают распределение ресурсов, репликацию сообщений, отказоустойчивость, надёжность передачи, гарантию доставки и коммуникацию микросервисов.
Подождите, очередь – это когда с одной с стороны положили, а с другой стороны кто-то забрал? Почти, но всё немного сложнее. Особенно в распределённых системах, особенно когда сообщений десятки тысяч в секунду.
В статье Соседняя очередь всегда движется быстрее автор со всех сторон рассматривает очереди. Очень захватывающее чтиво, наталкивающее на множество размышлений.
Начинается всё с базовых понятий, какие вообще бывают способы организации очередей: put/take, pub/sub, request/response.
Для применения очередей существует множество инструментов.
– Apache Kafka реплицируемый шардируемый лог сообщений для стриминга. Мы кафку очень любим, и о ней были отдельные посты (раз, два)
– RabbitMQ – традиционный pub/sub broker. В отличие от Kafka, у кролика нет ограничений на количество потребителей. Кролик часто используется как шина данных между сервисами
– NATS обеспечивает быстрый неперсистентный обмен сообщениями, высокую производительность и масштабируемость
– Tarantool – это in-memory db, которая может быть использована для организации очередей. Примечателен тем, что можно написать свою очередь на стероидах, со своим процессингом, логикой и приоритетами
На самом деле очень важно знать особенности и отличия этих инструментов, чтобы применять их к месту. На этот счёт в конце статьи у автора также есть размышления.
Напишите в комментариях, какие системы очередей вы знаете или используете на практике. За что их любите или не любите?
Говоря о проблемах – они у очередей есть.
– на уровне алгоритма важно решить, что делать при отказе консьюмера, который уже взял сообщение. Best Effort – просто вернуть сообщение обратно. Но не во всех брокерах так можно. В таком случае можно настроить dead letter queue – отдельную очередь со своей логикой обработки таких сообщений.
– а ещё бывают проблемы приоритизации, когда из-за множества задач с высоким приоритетом консьюмер может никогда не добраться до задач с низким.
– на сетевом уровне существует undefined behavior, то есть сообщение отправлено, но мы не знаем, оно дошло и получено или потерялось
– помимо сети есть диск, который влияет на пропускную способность и задержку в обработке, которая может оказаться не предсказуемой
Чтобы обеспечить доступность (avalability) и надёжность (durability) применяются разные топологии:
– single instance – самый простой вариант. Один брокер, одна очередь, продюсер и консьюмер. Немасштабируемо, низкая доступность и надежность.
– multi instance – можно масштабировать и ставить столько очередей сколько нужно. С надежностью и доступностью получше, но если одна из очередей грохнется, то данные из нее потеряются.
– идём дальше и дублируем уже сами очереди
– автор не останавливается на этом и рассказывает о реплицировании, реплика-сетах, кворумах, кворумных очередях.
Познакомившись с различными сложностями понимаешь, что хорошо бы всё это мониторить. Существуют следующие метрики: размер очереди, время обработки сообщения, количество потерь и отказов.
И всегда нужно быть готовым к самому худшему – к падению. Для этого существуют политики отказа, например, можно отказаться от приёма новых сообщений. Если нельзя, то можно уничтожать старые сообщения и продолжать принимать новые. Как вариант, когда часть сообщений ещё живая, а часть старая, можно попробовать обрабатывать живые, а потом вернуться к старым.
Напоследок ценная мысель: если вы не знаете, как ваша система падает и поднимается, быстро вы её не поднимите.
#skills
Знание и понимание очередей очень важно для разработчика. Очереди обеспечивают распределение ресурсов, репликацию сообщений, отказоустойчивость, надёжность передачи, гарантию доставки и коммуникацию микросервисов.
Подождите, очередь – это когда с одной с стороны положили, а с другой стороны кто-то забрал? Почти, но всё немного сложнее. Особенно в распределённых системах, особенно когда сообщений десятки тысяч в секунду.
В статье Соседняя очередь всегда движется быстрее автор со всех сторон рассматривает очереди. Очень захватывающее чтиво, наталкивающее на множество размышлений.
Начинается всё с базовых понятий, какие вообще бывают способы организации очередей: put/take, pub/sub, request/response.
Для применения очередей существует множество инструментов.
– Apache Kafka реплицируемый шардируемый лог сообщений для стриминга. Мы кафку очень любим, и о ней были отдельные посты (раз, два)
– RabbitMQ – традиционный pub/sub broker. В отличие от Kafka, у кролика нет ограничений на количество потребителей. Кролик часто используется как шина данных между сервисами
– NATS обеспечивает быстрый неперсистентный обмен сообщениями, высокую производительность и масштабируемость
– Tarantool – это in-memory db, которая может быть использована для организации очередей. Примечателен тем, что можно написать свою очередь на стероидах, со своим процессингом, логикой и приоритетами
На самом деле очень важно знать особенности и отличия этих инструментов, чтобы применять их к месту. На этот счёт в конце статьи у автора также есть размышления.
Напишите в комментариях, какие системы очередей вы знаете или используете на практике. За что их любите или не любите?
Говоря о проблемах – они у очередей есть.
– на уровне алгоритма важно решить, что делать при отказе консьюмера, который уже взял сообщение. Best Effort – просто вернуть сообщение обратно. Но не во всех брокерах так можно. В таком случае можно настроить dead letter queue – отдельную очередь со своей логикой обработки таких сообщений.
– а ещё бывают проблемы приоритизации, когда из-за множества задач с высоким приоритетом консьюмер может никогда не добраться до задач с низким.
– на сетевом уровне существует undefined behavior, то есть сообщение отправлено, но мы не знаем, оно дошло и получено или потерялось
– помимо сети есть диск, который влияет на пропускную способность и задержку в обработке, которая может оказаться не предсказуемой
Чтобы обеспечить доступность (avalability) и надёжность (durability) применяются разные топологии:
– single instance – самый простой вариант. Один брокер, одна очередь, продюсер и консьюмер. Немасштабируемо, низкая доступность и надежность.
– multi instance – можно масштабировать и ставить столько очередей сколько нужно. С надежностью и доступностью получше, но если одна из очередей грохнется, то данные из нее потеряются.
– идём дальше и дублируем уже сами очереди
– автор не останавливается на этом и рассказывает о реплицировании, реплика-сетах, кворумах, кворумных очередях.
Познакомившись с различными сложностями понимаешь, что хорошо бы всё это мониторить. Существуют следующие метрики: размер очереди, время обработки сообщения, количество потерь и отказов.
И всегда нужно быть готовым к самому худшему – к падению. Для этого существуют политики отказа, например, можно отказаться от приёма новых сообщений. Если нельзя, то можно уничтожать старые сообщения и продолжать принимать новые. Как вариант, когда часть сообщений ещё живая, а часть старая, можно попробовать обрабатывать живые, а потом вернуться к старым.
Напоследок ценная мысель: если вы не знаете, как ваша система падает и поднимается, быстро вы её не поднимите.
#skills
Хабр
Соседняя очередь всегда движется быстрее
Вы не используете очередь? Вы просто не умеете её готовить. Но прежде чем этому научиться, нужно разобраться, что это вообще такое и где это применяется. Потому что большинству достаточно 10 000...
У каждого айтишника есть свои классные идеи стартапа. Но делать стартап в одиночку сложно: надо много знаний в разных областях, много времени, само-мотивация. Стоит ли вовлекать партнёров и работать в команде?
Anonymous Poll
23%
У меня пока ещё нет своей достойной идеи
8%
Буду работать в одиночку, даже если это затянет процесс - не хочу делиться ни с кем будущей прибылью
8%
Буду работать в одиночку - не верю что партнёр(ы) будут выкладываться на 100% или что-то улучшат
8%
Буду по возможности бесплатно консультироваться у друзей и знакомых
0%
Буду нанимать платных консультантов и специалистов в тех областях, которые плохо знаю
31%
Постараюсь найти одного или нескольких партнёров с долевым участием в расходах и будущей прибыли
23%
Постараюсь продать свою идею в инкубатор стартапов, "бизнес-ангелам", возможно, сделав MVP
#biglanguagemodels
"Хотя Google и Microsoft активно соперничают, пытаясь доказать превосходство своих чат-ботов, технология «человекоподобных» ИИ-инструментов — не единственная сфера применения машинного обучения и языковых моделей.
Наряду со слухами о планах представить более 20 инструментов на базе алгоритмов ИИ в ходе конференции I/O этого года, Google продолжает работать над языковой моделью, поддерживающей 1000 языков. В понедельник компания поделилась новой информацией о своей универсальной речевой модели, которую в Google описывают как «критический первый шаг» в реализации своих планов на этом поприще.
Ещё в прошлом ноябре компания анонсировала планы создания языковой модели, поддерживающей 1000 наиболее распространённых языков, рассказав об USM. Google описывает её как «семейство ультрасовременных речевых моделей» с 2 млрд параметров. При тренировке использовались 12 млн часов речи и 28 млрд предложений из более чем 300 языков.
USM уже используется Google для создания субтитров на YouTube, модель уже поддерживает автоматическое распознавание речи. Это позволяет автоматически определять и распознавать различные языки, от распространённых вроде английского или мандаринского диалекта китайского до амхарского или ассамского. По данным Google, уже сейчас USM поддерживает более 100 языков и послужит основой для строительства ещё более масштабной системы. Известно, что над аналогичной технологией ИИ-перевода уже работает Meta."
https://3dnews.ru/1082990/noviy-variant-rechevoy-iimodeli-google-usm-pozvolit-obrabativat-bolee-1000-yazikov
"Хотя Google и Microsoft активно соперничают, пытаясь доказать превосходство своих чат-ботов, технология «человекоподобных» ИИ-инструментов — не единственная сфера применения машинного обучения и языковых моделей.
Наряду со слухами о планах представить более 20 инструментов на базе алгоритмов ИИ в ходе конференции I/O этого года, Google продолжает работать над языковой моделью, поддерживающей 1000 языков. В понедельник компания поделилась новой информацией о своей универсальной речевой модели, которую в Google описывают как «критический первый шаг» в реализации своих планов на этом поприще.
Ещё в прошлом ноябре компания анонсировала планы создания языковой модели, поддерживающей 1000 наиболее распространённых языков, рассказав об USM. Google описывает её как «семейство ультрасовременных речевых моделей» с 2 млрд параметров. При тренировке использовались 12 млн часов речи и 28 млрд предложений из более чем 300 языков.
USM уже используется Google для создания субтитров на YouTube, модель уже поддерживает автоматическое распознавание речи. Это позволяет автоматически определять и распознавать различные языки, от распространённых вроде английского или мандаринского диалекта китайского до амхарского или ассамского. По данным Google, уже сейчас USM поддерживает более 100 языков и послужит основой для строительства ещё более масштабной системы. Известно, что над аналогичной технологией ИИ-перевода уже работает Meta."
https://3dnews.ru/1082990/noviy-variant-rechevoy-iimodeli-google-usm-pozvolit-obrabativat-bolee-1000-yazikov
3DNews - Daily Digital Digest
Новый вариант речевой ИИ-модели Google USM позволит обрабатывать более 1000 языков
В разработке у Google находятся практически все виды ИИ-технологий, но Универсальная речевая модель (Universal Speech Model или USM) занимает в портфолио компании особое место.
#hardware #cpu
А между тем полупроводниковый техпроцесс входит уже в зону 2 нанометров, кто бы мог подумать об этом десять лет тому? Разве что Мур.
"В рамках Intel 20A будет применена новая структура транзисторов RibbonFET с круговым затвором Gate-All-Around (GAA), а также новая схема питания Back Side Power Delivery (BSPD). Одновременное внедрение транзисторов меньшего размера, новой архитектуры транзисторов и новой схемы их питания является рискованным шагом со стороны Intel, однако компания ожидает, что техпроцесс Intel 20A позволит ей обогнать конкурентов в лице TSMC и Samsung. Компания Intel планирует начать использовать указанный техпроцесс уже в первой половине 2024 года. Последующий техпроцесс Intel 18A, как предполагается, будет внедрён до конца того же года и позволит поднять эффективность полупроводниковых устройств ещё на 10 %. Изначально компания планировала использовать для производства 1,8-нм полупроводников сканеры Twinscan EXE нидерландской компании ASML с оптикой, обладающей числовой апертурой 0,55 NA. Но поскольку она решила вывести указанный техпроцесс на рынок раньше, то ей придётся полагаться на менее передовые нынешние сканеры Twinscan NXE с апертурой 0,33 NA, а также на EUV-сканеры с последовательной сменой двух фотошаблонов. Intel считает, что её 1,8-нм техпроцесс производства станет самым передовым на рынке."
https://3dnews.ru/1082983/intel-zavershila-razrabotku-tehprotsessov-intel-18a-i-intel-20a
А между тем полупроводниковый техпроцесс входит уже в зону 2 нанометров, кто бы мог подумать об этом десять лет тому? Разве что Мур.
"В рамках Intel 20A будет применена новая структура транзисторов RibbonFET с круговым затвором Gate-All-Around (GAA), а также новая схема питания Back Side Power Delivery (BSPD). Одновременное внедрение транзисторов меньшего размера, новой архитектуры транзисторов и новой схемы их питания является рискованным шагом со стороны Intel, однако компания ожидает, что техпроцесс Intel 20A позволит ей обогнать конкурентов в лице TSMC и Samsung. Компания Intel планирует начать использовать указанный техпроцесс уже в первой половине 2024 года. Последующий техпроцесс Intel 18A, как предполагается, будет внедрён до конца того же года и позволит поднять эффективность полупроводниковых устройств ещё на 10 %. Изначально компания планировала использовать для производства 1,8-нм полупроводников сканеры Twinscan EXE нидерландской компании ASML с оптикой, обладающей числовой апертурой 0,55 NA. Но поскольку она решила вывести указанный техпроцесс на рынок раньше, то ей придётся полагаться на менее передовые нынешние сканеры Twinscan NXE с апертурой 0,33 NA, а также на EUV-сканеры с последовательной сменой двух фотошаблонов. Intel считает, что её 1,8-нм техпроцесс производства станет самым передовым на рынке."
https://3dnews.ru/1082983/intel-zavershila-razrabotku-tehprotsessov-intel-18a-i-intel-20a
3DNews - Daily Digital Digest
Intel завершила разработку ангстремных техпроцессов для выпуска самых передовых чипов — их внедрят в 2024 году
Компания Intel завершила разработку своих технологических процессов Intel 18A (1,8-нм класс) и Intel 20A (2-нм класс), которые будут применяться при производстве как её будущих продуктов, а также чипов от сторонних заказчиков, которые будут выпускаться в…
Forwarded from Пресидский залив (ex Надя пробует) (Nadia ズエバ)
Мой фреймворк для проектов с DL-экспериментами
Начиная новый проект, я представляю, что вокруг меня прогружается мир в игре. Взаимодействуя с ним я лучше понимаю задачу и как хорошо я могу ее выполнить. И что вообще значит "хорошо"
👉🏻 Формулирую задачу в первом приближении
Что хотим на вход, а что — на выход. Какие есть ограничения? По мере взаимодействия с миром проекта формулировка может уточняться
👀 Смотрю по сторонам.
Что уже было сделано до меня, куда можно потыкать палкой? Какие есть статьи по этой теме, на кого они ссылаются? С какими конфами/соревнованиями ассоциированы? Метрики? Здесь не нужно фиксировать метрику и архитектуру — это про насмотренность чтобы в процессе решения задачи быстрее ориентироваться
🚴Создаю бейзлайн-решение.
Это может быть опенсорс из коробки, главное, чтобы работало. Фраза с физтеха — "лучше иметь велосипед, чем дверь от ламборгини"
📈 Фиксирую метрики и голденсеты Второй пункт лучше зафиксировать и не менять, а вот первый по мере получения новой информации о нашем мире вполне может обновляться
🏆 Выбираю своего "чемпиона" из доступного на этом шаге набора — сетап в который больше всего верю. После обучения я делаю анализ слабых мест модели — на голденсете и процессинге семплов с большими ошибками
📚 Data
В первых итерациях — опенсорс, выявили сложные места и итеративно добавляем пачки. Почти всегда данные придется собирать дополнительно
♻️ После того как была получена модель с ok качеством, ее можно оптимизировать. Ускорять, уменьшать без значительных проигрышей в точности
📲 Куда поедем?
На сервер — стоит убедиться, что не течет память. Если модель будет жить на девайсе — стоит быть готовым к тому, что она не спортируется с пол-пинка. Особенно, если там есть какие-то нетривиальные слои. Я сталкивалась с ситуациями, когда приходилось повозиться с coremltools/tfjs и даже безобидным onnx
🛫 Taking off!
Все спортировано, с инфраструктурой помержено. АВ тесты прошли успешно. Посматриваем мониторинг и перемещаемся в следующую локацию 🧙🏻♂️
кто узнал игру? 😏
Начиная новый проект, я представляю, что вокруг меня прогружается мир в игре. Взаимодействуя с ним я лучше понимаю задачу и как хорошо я могу ее выполнить. И что вообще значит "хорошо"
👉🏻 Формулирую задачу в первом приближении
Что хотим на вход, а что — на выход. Какие есть ограничения? По мере взаимодействия с миром проекта формулировка может уточняться
👀 Смотрю по сторонам.
Что уже было сделано до меня, куда можно потыкать палкой? Какие есть статьи по этой теме, на кого они ссылаются? С какими конфами/соревнованиями ассоциированы? Метрики? Здесь не нужно фиксировать метрику и архитектуру — это про насмотренность чтобы в процессе решения задачи быстрее ориентироваться
🚴Создаю бейзлайн-решение.
Это может быть опенсорс из коробки, главное, чтобы работало. Фраза с физтеха — "лучше иметь велосипед, чем дверь от ламборгини"
📈 Фиксирую метрики и голденсеты Второй пункт лучше зафиксировать и не менять, а вот первый по мере получения новой информации о нашем мире вполне может обновляться
🏆 Выбираю своего "чемпиона" из доступного на этом шаге набора — сетап в который больше всего верю. После обучения я делаю анализ слабых мест модели — на голденсете и процессинге семплов с большими ошибками
📚 Data
В первых итерациях — опенсорс, выявили сложные места и итеративно добавляем пачки. Почти всегда данные придется собирать дополнительно
♻️ После того как была получена модель с ok качеством, ее можно оптимизировать. Ускорять, уменьшать без значительных проигрышей в точности
📲 Куда поедем?
На сервер — стоит убедиться, что не течет память. Если модель будет жить на девайсе — стоит быть готовым к тому, что она не спортируется с пол-пинка. Особенно, если там есть какие-то нетривиальные слои. Я сталкивалась с ситуациями, когда приходилось повозиться с coremltools/tfjs и даже безобидным onnx
🛫 Taking off!
Все спортировано, с инфраструктурой помержено. АВ тесты прошли успешно. Посматриваем мониторинг и перемещаемся в следующую локацию 🧙🏻♂️
#timeseries #ml #competition #electricity
Тот момент, когда организаторы ML сорева с валидацией в реальном времени задают странные вопросы о том, где ты взял OOS данные...
Тот момент, когда организаторы ML сорева с валидацией в реальном времени задают странные вопросы о том, где ты взял OOS данные...
#chess #stats
Нашёл свою старую шахматную аналитику по рейтингам FIDE, вдруг кому надо подобное. Цель была в определении "восходящих звёзд" и особенно "подозрительно быстро восходящих звёзд".
https://github.com/fingoldo/FideRatings/blob/master/FideRatings.ipynb
Нашёл свою старую шахматную аналитику по рейтингам FIDE, вдруг кому надо подобное. Цель была в определении "восходящих звёзд" и особенно "подозрительно быстро восходящих звёзд".
https://github.com/fingoldo/FideRatings/blob/master/FideRatings.ipynb
#ml #featureengineering #geofeatures #advicewanted
Есть задачка на генерацию геофичей. Юзер логинится в приложение в разных точках города, Известны его координаты при логине и метки времени. Какие бы интересные фичи построить из графа его перемещений?
Пока что нашел вот такую прекрасную серию статей
https://towardsdatascience.com/graph-machine-learning-with-python-pt-1-basics-metrics-and-algorithms-cc40972de113
https://towardsdatascience.com/graph-machine-learning-with-python-part-3-unsupervised-learning-aa2854fe0ff2
https://towardsdatascience.com/graph-machine-learning-with-python-part-4-supervised-semi-supervised-learning-d66878161b79
Есть задачка на генерацию геофичей. Юзер логинится в приложение в разных точках города, Известны его координаты при логине и метки времени. Какие бы интересные фичи построить из графа его перемещений?
Пока что нашел вот такую прекрасную серию статей
https://towardsdatascience.com/graph-machine-learning-with-python-pt-1-basics-metrics-and-algorithms-cc40972de113
https://towardsdatascience.com/graph-machine-learning-with-python-part-3-unsupervised-learning-aa2854fe0ff2
https://towardsdatascience.com/graph-machine-learning-with-python-part-4-supervised-semi-supervised-learning-d66878161b79
Medium
Graph Machine Learning with Python Part 1: Basics, Metrics, and Algorithms
An introduction to networks via key metrics and algorithms on a Football dataset
Aspiring Data Science
#ml #featureengineering #geofeatures #advicewanted Есть задачка на генерацию геофичей. Юзер логинится в приложение в разных точках города, Известны его координаты при логине и метки времени. Какие бы интересные фичи построить из графа его перемещений? Пока…
#ml #gbm #catboost #quantileloss
https://towardsdatascience.com/a-new-way-to-predict-probability-distributions-e7258349f464
https://towardsdatascience.com/a-new-way-to-predict-probability-distributions-e7258349f464
Medium
A New Way to Predict Probability Distributions
Exploring multi-quantile regression with Catboost
#surverys
Кто может посоветовать сервис для проведения опросов? Гугл формс, конечно, бесплатный, но по ссылке нельзя передать параметры (например, хэш юзера или кампании), и он не собирает ip, а если бы собирал, можно было бы у респондента не спрашивать страну.
СурвейМанки, с другой стороны, задирает цены, $34/mo и это только при оплате сразу за год, а так ещё выше.
Кто может посоветовать сервис для проведения опросов? Гугл формс, конечно, бесплатный, но по ссылке нельзя передать параметры (например, хэш юзера или кампании), и он не собирает ip, а если бы собирал, можно было бы у респондента не спрашивать страну.
СурвейМанки, с другой стороны, задирает цены, $34/mo и это только при оплате сразу за год, а так ещё выше.
#ml #graphs #convolution #templatematching #spectral #laplacian #fourier #gcn #chebyshev #chebnets #cayleynets #graphsage #gin
Оказывается, ну почти всё в нашей жизни можно представить как граф. Так вот внезапно ты становишься объктом исследования науки и учёных, о которых ничего и не знал.
https://youtu.be/Iiv9R6BjxHM
Оказывается, ну почти всё в нашей жизни можно представить как граф. Так вот внезапно ты становишься объктом исследования науки и учёных, о которых ничего и не знал.
https://youtu.be/Iiv9R6BjxHM
YouTube
Week 13 – Lecture: Graph Convolutional Networks (GCNs)
Course website: http://bit.ly/DLSP20-web
Playlist: http://bit.ly/pDL-YouTube
Speaker: Xavier Bresson
Week 13: http://bit.ly/DLSP20-13
0:00:00 – Week 13 – Lecture
LECTURE Part A
In this section, we discuss the architecture and convolution of traditional…
Playlist: http://bit.ly/pDL-YouTube
Speaker: Xavier Bresson
Week 13: http://bit.ly/DLSP20-13
0:00:00 – Week 13 – Lecture
LECTURE Part A
In this section, we discuss the architecture and convolution of traditional…
#recommendations
Попробовал трипадвизор, он советует кафешки, которые тупо не работают. Ну зато хоть размял свои мощные мышцы.
Попробовал трипадвизор, он советует кафешки, которые тупо не работают. Ну зато хоть размял свои мощные мышцы.
#payments
Уважаемые подписчики из России, мне удалось открыть карту в зарубежном банке, если у вас из-за войны/санкций такая же аховая ситуация с оплатой зарубежных облачных сервисов (AWS, GCP, etc), какая была у меня недавно, но очень надо, можете написать в личку для помощи с оплатой. По себе знаю, что фиг кто поможет.
Уважаемые подписчики из России, мне удалось открыть карту в зарубежном банке, если у вас из-за войны/санкций такая же аховая ситуация с оплатой зарубежных облачных сервисов (AWS, GCP, etc), какая была у меня недавно, но очень надо, можете написать в личку для помощи с оплатой. По себе знаю, что фиг кто поможет.
#ml #geofeatures #python
Отличная глава о подготовке геофичей
https://geographicdata.science/book/notebooks/12_feature_engineering.html
Отличная глава о подготовке геофичей
https://geographicdata.science/book/notebooks/12_feature_engineering.html