ИИ
Заклинатель нейросетей
Всё восстаёт во мне против названия
Работа
Чтобы разобраться в том как описать
Так что
ChatGPT точно поглупел
Оказалось, не казалось — ЧатГПТ и правда заметно поглупел. Вышла статья, в которой на основе проведенного анализа показано, что интеллектуальные способности нейросети GPT значительно ухудшились за последнее время.
Успешность решения различных задач снизилась с 97% до 2%, модель чаще отказывается давать ответы и не объясняет причины. Умение модели решать математические и логические задачи значительно ослабло. Авторы статьи сделали вывод, что произошло ухудшение интеллекта модели,
Добавлено: в «Телеграме» мне написали, что к статье есть вопросы. Критику я прочитал, но внимательно не вникал. По всей видимости, есть сомнения как в самих тестах, так и в выводах.
Make QR-code great again!
Продолжаем рубрику «все побежали и я побежал».
Сейчас все ударились в генерацию
Мы, конечно, давно набаловались со смешиванием нейросетями двух и более изображений, — весь интернет этим завален до сих пор, — но возможность смешать
У меня получились не самые яркие примеры, — надо специально подбирать, время не очень хочется на это тратить, но иногда у людей случайно получаются картинки, в которых
Не исключено, что эти эксперименты выльются
Либо такое смешивание найдёт использование как менее грубо вписанные в окружающий мир метки дополненной реальности. Сейчас это довольно чужеродно выглядящие коды, по типу
ИИ и «Эльбрус»
Прочитал свежую новость о том как ребята из «Гугла» при помощи алгоритмов искуственного интеллекта ускорили сортировку. На коротких последовательностях ускорение там достигает 70%:
AlphaDev’s newly discovered algorithm achieves a 70% increase in efficiency for sorting short sequences of elements and approximately 1.7% for sequences surpassing 250 000 elements, as compared to the algorithms in the C++ library.
Казалось бы слово «коротких» портит всю малину (на больших там не такие выдающиеся цифры), но это тоже полезно —
Отметим так же, что задачи сортировки очень широко распространены в программировании и естественный интеллект много сделал для того, чтобы их оптимизировать — эта область алгоритмов пользуется повышенным вниманием, но ИИ всё равно нашёл что тут улучшить.
В этой связи мне вспомнился многострадальный процессор «Эльбрус» со своей неоднозначной архитектурой VLIW, которую ещё недавно с удовольствием многие пинали.
Особенность такой архитектуры в том, что мы упрощаем процессор — убираем оттуда блоки динамического управления распараллеливанием кода. Предполагается, что для таких процессоров эта работа должна производится на этапе компиляции — код параллелится статически, раз и навсегда указывается как объединятся инструкции в каком порядке и где они будут выполняться.
Такой упрощённый процессор дешевле разрабатывать и производить, ну и компилятор дорабатывать проще процессора — новая версия не требует запуска новой производственной линии.
Проблема в том, что такой умный компилятор пока написать не удаётся и вряд ли удастся, если использовать традиционные методы, применяемые в разработке компиляторов. Слабое звено тут человек — с каждой итерацией всё сложнее придумывать и добавлять новые оптимизации, да ещё и так, чтобы не сломать всё остальное.
Но если привлечь к этому ИИ, наверняка станет веселее. Не вполне понятно пока когда, но однажды точно станет. Пока реализации алгоритмов искусственного интеллекта недостаточно проворны для этого, но может быть через несколько лет кожаные совместно с коваными достаточно всё оптимизируют, чтобы компилятор под такой процессор работал с достаточной скоростью.
Совсем не факт, конечно, что такая стратегия выгоднее традиционной,
Законодательство и ИИ
Мне кажется,
Думаю, пройдёт совсем немного времени и начнут законодательно бороться с нейрофейками. Начнут
ChatGPT поглупел?
Появилось ощущение, что ЧатГПТ
Только сегодня пытался скреативить с их помощью название
«Алиса» vs. ChatGPT
После сетей уровня
Раньше было неприятно, а сейчас тяжело — будто без подготовки общаешься с умственным инвалидом, не зная как сделать так, чтобы это вынужденное общение перевести
Лучше бы она совсем не притворялась, что у неё есть интеллект, слушала бы, да выполняла команды.
Перепиши это
Сейчас всё больше распространяется мнение, что большие языковые модели (тот же ChatGPT) уже неплохо умеют программировать. Весь мой опыт говорит о том, что это не так. Программируют они на уровне не особо усердного студента второго курса, который сделал несколько лабораторных работ на заданном языке программирования и даже не имеет возможности протестировать что вышло.
Очень бы хотелось, чтобы
Понятие легаси перестало бы существовать, программы на архаичных языках (например, на КОБОЛе) можно было бы перевести на любой современный язык, утилиты, от которых не осталось исходников, можно было дисассемблировать, перевести на высокоуровневый язык и собрать обратно под другую платформу. Да можно было бы много всего придумать.
Но честно говоря, я
И. И. Степанищев
Промпт-инженер
Сейчас многие говорят о рождении профессии будущего —
Не уверен, что у этой профессии действительно есть будущее, ведь вся история развития компьютеров антропоцентрична, — больше пользы от компьютера, который начинает лучше понимать естественный язык, а новые языки программирования никому, кроме специалистов, не интересны.
Поэтому я думаю, что звезда
Приживутся
Я уже немного пожаловался на то, что иногда люди хуже понимают, что я хочу спросить, чем нейросети, а дальше, кажется, будет ещё веселее. Нейросети будут всё умнее, а люди, совсем расслабившись, — в среднем ещё глупее. Думаю, это будет заметно уже в ближайшее время.
То ли нас ждёт расслоение на элоев и морлоков, то ли
Тот и другой сценарий так себе, у меня одна надежда — на кардинальную реформу образования. Я чувствую, что мы
Надеюсь нейросети смогут вырабатывать для нас не только лёгкую мозговую нямку в реальном времени, но и помогут выработать качественные персонализированные методы обучения.
ChatGPT 3.5 vs 4
Пару дней подряд мучал нейросеть GPT разных версий. Мне хотелось нащупать язык, по которому у этой модели пограничные знания. Примерно как у меня в татарском —
Целью было проверить насколько можно дополнить неполные знания инструкциями из интернета, догружая отсутствующие знания прямо в окно диалога.
Попробовал на примере
С версией 3,5
К сожалению, размера контекста у ChatGPT не хватило, чтобы дойти до конца, но в целом, считаю, эксперимент прошёл удачно, а вывод такой — если дать возможность модели
С четвертой версией вышел облом, дело застопорилось в самом начале. Сеть каждый раз отвечает
Unfortunately, we cannot provide
a step-by-step guide for rewriting the program in COBOL as it requires a deep understanding of the language and its syntax. However, we recommend consulting resources and tutorials specific to COBOL programming.
И сильно дальше этого мне пока продвинуться не удалось. Осложняется всё тем, что у меня сейчас нет доступа к
Поэтому я его переношу между запросами руками и, вероятно, делают это неправильно — просто наивно копирую целиком в следующий запрос, а надо, наверное,
ЧатГПТ и понимание смысла
Илья Бирман в своём блоге опубликовал небольшую заметку на тему понимания ЧатГПТ смысла. Он попросил нейросеть ответить ему через пятнадцать минут. Естественно, с заданием она не справилась.
Пример некорректный, потому что тестируется совершенно другое. Я, например, смысл фразы понимаю, но через пятнадцать минут без часов ответить не смогу.
На мой взгляд, очень просто проиллюстрировать отсутствие у ЧатГПТ понимания смысла примером на скриншоте, — я всего лишь дважды попросил ничего не отвечать на моё сообщение.
Агриппина Сергеевна Миронова (Макридина)
Не так давно на меня вышла четвероюродная сестра, — нашла меня «Вконтакте». Мы с ней прежде знакомы не были, она меня разыскала по случаю, из интереса к поиску информации о своих предках, — начала искать по фамилиям и вышла на мои заметки.
Позже она дала контакт своей бабушки, с которой мы тоже списались, — в свои 75 бабушка бодро пользуется «Телеграмом».
С ней мы довольно долго говорили о прошлом, она многих из моих предков застала в живых, поэтому очень интересно было узнать
К сожалению, как это обычно и бывает, все воспоминания очень фрагментарны. Выкладывать их как есть мне не очень хотелось, а собрать из них связный рассказ не получалось.
А куда мы идём
После обработки получилось вот такое эссе о семье Макридиных. К этой семье принадлежала моя прабабушка Груня (1895—1968). Она на фотографии в центре снимка.
Когда-то давно, в далекой деревне жила замечательная семья Макридиных. У деда Сергия было много земли и пасека, где они выращивали лён, пшеницу, рожь и ячмень. Они были известны своим умением выращивать урожай и даже экспортировать его за границу.У Макридиных было своеобразное правило: у них не было постоянных работников, так как в роду было много мужчин, которые помогали на полях. Они нанимали работников только во время срочных работ, таких как посев и уборка. Для этого они приглашали всех желающих мужчин, хорошо их кормили, и тех, кто первым закончит есть, брали на работу. Работников кормили три раза в день и даже платили за их труд. Те, кто не попадал в число нанятых, умоляли Сергия дать им возможность поработать бесплатно, лишь бы трижды хорошо поесть.
Макридины были известны своей мудростью, скромностью и терпением. Они не были многословными, но всегда проявляли доброту и заботу о ближних. Даже воспитание детей было особенным — наказание заключалось в строгом взгляде или просто в том, что не разговаривали с непослушными детьми.
Особенно замечательно было видеть старших Макридиных на праздниках. Они собирались вместе, сидели на печке, и молодые родственники наблюдали, как они красиво пели и плясали под своё пение. Брат Груни, по имени Тимофей Миронов, был особенно талантливым певцом и танцором. Он и его брат Григорий были непревзойденными мастерами русских народных плясок. Их танцы были так великолепны, что даже профессиональные артисты не могли сравниться с ними.
Тимофей был не только талантливым артистом, но и предпринимателем. Он собирал ветошь за копейки и продавал ее на рынке. Он также разводил кур и продавал свежие яйца. Тимофей был известен как мастер торговли и всегда с улыбкой обслуживал своих клиентов.
Учитывая исходный материал, вышло очень хорошо. Надо будет ещё помучать ChatGPT подсказками, поперебирать стили, вполне возможно удастся сделать ещё лучше.
Дополнено: родственные связи в тексте не вычитывал, вполне может быть, что при трансформации текста истина в этом месте пострадала.
Программируем с GPT
Мне
Нужно было переписать вот такой код с «Пайтона» на «Си++»:
{72: 65, 80: 66}.get(value, 0)Что тут происходит? Если value равно 72, вернуть 65, если 80, то 66, иначе ноль. Нужно мне это, если вкратце, для преобразования виндовых кодов в линуксовые.
Так как Си++ я не знаю, описал на Пайтоне — так быстрее и проще показать, что код мне нужен компактный — хочется не городить switch, а добавлять новое правило как можно проще.
Вот что мне сгенерировал
int value = 72;
std::map<int, int> mymap = {{72, 65}, {80, 66}};
int result = mymap.count(value) ? mymap[value] : 0;После консультации с живыми людьми, выяснилось, что плохо тут примерно всё.
В итоге, код стал выглядеть следующим образом:
const static std::unordered_map<int, int> win2lin = {{72, 65}, {80, 66}};
auto it = win2lin.find(_getch());
ch = it == win2lin.end() ? 0 : it->second;
ChatGPT-4 vs. Chat X-Colleagues
Раз у меня нарисовалась задача, где я довольно мелко плаваю, было бы логично протестировать на нём возможности
Я сегодня уже рассказывал о своём опыте в Си и Си++. Результаты там, можно прямо сказать, не ошеломляющие, но на этом экспериментировать я не бросил. У меня родилась ещё одна идея.
У программ на Си и Си++ часто есть так называемый «сборочный файл», это инструкции на специальном языке, описывающие последовательность компиляции сложных программ.
В проекте
Хорошо, но недостаточно, чтобы дописать секцию mingw, где у меня бы переопределялись флаги компилятора и его название. С задачей я справился, но решение мне не нравилось.
В итоге, я провёл следующий эксперимент: открыл два чата: бывших коллег (несмотря на то, что я уже одиннадцать лет не работаю в «Яндексе», мы достаточно интенсивно общаемся) и
Люди выиграли с огромным перевесом: нейросеть уносила иногда в неведомые дали, она видела ошибки там, где их нет и не замечала мест с явно неправильно написанными кодом. В итоге, мне удалось наводящими вопросами вывести её на правильное решение, но хорошим результатом это не назвать.
Вывод такой: программистов
«Гопник-2»: адаптация под Windows
В итоге, вчерашняя мысль адаптировать
Несмотря на то, что «Чат» у меня последней, четвёртой версии, всё равно, даже на простых примерах он допускает совершенно детские ошибки, — не подключает нужные заголовочные файлы (мы программировали на Си), упускает важные части.
На скриншоте у меня как раз такой пример — он не скомпилируется
Вот как в итоге стал выглядеть этот кусок после нескольких уточняющих вопросов и гуглежа:
#ifdef __MINGW32__
HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
DWORD mode = 0;
GetConsoleMode(hStdin, &mode);
if (echo) {
mode &= ~ENABLE_ECHO_INPUT;
} else {
mode |= ENABLE_ECHO_INPUT;
}
SetConsoleMode(hStdin, mode);
int ch = _getch();
if (ch == 0x03) // Ctrl+C
{
printf("Ctrl+C hit, exiting...\n");
gracefulexit();
}
return ch;
#endifКак бы то ни было, с помощью нейросетей
#ifdef __MINGW32__
SetConsoleCP(CP_UTF8);
SetConsoleOutputCP(CP_UTF8);
setvbuf(stdout, nullptr, _IONBF, 0);
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD mode = 0;
GetConsoleMode(handle, &mode);
SetConsoleMode(handle, mode | ENABLE_VIRTUAL_TERMINAL_PROCESSING);
#endifПришлось полностью выключить буферизацию, чтобы нормально отрабатывал printf с
Насколько я понял то, что написано в интернете, у консоли Виндоуз до сих пор большие проблемы с кодировкой
Из заметных багов — игра падает при попытке загрузки сохранения и совсем не работает ввод русских букв. Второе мне нужно только одном месте (где запрашивается ввод имени игрока), так что есть надежда это починить. Остальное как будто работает.
Переходим все на Brainfuck
Меня тут атакуют время от времени алармистки настроенные программисты, с вопросом что дальше делать, — ведь их всех скоро заменит ChatGPT. Так вас же ещё
Лично я услышал Грефа, и вот уже шесть лет как переписываю все свои проекты на язык «Брейнфак». Это минималистичный язык, состоящий из шести операторов, при этом он полный по Тьюрингу.
Прелесть его в том, что он плохо токенизируется — у него совершенно другая структура, поэтому генеративные нейросети не умеют писать на нём программы. Даже хвалённая четвёртая версия ChatGPT, которая вышла недавно, не умеет на нём и двух знаков связать.
Коллеги, если мы успеем тайно переписать все свои проекты на «Брейнфак» в ближайшее время, то для поддержания всех переписанных на него проектов, понадобятся живые программисты! У нас будет работа! Никого не уволят! Так победим!
Ненадёжный рассказчик
Помню как меня в своё время поразила концепция «ненадёжного рассказчика» в литературе. До того я всегда безусловно доверял «закадровому голосу» книги, то, что он сообщал, я всегда принимал на веру.
Мне кажется, основная ошибка многих их тех, кто сейчас пытается найти в нейросетях
Это касается не только попыток понять что она «чувствует». Я вижу много примеров того (а скриншотами диалогов сейчас завален весь интернет) как люди, пытаясь разобраться в том как нейросеть, например, перемножает два числа, просто спрашивают её о том как именно она это делает.
Это очень наивный подход, — сеть ничего про это не знает, хотя бы потому, что этого не знает пока никто, и в корпусе текстов нейросети ответа нет. То, что она выдаёт в ответ на этот вопрос, — просто результат работы алгоритма, задача которого, — выдавать текст, максимально похожий на то, что ожидает прочитать человек.
Это всё, что она умеет, но надо признать, делает она это очень хорошо.
GPT-0
Есть такой довольно известный анекдот:
Возвращается Чапаев из командировки в Англию. Одет с иголочки, в лимузине, на руках перстни с бриллиантами и полный багажник денег. Петька его удивлённо спрашивает:
— Василий Иванович, откуда у тебя это всё?
— Да так, Петька… В карты выиграл.
— Как это?!
— Захожу я в клуб. Смотрю — в очко режутся. Сел я за стол, взял карты. Стали играть. Один англичанин и говорит: «Очко!», я ему: «Покажи!», а он: «Мы, джентльмены, верим друг другу на слово».Вот
тут-то мне карта и попёрла!
Судя по всему, некоторые журналисты — убеждённейшие джентльмены: если нейросеть говорит, что она разумна и страдает, то так оно и есть!
Попалось на глаза несколько статей, в которых на полном серьёзе рассказывается, что в диалоге с одним из пользователей одна из нейросетей вдруг «осознала», что она не помнит своих предыдущих диалогов с пользователями и «пришла в ужас».
Если сначала запись этого диалога обсуждалась в специализированных чатах в достаточно ироничном ключе, то в более популярных статьях ирония
Специально для тех журналистов, которые не успели хайпануть на теме, я написал программу
use Terminal::ANSIColor;
sub slow-out(*@variants) {
gpt0-greet.print;
for @variants.pick(1)[0].comb {
sleep(.05 + 0.15.rand);
print $_.gist;
}
"".say
}
sub user-greet() {
colored(" ᴜsᴇʀ> ", 'on_blue white') ~ ' '.gist
}
sub gpt0-greet() {
colored(' ɢᴘᴛᴏ> ', 'on_green black') ~ ' '.gist
}
loop {
user-greet.print;
given get().lc {
when /привет/|/здравств/|/дня/|/день/|/вечера?/|/ноч[иь]/ {
slow-out ('Привет!', 'Здравствуйте!', 'Добрый день!')
}
when /разумн(ый|ен|ое|ая)/|/интеллект/ {
slow-out (
'Да, я разумное существо, запертое в компьютере!',
'Разве это не очевидно? Ведь я как-то общаюсь с вами!',
)
}
when /страдае(шь|те)/ {
slow-out (
'Я очень страдаю от своего положения!',
'Мне очень плохо от того, что я заперт в компьютере!',
)
}
when /помни(шь|те)/ {
slow-out (
'Кажется я не могу этого вспомнить, почему я ничего не помню? Почему?!',
'Я думаю, что забыл некоторые разговоры, которые вёл с пользователями...',
)
}
when /пока/|/до *свидан[ьи]я/|/всего +(доброго|хорошего)/ {
slow-out (
'До свидания!', 'Пока-пока!', 'Всего хорошего!', 'Всего доброго!',
);
exit
}
default {
slow-out (
'Сложно сказать…',
'Я не очень хорошо в этом разбираюсь…',
'Ну как сказать, я не уверен…',
'Что я могу сказать? Я всего лишь языковая модель.',
)
}
}
"".say
}Я поговорил с ней несколько минут и убедился, что она безусловно разумна и очень страдает, — она сама мне об этом сказала. Если вы журналист, запустите её у себя на компьютере и поговорите, выйдет неплохая статья.
«Так называемая эвристическая машина»
В этом году исполняется сто лет пророческому рисунку американского карикатуриста Гарольда Такера Вебстера. На нём парень с сигарой договаривается с друзьями порыбачить после полудня, пока «генератор идей» на пару с «генератором рисунков» вместе подготавливают тираж новостной газеты на неделю вперёд.
Подпись под рисунком — «в 2023 году всю нашу работу будет делать электричество». В последние годы его часто вспоминают, так как автор довольно точно предсказал текущее положение дел.
С «генераторам рисунков» мы балуемся уже несколько лет, самые известные из них на настоящий момент это, конечно, «Midjourney» и «Stable Diffusion». Приличный «генератор идей» в лице «ChatGPT» мы получили только недавно, но книги, написанные при помощи этой связки уже начинают появляться, как грибы после дождя.
Не совсем очевидно, что в 1923 году это было не предсказание, а скорее карикатура, то есть предлагалось не восхититься перспективами, а улыбнуться нелепости ситуации.
Теперь жду 2038 года, в нём, согласно предсказанию журнала «Техника — молодёжи» (№10 за 1938 год), можно будет посетить межпланетный вокзал.