Борис опять – Telegram
Борис опять
15.1K subscribers
1.43K photos
72 videos
30 files
1.47K links
life = curiosity + irreducible noise

Whois: https://news.1rj.ru/str/boris_again/3400

Лс: @btseytlin
Download Telegram
Внезапно скоро будет Борис опять в видео формате. Оцените студию
👍41🔥21👏4
#лабораторный_журнал

Задеплоил БД и API ML проекта в прод, а вместе с ним и Prefect для всей команды. БД/API крутятся, периодические джобы таскают данные и все деплоится само. Первый сервис с полным циклом CI/CD в компании. Пока что от этого кусочка ничего не зависит. Но следующие части, такие как разметка и ML, мы будем прикручивать к уже работающей системе. Значит обкатаем процессы обновления и выкатки. Не придется учиться решать проблемы на системе, от которой зависит работа людей. Очень приятный результат за два месяца, думаю через месяц-два данные потекут, а через три-четыре увидим ML.

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

Например, мне надо всего лишь, чтобы люди получали от робота фотки, размечали их и видели красиво отображенный результат. Звучит просто, правда? Но даже такая система превращается в огромный граф зависимостей: робот кладет фотки в S3, периодическая джоба забирает метаданные в БД, другая джоба делает из метаданных задания для разметки, инструмент разметки посылает лейблы в API по вебхукам, еще одна периодическая джоба обогащает данные и наконец фронт обращается за данными для визуализации к API-адаптеру, а тот уже к нашему API. Все системы тянут за тобой зависимости для своей работы: брокеры сообщений, NGINX, кеши, хранилища. Для всего настрой CI, мониторинг, healthcheck, алерты. Хочешь тестовое окружение? Круто, подвижных частей стало вдвое больше. Количество степеней свободы даже на уровне такого детского по масштабам сервиса взрывает мозг.
🔥33👏4👍1
В ML с этим еще сложнее, а в аналитике и дата-инжниринге хуже некуда.
Почти вся работа SWE состит в борьбе со связностью и сложностью. Если все со всем связано, то при K сервисах добавление еще одного создает K новых зависимостей. Такие же правила распространяются на модули внутри каждого сервиса. Сложность растет неимоверно быстро.

Поэтому я очень не люблю MongoDB в качестве БД. И другие инструменты, главный плюс которых в гибкости. Чем больше движущихся частей, тем больше сложность. Выигрыш есть только на очень маленьких масштабах. Минимально-сложный сервис делается на постгрессе не дольше, чем на mongodb/firebase/<вставить свое>. Но я точно знаю, какой из них будет ломаться чаще. MongoDB имеет какую-то проблему с неймингом, потому что это не DB, как может показаться, а кеш: она оптимизирована под скорость вставки.
🔥16
👍13😁10
InFarm, европейский лидер рынка вертикальных ферм, единорог серии D с $600M инвестиций (согласно Crunchbase, возможно больше), сокращает 500 из 900 сотрудников и уходит из девяти стран. Компания делала мини-фермы в супермаркетах. Стратегия без шансов стать прибыльной, потому что агро требует больших масштабов, а вертикальные фермы стерильной среды. InFarm собрали бинго: маленький масштаб, неизбежное использование людей, грязная среда, продукция с маленькой маржой. Теперь компания делает пивот в сторону фабрик и производства, где ей придется начинать с нуля.

Отличные новости для PlanetFarms, потому что у нас есть план, который может сработать. При 1/20 инвестиций и с командой в 10 раз меньше мы продолжаем строить фабрики и будем нанимать в следующем году.
👍18🔥5😱3
Снова минутка бесплатной рекламы

Недавно мне написал @andrey_kiselev и показал демо everinfer.ai. Это serverless платформа для ML инференса.

Самая крутая часть демки: тяжелый UNET из StableDiffusion отправляется на удаленную машину, компилируется в C++ ONNX и обслуживается сервером на Rust. Ты локально запускаешь генерацию картинки, легкие чести модели исполняются на CPU, а тяжелые делегируются удаленной машине с GPU. Я думал, что замена локальных вычислений на обращение к сети сделает генерацию сильно медленнее, но нет. И GPU не нужна, и работает быстрее за счет ONNX.

Давно казалось, что должна появится такая штука, когда ты пишешь pytorch код локально, а исполняется он где-то далеко в оптимизированной среде. А не вот это вот все с арендой инстансов, настройкой CUDA версий в контейнерах и драками на ножах с коллегами за GPU.

Вот какие фичи заявляют сами everinfer.ai:
- запускать ML модельки на удаленных видеокартах в три строчки кода из любого окружения
- автоматически параллелить обработку по множеству машин
- обращаться к моделям с минимальным оверхедом на сеть и получать впечатляющий latency на запросы

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

Заходите на сайт everinfer.ai, посмотрите на доки, если интересно услышать больше и посмотреть демо на звонке с фаундером - пишите @andrey_kiselev
👍34
Forwarded from DLStories
Помните, я летом говорила, что ездила на съемки лекций? Так вот, курс, который мы тогда записывали, наконец готов и выложен на Степик!

Это полностью бесплатный и довольно подробный курс по машинному обучению с самых азов и до продвинутых тем. Делали мы его частью команды DLS + несколько других отличных специалистов. Ориентирован он на школьников, так что изложение старались делать очень понятным языком. Но проходить, разумеется, могут все желающие.

Темы курса начинаются с введения в Python, знакомства с нужными библиотеками, математики для анализа данных и идеи машинного обучения. Затем переходим к изучению моделей, метрик и других аспектов прикладной машинки. Ну и дальше идут нейросети.
Подробную программу можно посмотреть тут. Она обширнее, чем программа DLS (в DLS мы учим в первую очередь глубокому обучению, и про классическое машинное обучение мы рассказываем не так подробно). Ну и, как обычно, мы постарались дать довольно много практики. В будущем к курсу еще выйдут дополнительные модули с новыми темами (сейчас идет монтаж записей).

Хочу сказать, что работы над курсом было проделано много: он отлично проработан методически. Тексты лекций были составлены заранее и записаны на профессиональное оборудование. Смотреть будет приятно!

К курсу прилагаются чатик для общения/помощи с учебой. В нем также будут ассистенты, которые будут отвечать на ваши вопросы. Ну и я там тоже буду =)

Приходите сами, а также зовите друзей!⬇️
Начать учиться тут
21🔥2
Раньше я писал про рынки предсказаний и как часто они бывают правы. Сегодня о том, когда они бывают неправы.

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

https://www.metaculus.com/questions/7230/what-is-a-counterparty-risk-of-ftx/
🔥8
Намедни составлял для себя новый план по доходам и инвестициям. Вводные поменялись: доходы, расходы и потеря всех предыдущих накоплений.

Я стремлюсь к FIRE (Financial Independence, Retire Early): как можно раньше придти в ту точку, когда я могу не работать. Я не планирую переставать работать, но хотел бы иметь возможность.

Вот лучший калькулятор FIRE, что я нашел:
https://engaging-data.com/fire-calculator

Позволяет оценить, когда я смогу стать финансово независимым при текущих вложениях, росте доходов и прочих параметрах.
🔥20👍6👎2😁1
Мой самый оптимистичный сценарий получился такой.

Было бы очень круто выйти на финансовую независиоть в 33+-1.

Но этот сценарий требует:
* Откладывать 45% доходов
* Растить доходы на 20% каждый год
* После ретайрмента жить не более чем на $30 000 в год
* После ретайрмента снимать не более 4% накоплений в год

Это очень агрессивная стратегия. Практически нереально осуществить. Думаю реалистичный сценарий при текущих усилиях это где-то 37+-3.

Но это все равно гораздо лучше, чем базовый сценарий. Если ввести параметры, где ты чуть-чуть откладываешь, растишь доходы на 1% в год, растишь свои расходы пропорионально доходам (больше зарабатываем - больше потребляем), и планируешь после ретайрмента не менять свой образ жизни, то тебя ждет пенсия к 77 годам. Какое-то издевательство.
🔥6
Нарастить доход на 20% в год на первый взгляд кажется не так уж сложно. На текущий момент это что-то около $12000 в год. Разве это не легко для программиста? Типичный рейз зарплаты около 10%, а рост при смене работы вообще наверное 20% с большой дисперсией. Можно одним прыжком залететь на US рынок, в идеале на L5 в Google за $300k в год, и одним махом перевыполнить всю пятилетку.

Однако залетания в Google, рейзы и переходы это штуки мало прогнозируемые. Работа это само-собой. Интереснее вопрос: как помочь себе чем-то кроме работы?

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

Например, если преподавать в ОТУС раз в неделю, то едва ли выйдет $5000 за год. Чаще раза в неделю можно только если рассказывать одно и то же по кругу, но я так делать принципиально не хочу. Та же история с Solvery: там топовые ребята зарабатывают около 6000р в час. Опять же наберется от силы $5000 если не задолбаешься. В преподавание и менторство надо ввязываться ради интереса.

Если пытаться набрать $12к помогая в поиске работы, то, по моим оценкам, надо будет провести за год 40 человек. Просто нереально.

Если запустить сайд-проект с месячной подпиской за $20, который купят 100 клиентов, то набирается $24000. Выглядит как успех, но если прикинуть матождание доходов от такого предприятия, то есть домножить на вероятность сделать и найти 100 клиентов, то получается $24000*10% = $2400. 10% это еще очень оптимистично, если оценивать мой прошлый трек рекорд. Я своего рода бизнесмен: однажды сделал сайт на фрилансе и меня кинули, в другой раз сделал мод для игры и заработал $100 и еще как-то раз сделал задачку на upwork, но не смог вывести заработанные $40, был забанен Paypal и забил.

Минимальные расчеты быстро снимают розовые очки. Мой джун на днях спросил меня: почему ты еще не забутстрапишь дома проект и не слезешь с иглы капитализма? Я раньше и сам задавался этим вопросом. Казалось, что я такой особенный молодец. Все эти там распределения доходов и количества провалов стартапов ко мне не относятся, я ведь не такой как все. Сейчас что-то замучу, у меня обязательно все получится и результат превзойдет ожидания. Но едва начинаешь представлять как же именно оно должно получится и становится ясно, что ожидаемый доход от работы гораздо выше почти любого сайдхастла. Кто бы мог подумать! Так оказывается все работают на работе не потому, что дураки, вау.

И ведь с каждым годом поднимать доход на 20% будет сложнее.

Чтобы слезть с иглы “от зарплаты до зарплаты” или хотя бы ослабить ее давление надо сделать что-то нетривиальное. По крайней мере легких путей не будет. Мой текущий план: продолжать преподавать и делать прочие вещи ради интереса, искать хороший сайд-проект, работать на рейзы и держать нос по ветру.
👍38🔥9🤔1
😁12🐳3
Дочитав биографию Эдисона чувствую грусть, будто потерял друга
😢11👍1
# Of all possible timelines, we live in the one of boring AI

Вот, что мне сегодня сказал мой ментор когда мы обсуждали ChatGPT.

Мы оба скептики относительно AGI и оба думали, что для настоящего ИИ нужна какая-то особая звездная пыль. Symbolic reasoning, causual modelling или что-то еще. Что у интеллекта есть нечто за пределами паттерн-метчинга. Теперь уверенность сдвинулась в сторону того, что звездная пыль интеллекта это просто emergent behavior. Паттерн-метчишь достаточно и оно появляется. Я не верил в scaling laws, то есть в то, что для ИИ достаточно лишь накидывать в нейронку побольше параметров и данных, но модели вышедшие в этом году сдвинули мои убеждения.

Метакулус прогнозирует появление Weak AGI в 2027 году. Эксперты как правило дают оценку на пять-десять лет попозже. В любом случае мы увидим слабый ИИ в течение нашей жизни. Скорее всего полноценный ИИ тоже. Мы вероятно живем в эпоху самого грандиозного открытия в истории. Я спросил Joao: стоит ли задаться целью и попасть в OpenAI, Deepmind или Stability, чтобы увидеть историю своими глазами?

Он рассказал про то, что знает об этих компаниях от своих знакомых. Boring AI означает, что не будет никакого момента эврики. Не будет профессора с белой бородой, который закричит: “Вот он, ключ к интеллекту и сознанию!” Просто grad student descent: сотни ученых проводят маленькие эксерименты, смотрят как график ползет по тензорборду, следят как ошибка падает на сотые доли процентов. Однажды в твиттере напишут, что появился ИИ. Вклад каждого отдельного ученого пренебрежительно мал. В итоге знакомые Joao из этих компаний в основном говорят про свою зарплату и выращивают так называемый “Google belly”. Многие из них долго карабкались, чтобы попасть туда, а потом сдувались. Расслабляешься, начинаешь прицепляться к заведомо успешным проектам, становишься 5-ым в публикации из 10 авторов. Потому что есть парочка рок-звезд, которые все тянут, а есть все остальные. Вывод: потрогать ИИ из первых рук вероятно не сильно более впечатляюще, чем потрогать его как один из первых пользователей.

Теперь вопрос: как планировать свою жизнь с учетом появления AGI? Скупать стоки Nvidia или, может быть, складировать тушенку и патроны? Приглашаю обсуждать научную фантастику в комментариях.

P.S. Стоило идти в Planet Farms хотя бы за тем, чтобы было с кем обсудить такие вещи.
👍27🔥5
Борис опять pinned «# Of all possible timelines, we live in the one of boring AI Вот, что мне сегодня сказал мой ментор когда мы обсуждали ChatGPT. Мы оба скептики относительно AGI и оба думали, что для настоящего ИИ нужна какая-то особая звездная пыль. Symbolic reasoning…»
Разбирался в апскейле изображений, bilinear и bicubic интерполяции, aliasing.

Процесс апскейла изображений на пальцах такой:
1. Создаем новое изображение большего размера, добавляя "пустые” пиксели между пикселями изначальной сетки.
2. Применяем интерполяцию, чтобы определить значения “пустых" пикселей на основе значений соседних пикселей изначального изображения.
* Простейший вариант: nearest neighbor. Берем значение ближайшего пикселя.
* Поумнее: bilinear. Значение "пустого" пикселя расчитывается как взвешенная сумма ближайших четырех исходных пикселей. Веса зависят от расстояния: чем ближе пиксель, тем больше он влияет.
* Еще умнее: bicubic. Принцип как у billinear, но используюстя пиксели в окне 16х16 и уравнение посложнее. Соответственно результат более гладкий.
3. Применям алгоритм anti-aliasing, чтобы убрать артефакты апскейла. Например, "лесенки" на диагональных линиях, которые можно наблюдать, если повращать какой-нибудь контур в пейнте.

Unfun fact: по умолчанию torch.nn.functional.interpolate использует nearest-neighbor интерполяцию. Самую быструю и самую плохую по качеству.
Unfun fact 2: из Python библиотек для обработки изображений только Pillow делает интерполяцию нормально. По умолчанию использует bicubic.

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

Как правило можно использовать bilinear/bicubic из Pillow и не волноваться.

Хорошие статьи:
* https://zuru.tech/blog/the-dangers-behind-image-resizing
* https://www.cambridgeincolour.com/tutorials/image-interpolation.htm
8👍6🔥5🤔1