Как стать автором
Обновить
17
0

Machine Learning Engineer

Отправить сообщение

NER для русского языка в Spacy 3: удобно и легко

Время на прочтение 8 мин
Количество просмотров 12K

Славянские языки, в том числе и русский, считаются довольно сложными для обработки. В основном, из-за богатой системы окончаний, свободного порядка слов и других морфологических и синтаксических явлений. Распознавание именованных сущностей (далее, NER) представляется трудной задачей для славянских языков, где синтаксические зависимости часто маркируются морфологическими чертами, нежели определенным порядком словоформ. Поэтому NER сложен для этих языков в сравнении с германскими или романскими языками.

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 1

Machine Learning news

Время на прочтение 2 мин
Количество просмотров 2.3K

Дисклеймер: здесь я собираю новости абсолютно субъективно. 

Часть новостей - новости только для меня и могли появиться довольно давно. Просто я заметил их только сейчас. 

Я сопровождаю новость своим комментарием, в котором излагаю причину, почему эта новость интересна мне.

Читать далее
Всего голосов 12: ↑1 и ↓11 -10
Комментарии 0

Calico Enterprise: обзор

Время на прочтение 6 мин
Количество просмотров 2.2K

Translation of this article written by John Armstrong on Jan 20, 2021

Вступая в новый год, самое время поразмышлять о достижениях компании Tigera и о том, насколько  Calico Enterprise изменилась за последний год и как она стала ведущим решением в сфере безопасности и мониторинга сетей и микросервисов Kubernetes. Опыт работы с пользователями корпоративного класса помог Tigera определить наиболее важные требования пользователей для успешного развертывания кластеров Kubernetes и успешного перехода от пилотных проектов к промышленным проектам. Эти знания помогли Tigera создать систему Calico Enterprise, архитектура которой и представлена ниже. Давайте рассмотрим этот многофункциональный слоёный пирог, снизу вверх.

Архитектура корпоративных решений Calico:

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 1

Как устроиться в LinkedIn, Facebook, Google в Кремниевой Долине

Время на прочтение 8 мин
Количество просмотров 26K

Зачем это читать?


В предыдущей статье я рассказал про реальные доходы и расходы, на которые может рассчитывать инженер, работающий в одной из Big Tech компаний. Если вдруг это вас заинтересовало, здесь будут подробности про то, как туда устроиться.


Я работаю в LinkedIn, который был приобретен Microsoft в 2016 году. У меня были предложения от Facebook, Bayer и разных стартапов, плюс множество собеседований с другими компаниями в Долине, включая Google и Tesla.


В LinkedIn часть моих обязанностей (как и многих других сотрудников) — проводить интервью с кандидатами. Я знаю, как происходит процесс, и я покажу письма реальных рекрутеров.

Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Комментарии 36

Подготовка к собеседованиям в IT-гиганты: как я преодолела проклятье алгоритмического собеседования

Время на прочтение 12 мин
Количество просмотров 203K

Дисклеймер:


Я не программирую с трёх лет, не знаю наизусть Кнута, не являюсь призёром олимпиад по информатике и чемпионатов по спортивному программированию, не училась в MIT. У меня за плечами образование по информатике и 6 лет опыта в коммерческой разработке. И до недавнего времени я не могла пройти дальше первого технического скрининга в IT-гиганты из FAANG (Facebook, Amazon, Apple, Netflix, Google и подобные), хотя предпринимала несколько попыток. 

Но теперь всё изменилось, я получила несколько офферов и хочу поделиться опытом, как можно к этому прийти. Речь пойдёт о позиции Software Engineer в европейских офисах перечисленных компаний.
Читать дальше →
Всего голосов 201: ↑196 и ↓5 +191
Комментарии 342

Главные достижения в области обработки естественного языка в 2017 году

Время на прочтение 10 мин
Количество просмотров 20K

Всем привет. Сразу поделим аудиторию на две части — тех, кто любит смотреть видео, и тех, кто, как я, лучше воспринимает тексты. Чтобы не томить первых, запись моего выступления на Дата-Ёлке:



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

Читать дальше →
Всего голосов 61: ↑61 и ↓0 +61
Комментарии 3

Kaggle: как наши сеточки считали морских львов на Алеутских островах

Время на прочтение 11 мин
Количество просмотров 26K

header_im


Привет, Коллеги!


27 июня закончилось соревнование на Kaggle по подсчёту морских львов (сивучей) на аэрофотоснимках NOAA Fisheries Steller Sea Lions Population Count. В нем состязались 385 команд. Хочу поделиться с вами историей нашего участия в челлендже и (почти) победой в нём.

Читать дальше →
Всего голосов 61: ↑61 и ↓0 +61
Комментарии 17

Всё плохо

Время на прочтение 19 мин
Количество просмотров 43K

image


Что ж, всё плохо. Немного забавно так говорить: на конференции (Web à Québec) было много разговоров об удивительном будущем и вещах, возможных благодаря новым технологиям. О новых средствах и устройствах, которые должны сделать нашу жизнь проще. Мои знакомые знают, что у меня обычно очень циничный взгляд на технологии; лично я боюсь всех этих умных устройств, которые реагируют на мои слова, чем восхищались другие спикеры.


В основном потому, что чем больше времени я трачу на программирование и провожу в этой отрасли, тем больше узнаю, как всё работает изнутри, и тем меньше доверия всё это мне внушает. Я подобрал изображение для слайда. Это картина «Триумф смерти» Питера Брейгеля. В некоторой степени она раскрывает моё отношение к «умному дому».

Читать дальше →
Всего голосов 65: ↑62 и ↓3 +59
Комментарии 44

Как я пишу код

Время на прочтение 4 мин
Количество просмотров 34K
Мне нравится думать, что я пишу хороший код. Ну или, что я хотя бы пишу больше хорошего кода, чем плохого.

Моя любимая особенность хорошего кода — это его скука. Предсказуемые выражения, одно за другим. Никаких сюрпризов, никаких трюков, никаких уникальных случаев. Никакого мета-программирования, конечно! Скучный код очень легко отлаживать, читать, объяснять.

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

Код, использующий неявное поведение, может быть основан на каком-нибудь недокументированном, но уже реализованном функционале. Например, в мире написана целая куча НЕВЕРНОГО кода, который полагается на то, что функция файловой системы, возвращающая список директорий, вернёт их в отсортированном по алфавиту порядке. Это и вправду часто работает именно так, но ровно до того момента, пока не ломается по «непонятным» причинам. А на самом деле просто никто никогда этой сортировки не гарантировал.
Читать дальше →
Всего голосов 55: ↑48 и ↓7 +41
Комментарии 25

Алгоритм Джонкера-Волгенанта + t-SNE = супер-сила

Время на прочтение 9 мин
Количество просмотров 31K
До:



После:



Заинтригованы? Но обо всем по порядку.

t-SNE


t-SNE — это очень популярный алгоритм, который позволяет снижать размерность ваших данных, чтобы их было проще визуализировать. Этот алгоритм может свернуть сотни измерений к всего двум, сохраняя при этом важные отношения между данными: чем ближе объекты располагаются в исходном пространстве, тем меньше расстояние между этими объектами в пространстве сокращенной размерности. t-SNE неплохо работает на маленьких и средних реальных наборах данных и не требует большого количества настроек гиперпараметров. Другими словами, если взять 100 000 точек и пропустить их через эту волшебный черный ящик, на выходе мы получим красивый график рассеяния.
Читать дальше →
Всего голосов 65: ↑64 и ↓1 +63
Комментарии 2

Катаракта: это ждёт лично вас (если доживёте, конечно)

Время на прочтение 10 мин
Количество просмотров 116K

Так выглядит модель интраокулярной мультифокальной линзы компании Carl Zeiss. Настоящий размер такого хрусталика — 11 миллиметров, диаметр оптической зоны — 6 мм.

Катаракта — это, упрощая, возрастное помутнение и уплотнение хрусталика. По классическому определению речь идёт именно о помутнениях любого типа. Сначала что-то мешаетcя в поле зрения, появляется общий «туман», хочется протереть грязные очки, потом вы не видите буквы в книге, потом хотите включить свет ярче или, наоборот, прячетесь от яркого света, а потом просыпаетесь одним прекрасным утром и понимаете, что не можете найти тапочки. И вообще ничего не видите — только тени. Процесс этот иногда растягивается на долгие годы, но тапочки всё равно потеряются. Упоминания о помутнении, развивающемся в глазном яблоке, встречаются еще за тысячи лет до нашей эры.

Процедура лечения исторически была очень своеобразной — реклинация мутного хрусталика. Врач принимал пациента с очень плотным хрусталиком — до той стадии плотным, что пациент уже слеп. При раскопках поселений Древней Греции и Рима найдены инструменты, которыми пользовались врачи для удаления катаракты — острые иглы, которыми протыкали глаз и хрусталик, разрушая его поддерживающий аппарат. Хрусталик мог оторваться и в силу своей тяжести опуститься вниз также от удара по затылку тяжёлой палкой несколько раз. Иногда пациент умирал в процессе скорой офтальмологической помощи, иногда получал сотрясение мозга, а иногда хрусталик срывался со связок и летел вглубь глаза. Пациент снова начинал видеть — у него была большущая шишка и зрение около +10 +15 диоптрий.

Теперь две новости. Плохая — люди стали всё чаще доживать до катаракты, и она неотвратима. Хорошая — у нас есть кое-что получше острых игл и тяжёлой палки.
Читать дальше →
Всего голосов 58: ↑53 и ↓5 +48
Комментарии 84

Machine learning в простом проекте

Время на прочтение 8 мин
Количество просмотров 39K
Я CTO проекта Preply и хочу рассказать немного о том, о чем мечтает каждый программист, а именно о сложных и интересных задачах в простых проектах.

Если быть точнее, то о том, как можно добавить немного науки к бизнесу и получить в результате немного пользы. Этой статьей я постараюсь описать один из контекстов использования Machine Learning в реальном проекте.
Читать дальше →
Всего голосов 63: ↑53 и ↓10 +43
Комментарии 43

Открытый курс машинного обучения. Тема 7. Обучение без учителя: PCA и кластеризация

Время на прочтение 19 мин
Количество просмотров 196K

Привет всем! Приглашаем изучить седьмую тему нашего открытого курса машинного обучения!


Данное занятие мы посвятим методам обучения без учителя (unsupervised learning), в частности методу главных компонент (PCA — principal component analysis) и кластеризации. Вы узнаете, зачем снижать размерность в данных, как это делать и какие есть способы группирования схожих наблюдений в данных.


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.


Видеозапись лекции по мотивам этой статьи в рамках второго запуска открытого курса (сентябрь-ноябрь 2017).

Читать дальше →
Всего голосов 53: ↑52 и ↓1 +51
Комментарии 8

Открытый курс машинного обучения. Тема 4. Линейные модели классификации и регрессии

Время на прочтение 30 мин
Количество просмотров 509K

Всем привет!


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


Пример такой задачи – это соревнование Kaggle Inclass по идентификации пользователя в Интернете по его последовательности переходов по сайтам.


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.


Все материалы доступны на GitHub.
А вот видеозапись лекции по мотивам этой статьи в рамках второго запуска открытого курса (сентябрь-ноябрь 2017). В ней, в частности, рассмотрены два бенчмарка соревнования, полученные с помощью логистической регрессии.

Читать дальше →
Всего голосов 56: ↑53 и ↓3 +50
Комментарии 42

Открытый курс машинного обучения. Тема 3. Классификация, деревья решений и метод ближайших соседей

Время на прочтение 33 мин
Количество просмотров 490K

Привет всем, кто проходит курс машинного обучения на Хабре!


В первых двух частях (1, 2) мы попрактиковались в первичном анализе данных с Pandas и в построении картинок, позволяющих делать выводы по данным. Сегодня наконец перейдем к машинному обучению. Поговорим о задачах машинного обучения и рассмотрим 2 простых подхода – деревья решений и метод ближайших соседей. Также обсудим, как с помощью кросс-валидации выбирать модель для конкретных данных.


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.

Читать дальше →
Всего голосов 63: ↑62 и ↓1 +61
Комментарии 49

Храним 300 миллионов объектов в CLR процессе

Время на прочтение 5 мин
Количество просмотров 35K

Камень преткновения — GC


Все managed языки такие как Java или C# имеют один существенный недостаток — безусловное автоматическое управление паматью. Казалось бы, именно это и является преимуществом managed языков. Помните, как мы барахтались с dandling-указателями, не понимая, куда утекают драгоценные 10KB в час, заставляя рестартать наш любимый сервер раз в сутки? Конечно, Java и C# (и иже с ними) на первый взгляд разруливают ситуацию в 99% случаев.

Так-то оно так, только вот есть одна проблемка: как быть с большим кол-вом объектов, ведь в том же .Net никакой магии нет. CLR должен сканировать огромный set объектов и их взаимных ссылок. Это проблема частично решается путём введения поколений. Исходя из того, что большинство объектов живёт недолго, мы высвобождаем их быстрее и поэтому не надо каждый раз ходить по всем объектам хипа.

Но проблема всё равно есть в тех случаях, когда объекты должны жить долго. Например, кэш. В нём должны находиться миллионы объектов. Особенно, учитывая возрастание объемов оперативки на типичном современном серваке. Получается, что в кэше потенциально можно хранить сотни миллионов бизнес-объектов (например, Person с дюжиной полей) на машине с 64GB памяти.

Однако на практике это сделать не удаётся. Как только мы добавляем первые 10 миллионов объектов и они “устаревают” из первого поколения во второе, то очередной полный GC-scan “завешивает” процесс на 8-12 секунд, причём эта пауза неизбежна, т.е. мы уже находимся в режиме background server GC и это только время “stop-the-world”. Это приводит к тому, что серверная апликуха просто “умирает” на 10 секунд. Более того, предсказать момент “клинической смерти” практически невозможно.
Что же делать? Не хранить много объектов долго?

Зачем


Но мне НУЖНО хранить очень много объектов долго в конкретной задаче. Вот например, я храню network из 200 миллионов улиц и их взаимосвязей. После загрузки из flat файла моё приложение должно просчитать коэффициенты вероятностей. Это занимает время. Поэтому я это делаю сразу по мере загрузки данных с диска в память. После этого мне нужно иметь object-graph, который уже прекалькулирован и готов “к труду и обороне”. Короче, мне нужно хранить резидентно около 48GB данных в течении нескольких недель при этом отвечаю на сотни запросов в секунду.

Вот другая задача. Кэширование социальных данных, которых скапливаются сотни миллионов за 2-3 недели, а обслуживать необходимо десятки тысяч read-запросов в секунду.
Читать дальше →
Всего голосов 50: ↑44 и ↓6 +38
Комментарии 81

NFX — Ультраэффективная Бинарная Сериализация в CLR

Время на прочтение 8 мин
Количество просмотров 21K

Требования


В данной статье мы рассмотрим задачи переноса сложных объектов между процессами и машинами. В наших системах было много мест, где требовалось перемещать большое кол-во бизнес объектов различной структуры, например:

  • самозацикленные графы объектов (деревья с back-references)
  • массивы структур (value types)
  • классы/структуры с readonly полями
  • инстансы существующих .Net коллекций (Dictionary, List), которые внутренне используют custom-сериализацию
  • большое кол-во инстансов типов, специализированных для конкретной задачи


Речь пойдёт о трёх аспектах, которые очень важны в распределённых кластерных системах:

  • скорость сериализации/десериализации
  • объём объектов в сериализированном виде
  • возможность использовать существующие объекты без надобности “украшения” этих объектов и их полей вспомогательными атрибутами для сериализации

Читать дальше →
Всего голосов 24: ↑19 и ↓5 +14
Комментарии 40

Как вернуться в кодеры, когда за сорок

Время на прочтение 3 мин
Количество просмотров 44K

Сколько раз рассказывал коллегам и на собеседованиях. Видимо есть спрос и на Хабре. Кто-то встал перед выбором. Другой сомневается в правильности намеченного пути. Когда выгораешь, такое случается. Кому-то интересно, с чем предстоит столкнуться впереди, или сопоставить своё подобное. Поверьте, это короткая версия объёмной тоскливой истории.

Читать дальше →
Всего голосов 87: ↑64 и ↓23 +41
Комментарии 174

FAQ про лазерную коррекцию ReLEx SMILE: да, в России есть, но нет, в России нет

Время на прочтение 9 мин
Количество просмотров 63K


— Делают ли в России малоинвазивные операции по лазерной коррекции зрения методом извлечения лентикулы (Small Incision Lenticule Extraction)?

Да, примерно уже 5 лет. С каждым годом всё больше и больше на конференциях офтальмологов возникают вопросы не уровня «Что это?», а конкретные практические по нюансам технологии. Лазеры VisuMax есть в нескольких клиниках России, но именно под ReLEx SMILE используются значительно меньше, чем под femtoLASIK. Исторически так сложилось в России, что эта технология мало используется в центральной части и активно используется за Уралом.

— Что за история с лицензиями на конкретные операции?

Цейс продаёт конусы вместе с лицензиями. Конус — сменная деталь, прилегающая к глазу, покупается вместе с лицензией на использование лазерной процедуры, обычно пакетами по 10 или 100 операций. Поступает, например, 10 конусов и 10 лицензий. Лицензии вбиваются через меню лазера, и он позволяет по разу использовать соответствующие конусы для соответствующих типов программы. Лицензии на SMILE отдельно, на femtoLASIK отдельно, на FLEX, кольца и докоррекции также отдельные лицензии. У большинства производителей фемтосекундных и некоторых эксимерных лазеров похожая ситуация. Не нужны лицензии на эксимерные операции, пожалуй, разве на моделях примерно 5-летней давности и старше.

— И можно не получить такую лицензию на SMILE?

Запросто. Во-первых, этот модуль в лазере стоит как дорогостоящая опция, так что сам прибор без опции SMILE стоит дешевле. Во-вторых, если эта опция имеется, то лицензии на проведение операции ReLEx SMILE возможно приобрести только после проведения 5–10 тестовых прогонов на свиных глазах, затем проведения минимум 10 операций femtoLASIK на пациентах, затем 50 операций FLEX, и только после этого можно будет купить лицензию на SMILE для конкретного хирурга.
Читать дальше →
Всего голосов 46: ↑43 и ↓3 +40
Комментарии 90

История операций по коррекции зрения: сравнение рисков и побочных эффектов

Время на прочтение 12 мин
Количество просмотров 151K

Механическое устройство, выстреливающее или медленно двигающее лезвием для срезания верхней части роговицы глаза

Начнём с истории, чтобы было понятно, как эволюционировали методы, а потом перейдём к рискам и побочным эффектам современных операций.

Итак, доктор Снеллен, который изобрёл таблицу проверки зрения, выдвинул теорию о том, что можно «поцарапать» глаз так, что кривизна роговицы изменится. Случилось это в 1869 году (в этом же году появилась таблица Менделеева и докопали Суэцкий канал), поэтому «царапать» тогда могли только металлическим скальпелем. Офтальмологии как отдельной науки официально не было, и занимались ей обычные хирурги — те же самые, которые бодро отпиливали руки и ноги при возникновении инфекции.

К глазам они приступать поначалу не решались: пациент вроде жив, шевелится и не кричит, значит, трогать его пока нет достаточных оснований. Поэтому первая операция по коррекции зрения была проведена доктором Лансом в Голландии только через 30 лет, в 1898 году.

Следующим отличившимся персонажем стал выдающийся советский хирург академик Святослав Николаевич Фёдоров, который предложил очень своеобразный метод: точечно нагревать роговицу глаза до тех пор, пока она не деформируется. Но вместе с японским офтальмологом Сато они быстро перешли к надрезам. Сато резал изнутри и тем самым создавал много осложнений, а Фёдоров делал насечки алмазным ножом снаружи. Эти самые надрезы фактически и положили начало современным лазерным операциям.
Читать дальше →
Всего голосов 100: ↑98 и ↓2 +96
Комментарии 297
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность