Моменты в фильме "Бойцовский клуб", которые можно интерпретировать совсем иначе зная о новых технологиях:
Начав посещать группы поддержки, рассказчик говорит: «Каждый вечер я умирал и каждый вечер возрождался вновь. Из мертвых.» - буквально чем не восстановление из back-up?
Марла Зингер, переходящая через дорогу в любой момент, явно знающая подходящий для этого момент. Или мы имеем дело с повторением сюжета в случае неудачи?
Формула оценки затрат на доработку автомобиля – включает стоимость урегулирования проблемы. Совсем ничего человеческого, только машинный алгоритм.
Вовремя произошедший взрыв в доме рассказчика-протагониста.
Диалог между рассказчиком и Тайлером после посещения бара на тему «Можно я у тебя переночую» как работа протокола авторизации.
Запахи в доме на Пейпер Стрит – компьютеры ведь не умеют в запахи?
Встреча Боба и Корнелиуса на улице – почему Боб не встретил или не узнал рассказчика ранее в клубе?
Сцена признания в номере гостиницы , что рассказчик и Тайлер – одно лицо.
Что за навигатор привел рассказчика из полицейского участка точно к нужному знанию на Франклин стрит?
И как в конце фильма рассказчик сумел избавиться от Тайлера, выстрелив в себя?
Вот такой получился интересный взгляд на культовый фильм с позиции теста Тьюринга.
Всем привет. Поделюсь результатами генерации моделями Dall-E версии 3 от OpenAI и мультимодальной GigaChat Max (29B, 32k).
Промты "Скрипач не нужен" выдают интересный результат:
Dall-E
Это не скрипач, а скрипачка.
А GigaChat добавил скрипачу контрабас:
Добавим к нашему промту упоминание Кин-Дза-Дза.
Dall-E уловил только общий контекс:
А у GigaChat возникли и другие ассоциации:
При попытке повторить запрос получаю с учетом контекста и такой шедевр:
Настоящий пост в формате практической задачи позволяет понять как ведут себя генеративные модели в ситуации, когда предмет или тема запроса им не знакомы.
В русском языке - 10 гласных букв (а, е, ё, и, о, у, ы, э, ю, я) - 21 согласная буква (б, в, г, д, ж, з, й, к, л, м, н, п, р, с, т, ф, х, ц, ч, ш, щ). - 2 буквы мягкости (ь и ъ)
Нас интересуют: - 9 гласных букв (а, е, ё, и, о, у, э, ю, я) - 17 согласных букв (б, в, г, д, ж, з, к, л, м, н, п, р, с, т, ф, х, ц).
Так как мы произносим не буквы, а слоги, учтем, что в начале имен как правило идут первой гласная буква, второй - согласная, либо, наоборот, первой - согласная, а второй гласная. Две гласных подряд не встречаются, а две согласных - только в достаточно экзотических именах, таких как Прасковья. Добавлю, что буквы Й, Ь, Ы, Ъ, Ч, Ш и Щ не встречаются в имена и на втором месте. Получается, что чтобы угадать первые две буквы имени, нам нужно озвучить: 917 = 153 слогов гласная-согласная
и
179 = 153 слогов согласная - гласная.
Получим оценку сверху числа вариантов для метода brute-force 215333*33 = 333234. Многовато.
Как Крег смог сократить путь к интересующему имени? Начинать с наиболее часто употребимых букв, и следить за реакцией собеседника. Дополнительно нужно чередовать гласные и согласные.
Например, в комбинации А-М-И-П-У-Л-Е-К-О-С мы проверяем 5 самых частых гласных и дополнительно 5 согласных. Если нам повезет (а нам обязательно повезет, ведь на собеседник заинтересован и поможет нам угадать правильный вариант), мы сможем угадать первую букву с вероятностью, близкой к 1, произнеся примерно 5 гласных и 10 согласных.
В этом случае мы получим: - первая буква имени угадывается среди первых 5 произнесенных гласных и 10 согласных (в сумму 15) - считая, что после гласной идет согласная, и наоборот, и это равновероятно, получим для второй буквы 5 гласных с вероятностью 1/2 и 10 согласных также с вероятностью 1/2, или 7,5.
Применяя тот же прием (гласная после согласной и наоборот), получаем для третьей и 4-й буквы также по 7,5 вариантов. Остальную часть имени мы сможем достроить по первым четырем буквам, зная возможные имена.
Получаем суммарно 15*7,5*7,5*7,5 ~= 6400. Все равно много. В обычных условиях такой пение займет никак не менее часа, и сложно не запутаться в тех буквах, что уже произнес.
Если учесть, что всего имен несколько тысяч, и у нас есть возможность использовать их в качестве словаря - появляется возможность после второй угаданной буквы оперировать уже не всеми возможными вариантами, а 2-3 возможными гипотезами. В этом случае получим 15*7,5*3*2 = 675 вариантов, которые можно суметь озвучить в течение нескольких минут. При этом мы использовали наблюдение за нашим собеседником, знание словаря имен и везение.
Рассчитаем число букв, которые нам придется при этом озвучить - 15 + 2*7,5 + 3*3 + 4*2=47 (мы произносим 15 букв чтобы угадать первую букву, потом для второй буквы произносим 7,5 слогов по две буквы каждый, потом мы произносим по 3 буквы для угадывания третьей и по 4 буквы для угадывания 4-й). Получается, что с этим уже можно работать. Кстати, Крег уложился в 34 буквы.
Опираясь на приведенные вычисления, вполне можно угадать имя человека, озвучив в общей сложности около 50 букв.
Решение задачи, изложенное максимально понятным языком, и которое сможет понять читатель без знания математики и теории вероятностей.
У нас случайная последовательность нулей и единиц 0 и 1, вероятность выпадения 0 и 1 одинакова и равна ½. Благоприятным для нас исходом является ситуация выпадения 4-х единиц подряд.
Будем обозначать B(X) - состояние, которому предшествовало выпадение X единиц. А M(X) - среднее число бросков (математическое ожидание), за которое мы пришли из состояния M(X) в состояние успеха B(4).
Пусть сначала мы находимся в состоянии B(0) – у нас нет ранее выпавших единиц так как мы не начинали броски нашей монеты. Тогда чтобы перейти в состояние 4 единицы подряд нам будет нужно в среднем бросить монету M(0) раз.
Аналогично в состоянии B(1) у нас ранее выпала одна единица, до выпадения 4-х единиц нам нужно сделать M(1) бросков (и это будут 3 броска только в одном случае из 8),
- в состоянии B(2) – ранее выпало две единицы, для успеха нужно сделать M(2) бросков,
- в состоянии B(3) – ранее выпало две единицы, для успеха нужно сделать M(3) бросков,
- в состоянии B(4) – ранее выпало две единицы, для успеха нужно сделать M(4) бросков = 0 – мы уже в нужном нам состоянии.
Опишем, как связаны B и M.
Пусть мы находимся в состоянии 0. Тогда сделав один шаг , мы попадем в состояние B(1) с вероятностью ½ и останемся в состоянии B(0) также с вероятностью ½:
M(0) = 1 + ½ M(0) + ½ M(1)
В состоянии B(0) мы сделали один бросок и с вероятностью ½ попадаем в состояние B(1) с числом бросков M(1) либо также с вероятностью ½ остаемся в состоянии B(0).
Мы перешли в состояние B(1) – у нас выпала одна единица. Если в следующем броске у нас выпадет ноль – мы попадаем в состояние B(0), если выпадет 1 – перейдем в состояние B(2). Запишем это в терминах числа бросков:
M(1) = 1 + ½ M(0) + ½ M(2)
В состоянии B(1) мы сделали один бросок и с вероятностью ½ (выпала единица) попадаем в состояние B(2) с числом бросков M(2) либо с вероятностью ½ (выпал ноль) переходим в состояние B(0) с числом бросков M(0).
Аналогично для следующих бросков нашей монеты:
M(2) = 1 + ½ M(0) + ½ M(3)
В состоянии B(2) мы сделали один бросок и с вероятностью ½ при выпадении единицы попадаем в состояние B(3) с числом бросков M(3) либо с вероятностью ½ при выпадении нуля переходим в состояние B(0) с числом бросков M(0).
И наконец,
M(3) = 1 + ½ M(0) + ½ M(4).
Но так как в состоянии B(4) – когда выпало 4 единицы подряд – нам больше не нужно бросать монету, то M(4) = 0.
Мы получили систему 4-х уравнений:
M(0) = 1 + ½ M(0) + ½ M(1)
M(1) = 1 + ½ M(0) + ½ M(2)
M(2) = 1 + ½ M(0) + ½ M(3)
M(3) = 1 + ½ M(0)
Последовательно решаем эту систему:
M(3) = 1 + ½ M(0)
M(2) = 1 + ½ M(0) + ½*(1+ ½ M(0)) = 3/2 + ¾*M(0)
M(1) = 1+ ½ M(0) + ½ 3/2 + ½3/4 M(0) = 7/4 + 7/8*M(0)
M(0) = 1 + ½ M(0) + ½ 7/4 + ½ 7/8*M(0)
8/16 M(0) – 7/16 M(0) = 15/8
M(0) = 16*15/8 = 2*15 = 30
Ответ – каждые 30 бросков монеты должны в среднем содержать одну комбинацию «4 единицы подряд».
Применительно в Алану Тьюрингу, ему нужно в последовательность действий включать повторяющиеся непрерывные последовательности единиц. В противном случае последовательность не будет случайной, как результат будет обнаружено вскрытие шифра Энигмы.
Важный инсайт, который может получить внимательный читатель – это то, что случайная последовательность нулей и единиц должна содержать последовательности, состояние только из нулей и только из единиц, частота появлений этих последовательностей зависит от длины последовательности, а сами повторения не ограничены 4-мя единицами или нулями.
Проверка частоты прихода последовательностей одного значения может быть использована для проверки качества работы генераторов случайных чисел, также для определения того, является последовательность действительно случайной или в ней содержится какая-то информация.
Всем привет. Так как пока не поступило ни одного варианта ответа, предлагаю предоставить еще пару дней на размышление. Решение и ответ будут опубликованы в среду, 14 мая 2025 года.
Как заметил наш читатель @Akina, если второй вопрос не зависим от первого, то возможные решения - путь длиной 6 (ACEDAEB или ACEADEB) позволяют прийти в вершину B. Если мы на этом не остановимся, то решим задачу Льюиса Кэррола, обойдя все ребра, например, по пути ACEADEBDCB. В этом случае получаем путь длиной 9.
@Akina, благодарю за интересный комментарий относительности независимости второго вопрос. Ведь нас читают не только программисты, поэтому ваше видение не просто актуально, но и естественным образом приводит нас к понятиям Эйлерова цикла (путь, проходящий по всем рёбрам графа и притом только по одному разу) и Гамильтонова цикла (замкнутый путь), который проходит через каждую вершину данного графа ровно по одному разу).
Придя в вершину B первый раз, можно остановиться. Это решения ACEDAEB или ACEADEB плюс возможные перестановки вершин C, D и E.
Если мы продолжим наш путь, то сможем обойти все ребра по одному разу, например, идя по пути ACEADEBDCB.
В нашей задаче не было условия вернуться обратно, и второй вопрос сводится к задаче Льюиса Кэррола о рисовании домика без отрыва карандаша от бумаги. В нашей фигуре две вершины нечетные (степени 3) и три вершины четные (степени 4). Это дает возможность обойти все ребра за 9 шагов.
Методы решения аналогичных задач, являющихся вариациями на тему задачи коммивояжера, важны для логистики и транспорта, проектирования печатных плат, сценарного анализа, а также для менее прикладных задач. В большинстве своем они имеют сложность NP, что заставляет думать об оптимизации и упрощениях начиная уже с 2-3 десятков вершин.
Всем привет. Пришло время обсудить ответы на вопросы задачи.
1) Все пути, которыми можно попасть из вершины A в вершину B не посещая вершины более одного раза:
ACB
ADB
AEB
ACDB
ACEB
ADCB
ADEB
AECB
AEDB
ACDEB
ACEDB
ADCEB
ADCEB
AECDB
AEDCB
Итого: 15 вариантов пути из A в B.
2) Самый длинный путь из A в B включает переход по одному ребру из A в C, D или E, и далее в B. С точностью до перестановки вершин C, D и E получаем самый длинный путь ACDEB, включающий 4 ребра.
Много лет назад термин artificial intelligence некорректно перевели на русский язык, так как для слова intellect был перевод на русский язык (интеллект), а для intelligence - соответствующее эквивалент в русском языке отсутствовал.
В английской вики - сравните
Intellect and intelligence As a branch of intelligence, intellect concerns the logical and the rational functions of the human mind, and usually is limited to facts and knowledge. (https://en.wikipedia.org/wiki/Intellect)
и
Intelligence has been defined in many ways: the capacity for abstraction, logic, understanding, self-awareness, learning, emotional knowledge, reasoning, planning, creativity, critical thinking, and problem-solving. (https://en.wikipedia.org/wiki/Intelligence)
Для особо скептически настроенных можно еще посмотреть на название ЦРУ - Central Intelligence Agency.
Со временем перевод и для intellect, и для intelligence - объединился в один вариант интеллект, и это стало языковой нормой.
А LLM как вершину достижений в области artificial intelligence приравняли к искусственному интеллекту естественным образом (к ранее случилось с ксероксами, памперсами и джипами).
Из текущей архитектуры трансформеров выжали практически все что было можно. Иначе не возникла бы проблема недостатка данных для обучения новых версий. В то же время разработка и тестирование новых архитектур - невероятно сложный процесс поиска среди очень большого количества вариантов, исследований и разработок. При этом достижение пределов текущей технологии не исключает перехода в новое качество. Аналогичная ситуация в космонавтике - переход от химических двигателей к ионным, в вычислениях - попытки развития квантовых вычислений, огромное количество новых методов в биологии и медицине - CRISPR, ПЦР и секвенирование ДНК, криоэлектронная микроскопия, клик-химия, фемтосекундные лазеры, применение ML как AlphaFold и многое другое.
Для разных задач ML применяются разные метрики, единой универсальной метрики пока не существует. Но можно сравнить результаты предсказаний и ожидаемые ответы для большого числа предсказаний. 100% точности работы модели будет соответствовать результат когда модель всегда дает правильный (или ожидаемый) ответ.
Есть ряд задач, где 100% точность нужна и практически достижима. Примеры - распознавание автомобильных номеров, проверка наличия объекта в заданной зоне и ряд схожих задач.
На практике гораздо важнее обеспечить увеличение точности в сравнении с конкурирующим решением. Условно, сравнивают долю правильных диагнозов, которые ставит врач и ИИ-модель. Увеличение доли правильных диагнозов на 10%, с 80% до 90%, означает снижение доли неверных диагнозов с 1/5 до 1/10, или в 2 раза, что в случае медицины - очень хороший результат.
Точное решение задачи описания поведения облака пара в атмосфере – требует решения системы дифференциальных уравнений:
- Навье-Стокса для описания движения газа и пара с учетом силы тяжести,
- уравнения для описания термодинамического равновесия, учитывающего испарение и конденсацию пара и связанные с этим изменения давления, плотности и температуры,
- и с учетом начальных и граничных условий.
К счастью, если мы рассмотрим равновесную ситуацию, ситуация сводится к модели облака из смеси водяного пара и воздуха, плавающего в более плотном окружающем воздухе. В этой модели на наше облако действуют две классические силы – силы тяжести и Архимеда.
Для простоты наших расчетов примем температуру воздуха 0°C, и пусть давление соответствует давлению на уровне моря. Также для простоты предположим, что наше облако с влажностью почти 100% плавает в окружающем воздухе с влажностью 50% на высоте менее 500 метров.
Нам потребуются некоторое справочные данные:
1,2924 - кг/м³ - плотность воздуха при 50% влажности при нормальном атмосферном давлении 101 325 Па и 0°C,
1,2909 - кг/м³ - плотность воздуха при 100% влажности и тех же условиях, им соответствует абсолютная влажность 4,8 г/м³.
Разницей давления на высоте моря и высоте 500 метров пренебрежем (разница 6 килопаскалей или около 6%).
Простое вычисление дает нас 0,0147 H/м³ - подъемная сила 1 м³ нашего облака.
Вес 1024 роботов массой по 128 кг каждый = 1 284 506 Ньютонов.
Соответствующий объем облака, обеспечивающий такую подъемную силу, составляет примерно 10 миллионов кубических метров – это 2 км x 1 км x 50 метров. Размеры реальных облаков обычно значительно больше, температура выше, подъемная сила также будет больше.
Сделаем еще пару интересных сравнений:
- количество воды в нашем облаке – около 480 тонн, это масса 8 груженых железнодорожных вагонов;
- полная масса влажного воздуха в объеме облака – почти 13 тысяч тонн, а это 215 вагонов или три состава.
В условиях достаточно дорогих вычислительных ресурсов возможность оценить затраты на обучение лежит в основе расчетов окупаемости проектов в области машинного обучения. При этом можно сделать как теоретические оценки, так и замерить время обучения одной эпохи с последующей экстраполяцией. В случае нашей задачи мы говорим про теоретические оценки.
Самое простое решение – поделить время обучения Llama 2, выраженное в GPU-часах, на число часов в сутках: 1 720 320 / 24 = 71 680 GPU. Так как нам будет нужно загрузить данные, запустить задачи и выполнить тесты - попросим 100 000 GPU.
Более сложный способ был предложен читателем @TsarS. Повторяя его решение, получим:
N = T×P×E / G×H, где
T = 2×10¹² — количество токенов в обучающем датасете (в токенах)
P = 7×10^10 — количество параметров модели
E = 100 — количество эпох (оценка)
G = 624 TFLOPS — производительность одного GPU Nvidia A100 (в GFLOPS).
H = 24 — количество GPU-часов, необходимых для обучения модели
Ответ – да, выбор двери нужно менять, хотя вероятность выигрыша будет меньше, чем в случае игры с тремя дверями.
Приведу одно из наиболее понятных решений задачи (без формул и сложных доказательств).
Предположим, что приз находится за дверью №1, а за дверями №2, №3 и №4 — приза нет. Другие варианты сводятся к этому случаю циклической перестановкой дверей. Пусть у нас восемь Бенов распределятся таким образом, что каждую дверь выбрали по два Бена, и из каждой пары Бенов один впоследствии изменил решение, а другой — нет.
Для Бенов, выбравших первую дверь с призом, Микки Роса откроет одну из оставшихся трех дверей, и приз получит Бен, сохранивший выбор. Бен, изменивший выбор двери – приз не получает. Итого 4 Бена выиграли один приз:
Бен №1 выиграл + Бен №2 проиграл + Бен №3 проиграл + Бен №4 проиграл. Выигрыш ¼ = 0,25.
Теперь посмотрим на выбравших двери №2, №3 и №4. Поскольку приз за первой дверь, Микки Роса откроет одну из дверей в парах (№3 или №4), (№4 или №2) и (№2 или №3) соответственно. Если Бен изменит решение, он получит приз с вероятностью ½, а Бен, сохранивший выбор, приза не получает.
Среди Бенов, которые не меняли выбор, приз получит лишь один. Каждый из трех Бенов, кто поменял выбор, получит приз с вероятностью ½, и 4 Бена в итоге выиграют 3/2 приза.
Бен №1 проиграл + (Бен №2 выиграл + Бен №3 выиграл + Бен №4 выиграл) с вероятностью ½.
В итоге без изменения выбора вероятность выиграть = ¼ = 0,25, при изменении выбора вероятность = 3/8 = 0,375 > 0,25.
Эта была обещанная задача на вычисление условной вероятности, работа с которой контринтуитивна и требует корректного расчета вероятностей каждого сценария, в том числе с применением формулы Байеса. На практике таких задач очень много - от задач предсказания спроса и учета финансовых рисков до сценариев игр и фондового рынка.
Прекрасная идея использовать ИИ для решения задачи. Предположение об обучении за одну эпоху звучит фантастически. Но если мы примем число эпох равным 100 - получаем работу 99 200 GPU в течение 24 часов. Эта величина близка к данным от разработчиков Llama 2: 71 680 GPU = 1 720 320 GPU часов / 24 часа.
Всем привет.
Моменты в фильме "Бойцовский клуб", которые можно интерпретировать совсем иначе зная о новых технологиях:
Начав посещать группы поддержки, рассказчик говорит: «Каждый вечер я умирал и каждый вечер возрождался вновь. Из мертвых.» - буквально чем не восстановление из back-up?
Марла Зингер, переходящая через дорогу в любой момент, явно знающая подходящий для этого момент. Или мы имеем дело с повторением сюжета в случае неудачи?
Формула оценки затрат на доработку автомобиля – включает стоимость урегулирования проблемы. Совсем ничего человеческого, только машинный алгоритм.
Вовремя произошедший взрыв в доме рассказчика-протагониста.
Диалог между рассказчиком и Тайлером после посещения бара на тему «Можно я у тебя переночую» как работа протокола авторизации.
Запахи в доме на Пейпер Стрит – компьютеры ведь не умеют в запахи?
Встреча Боба и Корнелиуса на улице – почему Боб не встретил или не узнал рассказчика ранее в клубе?
Сцена признания в номере гостиницы , что рассказчик и Тайлер – одно лицо.
Что за навигатор привел рассказчика из полицейского участка точно к нужному знанию на Франклин стрит?
И как в конце фильма рассказчик сумел избавиться от Тайлера, выстрелив в себя?
Вот такой получился интересный взгляд на культовый фильм с позиции теста Тьюринга.
Всем привет. Поделюсь результатами генерации моделями Dall-E версии 3 от OpenAI и мультимодальной GigaChat Max (29B, 32k).
Промты "Скрипач не нужен" выдают интересный результат:
Dall-E
А GigaChat добавил скрипачу контрабас:
Добавим к нашему промту упоминание Кин-Дза-Дза.
Dall-E уловил только общий контекс:
А у GigaChat возникли и другие ассоциации:
При попытке повторить запрос получаю с учетом контекста и такой шедевр:
Настоящий пост в формате практической задачи позволяет понять как ведут себя генеративные модели в ситуации, когда предмет или тема запроса им не знакомы.
В русском языке
- 10 гласных букв (а, е, ё, и, о, у, ы, э, ю, я)
- 21 согласная буква (б, в, г, д, ж, з, й, к, л, м, н, п, р, с, т, ф, х, ц, ч, ш, щ).
- 2 буквы мягкости (ь и ъ)
Нас интересуют:
- 9 гласных букв (а, е, ё, и, о, у, э, ю, я)
- 17 согласных букв (б, в, г, д, ж, з, к, л, м, н, п, р, с, т, ф, х, ц).
Так как мы произносим не буквы, а слоги, учтем, что в начале имен как правило идут первой гласная буква, второй - согласная, либо, наоборот, первой - согласная, а второй гласная.
Две гласных подряд не встречаются, а две согласных - только в достаточно экзотических именах, таких как Прасковья. Добавлю, что буквы Й, Ь, Ы, Ъ, Ч, Ш и Щ не встречаются в имена и на втором месте.
Получается, что чтобы угадать первые две буквы имени, нам нужно озвучить:
917 = 153 слогов гласная-согласная
и
179 = 153 слогов согласная - гласная.
Получим оценку сверху числа вариантов для метода brute-force 215333*33 = 333234. Многовато.
Как Крег смог сократить путь к интересующему имени? Начинать с наиболее часто употребимых букв, и следить за реакцией собеседника. Дополнительно нужно чередовать гласные и согласные.
Например, в комбинации А-М-И-П-У-Л-Е-К-О-С мы проверяем 5 самых частых гласных и дополнительно 5 согласных. Если нам повезет (а нам обязательно повезет, ведь на собеседник заинтересован и поможет нам угадать правильный вариант), мы сможем угадать первую букву с вероятностью, близкой к 1, произнеся примерно 5 гласных и 10 согласных.
В этом случае мы получим:
- первая буква имени угадывается среди первых 5 произнесенных гласных и 10 согласных (в сумму 15)
- считая, что после гласной идет согласная, и наоборот, и это равновероятно, получим для второй буквы 5 гласных с вероятностью 1/2 и 10 согласных также с вероятностью 1/2, или 7,5.
Применяя тот же прием (гласная после согласной и наоборот), получаем для третьей и 4-й буквы также по 7,5 вариантов. Остальную часть имени мы сможем достроить по первым четырем буквам, зная возможные имена.
Получаем суммарно 15*7,5*7,5*7,5 ~= 6400. Все равно много. В обычных условиях такой пение займет никак не менее часа, и сложно не запутаться в тех буквах, что уже произнес.
Если учесть, что всего имен несколько тысяч, и у нас есть возможность использовать их в качестве словаря - появляется возможность после второй угаданной буквы оперировать уже не всеми возможными вариантами, а 2-3 возможными гипотезами.
В этом случае получим 15*7,5*3*2 = 675 вариантов, которые можно суметь озвучить в течение нескольких минут. При этом мы использовали наблюдение за нашим собеседником, знание словаря имен и везение.
Рассчитаем число букв, которые нам придется при этом озвучить - 15 + 2*7,5 + 3*3 + 4*2=47 (мы произносим 15 букв чтобы угадать первую букву, потом для второй буквы произносим 7,5 слогов по две буквы каждый, потом мы произносим по 3 буквы для угадывания третьей и по 4 буквы для угадывания 4-й). Получается, что с этим уже можно работать. Кстати, Крег уложился в 34 буквы.
Опираясь на приведенные вычисления, вполне можно угадать имя человека, озвучив в общей сложности около 50 букв.
Решение задачи, изложенное максимально понятным языком, и которое сможет понять читатель без знания математики и теории вероятностей.
У нас случайная последовательность нулей и единиц 0 и 1, вероятность выпадения 0 и 1 одинакова и равна ½. Благоприятным для нас исходом является ситуация выпадения 4-х единиц подряд.
Будем обозначать B(X) - состояние, которому предшествовало выпадение X единиц. А M(X) - среднее число бросков (математическое ожидание), за которое мы пришли из состояния M(X) в состояние успеха B(4).
Пусть сначала мы находимся в состоянии B(0) – у нас нет ранее выпавших единиц так как мы не начинали броски нашей монеты. Тогда чтобы перейти в состояние 4 единицы подряд нам будет нужно в среднем бросить монету M(0) раз.
Аналогично в состоянии B(1) у нас ранее выпала одна единица, до выпадения 4-х единиц нам нужно сделать M(1) бросков (и это будут 3 броска только в одном случае из 8),
- в состоянии B(2) – ранее выпало две единицы, для успеха нужно сделать M(2) бросков,
- в состоянии B(3) – ранее выпало две единицы, для успеха нужно сделать M(3) бросков,
- в состоянии B(4) – ранее выпало две единицы, для успеха нужно сделать M(4) бросков = 0 – мы уже в нужном нам состоянии.
Опишем, как связаны B и M.
Пусть мы находимся в состоянии 0. Тогда сделав один шаг , мы попадем в состояние B(1) с вероятностью ½ и останемся в состоянии B(0) также с вероятностью ½:
M(0) = 1 + ½ M(0) + ½ M(1)
В состоянии B(0) мы сделали один бросок и с вероятностью ½ попадаем в состояние B(1) с числом бросков M(1) либо также с вероятностью ½ остаемся в состоянии B(0).
Мы перешли в состояние B(1) – у нас выпала одна единица. Если в следующем броске у нас выпадет ноль – мы попадаем в состояние B(0), если выпадет 1 – перейдем в состояние B(2). Запишем это в терминах числа бросков:
M(1) = 1 + ½ M(0) + ½ M(2)
В состоянии B(1) мы сделали один бросок и с вероятностью ½ (выпала единица) попадаем в состояние B(2) с числом бросков M(2) либо с вероятностью ½ (выпал ноль) переходим в состояние B(0) с числом бросков M(0).
Аналогично для следующих бросков нашей монеты:
M(2) = 1 + ½ M(0) + ½ M(3)
В состоянии B(2) мы сделали один бросок и с вероятностью ½ при выпадении единицы попадаем в состояние B(3) с числом бросков M(3) либо с вероятностью ½ при выпадении нуля переходим в состояние B(0) с числом бросков M(0).
И наконец,
M(3) = 1 + ½ M(0) + ½ M(4).
Но так как в состоянии B(4) – когда выпало 4 единицы подряд – нам больше не нужно бросать монету, то M(4) = 0.
Мы получили систему 4-х уравнений:
M(0) = 1 + ½ M(0) + ½ M(1)
M(1) = 1 + ½ M(0) + ½ M(2)
M(2) = 1 + ½ M(0) + ½ M(3)
M(3) = 1 + ½ M(0)
Последовательно решаем эту систему:
M(3) = 1 + ½ M(0)
M(2) = 1 + ½ M(0) + ½*(1+ ½ M(0)) = 3/2 + ¾*M(0)
M(1) = 1+ ½ M(0) + ½ 3/2 + ½3/4 M(0) = 7/4 + 7/8*M(0)
M(0) = 1 + ½ M(0) + ½ 7/4 + ½ 7/8*M(0)
8/16 M(0) – 7/16 M(0) = 15/8
M(0) = 16*15/8 = 2*15 = 30
Ответ – каждые 30 бросков монеты должны в среднем содержать одну комбинацию «4 единицы подряд».
Применительно в Алану Тьюрингу, ему нужно в последовательность действий включать повторяющиеся непрерывные последовательности единиц. В противном случае последовательность не будет случайной, как результат будет обнаружено вскрытие шифра Энигмы.
Важный инсайт, который может получить внимательный читатель – это то, что случайная последовательность нулей и единиц должна содержать последовательности, состояние только из нулей и только из единиц, частота появлений этих последовательностей зависит от длины последовательности, а сами повторения не ограничены 4-мя единицами или нулями.
Проверка частоты прихода последовательностей одного значения может быть использована для проверки качества работы генераторов случайных чисел, также для определения того, является последовательность действительно случайной или в ней содержится какая-то информация.
Всем привет. Так как пока не поступило ни одного варианта ответа, предлагаю предоставить еще пару дней на размышление. Решение и ответ будут опубликованы в среду, 14 мая 2025 года.
Как заметил наш читатель @Akina, если второй вопрос не зависим от первого, то возможные решения - путь длиной 6 (ACEDAEB или ACEADEB) позволяют прийти в вершину B. Если мы на этом не остановимся, то решим задачу Льюиса Кэррола, обойдя все ребра, например, по пути ACEADEBDCB. В этом случае получаем путь длиной 9.
@Akina, благодарю за интересный комментарий относительности независимости второго вопрос. Ведь нас читают не только программисты, поэтому ваше видение не просто актуально, но и естественным образом приводит нас к понятиям Эйлерова цикла (путь, проходящий по всем рёбрам графа и притом только по одному разу) и Гамильтонова цикла (замкнутый путь), который проходит через каждую вершину данного графа ровно по одному разу).
Придя в вершину B первый раз, можно остановиться. Это решения ACEDAEB или ACEADEB плюс возможные перестановки вершин C, D и E.
Если мы продолжим наш путь, то сможем обойти все ребра по одному разу, например, идя по пути ACEADEBDCB.
В нашей задаче не было условия вернуться обратно, и второй вопрос сводится к задаче Льюиса Кэррола о рисовании домика без отрыва карандаша от бумаги. В нашей фигуре две вершины нечетные (степени 3) и три вершины четные (степени 4). Это дает возможность обойти все ребра за 9 шагов.
Методы решения аналогичных задач, являющихся вариациями на тему задачи коммивояжера, важны для логистики и транспорта, проектирования печатных плат, сценарного анализа, а также для менее прикладных задач. В большинстве своем они имеют сложность NP, что заставляет думать об оптимизации и упрощениях начиная уже с 2-3 десятков вершин.
@Akina, будет интересно увидеть ваше решение. Возможно, в постановке задачи не хватило точности формулировок, и мы с вами решали разные задачи.
Всем привет. Пришло время обсудить ответы на вопросы задачи.
1) Все пути, которыми можно попасть из вершины A в вершину B не посещая вершины более одного раза:
ACB
ADB
AEB
ACDB
ACEB
ADCB
ADEB
AECB
AEDB
ACDEB
ACEDB
ADCEB
ADCEB
AECDB
AEDCB
Итого: 15 вариантов пути из A в B.
2) Самый длинный путь из A в B включает переход по одному ребру из A в C, D или E, и далее в B. С точностью до перестановки вершин C, D и E получаем самый длинный путь ACDEB, включающий 4 ребра.
Ответ: 4
Картинка в большем размере
Да, такое загрязнение обучающих датасетов галлюцинациями несет серьезные риски. Эти риски нужно учитывать уже сейчас.
Еще одно направление работы связано с очисткой датасетов от ошибочных, некачественных и / или злонамеренно искаженных данных.
Много лет назад термин artificial intelligence некорректно перевели на русский язык, так как для слова intellect был перевод на русский язык (интеллект), а для intelligence - соответствующее эквивалент в русском языке отсутствовал.
В английской вики - сравните
Intellect and intelligence
As a branch of intelligence, intellect concerns the logical and the rational functions of the human mind, and usually is limited to facts and knowledge. (https://en.wikipedia.org/wiki/Intellect)
и
Intelligence has been defined in many ways: the capacity for abstraction, logic, understanding, self-awareness, learning, emotional knowledge, reasoning, planning, creativity, critical thinking, and problem-solving. (https://en.wikipedia.org/wiki/Intelligence)
Для особо скептически настроенных можно еще посмотреть на название ЦРУ - Central Intelligence Agency.
Со временем перевод и для intellect, и для intelligence - объединился в один вариант интеллект, и это стало языковой нормой.
А LLM как вершину достижений в области artificial intelligence приравняли к искусственному интеллекту естественным образом (к ранее случилось с ксероксами, памперсами и джипами).
Из текущей архитектуры трансформеров выжали практически все что было можно. Иначе не возникла бы проблема недостатка данных для обучения новых версий. В то же время разработка и тестирование новых архитектур - невероятно сложный процесс поиска среди очень большого количества вариантов, исследований и разработок. При этом достижение пределов текущей технологии не исключает перехода в новое качество. Аналогичная ситуация в космонавтике - переход от химических двигателей к ионным, в вычислениях - попытки развития квантовых вычислений, огромное количество новых методов в биологии и медицине - CRISPR, ПЦР и секвенирование ДНК, криоэлектронная микроскопия, клик-химия, фемтосекундные лазеры, применение ML как AlphaFold и многое другое.
Для разных задач ML применяются разные метрики, единой универсальной метрики пока не существует. Но можно сравнить результаты предсказаний и ожидаемые ответы для большого числа предсказаний. 100% точности работы модели будет соответствовать результат когда модель всегда дает правильный (или ожидаемый) ответ.
Есть ряд задач, где 100% точность нужна и практически достижима. Примеры - распознавание автомобильных номеров, проверка наличия объекта в заданной зоне и ряд схожих задач.
На практике гораздо важнее обеспечить увеличение точности в сравнении с конкурирующим решением. Условно, сравнивают долю правильных диагнозов, которые ставит врач и ИИ-модель. Увеличение доли правильных диагнозов на 10%, с 80% до 90%, означает снижение доли неверных диагнозов с 1/5 до 1/10, или в 2 раза, что в случае медицины - очень хороший результат.
Решение
Точное решение задачи описания поведения облака пара в атмосфере – требует решения системы дифференциальных уравнений:
- Навье-Стокса для описания движения газа и пара с учетом силы тяжести,
- уравнения для описания термодинамического равновесия, учитывающего испарение и конденсацию пара и связанные с этим изменения давления, плотности и температуры,
- и с учетом начальных и граничных условий.
К счастью, если мы рассмотрим равновесную ситуацию, ситуация сводится к модели облака из смеси водяного пара и воздуха, плавающего в более плотном окружающем воздухе. В этой модели на наше облако действуют две классические силы – силы тяжести и Архимеда.
Для простоты наших расчетов примем температуру воздуха 0°C, и пусть давление соответствует давлению на уровне моря. Также для простоты предположим, что наше облако с влажностью почти 100% плавает в окружающем воздухе с влажностью 50% на высоте менее 500 метров.
Нам потребуются некоторое справочные данные:
1,2924 - кг/м³ - плотность воздуха при 50% влажности при нормальном атмосферном давлении 101 325 Па и 0°C,
1,2909 - кг/м³ - плотность воздуха при 100% влажности и тех же условиях, им соответствует абсолютная влажность 4,8 г/м³.
Разницей давления на высоте моря и высоте 500 метров пренебрежем (разница 6 килопаскалей или около 6%).
Простое вычисление дает нас 0,0147 H/м³ - подъемная сила 1 м³ нашего облака.
Вес 1024 роботов массой по 128 кг каждый = 1 284 506 Ньютонов.
Соответствующий объем облака, обеспечивающий такую подъемную силу, составляет примерно 10 миллионов кубических метров – это 2 км x 1 км x 50 метров. Размеры реальных облаков обычно значительно больше, температура выше, подъемная сила также будет больше.
Сделаем еще пару интересных сравнений:
- количество воды в нашем облаке – около 480 тонн, это масса 8 груженых железнодорожных вагонов;
- полная масса влажного воздуха в объеме облака – почти 13 тысяч тонн, а это 215 вагонов или три состава.
Остановить такое облако совсем не просто.
Если экстраполировать оценки https://telegra.ph/EHkonomika-bolshih-yazykovyh-modelej-skolko-stoit-obuchit-i-skolko--ehkspluatirovat-04-07 - машинное время будет стоить кратно меньше стоимости одного самолета.
Возможное решение задачи.
В условиях достаточно дорогих вычислительных ресурсов возможность оценить затраты на обучение лежит в основе расчетов окупаемости проектов в области машинного обучения. При этом можно сделать как теоретические оценки, так и замерить время обучения одной эпохи с последующей экстраполяцией. В случае нашей задачи мы говорим про теоретические оценки.
Самое простое решение – поделить время обучения Llama 2, выраженное в GPU-часах, на число часов в сутках: 1 720 320 / 24 = 71 680 GPU. Так как нам будет нужно загрузить данные, запустить задачи и выполнить тесты - попросим 100 000 GPU.
Более сложный способ был предложен читателем @TsarS. Повторяя его решение, получим:
N = T×P×E / G×H, где
T = 2×10¹² — количество токенов в обучающем датасете (в токенах)
P = 7×10^10 — количество параметров модели
E = 100 — количество эпох (оценка)
G = 624 TFLOPS — производительность одного GPU Nvidia A100 (в GFLOPS).
H = 24 — количество GPU-часов, необходимых для обучения модели
N — количество GPU, требуемое для обучения.
Результат вычислений – N = 260 тысяч GPU.
Уточнением этой формулы является формула Хоффмана C = C0 x N x D, также известная как Chinchilla scaling (https://en.wikipedia.org/wiki/Neural_scaling_law), где:
C = объем вычислений в FLOP,
N = 7×10^10 — количество параметров модели
D = 2×10¹² — количество токенов в обучающем датасете
С0 = 6 – количество операций в FLOP, используемых для обучения одного параметра на одном токене.
Важное отличие формулы Хоффмана в коэффициенте C0, который учитывает в том числе и апроксимацию по числу эпох обучения.
Применяя формулу Хоффмана, получим требуемое число GPU = 16 тысяч.
Еще один интересный метод расчета объема вычислений для сетей различной архитектуры приведен в статье https://epoch.ai/blog/estimating-training-compute.
Если наши читатели не возражают, будем рекомендовать Агенту K просить никак не меньше 100 000 GPU для спасения Земли.
Всем привет.
Ответ – да, выбор двери нужно менять, хотя вероятность выигрыша будет меньше, чем в случае игры с тремя дверями.
Приведу одно из наиболее понятных решений задачи (без формул и сложных доказательств).
Предположим, что приз находится за дверью №1, а за дверями №2, №3 и №4 — приза нет. Другие варианты сводятся к этому случаю циклической перестановкой дверей. Пусть у нас восемь Бенов распределятся таким образом, что каждую дверь выбрали по два Бена, и из каждой пары Бенов один впоследствии изменил решение, а другой — нет.
Для Бенов, выбравших первую дверь с призом, Микки Роса откроет одну из оставшихся трех дверей, и приз получит Бен, сохранивший выбор. Бен, изменивший выбор двери – приз не получает. Итого 4 Бена выиграли один приз:
Бен №1 выиграл + Бен №2 проиграл + Бен №3 проиграл + Бен №4 проиграл. Выигрыш ¼ = 0,25.
Теперь посмотрим на выбравших двери №2, №3 и №4. Поскольку приз за первой дверь, Микки Роса откроет одну из дверей в парах (№3 или №4), (№4 или №2) и (№2 или №3) соответственно. Если Бен изменит решение, он получит приз с вероятностью ½, а Бен, сохранивший выбор, приза не получает.
Среди Бенов, которые не меняли выбор, приз получит лишь один. Каждый из трех Бенов, кто поменял выбор, получит приз с вероятностью ½, и 4 Бена в итоге выиграют 3/2 приза.
Бен №1 проиграл + (Бен №2 выиграл + Бен №3 выиграл + Бен №4 выиграл) с вероятностью ½.
В итоге без изменения выбора вероятность выиграть = ¼ = 0,25, при изменении выбора вероятность = 3/8 = 0,375 > 0,25.
Эта была обещанная задача на вычисление условной вероятности, работа с которой контринтуитивна и требует корректного расчета вероятностей каждого сценария, в том числе с применением формулы Байеса. На практике таких задач очень много - от задач предсказания спроса и учета финансовых рисков до сценариев игр и фондового рынка.
Прекрасная идея использовать ИИ для решения задачи. Предположение об обучении за одну эпоху звучит фантастически. Но если мы примем число эпох равным 100 - получаем работу 99 200 GPU в течение 24 часов. Эта величина близка к данным от разработчиков Llama 2: 71 680 GPU = 1 720 320 GPU часов / 24 часа.