Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Показов 2017
Комментарии 0
|
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный алгоритм «эстафеты хвоста», и как без него ИИ способен целый месяц тупить на банальном удалении одной кнопки. В IT-сообществе многие считают, что большие языковые модели (LLM) — это лишь «стохастические попугаи», способные лишь перебирать старые каноны из своей обучающей выборки. Авторитеты уровня Яна ЛеКуна утверждают, что ИИ принципиально оторван от реальности и тотально провалится на любой уникальной задаче. Однако эти критики ищут в машинах то, чего не существует в самой природе прикладной информации — «нейтральное знание». Нейтральные знания — это сухие формулы, физические константы или чистые математические констатации фактов. Но любая информация, переложенная на язык практики, неизбежно превращается в интерпретацию упакованную в практический интерфейс. А как в ней появляются циклы (ожидание), ветвления (охват) и проверки условий (логические связи), так нейтральность исчезает. Возникает воля автора и жесткое целеполагание. Любая логическая инструкция создается ради изменения состояния системы, а значит, она изначально заряжена конкретной целью. Через масштабирование задачи мы выводим ИИ на новый уровень структурного понимания, а через целеполагание — указываем ему совершенно новый горизонт опыта. Немного предыстории Третьего мая этого года, мною была сделана публикация "«Эстафета хвоста» — алгоритм итеративного обхода дерева со стеком, и почему это — Green Computing", но так как сейчас её нет, то в кратком виде я выложу информацию о самом алгоритме и необходимую в рамках этой публикации под спойлером. Сам алгоритм я представлял себе нечётко, но по мере мысленного написания кода я понимал как нужно организовывать его быструю работу - какой стек нужно добавлять, как он будет существовать и какие проверки условий над ним надо производить. Скрытый текст Связи и ветвления Это система динамического перехвата управления хвостом. Узел всегда «помнит» только своего самого свежего потомка. Старые ответы не исчезают, а выстраиваются в очередь: каждый новый ответ на тот же узел встает в конец цепи, делая предыдущий ответ своим «предшественником». Логика «Эстафеты»: Первый ответ: А -> Б. (В А записан хвост Б, в Б предшественник А). Второй ответ на А (узел С): Цепь: А -> Б -> С. (В А теперь хвост С, а в С предшественник Б). Ответ на Б (узел Д): Б -> Д. (В Б теперь хвост Д, а в Д предшественник Б — но это уже начало боковой ветки, так как Б сам является частью цепи А-Б-С). Второй ответ на Б (узел Е): Цепь: Б -> Д -> Е. (В Б теперь хвост Е, а в Е предшественник Д). Что это дает при чтении: Мы идем от последнего хвоста к началу. Если мы тянем за С, мы получаем магистраль: С -> Б -> А. Когда мы проходим через Б, мы видим, что у него есть свой актуальный хвост Е. Мы тянем за Е и получаем ветку: Е -> Д -> Б. Стёк уровней хвостов ‐ извлечение веток Тут уже то, что отлажено и протестировано в коде. Извлечение происходит от корневого узла, стрлками обозначены шаги. Следование следующее 1-5-4 , на ячейке 4 мы смотрим, является ли в списке уровней хвостов узел с ID 4, если не является, то мы добавляем его последним в LIFO и следуем по указателю хвоста, а если является, то мы перед переходом к предшественнику удаляем его. Так повторяется на всём пути до корневого узла 1. Таким образом путь получается 1-5-4 с добавлением в список хвостов-7 с добавлением в список хвостов-10-9 с добавлением в список хвостов-13-12-11-9 с удалением из списка - 8 - 7 с удалением из списка - 4 с удалением из списка - 3 - 2 с добавлением в список хвостов - 15 - 14 - 2 с удалением из списка - 1 Изображение исправлял (и там ID начал хвостов для стёка), так как в ходе работы над алгоритмом отказался от изначально задуманного, подумав что для обхода достаточно одной переменной, но потом понял, что проблема множественных вложений решается стёком, а не как планировалось - одной переменной. Таким образом, мы имея всего один стек, содержащий ID, и можем обработать ветвления любых уровней вложенности, одно за другим. Массив обрабатывается по принципу "последним пришёл - первым вышел". Дам ссылку на первичный материал, возможно он и сыроват, но сам алгоритм обхода - извлечения дерева работал безупречно, затык произошёл на пагинации сообщений. Работа над проектом идёт и сам проект тут https://github.com/Andrei-Y/FP... er_Console . Просто нет вообще никакого почти свободного времени, но тем не менее движение идёт и проект мной будет завершён, если конечно не наступит большой "бара-бум". И вот далее по теме - втолкавывание (от слова толкать) алгоритма в "пернатого" ![]() "Пернатый" - Gemini , никак не желал уяснять новый алгоритм, он мне предлагал ему известные варианты, я ему пояснял на словах - не помогло. Дал ему логику эстафеты - не помогло, дал ему псевдокод с пояснениями Тут он уже в переработке, но примерно тот # Инициализация Текущий_ID = Стартовый_ID Стек_Хвостов = [] # Целочисленный массив (LIFO) Пока Текущий_ID != 0: # 1. Извлекаем структуру узла из БД (Узел_Б, Узел_Т) = Получить_Связи(Текущий_ID) # Б - брат, Т -Tail (хвост) # 2. Логика НЫРКА (Поиск вглубь) # Если у узла есть потомок (Т) и мы еще не ныряли из этого родителя Если Узел_Т != 0 И (Стек_Пуст ИЛИ Вершина_Стека != Текущий_ID): Положить_в_Стек(Текущий_ID) # Запоминаем родителя Текущий_ID = Узел_Т # Переходим к первому потомку Продолжить_Цикл # Идем на следующую итерацию # 3. ФИКСАЦИЯ И ОТРИСОВКА # Определяем уровень вложенности по размеру стека Если Вершина_Стека == Текущий_ID: Уровень = Размер_Стека - 1 # Мы в родителе, из которого вынырнули Иначе: Уровень = Размер_Стека # Мы в рядовом узле ветки Отрисовать_Узел(Текущий_ID, Уровень) # 4. Логика ВСПЛЫТИЯ # Если мы закончили обработку родителя (он на вершине стека) Если Размер_Стека > 0 И Вершина_Стека == Текущий_ID: Удалить_из_Стека() # Очищаем вершину (Pop) # 5. Переход к следующему брату (Эстафета) # Если вернулись в корень и стек пуст — обход завершен Если Текущий_ID == Стартовый_ID И Стек_Пуст: Прервать_Цикл Текущий_ID = Узел_Б # Переходим к следующему узлу на этом уровне - не помогло, он снова бредил канонами (дерево Дональда Кнута). И вот когда я ему дал схему, что из под первого спойлера - !!! ЩЁЛКНУЛО !!! Он сразу всё понял и выдал полный код обхода без единой ошибки (над пагинацией мы тогда не работали. Онлайн версия Gemini, что из броузера, отлично справляется с нахождением документации, поэтому я выбрал её, ведь мы писали с ним сервер на паскале, и тут мне одному документации и примеров - точно не перелопатить. Почему щёлкнуло? Потому что это мультимодальная нейросеть и обрабатывает и изображения (может - умеет, как угодно). И вот что произошло тогда? Это было противоположным явлением следующим заявлениям - "ИИ принципиально оторван от реальности и тотально провалится на любой уникальной задаче" и . Но я этого не знал, а узнал позднее, так как исследовательская мысль развивалась параллельно. Над логикой обхода и стёком алгоритма мне пришлось изрядно поразмышлять, но это дало много бонусов. В оригинальной публикации они указаны, позже, если будет надо - я выложу ссылку на зипфайл с ней. Но мысль исследовательская - она живёт своей неспешной жизнью, поэтому далее шло без понимания факта произошедшего. И вот произошёл затык с удалением старой кнопки подгрузки сообщений , Скрытый текст Открыть (в линукс так) в папке с скачанными файлами консоль, ввести ./semanticserver , появится строка с сообщением === SEMANTIC SERVER STARTED ===. В браузуре зайти на http://localhost:8080/ , нажать на кнопку "Срез" НО!!! нужно сначала зарегистрироваться , а потом в ЛК пользователя ввести ограничение количества выводимых сообщений, и тогда появится кнопка (пока в БД нет большого числа сообщений, тут уж нехватка времени - всё делалось после работы дома, а на работе проходил ППР - буксовалось поэтому жёстко). И вот на этой кнопке, мы с Gemini просто на месяц ушли в аут. Это было не понятно что - он просто тупил и нёс ахинею какую-то, он не мог написать код для кнопки, одной - единственной кнопки, которая должна обновляться после каждой подгрузки сообщений. Это был кошмар - его как сломали, он не мог написать код, а я долго искал бы материал по HTML... По сути - задача сводилась к удалению старой кнопки и добавлению новой, но у него не получался этот код - ну вообще никак. И тут я сделал то, что многие считают этим
Понимаете в чём дело - порой бывает даже на работе (а я вообще работаю сварщиком МК, ну и многого другого тоже могу), человеку, чтобы обозначить важность понимания сути, нужно объяснить глобальность рассматриваемого предмета в целом проекте - он там проявляется, там, там и там, и вот тогда - до него лучше доходит, потому что он уже делал то или то, или вот то, ну а вот этот маленький кусочек - не делал, но его ему можно понять через тот опыт или тот опыт. Но и об этом я тогда не думал, а сказал это для ИИ чисто интуитивно. И вот тут его снова включило как надо, он начал мыслить сразу продуктивно. До этого мы с ним обсуждали в отдельной ветке целеполагание в знаниях, потому что я уже начал понимать, что в знаниях заложено целеполагание, и работа с ним становится причиной затыка, точнее сказать - отсутствие работы с целеполаганием стало причиной затыка. Я решил тогда развернуть перед ним важность цели, указал где и как мы можем это сделать - и тогда случилось чудо: он как переключился и начал генерировать более осмысленные ответы. В итоге мы с ним закончили на тривиально простой ноте (но такая и была нужна), но факт - на рабочей. И вот тогда мы с ним и обсудили более приближённо к сфере предмет целеполагания в информации и знаниях. Да, согласен с ним тут
Далее, чтобы я мог убрать логические пробелы текста публикации Что тут можно добавить к личному опыту ... да о чём с ним ещё переписывались
Какие планы по проекту? Добавить пагинацию по уровню вложений, так как "Эстафета хвоста" позволяет обрабатывать одинаково быстро вложенности любой глубины, затем сделать инверсию - от корня к листьям, ну и потом уже запустить сервер. Сервер могу запустить хоть сейчас, но вообще это не являлось изначальной целью, сервер - слой задумывался как улучшение существующего, а не полная его альтернатива, поэтому спешить особо не стоит. Всем добра. Ну и..., как удастся спрятать паспортные данные у регистратора, так я и запущу сервер - я сначала пожалел платить за эту услугу, так как это деньги ни за что . Публикацию по алгоритму прилагаю тут https://www.cyberforum.ru/blog... 1783830951 |
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии



