Как стать автором
Обновить
4
0.1

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

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

void - не объект.

А что это тогда?

Не вижу проблем, чтобы все экземпляры void были isSame.

Они в принципе не могут всегда быть одним экземпляром, пример я приводил здесь.

И следствие какое из этого? Пример какой-нибудь, поближе к практике...

Следствием является то, что адреса всех элементов в массиве становятся равны и поэтому не различимы по адресу.

По той ссылке, которую я раньше приводил, есть ещё примеры проблем, возникающих из-за одинаковости адресов различных объектов.

Если заменить на char, то ничего не изменится:

WriteMemoryCallback(char *contents, size_t size, size_t nmemb, char *userp)
{
  size_t realsize = size * nmemb;
  struct MemoryStruct *mem = (struct MemoryStruct *)userp;

В C имеется неявное приведение указателя на любой тип данных к указателю на void и обратно, поэтому с void'ом должно выглядеть так:

WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp)
{
  size_t realsize = size * nmemb;
  struct MemoryStruct *mem = userp;

При этом неявном приведении "вложенность" указателя не имеет значения, поэтому можно написать такой код:

int main(void) {
        void *p = &p;
        printf("%p\n", p);

Выражение &p имеет тип указатель на указатель на void, но поскольку указатель на любой тип данных, даже если этот тип данных сам по себе указатель, неявно приводится к указателю на void, то это происходит и в данном случае.

Это относится только к указателям на данные, поэтому указатель на функцию нельзя привести к указателю на void, точнее, можно, но это -- UB.

Одной из причин может быть то, что размер указателя на функцию может быть больше размера указателя на данные.

А адреса &s и &s.v0 будут одинаковыми, но снова очевидно, что это разные объекты.

Адреса массива и его первого элемента тоже совпадают.

s.v0 — подобъект объекта s, здесь нет ничего удивительного.
Добавьте ещё оно поле ненулевого размера перед полем v0, и тогда адреса s и s.v0 перестанут совпадать.

К обсуждаемому это не относится.

И что?

Речь шла о том, один ли объект нулевого размера, или их может быть несколько.

Вы утверждали, что — один, я показываю, что их может быть несколько.

Для начала надо бы понять, зачем нам вообще различать объекты по адресам. Что это дает?

Например, можно защититься от присваивания самому себе.
Если этого — мало, можно почитать эту ветку на SO.

Если сами объекты неразличимы, то зачем требовать, чтобы их адреса различались?

Для начала ответьте на вопросы:

Какие операции уместны для типа с нулевым размером, кроме взятия адреса и операции "запятая"?

и

Какова "польза" от наличия такого типа?

А то вы обсуждаете, как должен быть введён этот тип, забыв обдумать, а — нужен ли он такой вообще?

Ну, этими аргументами вы не проймете :)

Абсолютных аргументов здесь и нет, это — вопрос выбора.

В расте, например, такой код будет работать по-разному будучи собранным в дебаге и релизе, но это никого из апологетов раста не смущает, все привыкли, дескать, "а чего вы хотите от объектов с нулевым размером", как в анекдоте про доктора, который отвечает пациенту "а вы так не делайте".

Что характеризует выбор, сделанный в Rust'е.

В расте, например, такой код

Однако, так — нечестно, так и в C/C++ адреса разные будут.
Вот так — куда честнее.

Первый раз писал на Rust'е, и больше не хочу. Компилятор мне ещё указывает, в каком регистре идентификаторы заводить.

И, в принципе, можно сказать, что они в своем праве, для них это нечто вроде вкусовщины.

Отлично, ребята сделали себе игрушку, но почему им теперь обязательно нужно "осчастливливать" таким же выбором C/C++?

Апологеты C/C++, почему-то не пытаются осчастливливать Rust.

Так объект нулевого размера всегда один, что там различать?

Это он в одном и том же массиве — "один".

А, например, в такой структуре:

struct {
  void v0;
  char c;
  void v1;
} s;

Адреса &s.v0 и &s.v1, очевидно, будут различными, и это будут разные объекты.

Операции -- ну, вот в том же Rust какие-то операции нашлись?

Rust — это Rust, а здесь — C++.

Так какие операции уместны для типа с нулевым размером, кроме взятия адреса и операции "запятая" (которая, кстати, и сейчас работает для выражений типа void)?

Какова "польза" от наличия такого типа?

Перевешивает ли она вред от потери возможности различать объекты по адресам?

Это просто следствие того, что потребовали, что каждый элемент массива должен иметь свой адрес. Чем это требование обосновано?

Как минимум тем, что иначе, как я написал выше, будет невозможно различать различные объекты по адресам.

Видимо, пока его писали, просто забыли, что элемент может иметь нулевой размер, автоматических решалок-то ограничений еще не было, никто противоречивость и не заметил

Сомневаюсь, что забыли и не заметили.

Если вернуться к основам, то тип характеризуется набором операций, определённых над объектами этого типа, а если это ещё и тип данных, то — и размером.

С размером — всё понятно, он равен 0.
Какие операции были бы уместны для объектов такого типа?

Сможете объяснить, почему?

Для различения объектов при доступе к ним через указатели.

Вообще, первая же найденная мной ссылка по данному вопросу описывает несколько вариантов, в которых возникли бы проблемы, если бы тип был нулевого размера.

Нужно объяснять. Потому что все считают это очевидным, а как сформулировать словами, так впадают в ступор.

В ступор впадают не все.

Адрес следующего элемента в массиве отличается от адреса текущего на размер элемента. Если размер элемента равен 0, то адреса всех элементов в массиве будут иметь один и тот же адрес, и их невозможно будет различить по адресам.

В C void - это, как там, "incomplete type that cannot be complete" или как-то так, поэтому его размер неизвестен и известен быть не может, какая уж тут адресная арифметика.

Верно, но речь-то о том, что (я отвечал на эту цитату):

Сделать sizeof(void) == 0 и всё.

После этого препятствий для самой адресной арифметики нет.

Сделать sizeof(void) == 0 и всё.
Компилятор не пришлось бы усложнять, void-значение занимало бы 0 места в распределении регистров при передаче параметров или возврате результата.

Каждый элемент массива, в том числе, из void'ов, должен иметь уникальный адрес.

С адресной арифметикой знакомы?
Можно дальше не объяснять?

Именно такова причина, по которой размер типа данных не может быть равен 0.

Наоборот. Те кту будут упорно искать то что не существует, останутся позади тех кто будет искать то что существует.

Примерно как средневековые ученые, которые искали бога и разумный замысел во всем в то время как надо было тупо записать уравненения.

Зачем искать то, чего не существует?

Слово "искать" здесь — неточное: уточнять свойства и понимать, каковы возможности и пределы.

Здесь лишнее слово "интеллект". "Интеллект" это то как то что я делаю выглядит изнури моего разума. А нужно оперировать вещами которые мы рассматриваем снаружи.

Однако, несмотря на разницу изнутри и снаружи, логично воспользоваться пониманием, идущим изнутри, что интеллект — это не просто хитро накрученная интуиция.

Возможно, снаружи интеллект и будет выглядеть неожиданно, но, в любом случае, он будет кардинально отличаться от интуиции.

Точно не они. Нужно просто найти способ обучения, который позволить научить сеть-агента, которая активно планирует действия для удовлетворения мотиваций.

А если это принципиально невозможно в рамках данной архитектуры, как невозможно найти точку пересечения параллельных прямых?

Чем все и занимаются вроде.

Вот и плохо, пора бы уже делом заняться, а не поиском точки пересечения параллельных прямых.

Суть здесь в том, что и первые и вторые вещи искать никогда не пора.

Те, кто упорно не будет искать того, что уже можно, просто останутся позади тех, кто будет.

Правда, слово "искать" здесь неточное, скорее, уточнять свойства и понимать, каковы возможности и пределы.

По той причине что они не существуют как некие качества или объекты, которые можно выделить и изучать.

Посылка для этого вывода — какая-то несерьёзная.

Существует только набор оъективных оценок - какого рода задачи AI уже может решать а какого еще нет. А так же существует понимание механизмов как эти задачи решаются.

Чтобы сделать оценки, необходимо понимание свойств механизмов и идентификация самих механизмов, но вы говорите, что их искать никогда не пора.

Если есть понимание, что архитектура LLM в принципе неспособна на интеллект, то усилия сосредотачиваются в попытках найти другую архитектуру, которая могла бы реализовывать интеллект.

Если нет — усилия сосредотачиваются на усовершенствовании LLM, что, очевидно, в силу свойств LLM, не приведёт к появлению интеллекта, и поэтому его создание отсрочивается на неопределённое время.

Я думаю, что следует подождать, когда рано или поздно осуществится следующий прорыв, как он осуществился уже с LLM, но только уже в сторону настоящего интеллекта.

Тогда и будет понятно, пора было те вещи искать или нет.

Если прорыв осуществят именно те, кто искали, нашли и воспользовались найденным, то значит, было пора.

Да, но по факту в основе всех компьютеров 0 и 1.

Но, тем не менее, компьютеры умеют что-то ещё, помимо 0 и 1.

Головной мозг человека работает на основе электрохимических сигналов. И Бог знает чего ещё.

Алгоритмам — все равно, на основе чего работать, они — нематериальны.

Не нужно искать в нем квалиа, душу, сознание, разум, интуицию, ощущение зеленого цвета и прочий субъективный опыт, как все пытаются.

Ощущения (квалиа), сознание и душу пока, действительно, рановато искать, а вот интуицию и интеллект — уже пора.

Без этого всё будет намного дольше и труднее, и будет в куда более значительной степени зависеть от удачи.

Вы придумали свои собвтвенные понятия "интуиция" и "интеллект", за которыми стоит только некое ваше субъективное переживание,

Они — не собственные, их свойства — объективны.

которое некак формально не объясняется и не может быть частью рационального знания.

Когда формально объяснят полностью, тогда и станет частью рационального знания.

Однако, нельзя, не зная, сначала формально объяснить и сделать частью рационального знания, а потом исследовать.

Это — последовательный итерационный процесс, в начале которого ещё нет формализации, но это не мешает продвигаться в исследовании.

Но на самом деле все гораздо проще. Нет ни интуиции, ни интеллекта, есть только нейронные сети и математика.

У разных архитектур сетей — разные свойства.
Вы здесь предлагаете не делать подобного разделения.

Схема работы AI сейчас минимальна - это один проход по сети для следующего слова.

При этом используется вполне определённая архитектура.
Пока не нащупали эту архитектуру, получалось — не очень.`

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

Наверное, всё-таки, не в точности, но свойства "движка" обнаруживаются довольно похожие, вплоть до явления галлюцинаций.

И этот режим соответствует интуиции.

Профессору конечно доступен и другой режим работы, 

Верно, доступен, и он соответствует интеллекту.

когда его сеть итерационно продвигается к требуемой цели.

И не просто итерационно продвигается, а таким образом, что рождается новое качество — понимание, которое затем можно применять.

Этот режим пока недоступен.

Да, пока ещё не нащупали архитектуру, которая даёт результат, близкий по свойствам к человеческому интеллекту.

Но, наблюдая за человеком, можно прогнозировать, что интеллект потребует куда более серьёзных вычислительных ресурсов, нежели интуиция.

Вы можете называть эту ситуацию "остуствием понимания", "интуицией", "интеллектом", это не меняет сути.

Верно, не меняет, но позволяет не смешивать всё в одну кучу.

Вы же прекрасно оперируете "двумя режимами", несмотря на отсутствие строгой формализации понятий.

Да ладно))) Транзисторы умеют что-то ещё помимо 0 и 1?

Вот транзисторы — точно умеют.

Это предположение хорошо опровергается после нескольких месяцев программирования с AI.

Это может быть проявлением всего лишь недостаточной начитанности AI в какой-то области.

Много книг это все еще исчезающе малое количество от всех возможных вариантов изложения идеи.

А все возможные и не обязательны.

Но AI поймет суть и объяснит в подходящих словай как бы вы не спрашивали.

Внешне выглядит так, как будто поймёт.

Посчитать сложно, но выглядит все именно так, что книги свернулись в единое понимание и именно оно используется когда задается вопрос.

Вот видите, вы тоже формулируете как "выглядит всё именно так".
Выглядит.

Единое понимание выражалось людьми, которые понимали и, в целом, понимание у них было достаточно единое.

И понимание это выражалось в текстах, которые использовались как истина в последней инстанции для обучения AI.

Теперь AI чувствует и выдаёт результат, но в результате выражено то понимание, которое люди, написавшие тексты, вложили в них.

Это — не понимание самого AI.

От AI здесь — лишь чувствование, какие части просмотренных текстов и как скомпоновать, чтобы получалось максимально похоже на то, как это у людей получается (по самой сути обучения, когда предсказывается следующее слово, чтобы результат был достаточно близок к тому, как оно в текстах у людей бывает).

Если попросить AI подумать получше, он ответит правильно.

AI может ответить правильно и если перегенерировать ответ.
Или если изменить параметры AI, влияющие на генерацию.

Это плохая идея, клеить слова суть которых ясно не определена к мышлению человека и AI (интуиция, интеллект).

Если не использовать хотя бы то неясное понимание, которое уже есть, то тогда вообще становится не о чем говорить.

Лучше смотеть что сеть может или не может.

И не просто, что она может или не может, а — как она может, и каковы наблюдаемые свойства там, где не может.

Сеть AI может упаковать знания в связанную схему образов, чтобы извлекать из нее нужный ответ.

Причём, извлекать сразу, безо всякого предварительного "обдумывания" и предварительного "понимания" вопроса.

А такими свойствами обладает только интуиция, интеллект так не может.

Это довольно очевидно.

Мне тоже очевидно, но — с теми дополнениями, которые я выше привёл.

И точто то же может делать мозг.

Может, потому что он поддерживает, кроме прочего, механизм интуиции.

AI подвержен определенным искажениям, это тоже факт, но мозг вообще не умеет решать логические задачи или формировать программный код в один проход по нейронам.

Мозг не умеет решать интеллектом, чтобы было в один проход.

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

Так что здесь искажения вполне ожидаемы.

У человека будут очень похожие искажения, если он поступит, как я написал выше, и попробует писать в один проход полностью на интуиции.

Сеть AI не может создать стратегию руководствуясь какими-то общими мотивациями. Архитектура этого не позволяет, это тоже факт. Это можно частично имитировать итерационными промтами, но это не то как работает мозг.

Прихожу к тому же выводу что и раньше: сеть AI может только в интуицию, а мозг может как минимум и в интуицию, и в интеллект.

То есть, мозг может и как AI, а может ещё и не как AI, а AI так уже не может.
Это — не совсем то же самое, что и "это не то, как работает мозг".

Книжка не понимает то что в ней написано, это да. Но книгу сколько не читай, там всегда все объясняется одними и теми же словами.

Это, если прочитана только одна книга.
А если прочитано огромное количество разных книг, и в каждой объясняется своими словами, отличными от слов в другой книге?

А AI правильно отвечает на вопрос поставленный в любой форме и с любой стороны.

В статье как раз приведён пример, опровергающий это утверждение.

Как только пять киви стало по размеру меньше среднего, так сразу ответ стал неправильным, потому что сети стало интуитивно казаться, что размер обязательно должен повлиять и на количество, видимо, потому, что размер и количество — родственные понятия.

Для чистой интуиции это — вполне адекватный ход, здесь её даже не в чем упрекнуть.

Это означает, что в связях закодированы не просто слова а именно "понимание"

В связях нечто закодировано, но почему это — именно понимание?
Почему не чувствование, как у очень опытного в какой-то области человека?

Если пойти дальше, то "понимание" в более сильном смысле означает, что агент может использовать понимание чтобы строить некие стратегии достижения неких поставленных целей. Например, школьник может уметь решать задачики, но при этом может не осилить применение математики для достижения неких реальных целей, если он "не понимает" математику достаточно хорошо.

Однотипные задачки школьник может решать на интуиции, то есть, вообще без привлечения интеллекта к процессу, если он предварительно научился их решать и прорешал какое-то их количество.

С пониманием самого понимания, что это такое, насколько я понимаю, есть проблемы, как ни тавтологично звучит эта фраза. Трудно говорить о предмете без понимания этого предмета.

И здесь с построением стратегий у AI пока плохо.

Логично, ибо I — это Intuition, а не Intelligence.

Но плохо в основном потому что решение вычисляется в один проход, и пока никто не знает как построить сеть, которая могла бы итерационно обдумывать ситуацию для выбора наиболее выгодной стратегии действий.

Последние версии как раз многопроходные, в частности, gpt-4o, но это улучшило лишь качество интуиции, интеллекта это не добавило.

Т.е. сеть "понимает" только в той степени в которой понимает человек у которого секунда на принятие решения.

Если речь о секунде, то мы рассматриваем интуицию, а не интеллект.
Интеллект за секунду мало, что может.

Поэтому сеть не "понимает", а "чувствует".

Если у человека больше времени, то такое понимание архитектура уже не позволяет пока воспроизводить.

Потому что у сети архитектура интуиции, а не интеллекта.
А у человека наличествуют обе составляющие, у него есть и то, и другое.

Поэтому человек может не только чувствовать (интуиция), но и понимать и мыслить (интеллект), хоть на это и требуется значительно больше времени и усилий, а сеть этого не может принципиально, потому что у неё наличествует функциональность лишь интуиции, но (пока) нет функциональности интеллекта.

Почему не считать, что со студентом и AI происходит в точности одно и то же.

Дело в том, что студент может заучить и не понимать, а может и понять.
А AI понять не может.

Другими словами, студент может имитировать мышление, как и AI.
Но ещё студент может и мыслить, чего AI уже не может.

Вот, где разница.

Они так делают не потому, что не могут, а по другой причине:

2 процента людей — думают, 3 процента — думают, что они думают, а 95 процентов людей лучше умрут, чем будут думать.

Джордж Бернард Шоу.

основная идея материала — ИИ не умеет думать как человек, а лишь имитирует мышление.

Долго они к этому подходили, долго.

По словам исследователей, это говорит о том, что ИИ на самом деле вообще не понимает сути задачи.

Верно, не понимает, — ИИ её чувствует.

Обучающие данные позволяют моделям отвечать правильно в некоторых ситуациях, но как только требуется малейший элемент «рассуждения», они начинают выдавать странные инеинтуитивные результаты.

Результаты, как раз, интуитивные.

Хотя он может следовать сложным цепочкам рассуждений, с которыми сталкивался ранее, цепочка может быть разорвана даже поверхностными отклонениями, а это говорит о том, что ИИ на самом деле воспроизводит закономерности, которые наблюдал в своих обучающих данных.

Хорошее наблюдение, но почему так долго?
Некоторые неспециалисты открыли это для себя ещё год назад.

Другой специалист из OpenAI возразил против сделанных выводов, заявив, что других результатов можно было достичь с помощью небольшой подсказки.

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

Поэтому, вероятно, LLM «рассуждают», но таким способом, который пока непонятен исследователям.

Да, мозг весьма изобретателен в том, чтобы оправдать непризнание ошибки.
Порой просто диву даёшься, насколько он изобретателен.

Но ИИ — это Искусственная Интуиция.

Поэтому ИИ, когда она отвечает... ей просто кажется, что она отвечает правильно.
То есть, она отвечает так, как чувствует, как "видит", не более того.

Достаточно часто она на самом деле отвечает правильно.
Но это — показатель качества материала, на котором "обучена" интуиция.

Если посмотреть на ответы ИИ с этой точки зрения, то всё становится на свои места.
Все "странности", нестыковки и прочие галлюцинации перестают быть таковыми.

К каждому ответу ИИ полезно в уме дописывать фразу от имении ИИ:

"Я так вижу, мне так кажется".

Тогда галлюцинации ИИ станут восприниматься совсем по-другому, и ничего странного в этом явлении уже не будет.

Информация

В рейтинге
4 052-й
Зарегистрирован
Активность