Pull to refresh
12
0
Александр Шатилов @alexbraun

Tech Lead using Angular & .net

Send message

Видео в звонках ВКонтакте: 4К-скриншеринг и Quality on-demand для тысяч участников

Reading time13 min
Views8.2K

Что нужно от картинки в видеозвонке? Базово — чтобы не пикселила, не замирала и не вешала весь звонок. Это основы real-time видео, и добиться этого не так трудно. 

Всё самое интересное начинается, когда вы хотите, чтобы в одном звонке могли участвовать сколько угодно человек. И при этом все могли включать видео, а не просто смотреть; разрешение скриншеринга было бы 4К; шеринг оставался суперчётким при любом интернете и т. д. И чтобы звонки работали на любых платформах и устройствах на мобильном нестабильном интернете. 

Как мы добиваемся всего этого в звонках ВКонтакте, какие хаки в настройках используем, как экономим трафик и CPU, как боремся за latency и где нам пришлось идти в обход WebRTC, читайте под катом. 

Читать далее

Разбираемся в redux-saga: От генераторов действий к сагам

Reading time9 min
Views210K


Любой redux разработчик расскажет вам, что одной из самых тяжелейших частей разработки приложений являются асинхронные вызовы — как вы будете обрабатывать реквесты, таймауты и другие коллбэки без усложнения redux действий(actions) и редьюсеров(reducers).

В этой статье я опишу несколько различных подходов к управлению асинхронностью в вашем приложении, начиная от простых подходов как redux-thunk, заканчивая более продвинутыми библиотеками вроде redux-saga.
Читать дальше →

Schedulers в RxJS

Reading time4 min
Views15K

Что вы знаете о Schedulers в RxJS? Они скрывают от разработчиков работу с контекстом выполнения Observable. Как те эльфы-домовики из Гарри Поттера, которые выполняют всю черную работу в Хогвартсе, а о них никто даже и не слышал. Давайте исправим это и узнаем о них чуть больше.

Читать далее

Руководство по Node.js, часть 6: цикл событий, стек вызовов, таймеры

Reading time11 min
Views49K
Сегодня, в шестой части перевода руководства по Node.js, мы поговорим о цикле событий, о стеке вызовов, о функции process.nextTick(), о таймерах. Понимание этих и других механизмов Node.js является одной из основ успешной разработки приложений для этой платформы.



Читать дальше →

Огромный открытый датасет русской речи

Reading time3 min
Views37K
image

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

Мы торопимся исправить это годами длящееся недоразумение.

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

Подробности под катом.
Читать дальше →

Первая модель: набор данных Fashion MNIST

Reading time21 min
Views44K
Полный курс на русском языке можно найти по этой ссылке.
Оригинальный курс на английском доступен по этой ссылке.

Выход новых лекций запланирован каждые 2-3 дня.
Читать дальше →

Делаем параллельный корпус из книг с помощью sentence embeddings

Reading time8 min
Views10K

Parallel trucks (image by Unsplash


При поиске параллельных корпусов для своих нужд, — это может быть обучение модели машинного перевода или изучение иностранного языка, можно столкнуться с тем, что их не так уж и много, особенно, если речь идет не об английском, а каком-то редком языке. В этой статье мы попробуем создать свой корпус для популярной языковой пары русский-немецкий на основе романа Ремарка "Три товарища". Любителям параллельного чтения книг и разработчикам систем машинного перевода посвящается.


Задача


Такая задача называется выравниванием текстов и может быть до какой-то степени решена следующими способами:


  • Использовать эвристики. Можно считать количество предложений в текстах, количество слов в них и на основе этого производить сопоставление. Такой способ не дает хорошего качества, но может тоже быть полезным.
  • Использовать sentence embeddings. Наверняка вы слышали про модели типа word2vec или sent2vec или видели такой пример их использования — "король" + "женщина""мужчина" = "королева". Если коротко, то суть в том, чтобы перевести слова (предложения, тексты) в векторное пространство с сохранением семантического расстояния между ними. Такой подход открывает перед нами замечательные возможности по оценке близости текстов и их кусочков по смыслу.
Читать дальше →

6 причин использовать Kubernetes на сервере bare metal

Reading time5 min
Views7.2K

Развертывание Kubernetes на физических серверах  рекомендуется организациям, которые находятся в поисках новых возможностей в сфере управления инфраструктурой. Рассмотрим 6 причин попробовать K8s на выделенных серверах. 

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

Инструменты оркестрации контейнеров облегчают разработку программного обеспечения, гарантируя гибкость, переносимость с одного устройства на другое, хорошую скорость и простоту масштабирования для распределенных приложений. Являясь фактическим лидером в области оркестрации, Kubernetes поддерживается многими популярными поставщиками облачных услуг.

Хотя сервисы managed Kubernetes, предоставляемые различными провайдерами услуг, обеспечивают простой механизм развертывания и начала работы, в основном они работают на базе виртуализированной инфраструктуры. Виртуальные машины удобны для провайдеров и в большинстве случаев обеспечивают хорошее качество работы для их клиентов.  Однако, стоит отметить, что развертывание Kubernetes на обычных серверах также дает несколько существенных преимуществ.

Читать далее

Что такое MLOps? (Часть 1)

Reading time5 min
Views28K

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

В итоге программы машинного обучения не приносят результатов, что приводит к потере денег, нерациональному использованию ресурсов, а для преодоления этой проблемы разрабатывается концепция MLOps.

Читать далее

Тензоры в TensorFlow

Reading time6 min
Views33K

image


Основным объектом которым манипулируют в Tensorflow, является тензор. О том, что такое тензор, какие бывают тензоры, какие у них есть свойства и как ими манипулировать читайте в переводном руководстве с сайта tensorflow.org.

Читать дальше →

LLaMA (Large Language Model Meta AI)

Level of difficultyMedium
Reading time1 min
Views91K

Meta анонсировала LLaMA (Large Language Model Meta AI), свою модель NLP с миллиардами параметров и обученную на 20 языках.

Недавно её слили на торренты и товарищи смогли запустить сетку локально на обычном домашнем компьютере, на обычном CPU.

Для этого пришлось ужать модель из 32 битной в 4 битную, уменьшив вес модели с 13 до 4 ГБ.

Попробуем запустить самую маленькую модель LLaMA 7B у себя на домашнем компьютере на середнячке AMD Ryzen 5.

Читать далее

TensorFlowJS: использование обученных моделей без их модификаций в браузере

Reading time11 min
Views6.1K

При работе с TensorFlowJS можно выделить три направления (рисунок 1):


1. использование обученных моделей без модификаций топологий и переобучений

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

3. создание и обучения моделей с нуля.

Читать далее

TensorFlow.js: Часть 1: Использование Low-Level API для аппроксимации линейной функций

Reading time13 min
Views8.4K
В настоящее время Python занимает доминирующую позицию для машинного обучения. Однако, если вы являетесь JS-разработчиком и заинтересованы окунуться в этот мир, то не обязательно включать в свой арсенал новый язык программирования, в связи с появлением TensorFlow.js.

17 вопросов по Kubernetes, которые может услышать разработчик на собеседовании

Level of difficultyEasy
Reading time10 min
Views41K
image

Kubernetes прочно вошел в технологический стек разработки cloud-native-приложений, став мейнстримовой технологией.

Разработчику, конечно же, не нужно быть экспертом по Kubernetes, чтобы запустить в нем свое приложение. Но понимание азов даст лучшее представление о том, как приложение живет и работает в Kubernetes.

Мы собрали список вопросов про Kubernetes, с которыми может столкнуться разработчик на собеседовании, подготовили короткие ответы и ссылки на более подробную информацию в документации и не только.

Если есть свободные 20 минут, приглашаем устроить внеплановую ревизию своих знаний.

Читать дальше →

Angular без zone.js: максимум производительности

Reading time12 min
Views20K
Angular-разработчики в большом долгу перед библиотекой zone.js. Она, например, помогает достичь в работе с Angular почти волшебной лёгкости. На самом деле, практически всегда, когда нужно просто поменять какое-нибудь свойство, и мы меняем его, ни о чём не задумываясь, Angular производит повторный рендеринг соответствующих компонентов. В результате то, что видит пользователь, всегда содержит самую свежую информацию. Это просто замечательно.

Здесь мне хотелось бы исследовать некоторые аспекты того, как применение нового компилятора Ivy (он появился в Angular 9) способно значительно облегчить отказ от использования zone.js.



Благодаря отказу от этой библиотеки я смог значительно увеличить производительность Angular-приложения, работающего под высокой нагрузкой. При этом нужные мне механизмы удалось реализовать средствами декораторов TypeScript, что привело к совсем небольшим дополнительным затратам системных ресурсов.

Обратите внимание на то, что подход к оптимизации Angular-приложений, представленный в этом материале, возможен лишь благодаря тому, что Angular Ivy и AOT включены по умолчанию. Эта статья написана в учебных целях, она не направлена на пропаганду представленного в ней подхода к разработке Angular-проектов.
Читать дальше →

Тестируем на реальных кейсах Chatgpt Code Interpreter

Level of difficultyEasy
Reading time5 min
Views14K

Меня зовут Андрей Цыган - я не программист, я смотрю на технологии ИИ с точки зрения человека, кто знает что хочет, но не имеет навыков это сделать через код.

Я протестировал новый плагин Code Interpreter на реальных задачах в бизнесе и остался приятно удивлён.

Посмотреть кейсы применения

Как мы автоматизировали верстку статей на vc.ru, или почему в маркетинге нужны роботы

Reading time6 min
Views6.4K

Привет! Меня зовут Влад, я технический писатель в Selectel. Не так давно я выпустил статью, где рассказал, как мы с коллегами разработали верстальщик статей из Google-документов на Хабр.

Но мы работаем не только с Хабром, но и на vc.ru. Редактор статей там сильно отличается: нельзя верстать в html, есть другие типы элементов. Поэтому создать аналогичный верстальщик для этой площадки сложнее. Но вместе с командой PIX Robotics, которая специализируется на программных роботах, у нас это получилось. Подробности под катом!
Читать дальше →

9 ИИ-сервисов в помощь разработчику: используем возможности нейросетей на полную

Reading time4 min
Views65K

Недавно мы публиковали статью «Плагины ChatGPT, которые помогут в работе — и не только программистам». В ней говорилось о плагинах ChatGPT, которые серьёзно облегчают жизнь большинству специалистов, связанных с IT. Сегодня давайте обсудим сервисы, которые предназначены для помощи исключительно программистам. С каждым днём таких сервисов всё больше, и наиболее интересные из них мы разместили в новой подборке.

Читать далее

9 аналогов известных сервисов (Google Analytics, Slack, GitHub, ChatGPT) с открытым исходным кодом

Reading time3 min
Views12K

Все мы пользуемся разными сервисами — какими именно, зависит от специальности и текущей необходимости. GitHub, ChatGPT, Tableau и другие давно и прочно вошли в нашу жизнь. Но есть и аналоги этих востребованных сервисов, причём аналоги с открытым исходным кодом. Эта статья посвящена таким альтернативным сервисам и ПО. Вероятно, многие из них могут оказаться полезны для читателей. Если же у вас есть собственный вариант, расскажите о нём в комментариях.

Читать далее

Прибытие тензорного поезда. Как достижения мультилинейной алгебры помогают преодолеть проклятие размерности

Level of difficultyHard
Reading time6 min
Views9.6K

Привет! Меня зовут Глеб Рыжаков, я научный сотрудник Сколтеха. Я занимаюсь математикой, а точнее, линейной алгеброй, и её приложениями к практическим задачам. Сегодня я расскажу вам о нашем исследовании, которое может помочь справиться с проблемой проклятия размерности, которая возникает во множестве статистических задач, включая машинное обучение.

Понятие «проклятие размерности» появилось в середине прошлого века в пионерской работе Ричарда Беллмана, посвященной методам решения сложных задач путём разбиения их на более простые подзадачи. Сегодня оно понимается в более общем смысле, а именно как экспоненциальный — O(nd) — рост количества необходимых данных и, как следствие, количества памяти, необходимой для их хранения, с ростом размерности пространства d. Когда задачу можно свести к работе с многомерными массивами в общем случае комплексных чисел, удобно говорить о d-мерных тензорах и использовать достижения мультилинейной алгебры. Хорошая новость заключается в том, что там существует такая процедура, как тензорное разложение, которое в ряде случаев может помочь преодолеть проклятие размерности.

Читать далее

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity