Обновить
8
0
Бузин Павел@pbuzin

Пользователь

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

Всем привет.

Моменты в фильме "Бойцовский клуб", которые можно интерпретировать совсем иначе зная о новых технологиях:

  • Начав посещать группы поддержки, рассказчик говорит: «Каждый вечер я умирал и каждый вечер возрождался вновь. Из мертвых.» - буквально чем не восстановление из 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 часа.

1

Информация

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

Специализация

Аналитик по данным