TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Архитектура распределённых систем

10 Jul, 14:03

Открыть в Telegram Поделиться Пожаловаться

Вычислительная техника десятилетиями приучала нас, программистов, к абсолютному детерминизму: написал инструкцию — машина выполнила ровно её, миллиард раз подряд одинаково. Кажется, мы единственные инженеры, которым достались настолько тепличные условия. Строитель никогда не знал точной прочности конкретного замеса бетона — только распределение, и надёжность в ГОСТах до сих пор считается через вероятность отказа. Инженерный мир всегда жил с допусками. Софт был исключением.

Ещё в школе, когда я только изучал Паскаль, мне казалось, что настоящий искусственный интеллект наступит тогда, когда программы начнут ошибаться (как и мы, люди — в этом одна из главных наших сильных способностей). Тогда бесило, что "if" всегда работает одинаково, что 2+2 — всегда 4 (про javascript я тогда ещё не знал 😂). И казалось, что ошибки программ (именно ошибки, не баги) — какой-то недостижимый уровень, до которого я вряд ли успею дожить как и до колонизации Марса. Получается, что до первого дожил, чему я несказанно рад ))

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

И даётся нам это тяжело. Мы не умеем работать с непредсказуемостью — просто непривычно. Мозг не любит тратить лишнюю энергию на неопределённость — это ведь сложно, и его можно понять: он на этом экономит. При этом весь технический прогресс на протяжении всей своей истории, как мне кажется, двигается в сторону всё бо́льшей неопределённости — чем сложнее системы, тем меньше в них гарантий и тем больше вероятностей.

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

Как эта перестройка ощущается изнутри, человеком — хорошо описал Андрей Шапиро в свежей статье на Хабре про усталость от работы с ИИ-код-агентами: ошибки прилетают в произвольных местах процесса («радиация внимания» — точный образ), а код на глазах превращается в чужое легаси. Рекомендую целиком: https://habr.com/ru/articles/1057716/ — этот пост, собственно, и вырос из моего комментария под ней.

С ИИ-агентами рецепт, видимо, тот же, что и у квантов. Требовать от стохастической модели детерминизма бесполезно. Зато можно обложить её инженерным контуром, который эту стохастичность переваривает, — весь новый harness-инжиниринг по сути, об этом. Проверяем сейчас и об собственный SDD-фреймворк — местами уже работает.

А архитекторам к такому вообще не привыкать — мы в неопределённости жили всегда. Заранее предугадать все сценарии невозможно, проверить архитектуру до того, как система построена, — тоже. Какая архитектура хорошая, а какая плохая, выясняется только при встрече с реальностью, иногда годы спустя. Как я недавно писал:
дайте одну задачу десяти сильным архитекторам — получите десять разных решений, и каждое будет выглядеть убедительно

Да и классическая задача распределённых систем из той же серии: собрать надёжную систему из ненадёжных компонентов. И многое-многое другое..

В шахматах, кстати, ты принимаешь решения в условиях полной определённости, я их за это всю жизнь и любил, и ненавидел. Наверное поэтому меня сейчас так привлекают шахматы с кубиками (dicechess — вероятностная версия шахмат, я аж даже движок для них иногда пишу по ночам 😅). Видимо, с определённостью наигрался 🙂

Так что усталость, которую описывает Андрей, — настоящая, и быстро она не пройдёт: это цена перестройки инженерной привычки, которой лет семьдесят. Научиться работать с её помощью: получать неопределёнными путями результат, определённый в пределах допустимого. Другого выбора у нас, кажется, и нет.

1.2k 3 22 3 17
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot