Ну вот такая архитектура. Число входов и выходов фиксировано. Она никак не влияет на то, AGI это или нет.
Если вам так принципиально сделать, чтобы число входов/выходов было переменным - придётся извращаться, например, сделать, что есть некое скользящее окно, показывающее фиксированное число входов/выходов, и которое можно двигать.
На практике не вижу в этом смысла, можно на старте задать входов/выходов столько, сколько есть у тела.
Как у людей устроено подключение новых актуаторов? Как комбирация из действий старых. Мы не подключаем дрель напрямую к нервной системе. Мы берём её в руки, и руками ей управляем. Или если нам нужно, чтобы компьютер делал что-то необычное, мы редко подключаем дополнительные средства ввода - мы чаще делаем новую программу и используем всё ту же клавиатуру и мышь. Новое - это незнакомая комбинация ранее известных элементов
Этот механизм генерации представлений есть в каждой нейронке. Если мы возьмём просто любой слой, то на выходе у неё будет некое представление, которое практически полезно для решения задачи, на которую нейронку учили.
У человека эта система такая же "под задачу", как и у нейронки. Точно так же есть зона применимости у этого понижателя размерности. В этом смсле человек от нейронки отличается той самой задачей, то есть датасетом. Если хотим, чтобы представления у ИИ были полезными для решения неких задач - надо обучить нейронку предсказывать что-то важное на большом числе похожих задач, и взять какие-нибудь промежуточные данные этой нейронки. В идеале надо обучать нейронку с боттлнеком - слоем на малое число нейронов. Тогда эти представления будут не только практичными, но и компактными. Плюс часто делают разные регуляризации при обучении - например, требуют, чтобы компоненты вектора в боттлнете были наименее скоррелированы, тогда система более склонна выделять независимые детали.
Некоторые говорят, что эмбеддинг-вектор - это недостаточно, нужно как-то иначе устраивать внутреннее представление. Может, это и верно
"а как бы Вы сформулировали такую задачку " - я её описывал вот здесь: https://habr.com/ru/post/568320/ , описывал, как старался сделать такое представление. Два разных подхода. Если коротко - представление не бывает хорошим в любой среде, это против самой идеи. Но можно сделать представление так, чтобы оно позволяло предсказывать какие-то важные штуки во множестве интересующих нас сред. Кроме того, вот здесь https://habr.com/ru/post/437020/ человек рассказывает о существовании очень универсального представления картинок - такого эмбеддинга, по которому можно довольно быстро решать практически любую задачу на компьютерное зрение. Здесь важен сам принцип - он переносим на другие задачи
Я не проводил такого эксперимента, но не вижу причин, почему нет. Только какой датасет у этого мужика? У него датасет - это примерно все наблюдения где-то с того момента, как у его предков мозг появился. Ну то есть мужик точно может переводить картинки животных в какие-то внутренние представления, а дальше для этих представлений искать какие-то закономерности, может даже очень простыми правилами, вроде KNN. Так вот, механизм, порождающий внутренние представления, в значительной мере дан с рождения, и лишь частично дорабатывается в течение жизни. Подобные системы есть в продакшне - какие-нибудь системы распознавания лиц устроены именно так. Вначале мы нейросеткой делаем эмбеддинг, а потом поверх него запускаем KNN или линейную модель, или ещё что-то простое и тупое, что способно обучиться на 2-3 примерах. Ну то есть если бы я хотел сделать целостного ИИ-агента, который способен проворачивать трюки вроде того, что провернул мужик, я бы использовал трансформер с механикой key-value-query. Эта модель внутри себя нативно эмулирует что-то вроде KNN. Обучал бы эту модель прогнозировать видеоряд в зависимости от прошлых кадров и предлагаемых действий. Датасетом взял бы не жизнь одного такого мужика, а жизнь сотен мужиков в разных условиях - и полагаю, этого бы хватило, чтобы сетка делала практически полезные представления, в которых животные различаются удобным образом. Класс в явном виде в такой модели бы не существовал, но по внутренним представлениям было бы видно, что "страус"="курица"+"большая", а "гиена" примерно равно "собака". Дообучение такого агента в течение жизни понадобилось бы, но минимальное - предполагается, что основные "рассуждения" происходят во внутренних представлениях, а они прямо со старта довольно хорошие, и всё обучение происходило бы во внутреннем пространстве key-value-query, где градиентный спуск не нужен, и много данных не нужно. Но я не проводил этот эксперимент полноценно - могут быть тонкости, которых я не замечаю.
И насчёт Ньютона. Думаю, можно и более простые примеры привести... Люди века так до 16-го были уверены, что южное полушарие Земли настолько же плотно занято сушей, как северное. А ещё лет 100 назад была довольно распространена идея, что на Марсе есть марсиане. Это же в чистом виде распространение наших реалий за пределы датасета. И люди это делали не просто так: подобный подход обычно неплохо работает. Это называется неполная индукция: вывод правила по ряду наблюдений. Нейросети делают то же самое, и так же точность прогноза падает по мере удаления от изученной среды
Сжать может любое. Но понравится ли вам результат прогноза - это вопрос. Ожидается, что на похожих видео будет хорошее качество, на непохожих - плохое. В ML обычно ситуация такая... Да и при любом решении задачи неполной индукции оно так, насколько мне известно. В физике та же самая история была: физика Ньютона отлично работала вблизи его датасета, а как эксперименты только ушли далеко от того, на чём экспериментировал Ньютон - стала расти ошибка. Пришлось придумывать ОТО и квантмех - новые модели для более широких датасетов
Обычно нейросетка внутри системы управления (та самая система, что может быть или не быть AGI) делает прогноз вида S+A->R, где S - это некий вектор наблюдений (кадр, несколько кадров, все прошлый кадры, сжатые в эмбеддинг), A - это номер действия. R - это суммарная функция полезности за следующие N шагов. Размерности S и A фиксированы - они зависят от устройства тела. Робот, у которого есть кнопки вперёд, назад, вправо, влево, имеет размерность A, равную 4, и она никогда не изменится. R - это всегда скаляр. S - зависит от того, какие сенсоры у робота, тоже фиксированная размерность. В этом случае мы перебираем все возможные A и делаем то, для которого R больше. Есть другой вариант модели для системы управления - S0+A->S1. Тут предсказывается уже будущее наблюдение. Опять же, наблюдение - это картинка, например, она всегда фиксированного размера, так как зависит от видеокамеры. Или это эмбеддинг картинки - тоже зависит от камеры и того инструмента, которым делаем эмбеддинг. То есть ситуация, что у нас появился новый класс, означает, что мы облажались на этапе проектирования системы, передачи данных с сенсоров в нейронку. Такого не должно быть.
"А доучиваться сетка как будет? каждый раз с сбросом всех весов? " - на практике обычно хватает просто запустить функцию fit ещё раз, применительно к обученной сетке. loss будет самым большим на тех данных, где самые большие ошибки - а это обычно новые данные. Поэтому система более-менее целенаправленно "запомнит" именно их. Но так как в датасете есть и старые данные тоже - на них качество не испортится, или испортится несильно. Если умеем обучать модель быстро, то можно и учить с нуля (но для нейронок это обычно не так).
"А есть ли инструментарий, который бы показал каким именно образом внутри сетки произошло обобщение? " - у меня нет. Я вижу результат - произошло lossy-сжатие под конкретную задачу. В моём понятийном поле это примерно то же, что и обобщение. Можно сделать инструменты визуализации и попытаться понять, за что нейронка цеплялась, но думаю, гораздо полезнее отследить, какие вещи она нарисовала наиболее точно. Именно эти детали и были самыми значимыми абстракциями внутри скрытого состояния нейронки. Это разные варианты HUD, небо, тени, общая освещённость, световые лучи, трава. Для некоторых объектов есть, видимо, координаты и углы наклона.
"Насчет примера со сжатием, это выглядит как трансформация из одного многомерного пространства в другое " - это интерфейсный вопрос. Если у нас есть система, где на входе вектор и на выходе вектор, то она будет делать перевод в другое векторное пространство, независимо от того, как устроена, и независимо от наличия там "обобщения". Потому что описания "перевод в другое векторное пространство" и "обобщение" - они разные абстракции используют.
"Как доказать, что обобщение имело место " - я бы для начала отказался от этого термина и перешёл к более конкретным. Lossy-сжатие, например. Или выделение практически полезных признаков. Нам же обобщение надо не просто так, а чтобы решать какую-то измеримую задачу. Значит, можно сформулировать его в терминах, более близких к задаче
"сомневаюсь, что существует математически строгая постановка задачи для ImageNet " - задача выглядит примерно так. Есть train_set и test_set. Надо изготовить некий продукт, который на train_set даёт высокое качество распознавание (accuracy или logloss выше, чем у аналогов), и на test_set тоже, при этом test_set не использовался при разработке системы.
По AGI я бы вообще формулировал задачу примерно как RL: есть некий способ сообщить системе, какие состояния мира желательны, а какие - нет. Система выдаёт команды на моторы так, чтобы провести мир таким путём, чтобы он почаще проходил через желательные и пореже через нежелательные состояния (сумма функции полезности на некоем горизонте планирования должна быть максимизирована). Задать ФП можно или как в RL, в виде набора примеров, или явно - например, подать на вход системе некую рукописную или отдельно обученную функцию, которая принимает на вход видео, а на выходе - полезность. Если система может работать +- в любой среде и с +- любой функцией полезности - я бы сказал, что это AGI, и дальше надо решать вопросы его быстродействия и эффективности по данным. Но это мой подход (а так же Юдковского, Бострома, Мюльхаузена...), не все согласны с таким определением AGI. Соответственно, для меня возможный тест AGI выглядел бы как набор этих тестовых сред: https://www.gymlibrary.dev/ И каких-нибудь более сложных. От системы требуется, чтобы она быстро освоила любую из них - за тысячи кадров, а не миллионы и миллиарды. И чтобы прохождение 20 сред делало обучение в 21-й среде значимо быстрее (то есть должен быть перенос опыта между доменами). Это требование не к нейронке, а к продукту. Нейронки - это часть AGI, а не весь он целиком.
"Пункт первый не выполняется. Сетки не доучиваются. Очень бы хотелось увидеть контрпример " - я специально написал, что AGI - это не сетка, а некий продукт с сеткой внутри. Сетка фитится под датасет, а датасет собирается в течение жизни. Например, DQN может иметь память в терабайт размером и хранить там всё, что увидит и сделает, а так же сигналы подкрепления. Просто массив структур, не внутри сетки. А нейросеть будет регулярно дообучаться на этом датасете. Нейросеть - это апроксиматор, она не должна делать чего-то сверх функций fit и predict.
"Пункт второй, по моему мнению тоже не выполняется. Опять-таки, если есть контрпример, был бы очень радо увидеть " - тут вопрос, что вы подразумеваете под обобщением, не в гуманитарных терминах, а в математических. Нейросетки могут выделять из данных некие инварианты, которые полезны с практической точки зрения. Удалять избыточную информацию, собирать нужную. Например вот: https://hsto.org/r/w1560/getpro/habr/upload_files/66e/c09/44e/66ec0944ea8310924b4e33d0fb03fff7.png https://hsto.org/r/w1560/getpro/habr/upload_files/6a7/ccd/cee/6a7ccdcee6f85af2fd73e2b32a4fefd2.png Нейросетка сжала видеоряд в вектор из 800 чисел. А затем разжала так, чтобы на выходе получился следующий кадр видеоряда. Первый кадр на картинке - это прошлое, второй - это предсказанное будущее, третий - фактическое будущее. Полагаю, вот такое "прагматичное lossy-сжатие" - это и есть обобщение. Если присмотреться к картинкам, видно, что нейросеть предсказывает именно динамику, а не прошлый кадр - то есть у неё там внутри есть концепция "угол наклона неба", например. Или "наличие и тип HUD"
Наверное, ещё надо отметить. AGI на базе нейронки - это не нейронка. Это рукописная софтина, в которой есть нейронка, некий собиратель данных, предобработчик данных, алгоритм обучения нейронки, алгоритм принятия решений на базе прогнозов нейронки/нейронок. И обычно основная фишка не в нейронке, а в том, чему именно мы её/их учим и как потом применяем.
День добрый! Примерно так. 2-й пункт довольно нетривиален. Когда человек решает задачи, мы не знаем точно, какие у него были вводные. "Дано" задачи? Весь жизненный опыт? Паттерны в мозгу, сформированные эволюцией, и в каком-то смысле отражающие опыт предков, начиная где-то с рыбы? Поэтому надо ооочень аккуратно проводить это сравнение.
Есть такое понятие как zeroshot - нейросетка получает на вход некий ряд, который описывает маленький датасет, то есть и X и Y. А потом выдаёт правильный предикт - как будто она обучалась. А она не обучалась: градиенты не шли. Скорее, внутри нейросети сформировался алгоритм, который похож на некий алгоритм обучения. Так вот, обобощение чего-либо человеком на 3х примерах ближе именно к zeroshot, а не к обучению нейронки - а обучение нейронки больше соответствует эволюции, чем прижизненному обучению организма. Но это всё очень рыхлые аналогии
Пункт 4 - я думаю, что если нечто можно решить программированием, то теоретически можно и нейросеткой - есть тьюринг-полные нейросетки. Тут скорее вопрос в том - а нужно ли. Всё же нейросетка+оптимизатор - это инструменты для решения очень конкретной задачи, в самом широком варианте "найти такую программу, что выполняется условие такое-то". Иногда это условие настолько сложное, а программа настолько простая, что проще закодить самому, чем учить нейросетку
Статья любопытная. Чего мне не хватало (и от этой статьи, и от других, которые критикуют нейросети). Какую задачу вы решаете? Чёткая математическая постановка, без слов "интеллект", "сознание", "понимание" и так далее. Я думаю, мало кто скажет, что supervised learning на картинках - это и есть AGI. Например, существует рассуждение о том, что 1-слойный персептрон не может обучиться XOR, а 2-слойный может обучиться вообще чему угодно (при ряде нереалистичных допущений). Это - корректное доказательство того, что "нейросети не могут" (и насколько конкретно не могут). Если мы делаем AGI на базе ML (то есть supervised learning), то нужно описать конкретный план, как мы делаем это сведение. И в рамках этого плана находить задачи, которые животные/люди измеримо решают, а данный проект AGI доказуемо не решает. Если мы попробовали сделать AGI на нейронке и он не справился с данной задачей - это говорит о провале конкретного проекта, а не нейронок в AGI в целом. Пока что я вижу, что нет общепризнанного плана, как свести задачу AGI к задаче supervised learning. Если бы был - можно было бы сказать: нейросети не могут тут справиться, вот теорема (а решающие деревья могут, например, или KNN может). А так пока есть куча результатов, одни их воспринимают как успехи, другие как неудачи, а доказательной базы по части невозможности особо и нет То есть например, есть DQN. Это заявка на AGI (потому что достаточно универсально), там есть нейросеть. Но датасет к ней формируется совершенно не так, как в Dreamer, например. И наличие нейросети в обоих случаях непринципиально: нужная какая-то штука, которая будет +- универсально решать задачу апроксимации. Сейчас такими штуками обычно являются нейросети, но если и другой ML
Машинное обучение (и нейросети в том числе) - это автоматическое программирование. А ТЗ ставится через датасет и loss. Поэтому если какую-то задачу нельзя решить через нейросети, предлагаю посмотреть: а её можно решить через программирование? Если можно - то что нужно сделать, чтобы придуманный вами код можно было сгенерить автоматически, под заданный датасет и loss? Ответ на этот вопрос описывает архитектуру ml-модели, которую нужно в данном случае применить. Не факт, что такая архитектура уже придумана. Но очень вероятно, что эту архитектуру можно записать гладкими функциями, то есть что можно сделать её нейросетью
Тут ещё важно, как устроены арены в Fear. Много ли вы видели игр, где 90% боёв происходит на локациях, где минимум два коридора, позволяющих зайти на противника с тыла?
Для сравнения: есть Мафия-2, там боты довольно адекватно себя ведут. С фланга обходят, в засадах садятся. И это без левел-дизайна, очевидно заточенного под обходы.
Да, это то, как система организована сейчас. Это выглядит в целом разумно. Некие люди, специалисты, решают, какую информацию надо распространять, а какую - нет. Это полезный социальный институт, хотя он прямо обозначает некоторые мнения нежелательными. Да, аргументированно обозначает, но эти аргументы работают только для специалистов, не-специалисты их далеко не всегда могут понять. В общем, по форме типичная инквизиция, различия начинаются, лишь если понимаешь аргументы, то есть уже человек довольно образованный. Есть же и много других ситуаций. Например, в уголовных кодексах многих стран есть статьи о клевете - они вообще-то нарушают свободу слова. Но при этом это скорее хорошие законы, чем плохие. Или бывают ситуации, когда вброс некоторой информации порождает панику - например, можно в здании, полном людей, крикнуть "пожар!", возникнет давка и многие пострадают. Запрещать такие вбросы - это тоже цензура. Бывает ещё модерация интернет-сообществ, тоже вещь полезная, хотя по форме это та самая цензура.
В общем, мой тезис такой: иногда цензура нужна и полезна, даже несмотря на риски скатывания в антиутопию. Вы с этим несогласны?
Если вы запретите нести бред в массы, носители этого бреда тут же обзовут вас инквизитором, что борется с еретиками. И очень многие с ними согласятся. В нарративе просвещения тут нет полутонов - или вы разрешаете нести вообще любой бред, а так же звонить в школы и говорить "у вас там бомба". Или вы злодей-инквизитор, который сегодня запретил бред, а завтра запретит говорить, что 2+2=4
По-моему, одна из главных проблем в том, что борясь с концепцией ереси, вы быстро уткнётесь в то, что иногда она полезна. У свободы слова есть побочные эффекты, вроде возможности распускать клевету, возможности создавать панику тогда, когда это опасно или возможности продвигать в школах креационизм/плоскоземельство. С проблемами этого класса борется цензура. Концепция ереси - это нечто, крайне похожее на цензуру.
Нарратив просвещения и правда описал много способов борьбы с цензурой, но он не включает в себя чувство меры, понятие о том, что иногда цензура всё-таки нужна, и кое-какие мнения всё-таки надо объявить ересью, по крайней мере если человек их высказывает публично и не на специальной площадке для научных дебатов.
Герой Просвещения сказал бы, что нельзя допускать никакой цензуры, потому что это создаёт прецедент и возможность вводить больше цензуры. А тот, кто против свободы слова - просто обскурантист и латентный рабовладелец. Это очень удобная и проработанная позиция, которая реально хорошо работала в XIX веке, когда мнение могли высказать лишь самые образованные люди, которые совместно были единственными грамотными. И слушать эту свободу слова тоже могли они же. А сейчас ситуация другая
К сожалению, слишком гуманитарно. Я не зря сказал "надо как-то свести задачу к тому, что мы хотим предсказывать или чем управлять. " Сформулируйте, потом старайтесь отталкиваться от этой формулировки.
Когда люди рассуждают об ИИ, они часто (неподготовленные - всегда) скатываются в антропоморфизм. Это плохо и неправильно... Я не могу сейчас полно описать, почему. Но каждое "гуманитарное" слово в рассуждении об ИИ - это провал и будущая причина неработающего проекта. Если бы вы пообщались с иными "интеллектами" - с эволюцией, с обучением нейросетей - вы бы увидели, насколько их "рассуждения" чуждые и нечеловеческие. Потому что человек прошёл очень длинный путь, прежде чем стать таким, какой он есть. Человек эволюционировал в племени, вокруг которого хищные звери. Человек склонен видеть во всём разум, причём не абы какой, а очень конкретную разновидность - как у млекопитающего на Земле. Пространство интеллектов огромно, но человек знаком с маленькой точкой, и проецирует известные закономерности на иные интеллекты.
Когда вы делаете ИИ-проект, надо уметь отказаться от такого видения. Это очень неестественно, это приходит с опытом. Наверное, самый лучший способ - попробовать посоздавать своих агентов с помощью эволюции. Своих агентов, которые решали бы задачи, которые вы точно знаете, как решить. Вы бы увидели, насколько неестественны ваши решения, насколько чужды стратегии, которые порождает нечеловеческий оптимизатор.
Я это всё к чему. У вас есть задача: "генерировать ответы так, чтобы они выглядели &, с точки зрения людей-оценщиков". Давайте решать именно её. Она хорошо поставлена, она не гуманитарная. Можно её как-то изменить - вы верно говорите, что ИИ будет стараться "взломать" человека. На выходе будет не человек, даже не близко. На выходе получится оптимизатор... Чего-то. Чего вы зададите. Когда вы начинаете проводить параллели с человеком, вы с высокими шансами пытаетесь опереться на "блоки", которые у человека формировались десятки миллионов лет, и которых у ИИ нет, и напрямую запрограммировать нельзя. ИИ нельзя воспитывать в человеческом смыле. У него не может быть семьи. Ему неведом пол и гормоны. Родство для него пустое слово. Если у него и есть эмоции, то совершенно не те, что у человека. В лучшем случае это некий пришелец из иного измерения, который ведёт себя так, как вы бы хотели. Не потому, что вы его воспитали, и вы - его семья, а потому что вам удалось именно такого пришельца отсеять среди остальных.
Так что если хотите ИИ-проект, давайте сосредоточимся на том, что мы собираемся оптимизировать, какие доступны данные (и источники данных). Какие есть каналы ввода-вывода. Исходя из этого, смотреть, что можно сделать, не задействуя миллионы людей в риалтайме(так даже Яндекс делать не станет, если система не даст интересных результатов на 10 людях) Если вы хотите конкретного поведения от ИИ, то его придётся обучать через supervised learning (не что-то вроде человеческого обучения с учителем, а решение задачи регрессии/классификации). Если вы хотите получить некий аналог живого существа, у которого хотя бы гипотетически может быть... Что-то, похожее на пол, гормоны и семью. То нужно использовать эволюцию. Но на выходе будет интеллект, который крайне не похож на человеческий, и у которого ещё и нельзя тонко настраивать реакции.
Иначе, да, работа на заказ по ТЗ, а не творческий порыв души. Я знаю и понимаю эту разницу
Вы в любом случае управляете только тем, как внешне будет поступать ИИ. Если "работа на заказ" внешне отличается от "творческого порыва души" - можете сделать датасет одних текстов и других. Пусть оценщик у ИИ тоже это различает и банит варианты, которые выглядят недостаточно вдохновенными. Для людей такой подход чужд, для ИИ приемлем...
Ну, надо как-то свести задачу к тому, что мы хотим предсказывать или чем управлять. Например, задача "генерировать ответы так, чтобы они выглядели правдоподобно/полно/релевантно, с точки зрения людей-оценщиков" - это нормальная задача управления (заставить человека поставить лайк, в определённом контексте). Дальше уже можно строить цикл, отталкиваясь от этой постановки. От постановки, что у нас есть генератор текста и оценщик текста, и они обучены на данных.
Я бы не привязывался ни к "сознанию" (если оно так важно, то можно дать чёткое техническое определение, раскрыть в ТЗ, и больше слово "сознание" не вспоминать), ни к большому числу людей (потому что это средство, а не цель, средства можно выбирать разные). Скорее всего, если вы станете делать эту систему, на каком-то этапе возникнут проблемы, которые можно решить, задействуя людей неким способом. Кажется разумным именно тогда решить, как именно подключить людей, и в каком количестве. Потому что вы заранее не знаете, насколько хорошими окажутся генератор ответов и оценщик. Может, их хватит, и людей вообще не надо привлекать? Может, оценщик не понадобится, потому что генератор и так хорошо будет генерить? Может, люди в системе нужны - но вполне подойдут толокеры, разметчики датасетов? Может, люди в системе нужны, но только в качестве оценщиков, потому что именно "критик" работает плохо? А может, вы по ходу обучения модели поймёте, что даже если она будет отвечать на вопрос идеально, вас это всё равно по какой-то причине не устраивает. А может, окажется, что люди вам нужны, но очень определелённого вида, которых нет 10 миллионов на планете. Я бы остановился для начала на такой формулировке, которая не требует большого числа людей, а готова работать с уже написанными текстами (из чатов, например). А потом, когда будет понимание, как именно эффективнее всего задействовать людей, подключить толоку
если они крайне противоположны, то можно их добавить обе по системе GAP?
"Задача: зародить в системе самосознание." - мне видится, что это не очень хорошая постановка задачи. В идеале задача звучит как-то так: нам нужен некий чёрный ящик, совершенно неважно, что у него внутри, но он выдаёт на выходе то-то и то-то, вот способ измерить результат. Тогда можно максимально включать творческий подход, потому что чётко определён критерий успеха. Другой момент - у вас довольно размытая постановка. Даже если вам реально нужен не "решатель задач", не поведение, а "самосознание", но не очень определено, что конкретно вы в данной ситуации под ним понимаете. Люди под словом "сознание" подразумевают много радикально разных вещей, поэтому я его в рассуждениях об ИИ вообще не употребляю, во избежании скатывания разговора в метафизику. С "коллективным сознанием" то же самое. Я вижу, что дальше вы упонимаете это "сознание" как инструмент решения задач - возможно, стоит упоминать именно задачи, а не "сознание". Тогда намного понятнее, как их решать.
"Так мы добавим к одному полушарию нашего ии-мозга второе - живое, максимально разумное и живое." - в такой постановке это уже сложная задача. Не технически сложная, а слишком абстрактная. Если вы будете сводить её к конкретике, есть хороший шанс, что получится совершенно не то, что представлялось изначально. Я предлагаю максимально уйти от абстракций на практический уровень. ИИ? Значит, это либо машина прогнозов, либо машина достижения целей. Прогнозы - в смысле, что-то конкретное, что в датасете лежит, цели тоже конкретны, на уровне "научись в Марио набирать максимум очков". Предлагаю вначале придумать, как система будет работать с одним, максимум двумя людьми. Прототип сделать.
"ИИ нужен для работы с информацией, а не с материей." - наверное, это зависит от постановки задачи. Мне ИИ нужен как машина результатов. Даже свой разум я ценю больше не как вопрос-ответную систему, а как нечто, что умеет достигать практических целей. Так как термином "сознание" я в контексте ИИ не пользуюсь (да и с человеком применяю его лишь от необходимости), то я вижу иные сценарии провала, связанные не с сознанием, а с неправильным переходом от высокоабстрактных желаний к чёткому измеримому ТЗ.
Почему? 10млн самых совершенных на данный момент вычислительных машинок, объединённых программой - не только огромные вычислительные мощности, но и огромный пласт разнообразной инфы.
Я иду от задачи к решению. Нужна вопрос-ответная система на ИИ - окей, GPT. Нужна на людях - гугл/stackoverflow.
Приложение лучше. Приложение на телефоне и сможет само обращаться к пользователю, а не ждать, когда он посетит сторонний ресурс.
С одной стороны, да, с другой... Попробуйте оценить, сколько часов и долларов на это нужно. Если вы сможете связать в сеть столько людей, и они готовы будут общаться, то вы решите задачу ответа на вопросы и без ИИ.
Вообще, если бы я ставил задачу к вопрос-ответной системе на ИИ, я бы формулировал как-то так: хочу, чтобы у этой штуки был (примерно) весь записанный опыт человечества, и она умела делать выводы из разрозненных по этому опыту знаний. Условно, получила она тонну патентов (как Эйнштейн в своё время) - вывела теорию относительности при правильном запросе. Именно в этом я вижу смысл применять ИИ в данном контексте - он может собрать больше данных, чем человек, и сделать из них вывод. Но я всё ещё полагаю вопрос-ответные системы несколько ущербными, по самой постановке задачи. Если мне надо получить.... например, нанороботов. То вопрос-ответная система в лучшем случае заставит меня их делать и объяснит, как. И окажется, что моими руками это делать дико долго и сложно. Впрочем, это вопросы к ТЗ, я не утверждаю, что все должны хотеть ИИ именно того типа, что создаёт наноботов по заказу.
Самый хороший - самый многочисленный по статистике.
Пока можно научить так. Потом научим выбирать не хороший, а , если он есть, лучший
Это не всегда работает. Представьте себе вопрос в техподдержку. Вопрос - полстраницы, ответ - полстраницы. Сколько вы рассчитываете получить таких ответов, чтобы среди них вообще были совпадения?
Альтернативный вариант - вы шаритесь по форумам техподдержки и ориентируетесь на лайки. Считаете хорошими ответами те, что лайкнуты, а плохими - те, где дизлайки. И заливаете эту статистику в "критик"
Если ИИ будет учиться на текстах, то он и будет выдавать в ответ тексты.Если ИИ будет учиться на живом общении с людьми, то он будет в ответ выдавать живое человеческое общение. Разве нет?
Вы можете обучать бота на переписках в чате - чем не живое общение? Или на субтитрах к кино, если вам надо ещё более живое. ТУт важно понимать, что конкретно мы можем. Мы можем обучить модель сопоставлять некоторые X и Y, если явно подадим эти два множества. Модель даже сделает обобщение, и для каких-нибудь других X будет придумывать релевантные Y. Чем точнее мы следуем этой схеме в работе с машинным обучением, тем выше шансы ничего не угробить, потому что у нас именно эта схема хорошо отработана. Поэтому надёжнее всего было бы при получении новых данных дописывать их в базу и дообучать модель на всём множестве.
Вообще, у вас, по-моему, уже есть все ресурсы, чтобы систему сделать. GPT есть. Интернет с записями живого общения - тоже. Модель всё равно получится не очень ёмкой поначалу, так что данных, которые спарсите из интернета, должно будет хватить
Ну вот такая архитектура. Число входов и выходов фиксировано. Она никак не влияет на то, AGI это или нет.
Если вам так принципиально сделать, чтобы число входов/выходов было переменным - придётся извращаться, например, сделать, что есть некое скользящее окно, показывающее фиксированное число входов/выходов, и которое можно двигать.
На практике не вижу в этом смысла, можно на старте задать входов/выходов столько, сколько есть у тела.
Как у людей устроено подключение новых актуаторов? Как комбирация из действий старых. Мы не подключаем дрель напрямую к нервной системе. Мы берём её в руки, и руками ей управляем. Или если нам нужно, чтобы компьютер делал что-то необычное, мы редко подключаем дополнительные средства ввода - мы чаще делаем новую программу и используем всё ту же клавиатуру и мышь. Новое - это незнакомая комбинация ранее известных элементов
Этот механизм генерации представлений есть в каждой нейронке. Если мы возьмём просто любой слой, то на выходе у неё будет некое представление, которое практически полезно для решения задачи, на которую нейронку учили.
У человека эта система такая же "под задачу", как и у нейронки. Точно так же есть зона применимости у этого понижателя размерности. В этом смсле человек от нейронки отличается той самой задачей, то есть датасетом. Если хотим, чтобы представления у ИИ были полезными для решения неких задач - надо обучить нейронку предсказывать что-то важное на большом числе похожих задач, и взять какие-нибудь промежуточные данные этой нейронки. В идеале надо обучать нейронку с боттлнеком - слоем на малое число нейронов. Тогда эти представления будут не только практичными, но и компактными. Плюс часто делают разные регуляризации при обучении - например, требуют, чтобы компоненты вектора в боттлнете были наименее скоррелированы, тогда система более склонна выделять независимые детали.
Некоторые говорят, что эмбеддинг-вектор - это недостаточно, нужно как-то иначе устраивать внутреннее представление. Может, это и верно
"а как бы Вы сформулировали такую задачку " - я её описывал вот здесь: https://habr.com/ru/post/568320/ , описывал, как старался сделать такое представление. Два разных подхода. Если коротко - представление не бывает хорошим в любой среде, это против самой идеи. Но можно сделать представление так, чтобы оно позволяло предсказывать какие-то важные штуки во множестве интересующих нас сред. Кроме того, вот здесь https://habr.com/ru/post/437020/ человек рассказывает о существовании очень универсального представления картинок - такого эмбеддинга, по которому можно довольно быстро решать практически любую задачу на компьютерное зрение. Здесь важен сам принцип - он переносим на другие задачи
Я не проводил такого эксперимента, но не вижу причин, почему нет. Только какой датасет у этого мужика? У него датасет - это примерно все наблюдения где-то с того момента, как у его предков мозг появился. Ну то есть мужик точно может переводить картинки животных в какие-то внутренние представления, а дальше для этих представлений искать какие-то закономерности, может даже очень простыми правилами, вроде KNN. Так вот, механизм, порождающий внутренние представления, в значительной мере дан с рождения, и лишь частично дорабатывается в течение жизни.
Подобные системы есть в продакшне - какие-нибудь системы распознавания лиц устроены именно так. Вначале мы нейросеткой делаем эмбеддинг, а потом поверх него запускаем KNN или линейную модель, или ещё что-то простое и тупое, что способно обучиться на 2-3 примерах.
Ну то есть если бы я хотел сделать целостного ИИ-агента, который способен проворачивать трюки вроде того, что провернул мужик, я бы использовал трансформер с механикой key-value-query. Эта модель внутри себя нативно эмулирует что-то вроде KNN. Обучал бы эту модель прогнозировать видеоряд в зависимости от прошлых кадров и предлагаемых действий. Датасетом взял бы не жизнь одного такого мужика, а жизнь сотен мужиков в разных условиях - и полагаю, этого бы хватило, чтобы сетка делала практически полезные представления, в которых животные различаются удобным образом. Класс в явном виде в такой модели бы не существовал, но по внутренним представлениям было бы видно, что "страус"="курица"+"большая", а "гиена" примерно равно "собака". Дообучение такого агента в течение жизни понадобилось бы, но минимальное - предполагается, что основные "рассуждения" происходят во внутренних представлениях, а они прямо со старта довольно хорошие, и всё обучение происходило бы во внутреннем пространстве key-value-query, где градиентный спуск не нужен, и много данных не нужно. Но я не проводил этот эксперимент полноценно - могут быть тонкости, которых я не замечаю.
И насчёт Ньютона. Думаю, можно и более простые примеры привести... Люди века так до 16-го были уверены, что южное полушарие Земли настолько же плотно занято сушей, как северное. А ещё лет 100 назад была довольно распространена идея, что на Марсе есть марсиане. Это же в чистом виде распространение наших реалий за пределы датасета. И люди это делали не просто так: подобный подход обычно неплохо работает. Это называется неполная индукция: вывод правила по ряду наблюдений. Нейросети делают то же самое, и так же точность прогноза падает по мере удаления от изученной среды
Сжать может любое. Но понравится ли вам результат прогноза - это вопрос. Ожидается, что на похожих видео будет хорошее качество, на непохожих - плохое. В ML обычно ситуация такая... Да и при любом решении задачи неполной индукции оно так, насколько мне известно. В физике та же самая история была: физика Ньютона отлично работала вблизи его датасета, а как эксперименты только ушли далеко от того, на чём экспериментировал Ньютон - стала расти ошибка. Пришлось придумывать ОТО и квантмех - новые модели для более широких датасетов
Обычно нейросетка внутри системы управления (та самая система, что может быть или не быть AGI) делает прогноз вида S+A->R, где S - это некий вектор наблюдений (кадр, несколько кадров, все прошлый кадры, сжатые в эмбеддинг), A - это номер действия. R - это суммарная функция полезности за следующие N шагов. Размерности S и A фиксированы - они зависят от устройства тела. Робот, у которого есть кнопки вперёд, назад, вправо, влево, имеет размерность A, равную 4, и она никогда не изменится. R - это всегда скаляр. S - зависит от того, какие сенсоры у робота, тоже фиксированная размерность.
В этом случае мы перебираем все возможные A и делаем то, для которого R больше.
Есть другой вариант модели для системы управления - S0+A->S1. Тут предсказывается уже будущее наблюдение. Опять же, наблюдение - это картинка, например, она всегда фиксированного размера, так как зависит от видеокамеры. Или это эмбеддинг картинки - тоже зависит от камеры и того инструмента, которым делаем эмбеддинг.
То есть ситуация, что у нас появился новый класс, означает, что мы облажались на этапе проектирования системы, передачи данных с сенсоров в нейронку. Такого не должно быть.
"А доучиваться сетка как будет? каждый раз с сбросом всех весов? " - на практике обычно хватает просто запустить функцию fit ещё раз, применительно к обученной сетке. loss будет самым большим на тех данных, где самые большие ошибки - а это обычно новые данные. Поэтому система более-менее целенаправленно "запомнит" именно их. Но так как в датасете есть и старые данные тоже - на них качество не испортится, или испортится несильно.
Если умеем обучать модель быстро, то можно и учить с нуля (но для нейронок это обычно не так).
"А есть ли инструментарий, который бы показал каким именно образом внутри сетки произошло обобщение? " - у меня нет. Я вижу результат - произошло lossy-сжатие под конкретную задачу. В моём понятийном поле это примерно то же, что и обобщение. Можно сделать инструменты визуализации и попытаться понять, за что нейронка цеплялась, но думаю, гораздо полезнее отследить, какие вещи она нарисовала наиболее точно. Именно эти детали и были самыми значимыми абстракциями внутри скрытого состояния нейронки. Это разные варианты HUD, небо, тени, общая освещённость, световые лучи, трава. Для некоторых объектов есть, видимо, координаты и углы наклона.
"Насчет примера со сжатием, это выглядит как трансформация из одного многомерного пространства в другое " - это интерфейсный вопрос. Если у нас есть система, где на входе вектор и на выходе вектор, то она будет делать перевод в другое векторное пространство, независимо от того, как устроена, и независимо от наличия там "обобщения". Потому что описания "перевод в другое векторное пространство" и "обобщение" - они разные абстракции используют.
"Как доказать, что обобщение имело место " - я бы для начала отказался от этого термина и перешёл к более конкретным. Lossy-сжатие, например. Или выделение практически полезных признаков. Нам же обобщение надо не просто так, а чтобы решать какую-то измеримую задачу. Значит, можно сформулировать его в терминах, более близких к задаче
"сомневаюсь, что существует математически строгая постановка задачи для ImageNet " - задача выглядит примерно так. Есть train_set и test_set. Надо изготовить некий продукт, который на train_set даёт высокое качество распознавание (accuracy или logloss выше, чем у аналогов), и на test_set тоже, при этом test_set не использовался при разработке системы.
По AGI я бы вообще формулировал задачу примерно как RL: есть некий способ сообщить системе, какие состояния мира желательны, а какие - нет. Система выдаёт команды на моторы так, чтобы провести мир таким путём, чтобы он почаще проходил через желательные и пореже через нежелательные состояния (сумма функции полезности на некоем горизонте планирования должна быть максимизирована). Задать ФП можно или как в RL, в виде набора примеров, или явно - например, подать на вход системе некую рукописную или отдельно обученную функцию, которая принимает на вход видео, а на выходе - полезность.
Если система может работать +- в любой среде и с +- любой функцией полезности - я бы сказал, что это AGI, и дальше надо решать вопросы его быстродействия и эффективности по данным. Но это мой подход (а так же Юдковского, Бострома, Мюльхаузена...), не все согласны с таким определением AGI.
Соответственно, для меня возможный тест AGI выглядел бы как набор этих тестовых сред:
https://www.gymlibrary.dev/
И каких-нибудь более сложных. От системы требуется, чтобы она быстро освоила любую из них - за тысячи кадров, а не миллионы и миллиарды. И чтобы прохождение 20 сред делало обучение в 21-й среде значимо быстрее (то есть должен быть перенос опыта между доменами).
Это требование не к нейронке, а к продукту. Нейронки - это часть AGI, а не весь он целиком.
"Пункт первый не выполняется. Сетки не доучиваются. Очень бы хотелось увидеть контрпример " - я специально написал, что AGI - это не сетка, а некий продукт с сеткой внутри. Сетка фитится под датасет, а датасет собирается в течение жизни. Например, DQN может иметь память в терабайт размером и хранить там всё, что увидит и сделает, а так же сигналы подкрепления. Просто массив структур, не внутри сетки. А нейросеть будет регулярно дообучаться на этом датасете. Нейросеть - это апроксиматор, она не должна делать чего-то сверх функций fit и predict.
"Пункт второй, по моему мнению тоже не выполняется. Опять-таки, если есть контрпример, был бы очень радо увидеть " - тут вопрос, что вы подразумеваете под обобщением, не в гуманитарных терминах, а в математических. Нейросетки могут выделять из данных некие инварианты, которые полезны с практической точки зрения. Удалять избыточную информацию, собирать нужную.
Например вот:
https://hsto.org/r/w1560/getpro/habr/upload_files/66e/c09/44e/66ec0944ea8310924b4e33d0fb03fff7.png
https://hsto.org/r/w1560/getpro/habr/upload_files/6a7/ccd/cee/6a7ccdcee6f85af2fd73e2b32a4fefd2.png
Нейросетка сжала видеоряд в вектор из 800 чисел. А затем разжала так, чтобы на выходе получился следующий кадр видеоряда. Первый кадр на картинке - это прошлое, второй - это предсказанное будущее, третий - фактическое будущее. Полагаю, вот такое "прагматичное lossy-сжатие" - это и есть обобщение. Если присмотреться к картинкам, видно, что нейросеть предсказывает именно динамику, а не прошлый кадр - то есть у неё там внутри есть концепция "угол наклона неба", например. Или "наличие и тип HUD"
Наверное, ещё надо отметить. AGI на базе нейронки - это не нейронка. Это рукописная софтина, в которой есть нейронка, некий собиратель данных, предобработчик данных, алгоритм обучения нейронки, алгоритм принятия решений на базе прогнозов нейронки/нейронок. И обычно основная фишка не в нейронке, а в том, чему именно мы её/их учим и как потом применяем.
День добрый!
Примерно так. 2-й пункт довольно нетривиален. Когда человек решает задачи, мы не знаем точно, какие у него были вводные. "Дано" задачи? Весь жизненный опыт? Паттерны в мозгу, сформированные эволюцией, и в каком-то смысле отражающие опыт предков, начиная где-то с рыбы? Поэтому надо ооочень аккуратно проводить это сравнение.
Есть такое понятие как zeroshot - нейросетка получает на вход некий ряд, который описывает маленький датасет, то есть и X и Y. А потом выдаёт правильный предикт - как будто она обучалась. А она не обучалась: градиенты не шли. Скорее, внутри нейросети сформировался алгоритм, который похож на некий алгоритм обучения. Так вот, обобощение чего-либо человеком на 3х примерах ближе именно к zeroshot, а не к обучению нейронки - а обучение нейронки больше соответствует эволюции, чем прижизненному обучению организма. Но это всё очень рыхлые аналогии
Пункт 4 - я думаю, что если нечто можно решить программированием, то теоретически можно и нейросеткой - есть тьюринг-полные нейросетки. Тут скорее вопрос в том - а нужно ли. Всё же нейросетка+оптимизатор - это инструменты для решения очень конкретной задачи, в самом широком варианте "найти такую программу, что выполняется условие такое-то". Иногда это условие настолько сложное, а программа настолько простая, что проще закодить самому, чем учить нейросетку
Статья любопытная.
Чего мне не хватало (и от этой статьи, и от других, которые критикуют нейросети). Какую задачу вы решаете? Чёткая математическая постановка, без слов "интеллект", "сознание", "понимание" и так далее. Я думаю, мало кто скажет, что supervised learning на картинках - это и есть AGI.
Например, существует рассуждение о том, что 1-слойный персептрон не может обучиться XOR, а 2-слойный может обучиться вообще чему угодно (при ряде нереалистичных допущений). Это - корректное доказательство того, что "нейросети не могут" (и насколько конкретно не могут).
Если мы делаем AGI на базе ML (то есть supervised learning), то нужно описать конкретный план, как мы делаем это сведение. И в рамках этого плана находить задачи, которые животные/люди измеримо решают, а данный проект AGI доказуемо не решает. Если мы попробовали сделать AGI на нейронке и он не справился с данной задачей - это говорит о провале конкретного проекта, а не нейронок в AGI в целом.
Пока что я вижу, что нет общепризнанного плана, как свести задачу AGI к задаче supervised learning. Если бы был - можно было бы сказать: нейросети не могут тут справиться, вот теорема (а решающие деревья могут, например, или KNN может). А так пока есть куча результатов, одни их воспринимают как успехи, другие как неудачи, а доказательной базы по части невозможности особо и нет
То есть например, есть DQN. Это заявка на AGI (потому что достаточно универсально), там есть нейросеть. Но датасет к ней формируется совершенно не так, как в Dreamer, например. И наличие нейросети в обоих случаях непринципиально: нужная какая-то штука, которая будет +- универсально решать задачу апроксимации. Сейчас такими штуками обычно являются нейросети, но если и другой ML
Машинное обучение (и нейросети в том числе) - это автоматическое программирование. А ТЗ ставится через датасет и loss. Поэтому если какую-то задачу нельзя решить через нейросети, предлагаю посмотреть: а её можно решить через программирование? Если можно - то что нужно сделать, чтобы придуманный вами код можно было сгенерить автоматически, под заданный датасет и loss? Ответ на этот вопрос описывает архитектуру ml-модели, которую нужно в данном случае применить. Не факт, что такая архитектура уже придумана. Но очень вероятно, что эту архитектуру можно записать гладкими функциями, то есть что можно сделать её нейросетью
Тут ещё важно, как устроены арены в Fear. Много ли вы видели игр, где 90% боёв происходит на локациях, где минимум два коридора, позволяющих зайти на противника с тыла?
Для сравнения: есть Мафия-2, там боты довольно адекватно себя ведут. С фланга обходят, в засадах садятся. И это без левел-дизайна, очевидно заточенного под обходы.
Архитектуру использовали стандартную, трансформер? И необычный только датасет? Или ещё и архитектура какая-то "объектно-ориентированная"?
Upd. Вижу, стандартную, но не трансформер, а LSTM
Да, это то, как система организована сейчас. Это выглядит в целом разумно. Некие люди, специалисты, решают, какую информацию надо распространять, а какую - нет. Это полезный социальный институт, хотя он прямо обозначает некоторые мнения нежелательными. Да, аргументированно обозначает, но эти аргументы работают только для специалистов, не-специалисты их далеко не всегда могут понять. В общем, по форме типичная инквизиция, различия начинаются, лишь если понимаешь аргументы, то есть уже человек довольно образованный.
Есть же и много других ситуаций. Например, в уголовных кодексах многих стран есть статьи о клевете - они вообще-то нарушают свободу слова. Но при этом это скорее хорошие законы, чем плохие.
Или бывают ситуации, когда вброс некоторой информации порождает панику - например, можно в здании, полном людей, крикнуть "пожар!", возникнет давка и многие пострадают. Запрещать такие вбросы - это тоже цензура.
Бывает ещё модерация интернет-сообществ, тоже вещь полезная, хотя по форме это та самая цензура.
В общем, мой тезис такой: иногда цензура нужна и полезна, даже несмотря на риски скатывания в антиутопию. Вы с этим несогласны?
Если вы запретите нести бред в массы, носители этого бреда тут же обзовут вас инквизитором, что борется с еретиками. И очень многие с ними согласятся. В нарративе просвещения тут нет полутонов - или вы разрешаете нести вообще любой бред, а так же звонить в школы и говорить "у вас там бомба". Или вы злодей-инквизитор, который сегодня запретил бред, а завтра запретит говорить, что 2+2=4
По-моему, одна из главных проблем в том, что борясь с концепцией ереси, вы быстро уткнётесь в то, что иногда она полезна. У свободы слова есть побочные эффекты, вроде возможности распускать клевету, возможности создавать панику тогда, когда это опасно или возможности продвигать в школах креационизм/плоскоземельство.
С проблемами этого класса борется цензура. Концепция ереси - это нечто, крайне похожее на цензуру.
Нарратив просвещения и правда описал много способов борьбы с цензурой, но он не включает в себя чувство меры, понятие о том, что иногда цензура всё-таки нужна, и кое-какие мнения всё-таки надо объявить ересью, по крайней мере если человек их высказывает публично и не на специальной площадке для научных дебатов.
Герой Просвещения сказал бы, что нельзя допускать никакой цензуры, потому что это создаёт прецедент и возможность вводить больше цензуры. А тот, кто против свободы слова - просто обскурантист и латентный рабовладелец. Это очень удобная и проработанная позиция, которая реально хорошо работала в XIX веке, когда мнение могли высказать лишь самые образованные люди, которые совместно были единственными грамотными. И слушать эту свободу слова тоже могли они же. А сейчас ситуация другая
Прошу среду виртуализации! Чтобы можно было кодить на своём любимом языке, не задействуя глаза, на виртуалке!
А ещё скрипт отключения тонуса мышц - иногда нужно для борьбы со спазмами
Ногти не убирайте: это и пинцет, и нож, и отвёртка
К сожалению, слишком гуманитарно. Я не зря сказал "надо как-то свести задачу к тому, что мы хотим предсказывать или чем управлять. "
Сформулируйте, потом старайтесь отталкиваться от этой формулировки.
Когда люди рассуждают об ИИ, они часто (неподготовленные - всегда) скатываются в антропоморфизм. Это плохо и неправильно... Я не могу сейчас полно описать, почему. Но каждое "гуманитарное" слово в рассуждении об ИИ - это провал и будущая причина неработающего проекта. Если бы вы пообщались с иными "интеллектами" - с эволюцией, с обучением нейросетей - вы бы увидели, насколько их "рассуждения" чуждые и нечеловеческие. Потому что человек прошёл очень длинный путь, прежде чем стать таким, какой он есть. Человек эволюционировал в племени, вокруг которого хищные звери. Человек склонен видеть во всём разум, причём не абы какой, а очень конкретную разновидность - как у млекопитающего на Земле. Пространство интеллектов огромно, но человек знаком с маленькой точкой, и проецирует известные закономерности на иные интеллекты.
Когда вы делаете ИИ-проект, надо уметь отказаться от такого видения. Это очень неестественно, это приходит с опытом. Наверное, самый лучший способ - попробовать посоздавать своих агентов с помощью эволюции. Своих агентов, которые решали бы задачи, которые вы точно знаете, как решить. Вы бы увидели, насколько неестественны ваши решения, насколько чужды стратегии, которые порождает нечеловеческий оптимизатор.
Я это всё к чему. У вас есть задача: "генерировать ответы так, чтобы они выглядели &, с точки зрения людей-оценщиков". Давайте решать именно её. Она хорошо поставлена, она не гуманитарная. Можно её как-то изменить - вы верно говорите, что ИИ будет стараться "взломать" человека.
На выходе будет не человек, даже не близко. На выходе получится оптимизатор... Чего-то. Чего вы зададите. Когда вы начинаете проводить параллели с человеком, вы с высокими шансами пытаетесь опереться на "блоки", которые у человека формировались десятки миллионов лет, и которых у ИИ нет, и напрямую запрограммировать нельзя. ИИ нельзя воспитывать в человеческом смыле. У него не может быть семьи. Ему неведом пол и гормоны. Родство для него пустое слово. Если у него и есть эмоции, то совершенно не те, что у человека. В лучшем случае это некий пришелец из иного измерения, который ведёт себя так, как вы бы хотели. Не потому, что вы его воспитали, и вы - его семья, а потому что вам удалось именно такого пришельца отсеять среди остальных.
Так что если хотите ИИ-проект, давайте сосредоточимся на том, что мы собираемся оптимизировать, какие доступны данные (и источники данных). Какие есть каналы ввода-вывода. Исходя из этого, смотреть, что можно сделать, не задействуя миллионы людей в риалтайме(так даже Яндекс делать не станет, если система не даст интересных результатов на 10 людях)
Если вы хотите конкретного поведения от ИИ, то его придётся обучать через supervised learning (не что-то вроде человеческого обучения с учителем, а решение задачи регрессии/классификации). Если вы хотите получить некий аналог живого существа, у которого хотя бы гипотетически может быть... Что-то, похожее на пол, гормоны и семью. То нужно использовать эволюцию. Но на выходе будет интеллект, который крайне не похож на человеческий, и у которого ещё и нельзя тонко настраивать реакции.
Вы в любом случае управляете только тем, как внешне будет поступать ИИ. Если "работа на заказ" внешне отличается от "творческого порыва души" - можете сделать датасет одних текстов и других. Пусть оценщик у ИИ тоже это различает и банит варианты, которые выглядят недостаточно вдохновенными. Для людей такой подход чужд, для ИИ приемлем...
Ну, надо как-то свести задачу к тому, что мы хотим предсказывать или чем управлять. Например, задача "генерировать ответы так, чтобы они выглядели правдоподобно/полно/релевантно, с точки зрения людей-оценщиков" - это нормальная задача управления (заставить человека поставить лайк, в определённом контексте). Дальше уже можно строить цикл, отталкиваясь от этой постановки. От постановки, что у нас есть генератор текста и оценщик текста, и они обучены на данных.
Я бы не привязывался ни к "сознанию" (если оно так важно, то можно дать чёткое техническое определение, раскрыть в ТЗ, и больше слово "сознание" не вспоминать), ни к большому числу людей (потому что это средство, а не цель, средства можно выбирать разные). Скорее всего, если вы станете делать эту систему, на каком-то этапе возникнут проблемы, которые можно решить, задействуя людей неким способом. Кажется разумным именно тогда решить, как именно подключить людей, и в каком количестве.
Потому что вы заранее не знаете, насколько хорошими окажутся генератор ответов и оценщик. Может, их хватит, и людей вообще не надо привлекать? Может, оценщик не понадобится, потому что генератор и так хорошо будет генерить? Может, люди в системе нужны - но вполне подойдут толокеры, разметчики датасетов? Может, люди в системе нужны, но только в качестве оценщиков, потому что именно "критик" работает плохо? А может, вы по ходу обучения модели поймёте, что даже если она будет отвечать на вопрос идеально, вас это всё равно по какой-то причине не устраивает. А может, окажется, что люди вам нужны, но очень определелённого вида, которых нет 10 миллионов на планете.
Я бы остановился для начала на такой формулировке, которая не требует большого числа людей, а готова работать с уже написанными текстами (из чатов, например). А потом, когда будет понимание, как именно эффективнее всего задействовать людей, подключить толоку
Не противоположны. Прогноз - часть управления.
"Задача: зародить в системе самосознание." - мне видится, что это не очень хорошая постановка задачи. В идеале задача звучит как-то так: нам нужен некий чёрный ящик, совершенно неважно, что у него внутри, но он выдаёт на выходе то-то и то-то, вот способ измерить результат. Тогда можно максимально включать творческий подход, потому что чётко определён критерий успеха.
Другой момент - у вас довольно размытая постановка. Даже если вам реально нужен не "решатель задач", не поведение, а "самосознание", но не очень определено, что конкретно вы в данной ситуации под ним понимаете.
Люди под словом "сознание" подразумевают много радикально разных вещей, поэтому я его в рассуждениях об ИИ вообще не употребляю, во избежании скатывания разговора в метафизику. С "коллективным сознанием" то же самое.
Я вижу, что дальше вы упонимаете это "сознание" как инструмент решения задач - возможно, стоит упоминать именно задачи, а не "сознание". Тогда намного понятнее, как их решать.
"Так мы добавим к одному полушарию нашего ии-мозга второе - живое, максимально разумное и живое." - в такой постановке это уже сложная задача. Не технически сложная, а слишком абстрактная. Если вы будете сводить её к конкретике, есть хороший шанс, что получится совершенно не то, что представлялось изначально. Я предлагаю максимально уйти от абстракций на практический уровень. ИИ? Значит, это либо машина прогнозов, либо машина достижения целей. Прогнозы - в смысле, что-то конкретное, что в датасете лежит, цели тоже конкретны, на уровне "научись в Марио набирать максимум очков". Предлагаю вначале придумать, как система будет работать с одним, максимум двумя людьми. Прототип сделать.
"ИИ нужен для работы с информацией, а не с материей." - наверное, это зависит от постановки задачи. Мне ИИ нужен как машина результатов. Даже свой разум я ценю больше не как вопрос-ответную систему, а как нечто, что умеет достигать практических целей. Так как термином "сознание" я в контексте ИИ не пользуюсь (да и с человеком применяю его лишь от необходимости), то я вижу иные сценарии провала, связанные не с сознанием, а с неправильным переходом от высокоабстрактных желаний к чёткому измеримому ТЗ.
Я иду от задачи к решению. Нужна вопрос-ответная система на ИИ - окей, GPT. Нужна на людях - гугл/stackoverflow.
С одной стороны, да, с другой... Попробуйте оценить, сколько часов и долларов на это нужно. Если вы сможете связать в сеть столько людей, и они готовы будут общаться, то вы решите задачу ответа на вопросы и без ИИ.
Вообще, если бы я ставил задачу к вопрос-ответной системе на ИИ, я бы формулировал как-то так: хочу, чтобы у этой штуки был (примерно) весь записанный опыт человечества, и она умела делать выводы из разрозненных по этому опыту знаний. Условно, получила она тонну патентов (как Эйнштейн в своё время) - вывела теорию относительности при правильном запросе. Именно в этом я вижу смысл применять ИИ в данном контексте - он может собрать больше данных, чем человек, и сделать из них вывод.
Но я всё ещё полагаю вопрос-ответные системы несколько ущербными, по самой постановке задачи. Если мне надо получить.... например, нанороботов. То вопрос-ответная система в лучшем случае заставит меня их делать и объяснит, как. И окажется, что моими руками это делать дико долго и сложно. Впрочем, это вопросы к ТЗ, я не утверждаю, что все должны хотеть ИИ именно того типа, что создаёт наноботов по заказу.
Это не всегда работает. Представьте себе вопрос в техподдержку. Вопрос - полстраницы, ответ - полстраницы. Сколько вы рассчитываете получить таких ответов, чтобы среди них вообще были совпадения?
Альтернативный вариант - вы шаритесь по форумам техподдержки и ориентируетесь на лайки. Считаете хорошими ответами те, что лайкнуты, а плохими - те, где дизлайки. И заливаете эту статистику в "критик"
Вы можете обучать бота на переписках в чате - чем не живое общение? Или на субтитрах к кино, если вам надо ещё более живое. ТУт важно понимать, что конкретно мы можем. Мы можем обучить модель сопоставлять некоторые X и Y, если явно подадим эти два множества. Модель даже сделает обобщение, и для каких-нибудь других X будет придумывать релевантные Y. Чем точнее мы следуем этой схеме в работе с машинным обучением, тем выше шансы ничего не угробить, потому что у нас именно эта схема хорошо отработана. Поэтому надёжнее всего было бы при получении новых данных дописывать их в базу и дообучать модель на всём множестве.
Вообще, у вас, по-моему, уже есть все ресурсы, чтобы систему сделать. GPT есть. Интернет с записями живого общения - тоже. Модель всё равно получится не очень ёмкой поначалу, так что данных, которые спарсите из интернета, должно будет хватить