Обновить
60
Илья@proxy3d

нейробиология, нейронные сети, AR/VR

0,1
Рейтинг
23
Подписчики
Отправить сообщение

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

Или буквально сегодня, просил написать bash скрипт, который пропишем разрешение программе доступ к папке в selinux. В итоге 6ой вариант только заработал. Хотя казалось задача простая. Но не одно из первых 5и решений не работали. И тут вопрос, что быстрее самому найти доки и прочитать или таким методом. Один плюс, попросил и делаешь другие задачи. В надежде что заработает . В каких то задачах решало, в каких то требовало времени, в каких то так и не справилась. И ни когда не знаешь, что быстрее самому или через модель.

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

Так что я например чаще стал использовать llm для критики своих решений, или оценки моих разных вариантов решений или рассказать какие известные решения она знает (чтобы понять не упустил ли готовые). Это сокращает время на поиск.

Попросите модель написать вам код. Думаете верно? Попробуйте написать "покритикуй это решение. С чем согласна? С чем не согласна?". И так на каждом шаге. Увидите, как она будет менять свое мнение. А теперь скопируйте ее ответ из chstgpt в deepseek и повторите "покритикуй. С чем согласна? С чем не согласна?". И удивитесь, другая llm может указать вам, что данное решение плохое. И так меняйте ответы из одной llm в другую с этим комментарием.

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

Это не спасает полностью, но небольшие участки позволяет править.

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

Нет. Они изменили архитектуру. И именно в этом главная заслуга deepseek.

https://planetbanatt.net/articles/mla.html

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

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

Я такое вижу сплошь и рядом в разных ариектутрах сеток. Например, redimnet для распознавания спикеров через свёртки, выкинули часть деталей реальной передачи между зонами мозга и оставили только самую базу. Что позволило создать специализированную сетку, которая является урезанной реализацией прохода сигнала через кохлеарное ядро, нижние холмики, оливу и так далее, сразу до славой коры зоны A1, выкинув фильтрацию сигнала таламусом. И получили, что она может отлично выполнять ряд функций, которые делали эти зоны, но не все.

Или тоже кохлеарное ядро, в мозге делиться на две зоны для низких и высоких частот. При чем для низких она сложнее (эхолокация). Но мозг так сделал ради экономи ресурсов, как компромисс. И у человека зона высоких частот развита не очень. В случае сеток, мы можем исправить это и сразу сделать на этом шаге более продвинутую модель, словно мозгу не нужно переживать за место (древние зоны не могут расти не в ущерб другим). И миллион лет эволюции. В этом сила сеток.

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

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

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

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

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

Я сейчас например реализую 6 слойная модель, которая лежит в основе любых зон мозга. И там есть слой VI, он помогает определить новизну сигнала, через выделение важных признаков. И затем подаётся на вход модели, чтобы усилить наиболее важные, чтобы модель на следующем шаге могла обратить на них внимание и усилить или ослабить.

Так вот, оказалось что это типичная модель классификации. Когда мы определяем что за данные: кошка, собака, музыка , шум и так далее. Только классификаторы это урезанный вариант работы слоя VI. По-сути этот слой находит признаки собаки, и затем усиливает каналы у входного сигнала, чтобы сосредоточиться на собаке.

Разработчики, сами того не понимая реализовали частично этот слой. Взяв только часть, а именно классификацию сигнала без обратной связи.

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

https://t.me/greenruff/2109?single

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

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

По хорошему, надо было привести как раз примеры откуда ноги растут у Zonos

https://mlops.community/audio-generation-with-mamba-using-determined-ai/

https://github.com/ighodgao/mamba-speech-synthesis

Тут даже в самом SMM были примеры с обучением для Audio

https://github.com/state-spaces/s4

Hybrid это другие кто пытается адаптировать ssm/mamba под механизм глобального внимания как в трансформерах и совместить плюсы обоих моделей.

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

Mamba2, как раз построена из SSM блоков.

Hybrid - это архитектура совмещающая глобальный механизм внимания трансформеров и локальные SSM/Mamba (учитывающая ритмы и т.д.)

Все остальное довесок. У mamba2/ssm есть хорошие примеры синтеза. Тут, добавили дополнения сверху. Но в целом это модель msmba2/Hybrid

Whisper очень плохо справляется с распознаваниями. Лучше остальных, но в целом плохо. Я разбирал его и конечно изначально использовал. Он совершенно не справляется с шумной улицей, с быстрой речью и прочими другими вещами. Они как раз много не учли в своей архитектуре, так как изначально делали не на основе мозга (или может частично), а использовали уже отработанные архитектурные решения. Более того, Whisper не способен отслеживать разные узлы речи (а речь является последовательным графом), чтобы можно было перейти например на уровень слогов, или эмоциональных фраз или синтагм или обобщенный смысл или на уровень слов. Он всегда работает на верхнем уровне, обобщая все узлы в общий смысл. Поэтому нельзя нормально прикрутить механизм внимания, который бы мог детализировать речь на разных уровнях. Как это происходит к пример со зрением (для зрения как раз сделали более схожу архитектуру для зрения SwinTransforem).

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

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

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

Для примера выше градиенты речи (наклон частоты тона при речи). Кажется похож на нормальное распределение (случайный процесс). Но в реальности случайным процессом не является.

https://t.me/greenruff/2021

В плане выбора из множества слов это означает, что:

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

  • детерминирован. Детерминированная модель позволяет вам точно рассчитать будущее событие, без участия случайности. Хотя из за сложности системы и начальных условий мы этого не можем сделать. С другой стороны мы можем описать часть этих динамических процессов и опираться на свои начальные значения. Что собственно и делает к примеру механизм внимания (описывает механизм одного из процессов)

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

Как LLM может не ошибаться например в этом случае? Когда выбор слова из множества вероятностей на последнем шаге в LLM случайный и зависит от температуры. Это как сидеть у рулетки и удивляться, почему ставил на Zero, а выпало 34 красное.

Описывал тут https://t.me/greenruff/2103

Там же писал, что для начала надо хоты бы добавить глобальный механизм внимания на этом этапе, аналогичный как при предсказании следующего слова. У нас таламус (и не только он) играет огромную роль на выбор слова, увидел яблоко - захотел есть - и во уже выбор слова в сторону "хочет", а не "интересуется" и пошла цепочка в другую сторону. Нет в мозге случайных процессов. Хаотичные есть, случайных нет.

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

Другой подход: задали вопрос и попросили рассуждать шаг за шагом. Затем два вопроса: С чем согласна? С чем не согласна? И так по рекурсии.

Там в статье по ссылке более детально описано про матрицу W, тесты и подробные объяснения. Коротко, он уменьшает объем памяти на хранение, так как W храниться к кэше KV. Была матрица 6 на 6 и занимала 36 ед. памяти. Стала 4*2 и 2*4 и занимает 16 ед. в памяти. Они заменили WHA на MLA и адаптировали под него RoPE.

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

Не понял про LoRA , у нее стандартный механизм внимания через матрицу W. MLA был предложен не так давно.

Нагрузку снижает прежде всего использование другого подхода на уровне архитектуры
https://planetbanatt.net/articles/mla.html

Они изменили W матрицу внимания MHA, на умножение двух матриц W1*W2 (но меньшего размера). То есть W ~ W1*W2 (чем больше rank размерность матрицу W1 W2, тем точнее будет их перемножение). Это позволило за счет rank регулировать объем необходимой памяти. Кроме того, опираясь же на другие исследования, оказалось что более сильный сигнал при обучении формируется первым и соответствует полезной информации, а слабый сигнал формируется позже и относится к шуму. В итоге, уменьшив rank мы теряем часть информации, но сильный сигнал все равно остается, а вот слабый может потеряться. Это означает что:

  • модель меньше ест памяти (а это главная проблема других LLM)

  • умножение матриц это GPU не проблема и так как они меньше исходной, то в итоге все это быстрее

  • потеря исходной шумной информации приводит к тому, что модель быстрее обучается и имеет меньше шумной информации (хотя вероятно может потерять какие-то детали, но не точно). Что означает более быстрое время обучение и выше точность, особенно если сразу скармливать ей точную информацию.

Вот это и есть главное в этой модели. Так как они адаптировали архитектуру под эту оптимизацию.

Я делал как раз когда несколько разных llm рассуждают. Это аналог moe (того же рассуждения deepseek r1), только лучше. Так как сами сетки являются арбитром и решают какой из них лучше.

https://t.me/greenruff/1757

Конечная задача была простой, использовать несколько специализированных LLM, где одна может дать хороший ответ в рамках физики, другая биологии и так далее. И несколько общий крупных вроде бабок на лавочке - ChatGPT и подобных. Чтобы получать ответ охватывающий множество областей.

По сути в процессе получалась цепочка. Ответ реально лучше, даже на слабых сетках. Из минусов только: жрут они очень много и сразу перегружают развернутые llm одним вопросом. Так как например для 10 llm на 8b параметров всего, ответ занял порядка 10-15 минут, при том что обычно это несколько секунд. А уж сколько внутренних запросов у них, это дикий ужас. Но результат гораздо лучше.

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

Так важным моментом было то, что это

1) отсеивали плохие галлюцинации, так как другие модели сразу говорили что это бред

2) оставляла "положительные" галлюцинации, там где модели считали, что в этом есть логика.

Но там надо было экспериментировать, мне было не до этого. Так как есть какое то оптимальное равновесие этой "толпы", чтобы понять сколько надо скептиков (с низкой температурой), сколько творческих (со средней температурой) и сколько шизоидов (с высокой температурой). Бегло тест показывал, что шизоидов из 10 не более 1, но и скептиков тоже плавно распределить, иначе сложно будет получить на какие-то рассуждения.

Хотел попробовать более детально вместо 10-и использовать только 3-и LLM (жрут меньше на тестах и быстрее), но в итоге опубликовал результат теста и пример и решил потом вернутся к этому. Сейчас было бы конечно интересно попробовать подключить туда не просто большие LLM, а сразу рассуждающие типа Deepseek R1. Но думаю что ответ тогда будет день генерироваться. А у меня таких вопросов нет, чтобы столько ждать.

Вчера полез смотреть, в чем именно отличие архитектуры DeepSeek

https://planetbanatt.net/articles/mla.html

Они и вправду неплохо оптимизировали саму архитектуру за счет изменения матрицы механизма внимания через ее разложение(был MHA  стал MLA ). Где в принципе получаются две более простые матрицы. При этом они сделали их сжатие по rank (размеру матрицу), что отчасти приводит к потере информации. Но теряется как раз менее значимая информация, которая как раз ближе к шуму.

А так же совместили это с RoPE для кодирования позиционирования слов.

Так что теперь понятно, почему компании в штатах начали суетится. Дело не в данных и крутизны модели. Данная архитектура должна быстрее обучаться (так как разложение матрицы отбрасывает слабые значения - то есть шум), съедает гораздо меньше памяти и делает больше упор на вычисления GPU вместо ее размера. Это означает более быстрое обучение модели (откидывает шумные данные), меньше требования к памяти видео карт и их мощности.

Все обвязки строятся на том, что LLM знает структуру БД. Я это учитываю конечно и сначала скармливаю ее. Без этого результат еще хуже. Но это не панацея. Как я уже сказал, там несколько проблем на уровне самих LLM.
1) они на больших запросах легко выкидывают детали, особенно после нескольких итераций обработки
2) есть некоторые момент перевода с которыми они просто не справляются и ходят по кругу. Для примера динамические запросы для отчета:
with Roles as (SELECT [SELECT_UNION_BY_NAME] FROM WP_ROLES ts WHERE QMS$DELETED = 0 AND BRANCH_ID = 0 [PARAM_ROLES_FILTER]) select @name = RTRIM(ISNULL@namee, '') + ',[' + [VARS_UNION_BY_NAME] + ']'), @sum_name = RTRIM(ISNULL@sum_namee, '') + ', sum([' + [VARS_UNION_BY_NAME] + '])') [PARAM_VAR] from Roles order by [ORDER_UNION_BY_NAME]

где она не может конвертировать правильно

SELECT string_agg('"' || rservices."SERVICE_NAME" || rservices."SERVICE_ID" || '"', ',') INTO val_name FROM ( SELECT DISTINCT LEFT("S"."SERVICE_NAME", 120) AS "SERVICE_NAME", "S"."SERVICE_ID" FROM "SERVICES" "S" WHERE "S"."QMS_DELETED" AND "S"."BRANCH_ID" = 0 AND "S"."SERVICE_ID" > 0 [SR_SERVICE_ID] ) rservices;

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

И таких проблемных мест очень много там. Так что не верю что там делает LLM. А Миграционные программы из MS SQL в PG я и так использую, которые и без всяких LLM отлично справляются с большой частью данные и заодно еще правильно могут сконвертировать значения некоторых полей. Но вот только он не могут конвертировать хранимые процедуры и функции.

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

https://t.me/greenruff/2007?single

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

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

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

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

Например, я анализировал разное произнесение слова молоко. Оказалось, что в одних случаях есть отдельно звук М и О или Л и О, а в других есть отдельный звук МО и отдельный ЛО. То есть на уровне звука их нельзя разбить на буквы. То есть формально, это должны быть отдельные буквы. Но мозг их связывает с последовательностью М - О. То есть не считает их отдельными буквами, а считает их двумя буквами МО/ЛО.

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

Делал не так давно разбор, как появился тональный и нетональный язык.

https://t.me/greenruff/2034?single

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

Но изначально тональный язык был про:

  • Передачу сигнала в водной среде

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

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

  • В основе лежит механизм оптимизации затрат энергии на артикуляцию.

Информация

В рейтинге
4 614-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность