Ну тема этой ветки была мол работают процы со 100% точностью или нет. Вот я как бы на это и ответил. Если в главном потоке будет ошибка доступа к памяти то прога аварийно завершится.
А вы описали классические глюки логики в программном коде. Что порграммер вложил в свою программу - то и получит.
И кстати зря вы говорите что обычный юзер не сталкивается с проблемами железа. Сталкивается постоянно. От этого очень страдает. Всякие несовместимости видеокарт, процессоров, и материнских плат. Криво разведённая трассировка до RAM обеспечивающую гонку сигналов.
Лично сам сталкивался с проблемой которая сильно повлияла на мой жизненный путь. А именно гнилой или недо-вставленный data кабель в HDD который работал но сыпал постоянно ошибками. И это не было заметно вообще нигде в программной логике. Т.к. это типа вотчина драйверов микросхем SATA контроллера. Но на всём компе это выглядело как всё глючит везде и непонятно почему.
LLM легко ищут ошибки синтаксиса (собственно это гораздо лучше делает компилятор). Но это палка о двух концах. Новые синтаксисы она считает - грубейшими ошибками. Как ВСЕ даже чат гпт4 LLM достали меня поправлять в C# что объявление List или массива через [] - это ошибка.
Также LLM определяет ошибки в локальной логики - на несколько слов или строк.
На этом всё.
Когда кидаешь ей класс с 2 методами занимающий страницу или полторы экрана - она сначала полностью переделывает твой класс - создаёт тучу лишних методов. Заводит какую то лишнюю логику. Понятно почему. Она в своей базе данных нашла похожий шаблон и просто скопировала его на выход. Разбератся в этой неработающей каше как правило нету никакого желания. И когда горишь не переделывать код - она находит тучу несуществующих ошибок.
А всё из самой сути работы LLM. Что бы проверить класс на логику - надо построить виртуальную модель этого класса и просчитать взаимосвязи узлов этой модели.
LLM же работает по другому. Она ищет похожие куски из вашего класса и если находит, а она всегда находит, и сравнивает их - и разумеется ваш код будет не правильным.
Меня вообще поражает как это может работать. Ведь по сути - логический срез текущего момента "думания" это движение одного вектора. Там вообще вектор за вектор цепляется. Да в него упаковали весь типо смысл. Но всё держится на связи одного вектора с другим. Чудо что это не рассыпается в бессмыслицу.
Как по мне - когда мы в мясной LLM обдумываем задачу - мы в голове держим как минимум несколько понятий с которыми работаем. И из этих понятий уже строим логику.
Скажем так - программы работают со 100% точностью. Потеря даже одного бита в адресе приведёт к возникновению исключения доступ к запрещённому адресу, либо к искажению данных. Что не говорит что такое не происходит. Программы постоянно вылетают с ошибками.
Для предотвращения этого используют память ECC - там единично искаженные биты исправляются простым алгоритмом коррекции чётности на лету.
Я даже где то статистику читал - как часто срабатывает механизм исправления ошибок в памяти ECC. Примерно 1 ошибка бита на гигабайт оперативной памяти за 1,8 часа.
Но не стоит различать логические ошибки задуманного алгоритма и ошибки выполнения инструкций процессор. Это 2 совершенно разные вещи - хоть и называются ошибками.
Собственно как криво вы напишите алгоритм - он с 100% точностью будет выполнять всю кривизну задуманного.
Удивительный хабр. Вообще в этой теме никого не минусил. Ставил только плюсы. Никого не оскорблял. Навалил кучу инфы - на подумать. И всё равно получил минусы в карму )))
С удовольствием почитаю про хоть какие нибудь реализации. Разумеется сам тоже буду гуглить. Но может у вас есть пару ссылок?
И так сказать для дискуссии. Как вы считаете почему LLM со своими трансформерами взлетели, а про другие технологии что то не слышно что бы были доступны в массовом испльзовании?
Главное что даёт LLM - она способна понимать человеческий текст. Просто сейчас из неё пытаются выжить все соки и придать её чуть ли не божественные возможности.
А текст она понимает потому как работает с буквами и слогами и сочетаниями слов.
Это примерно как человеческий мозг работает - мы читаем слова не по буквам а целой картинкой. Свёрточные сети затылочной зрительной части мозга неплохо преврящают картинку целого слова в нужный сигнал.
Даже есть забавный эксперимент - если выкинуть большую часть букв из слова или переставить их местаим - всё равно будет понятно.
Я бы даже сказал что человек может воспринимать несколько слов одновременно или даже целое предложение - если у него в мозгах под это шаблон есть.
LLM работает точно также - она входящий текст с ошибками с склеенными словами и прочим мусором превращает в входные токены которые превращаются в нужные эмбединги.
Проблема SOAR, ACT-R и подобных жёстко структурированных систем это то что они могут работать с чётко поставленными данными. LLM это им обеспечит.
Ну и второе - LLM обеспечивает нахождение связей между понятиями. Это очень сильный механизм. Его надо использовать.
Это я написал так очевидное. Думаю может кто ещё каких интересных идей накинет.
SOAR и ACT-R это как раз методология подхода к проблеме интеллекта как - чётко определить что надо и отсюда реализовать это в алгоритмах. По моему мнению именно классическое определение (как именно реализуют эти алгоритмы сейчас фиг его знает) это более низкоуровневое поведение. Т.е. механизм объектной памяти и механизм алгоритмов поведения.
Я же тут во вех портянках продвигаю мысль - развития этого механизма до виртуального моделирования среды. Хотя кто его знает - может где кто прямо сейчас это делает.
LLM - это же алгоритм поиска скрытых связей в понятиях. Через близкое расположение векторов понятий.
Думаю что гибрид первого подхода и второго даст качественный скачок в построении AGI.
Один чудовищный эксперимент когда человека лишили возможность перемещения данных из быстрой памяти в долговременную я знаю. В общих чертах один любитель покрамсать мозги - обрезал что то в долях мозга, при этом нарушил своё же правило доктора - сделал одинаковую операцию на левой и на правой доле одновременно. В результате получился человек который помнил старое, а всё новое помнил лишь то что было не позже 15 минут - время быстрой памяти.
Но как это относится к проблеме мыслей? Мысли как раз в быстрой памяти и крутятся. Вот если бы доктор покрамсал участок отвечающий за быструю память - думаю в результате получился бы овощ. Или вы о проблеме проецирование образов из долговременной памяти на быструю? Честно говоря не вы не я не можем знать что и как там детально происходит. Я лишь для себя определю поверхностную логику работы. И кстати я вообще не утверждаю что это правда. Просто для меня текущая версия бытия такая. Новые данные - новые версии.
Хватит ли вам этого, что бы назвать перемножение матриц мышлением?
Мышление в моём понимании - это алгоритм, механизм, который строит виртуальную модель. Виртуальная модель включает в себя объекты. Виртуальная модель включает в себя законы внешнего мира. И главное это модель не статична. В ней происходит текущая последовательность активностей. Блин вот на ходу придумываю формулировки. Вобщем кроме механизма модели, есть ещё и механизм действий этой модели. У человека например этот механиз напрямую зависит от внешних сенсоров - глаза вилт хищника - бежать. Желудок сообщает что надо жрать - запускается механизм поиска еды. Короче у животных - этот механизм выживания. У человека с высшей нервной деятельностью - внешние сенсоры подменяются на виртуальные. Мы можем представить как едим лимон - и нам даже станет кисло.
В LLM вообще другая архитектура. Вот я как ни стараюсь не могу её архитектуру сравнить с архитектурой которая по моим определениям работает в голове человека. Вообще разные вещи. Но это не главное. Как я говjрил - AGI не должен быть человеческим. Но то что есть сейчас не выполняет тех минимальных требований который может сделать мясной интелект. LLM не может сидеть на кассе магазина. LLM не может писать код проекта от начала до конца. LLM вообще ничего интелектуального длинного не сделает. Она может генерировать бесконечный текст - который будет в результате бредом. LLM - сегодня это просто большая база данных. С API для запросов к этой базе данных. Да API по сложнее чем какой нибудь SQL. Но тем не менее это просто запросы.
Не относится к делу, у человека их нет (ах да, один назвать сможете, но это всё).
Ну скажем так - человек это почти целиком и полностью безусловный рефлекс. Эндокринная система, работа сердца. Это всё аппартно зашитые рефлексы. Отдёргивание руки от огня происходит раньше чем сигнал доходит до мозга. Но честно вообще не пойму при чём здесь это.
И чего это вы на меня наехали? Альтернативщик какой то. Статьи не хотите приводить о внутреннем устройстве очередного ИИ. А я бы почитал. И чего вам шортсы то не угодили? Никто по шортсам не изучает - это просто доступный католог. Увидел интересного чела - пошёл гуглить видео или статьи по нём. Мне например в шортсах никогда ничего интресного не попадается - там все несут полную пургу. Ну и что?
Вы меня рассмешили ))) Я никому ничего не доказываю ))) Как вы думает - зачем я тут пишу эти простыни ? Ну главным образом для себя - я так прокрастинирую. Мне кабздец как лень писать очередной код. И второе - а вдруг я увижу что то дельное и интересное от других?
Когда человеку сообщают новые знания - они попадают сначала в быструю память. А потом в долговременную. Физически это выглядит как прорастание новой дендритно-аксонной сети. Т.е. Человеческий мозг постоянно переобучается.
Пямять LLM - это веса в перцептронных слоях и вектора в векторной БД. Они статичны. Это обусловлено архитектурой.
Ваш пример краткосрочного обучения непонятен. Весь наш текст упаковывается в эмбединг - это что обучение по вашему? Это просто упаковка. Сжатие. А дальше с этим вектором просто происходит перемножение матриц.
По поводу мыслей. Я тут уже высказывал своё видиние развитие человеческого сознания. Если кратко - то сознания как бы 2 типа.
Первый тип - животное сознание. Присутствует у всех живых существ. Это модулирование внешней среды во внутреннее представление. Развито эволюцией для целей предсказания будущего. Хищники предсказывают куда прыгнет заяц. А зайцы следовательно наоборот.
Потомство оставляли те кто лучше это делал.
Это тип сознания я бы назвал автоматическим - там главенствуют безусловные рефлексы.
Второй тип сознания появился с появлением неокортекса и главное появлением речи. Мы получили возможность вести внутренний диалог с самим собой.
В повседневной жизни человек ведёт себя обычно по первому типу сознания - всё делает на автомате как робот. Но может переключится и на второй тип. Ведь мы осознаём себя именно в моменты внутреннего диалога.
Проекции образов из первого типа сознания на слова второго типа сознания и внутренний диалог - это и есть мысли.
В LLM мыслей нету - потому как нету внутренней проекции мира. Ну например мы читаем книгу - в голове сразу автоматически рисуется картина локальной арки книги. Рисуются герои. Наше сознание вообще отключается - мы переносимся в этот вымышленный мир. Читая диалоги книги - мы одновременно живём героем в этом виртуальном мире. Тоже самое когда мы смотрим кино. Тоже самое когда программист входит в так называемое состояние потока. Вообще проблема вопроса "Я" - я тут тоже неоднократно обсуждал.
Короче всего этого механизма в LLM нету.
Что касается учёных статей....Я вам их не приведу. Тема настолько новая что нету сейчас таких учёных. А учёных старой школы слушать их рассуждения о работе LLM без слёз невозможно. Да, он учёный - но просто вообще не в зуб ногой как устроена внутри современная LLM. Это я камень в огород некоторых которые иногда попадаются на ютубе или в шортсах
Ах да забыл. Вот https://www.youtube.com/watch?v=9ue_NLaSf0Y серия лекций просто потрясающего качества деталей. Вышла буквально "вчера". Ничего более подробного в русскоязычном секторе не найдёте. А если найдёте буду благодарен за ссылку.
Ну не пишут код они.. Вот все кто не пробовал все обломались. Просто это выглядит так - задаёшь простой промт - напиши мне сайт. Можешь даже расписать его - типа там менюшки, кнопки. И LLM естественно в своей огромной векторной БД найдёт шаблон похожего сайта и выдаст тебе портянку нерабочего кода.
Но это же только начало. Дальше ты начинаешь разработку этого сайта - и начинается ад.
Когда ты начинаешь просить найти ошибки в существующем новом увеличенном коде или доработать его - это прост превращается в самобичевание. LLM найдёт ошибки там где их нет. Там где они есть не найдёт. И вместо самостоятельной разработки и тестирования - ты попросту занимаешься болтовнёй с LLM - а это занимает очень много времени. Больше если бы сам писал и тестировал.
У меня LLM занял следующую нишу. Написать маленький алгоритм. Сортировка там какая нибудь - который копипастишь и сам проверяешь на работоспособность.
И анализ кода. Скинул портянку - и читаешь вывод. Потому как она хорошо подмечает какие то локальные вещи. Иногда то что она выдала помогает самому обратить внимание на место в коде на которое у тебя зашорился взгляд. Но скажу честно такой двойной анализ бреда выданного LLM и анализ собственного кода - жутко выматывающая процедура. Мне смешно слышать когда кричат - программисты скоро не понадобятся. Да даже опытному программисту трудно вести такую двойную работу по анализу.
Скажем так. Я смотрел множество интерпретаций от разработчиков на тему - а что же там собственно происходит. Не буду говорить что самым частым эпитетом которым они пользовались было - мы вообще не понимаем почему это работает, а также как они вообще разрабатывают дальше современные LLM. А разрабатывают они их просто наугад. Просто пробуют разные коэффициенты для локальных алгоритмов или просто тусуют эти алгоритмы. ПО типу а давайте пропустим не через 12 слоёв перецептрона, а через 16 и зациклим это через трансфомер. Или давайте переобучим 2,5,10 слои. Через месяц обучения смотрим что получилось - нихера не получилось. А давайте RAG на вход прикрутим ! Или в середину. И по новому. И при этих всех модификациях именно кор-алгоритм не меняется.
Так вот. Они (натягивали сову на глобус) предполагали что поиск в многомерном векторном пространстве, а в реальности тупое перемножение матриц, стал подобен... мыслям! Как по мне - они просто создали огромную БД куда аппроксимировали всю обучающую мега выборку. Т.е. сложили рядом друг с другом (в векторном виде) просто даже не слова. А слоги или даже буквы! Если глянуть величину эмбединг словаря - он будет занимать ushort величину. 64K всех возможных слогов, букв.
Если убрать притянутый за уши рандомизатор - механизм температуры. То на входящий промпт LLM будет отвечать всегда одним и тем же выводом слог. Что говорит что это просто конечный автомат.
Человек одним входящим предложением может переосмыслить весь свой жизненный опыт, т.е. переобучить мясную нейросеть. LLM же принципиально не обучаются от входящих промтов. Они статичны.
У LLM нету локальной памяти. Что бы они могли поддерживать контекст - весь предыдущий трёп каждый раз помещается в входящий промт - что бы получить один единственный маленький вектор, точка отправления которого и будет служить в векторном пространстве.
Кстати механизм внимания меня вообще убил - тупо складываем кусок предыдущего вектора с новым в итерации. Удивительно что это работает.
Вывод этой портянки текста. Современные LLM не имеют внутри фактов объектов. Не обучаются на входящей информации. Не модулируют факты объекты в виртуальном пространстве. Не имеют короткую память - как у человека. Не имеют внутреннего диалога - это следствие отсутствие визуализации внешнего мира. Не имеют никаких стимулов - это тупой конечный автомат по предсказанию следующего слога, буквы. Они не мыслят вообще - их вывод это иллюзия мысли. Внутри нету никаких проекций в быстрой памяти которой тоже нет.
Короче я задолбался писать. И да - они весьма полезные поисковики информации.
Всевозможные гибриды SOAR, ACT-R и LLM это то что на слуху. Вроде как в спец конторах такие гибриды применяют. Слышал что в Америке в конторах для модулирования и предсказания войн и подобного. В конторах прогнозирующих мировые рынки и их тенденции развития. Там годами пилят подобные спец под себя заточенные программы. Наружу они не выходят.
Да нафиг никому не сдался интеллект похожий на человеческий. Со всеми его недостатками и эволюционными костылями.
Нужен именно НЕчеловеческий ИИ который бы ничего не забывал. Всё запоминал. И делал интеллектуальную работу без ошибок.
Что мы имеем сейчас? Алгоритм поиска соседнего вектора в векторном пространстве. Путём чудовищных вычислений - этот алгоритм каким то чудом стал выдавать на выходе псевдо-похожую речь.
Кто знает как внутренне устроенна LLM - тот у виска крутит пальцем когда слышит рассуждение армии блогером о всемогущем искусственном интеллекте - который вот вот, ещё чуть чуть, уже в 2030 году всех победит и всё придумает.
А те кто плотно с ним работает (например я) получаю то что он может дать и не более. Если я прошу написать его алгоритм - он в 99.99 это сделает блестяще - потому как в векторном пространстве есть цепочка векторов реализующая этот алгоритм.
Но если я дам ему проверить свой код. Уже со страницы кода - это просто финиш. Он найдёт кучу неисправностей, потом ты ему будешь доказывать что это не неисправности. Спустя час он полностью с вами согласится, а потом ты сам увидишь дыры в коде.
Вам кажется что у вас диалог, а в реальности это алгоритм упаковывания всего вашего трёпа в короткий вектор - эмбединг. И уже из этого вектра идёт дальнейший поиск.
А всё потому как там нету алгоритма который бы конкретизировал образы-модели и строил вокруг этих обектов виртуальную модель поведения. Там только алгоритм вытаскивания соседнего вектора из своеобразной огромнейшей векторной базы данных.
Да там вообще нету алгоритма чётких фактов. Вообще всё что выдаёт LLM на выходе - это всё приблизительно. Просто чудовищными мощностями загнали эту приблизительность в 99.99%. Но скоро докатимся что для простого ответа нужна будет мощность АЭС.
И всё из за того что неправильно выбран алгоритм. Скажем так - я уже сейчас начинаю видеть посты от разработчиков LLM - что они пошли неправильной дорогой.
Так как раз проблема в том что те статьи экспериментов что я встречаю от учёных - сама структура эксперимента описана либо очень поверхностно, либо очень-очень поверхностно. Не знаю может где в каких платных научных статьях и есть более детальное описание. А может детальное описание - это коммерческая или какая там - "учоная" тайна. Или как вы пишите - никому это не интересно. Людям подавай информационную жвачку. Фотоны летают в прошлое! А электроны передвигаются выше скорости света! А детали - которые не то что это опровергнут, вообще покажут что речь про другое. Это нигде не достанешь.
Вы уловили суть. Вся физика да и вообще всё - строится на наблюдениях. Каждый какой то физический эффект имеет множественное количество наблюдений и экспериментов. И вот есть элементы природы до конца не понятые - и вместо того что бы привести множество наблюдений касательно эффекта - в очередной научпоп статье объясняется эффект гравитации - простынёй. И в эпилоге говорится - мол смотрите как всё понятно. А раз вы не понимаете, и задаёте уточняющие вопросы - то вы тупы.
Ка же меня бесят статьи описывающие квантовые спутанные частицы. Там деградировали до того что уже и в прошлое летают и в будущее. Вместо того что бы подробно описать очередной эксперимент который делают с частицами. Глядишь кто то с не зашоринным взглядом и увидит что то новое.
А опыты с пролетанием фотона через 2 щели! Статьи про это просто лютый бред. А мои вопросы - какой размер щелей, какая толщина, какой материал щелей, как вообще 1 фотон смогли выпускать, и как его детектируют, устройство детектора, на каких принципах работает детектор. Таких ответов вообще никто нигде не рассматривает.
И так прост везде. Весь научпоп - это прсто информационный мусор.
P.S. Вообще понимаю почему блогеры в своих видео и статьях пишут бред. Потому что они кроме бреда ничего писать и не могут, да и не нужно им это. И почему отчёты учёных тоже часто похоже на бред. Гранты сами себя не распилят. Так и живём...
Я бы сказал что ситуация ещё хуже. Особенно в физике. Читаешь про какую нибудь квантовую физику, взаимодействие частиц, или например ОТО. Пытаешься понять. А тебе аналогии сыпят - да так что вообще всё неправильно. А те кто сыпят этими аналогиями вместо реального объяснения, считают что выполнили свой долг. И уходят в закат.
Хотя я уже давно убедился - все те кто сыпят аналогиями, сами нифига не понимают что на самом деле творится. Отсюда имеем - электроны подобно планетам вращаются вокруг протонов. Гравитация это искривление пространства. И прочий бред. Ничего общего не имеющий с реальностью.
P.S. По поводу гравитации и искривления пространства - во первых это гипотеза, математический аппарат сходится, а вот реальность - тут никак не проверить. А во вторых земное притяжения по формулам это в 99.99 обусловлено искривлением времени. А уж это объяснение вообще взрыв мозга для понимания. И вообще не доказательно. Потому как не особо доказано что является следствием чего. ОТО Эйнштейна говорит что искривление времени первично. Но ничего не противоречит что гравитация первична, а она уже порождает искривление времени.
Короче никто ничего не объясняет. Потому как сами ничего не знают что там в реальности творится. А математика - она на то и математика. Она нереально точно может рассчитать - ЧТО ТО. Вот только это что то и реальность не всегда совпадают.
Ха! Некому не забывать. Сколько там программеры работают на одной работе?
Если ты работаешь больше 5 лет на одном месте - то на тебя уже как на дурочка смотрят.
Утрированно конечно. Но обычно ты просто приходишь на легаси проект с тонной кодовой базой. Тебе прилетают таски - поправить баг. И ты в лучшем случае разберешься в работе в одном конкретном модуле. А потом попросту уходишь на другой проект. Тебе на замену следующие приходят и также уходят.
А как устроены галеры по типу EPAM. Да там сам принцип работы что ты постоянно скачешь с проекта на проект. Там пописал, сям нагадил. И так по кругу.
Непомню точно но как то чичтал правила про внутреннюю кухню мелкомягких. Там были весьма причудливые правила переступить которые грозилось "смертной казнью."
По типу - никогда не трогать старых переменных, а всегда заводить новые. Ну или что то такое. При желании можно нагуглить
Почему не разваливается? Регулярно разваливается. А в последнее годы это вообще превратилось best practic!
Возьми любой учебник по бизнесу - там просто огромными красными буквами везде написано, запускай продукт на рынок максимально быстро настолько это возможно! Иначе обгонят конкуренты. Приложение не падает сразу при старте? Быстро в продакшен.
Пользователи сейчас играют роль тестеров.
Ну какое то количество компаний банкротится и закрывается сразу после выхода продукта на рынок (в геймдеве это прям видно постоянно).
Но остальная часть в кривь и вкось продолжает работать - и главное за это бизнес получает деньги.
Поэтому нельзя говорить этот код дерьмо, а этот красив! Всё зависит по каким критериям его оценивать. А начальник - бизнесс, а не писатели кода. И критерии их успешности вообще не содержит какой то там код.
Никогда не встречал деление программирования на любительское и профессиональное. Даже интересно было в уме повыбивать критерии для одного и для другого.
От себя могу высказать некоторые жизненные наблюдения. Да - когда работаешь в кровавом энтерпоайзе требуют некоторое соблюдение стилистики кода когда работаешь в текущей команде.
Но! Продакшен компании это в 99.99 легаси код. Который разрабатывается годами. И команды там меняются часто. Более того типичный кейс - тебе прилетает таска, исправить баг, или новя фича. Время строго ограничено. Тебе платят деньги не за красивость, и да же не за код. Тебе платят деньги за закрытые таски. Думаю не надо тут дальше рассказывать про приоритеты которые выбираются... Про рефакторинг я вообще не говорю. Никогда бизнес не поймёт зачем надо что то переделывать просто так. Да это же вредительство!
И возьмём программинг для себя так сказать. Для души. Ооо! Тут просто рай для перфекционизма. Не вопрос 10 раз полностью переделать архитекутру и переписать почти весь код, когда 10 раз попадаются какие то новые вводные данные. Разумеется это продолжается пока тебе это интересно (не выгоришь).
Так что я бы определил что "профессиональный" код ужасный но он продаётся. "Любительский" красив, но почти всегда уходит в забвение...
Сейчас проффесиональный код ещё больше поражён раковой опухолью ИИ. Часто слышу что в компаниях заставляют писать с помощью ИИ. NVidea вроде вообще хвасталась что мол половину кода драйверов написана ИИ. А потом.... Туча тем в инете. Как работающие всегда вещи стали жрать в 10 раз больше ресурсов. Про баги и дыры и не говорю.
Сам изучаю работу LLM. И знаю как там что работает. Она может нагородить на каждый запрос пару листов кода - который будет впринципе делать то что подали в промт. Пару листов кода на каждый запрос. И это просто вавилонская башня кода...
P.S. Ну я тоже в своё время на дельфи много программил. В те времена С# то и не было (C# 1.0 вышла в 2002 году с релизом Microsoft Visual Studio .NET, Delphi же с 1995 года ). Отличная среда. Кстаи даже сейчас продолжает жить. Только несколько преобразовался.
Ну тема этой ветки была мол работают процы со 100% точностью или нет. Вот я как бы на это и ответил. Если в главном потоке будет ошибка доступа к памяти то прога аварийно завершится.
А вы описали классические глюки логики в программном коде. Что порграммер вложил в свою программу - то и получит.
И кстати зря вы говорите что обычный юзер не сталкивается с проблемами железа. Сталкивается постоянно. От этого очень страдает. Всякие несовместимости видеокарт, процессоров, и материнских плат. Криво разведённая трассировка до RAM обеспечивающую гонку сигналов.
Лично сам сталкивался с проблемой которая сильно повлияла на мой жизненный путь. А именно гнилой или недо-вставленный data кабель в HDD который работал но сыпал постоянно ошибками. И это не было заметно вообще нигде в программной логике. Т.к. это типа вотчина драйверов микросхем SATA контроллера. Но на всём компе это выглядело как всё глючит везде и непонятно почему.
Согласен. Дополню ваш ответ.
LLM легко ищут ошибки синтаксиса (собственно это гораздо лучше делает компилятор). Но это палка о двух концах. Новые синтаксисы она считает - грубейшими ошибками. Как ВСЕ даже чат гпт4 LLM достали меня поправлять в C# что объявление List или массива через [] - это ошибка.
Также LLM определяет ошибки в локальной логики - на несколько слов или строк.
На этом всё.
Когда кидаешь ей класс с 2 методами занимающий страницу или полторы экрана - она сначала полностью переделывает твой класс - создаёт тучу лишних методов. Заводит какую то лишнюю логику. Понятно почему. Она в своей базе данных нашла похожий шаблон и просто скопировала его на выход. Разбератся в этой неработающей каше как правило нету никакого желания. И когда горишь не переделывать код - она находит тучу несуществующих ошибок.
А всё из самой сути работы LLM. Что бы проверить класс на логику - надо построить виртуальную модель этого класса и просчитать взаимосвязи узлов этой модели.
LLM же работает по другому. Она ищет похожие куски из вашего класса и если находит, а она всегда находит, и сравнивает их - и разумеется ваш код будет не правильным.
Меня вообще поражает как это может работать. Ведь по сути - логический срез текущего момента "думания" это движение одного вектора. Там вообще вектор за вектор цепляется. Да в него упаковали весь типо смысл. Но всё держится на связи одного вектора с другим. Чудо что это не рассыпается в бессмыслицу.
Как по мне - когда мы в мясной LLM обдумываем задачу - мы в голове держим как минимум несколько понятий с которыми работаем. И из этих понятий уже строим логику.
Скажем так - программы работают со 100% точностью. Потеря даже одного бита в адресе приведёт к возникновению исключения доступ к запрещённому адресу, либо к искажению данных. Что не говорит что такое не происходит. Программы постоянно вылетают с ошибками.
Для предотвращения этого используют память ECC - там единично искаженные биты исправляются простым алгоритмом коррекции чётности на лету.
Я даже где то статистику читал - как часто срабатывает механизм исправления ошибок в памяти ECC. Примерно 1 ошибка бита на гигабайт оперативной памяти за 1,8 часа.
Но не стоит различать логические ошибки задуманного алгоритма и ошибки выполнения инструкций процессор. Это 2 совершенно разные вещи - хоть и называются ошибками.
Собственно как криво вы напишите алгоритм - он с 100% точностью будет выполнять всю кривизну задуманного.
Oftop/
Удивительный хабр. Вообще в этой теме никого не минусил. Ставил только плюсы. Никого не оскорблял. Навалил кучу инфы - на подумать. И всё равно получил минусы в карму )))
С удовольствием почитаю про хоть какие нибудь реализации. Разумеется сам тоже буду гуглить. Но может у вас есть пару ссылок?
И так сказать для дискуссии. Как вы считаете почему LLM со своими трансформерами взлетели, а про другие технологии что то не слышно что бы были доступны в массовом испльзовании?
Главное что даёт LLM - она способна понимать человеческий текст. Просто сейчас из неё пытаются выжить все соки и придать её чуть ли не божественные возможности.
А текст она понимает потому как работает с буквами и слогами и сочетаниями слов.
Это примерно как человеческий мозг работает - мы читаем слова не по буквам а целой картинкой. Свёрточные сети затылочной зрительной части мозга неплохо преврящают картинку целого слова в нужный сигнал.
Даже есть забавный эксперимент - если выкинуть большую часть букв из слова или переставить их местаим - всё равно будет понятно.
Я бы даже сказал что человек может воспринимать несколько слов одновременно или даже целое предложение - если у него в мозгах под это шаблон есть.
LLM работает точно также - она входящий текст с ошибками с склеенными словами и прочим мусором превращает в входные токены которые превращаются в нужные эмбединги.
Проблема SOAR, ACT-R и подобных жёстко структурированных систем это то что они могут работать с чётко поставленными данными. LLM это им обеспечит.
Ну и второе - LLM обеспечивает нахождение связей между понятиями. Это очень сильный механизм. Его надо использовать.
Это я написал так очевидное. Думаю может кто ещё каких интересных идей накинет.
SOAR и ACT-R это как раз методология подхода к проблеме интеллекта как - чётко определить что надо и отсюда реализовать это в алгоритмах. По моему мнению именно классическое определение (как именно реализуют эти алгоритмы сейчас фиг его знает) это более низкоуровневое поведение. Т.е. механизм объектной памяти и механизм алгоритмов поведения.
Я же тут во вех портянках продвигаю мысль - развития этого механизма до виртуального моделирования среды. Хотя кто его знает - может где кто прямо сейчас это делает.
LLM - это же алгоритм поиска скрытых связей в понятиях. Через близкое расположение векторов понятий.
Думаю что гибрид первого подхода и второго даст качественный скачок в построении AGI.
Один чудовищный эксперимент когда человека лишили возможность перемещения данных из быстрой памяти в долговременную я знаю. В общих чертах один любитель покрамсать мозги - обрезал что то в долях мозга, при этом нарушил своё же правило доктора - сделал одинаковую операцию на левой и на правой доле одновременно. В результате получился человек который помнил старое, а всё новое помнил лишь то что было не позже 15 минут - время быстрой памяти.
Но как это относится к проблеме мыслей? Мысли как раз в быстрой памяти и крутятся. Вот если бы доктор покрамсал участок отвечающий за быструю память - думаю в результате получился бы овощ. Или вы о проблеме проецирование образов из долговременной памяти на быструю? Честно говоря не вы не я не можем знать что и как там детально происходит. Я лишь для себя определю поверхностную логику работы. И кстати я вообще не утверждаю что это правда. Просто для меня текущая версия бытия такая. Новые данные - новые версии.
Мышление в моём понимании - это алгоритм, механизм, который строит виртуальную модель. Виртуальная модель включает в себя объекты. Виртуальная модель включает в себя законы внешнего мира. И главное это модель не статична. В ней происходит текущая последовательность активностей. Блин вот на ходу придумываю формулировки. Вобщем кроме механизма модели, есть ещё и механизм действий этой модели. У человека например этот механиз напрямую зависит от внешних сенсоров - глаза вилт хищника - бежать. Желудок сообщает что надо жрать - запускается механизм поиска еды. Короче у животных - этот механизм выживания. У человека с высшей нервной деятельностью - внешние сенсоры подменяются на виртуальные. Мы можем представить как едим лимон - и нам даже станет кисло.
В LLM вообще другая архитектура. Вот я как ни стараюсь не могу её архитектуру сравнить с архитектурой которая по моим определениям работает в голове человека. Вообще разные вещи. Но это не главное. Как я говjрил - AGI не должен быть человеческим. Но то что есть сейчас не выполняет тех минимальных требований который может сделать мясной интелект. LLM не может сидеть на кассе магазина. LLM не может писать код проекта от начала до конца. LLM вообще ничего интелектуального длинного не сделает. Она может генерировать бесконечный текст - который будет в результате бредом. LLM - сегодня это просто большая база данных. С API для запросов к этой базе данных. Да API по сложнее чем какой нибудь SQL. Но тем не менее это просто запросы.
Ну скажем так - человек это почти целиком и полностью безусловный рефлекс. Эндокринная система, работа сердца. Это всё аппартно зашитые рефлексы. Отдёргивание руки от огня происходит раньше чем сигнал доходит до мозга. Но честно вообще не пойму при чём здесь это.
И чего это вы на меня наехали? Альтернативщик какой то. Статьи не хотите приводить о внутреннем устройстве очередного ИИ. А я бы почитал. И чего вам шортсы то не угодили? Никто по шортсам не изучает - это просто доступный католог. Увидел интересного чела - пошёл гуглить видео или статьи по нём. Мне например в шортсах никогда ничего интресного не попадается - там все несут полную пургу. Ну и что?
Вы меня рассмешили ))) Я никому ничего не доказываю ))) Как вы думает - зачем я тут пишу эти простыни ? Ну главным образом для себя - я так прокрастинирую. Мне кабздец как лень писать очередной код. И второе - а вдруг я увижу что то дельное и интересное от других?
Ладно. Пойду уже спать.
Когда человеку сообщают новые знания - они попадают сначала в быструю память. А потом в долговременную. Физически это выглядит как прорастание новой дендритно-аксонной сети. Т.е. Человеческий мозг постоянно переобучается.
Пямять LLM - это веса в перцептронных слоях и вектора в векторной БД. Они статичны. Это обусловлено архитектурой.
Ваш пример краткосрочного обучения непонятен. Весь наш текст упаковывается в эмбединг - это что обучение по вашему? Это просто упаковка. Сжатие. А дальше с этим вектором просто происходит перемножение матриц.
По поводу мыслей. Я тут уже высказывал своё видиние развитие человеческого сознания. Если кратко - то сознания как бы 2 типа.
Первый тип - животное сознание. Присутствует у всех живых существ. Это модулирование внешней среды во внутреннее представление. Развито эволюцией для целей предсказания будущего. Хищники предсказывают куда прыгнет заяц. А зайцы следовательно наоборот.
Потомство оставляли те кто лучше это делал.
Это тип сознания я бы назвал автоматическим - там главенствуют безусловные рефлексы.
Второй тип сознания появился с появлением неокортекса и главное появлением речи. Мы получили возможность вести внутренний диалог с самим собой.
В повседневной жизни человек ведёт себя обычно по первому типу сознания - всё делает на автомате как робот. Но может переключится и на второй тип. Ведь мы осознаём себя именно в моменты внутреннего диалога.
Проекции образов из первого типа сознания на слова второго типа сознания и внутренний диалог - это и есть мысли.
В LLM мыслей нету - потому как нету внутренней проекции мира. Ну например мы читаем книгу - в голове сразу автоматически рисуется картина локальной арки книги. Рисуются герои. Наше сознание вообще отключается - мы переносимся в этот вымышленный мир. Читая диалоги книги - мы одновременно живём героем в этом виртуальном мире. Тоже самое когда мы смотрим кино. Тоже самое когда программист входит в так называемое состояние потока. Вообще проблема вопроса "Я" - я тут тоже неоднократно обсуждал.
Короче всего этого механизма в LLM нету.
Что касается учёных статей....Я вам их не приведу. Тема настолько новая что нету сейчас таких учёных. А учёных старой школы слушать их рассуждения о работе LLM без слёз невозможно. Да, он учёный - но просто вообще не в зуб ногой как устроена внутри современная LLM. Это я камень в огород некоторых которые иногда попадаются на ютубе или в шортсах
Ах да забыл. Вот https://www.youtube.com/watch?v=9ue_NLaSf0Y серия лекций просто потрясающего качества деталей. Вышла буквально "вчера". Ничего более подробного в русскоязычном секторе не найдёте. А если найдёте буду благодарен за ссылку.
Ну не пишут код они.. Вот все кто не пробовал все обломались. Просто это выглядит так - задаёшь простой промт - напиши мне сайт. Можешь даже расписать его - типа там менюшки, кнопки. И LLM естественно в своей огромной векторной БД найдёт шаблон похожего сайта и выдаст тебе портянку нерабочего кода.
Но это же только начало. Дальше ты начинаешь разработку этого сайта - и начинается ад.
Когда ты начинаешь просить найти ошибки в существующем новом увеличенном коде или доработать его - это прост превращается в самобичевание. LLM найдёт ошибки там где их нет. Там где они есть не найдёт. И вместо самостоятельной разработки и тестирования - ты попросту занимаешься болтовнёй с LLM - а это занимает очень много времени. Больше если бы сам писал и тестировал.
У меня LLM занял следующую нишу. Написать маленький алгоритм. Сортировка там какая нибудь - который копипастишь и сам проверяешь на работоспособность.
И анализ кода. Скинул портянку - и читаешь вывод. Потому как она хорошо подмечает какие то локальные вещи. Иногда то что она выдала помогает самому обратить внимание на место в коде на которое у тебя зашорился взгляд. Но скажу честно такой двойной анализ бреда выданного LLM и анализ собственного кода - жутко выматывающая процедура. Мне смешно слышать когда кричат - программисты скоро не понадобятся. Да даже опытному программисту трудно вести такую двойную работу по анализу.
Скажем так. Я смотрел множество интерпретаций от разработчиков на тему - а что же там собственно происходит. Не буду говорить что самым частым эпитетом которым они пользовались было - мы вообще не понимаем почему это работает, а также как они вообще разрабатывают дальше современные LLM. А разрабатывают они их просто наугад. Просто пробуют разные коэффициенты для локальных алгоритмов или просто тусуют эти алгоритмы. ПО типу а давайте пропустим не через 12 слоёв перецептрона, а через 16 и зациклим это через трансфомер. Или давайте переобучим 2,5,10 слои. Через месяц обучения смотрим что получилось - нихера не получилось. А давайте RAG на вход прикрутим ! Или в середину. И по новому. И при этих всех модификациях именно кор-алгоритм не меняется.
Так вот. Они (натягивали сову на глобус) предполагали что поиск в многомерном векторном пространстве, а в реальности тупое перемножение матриц, стал подобен... мыслям! Как по мне - они просто создали огромную БД куда аппроксимировали всю обучающую мега выборку. Т.е. сложили рядом друг с другом (в векторном виде) просто даже не слова. А слоги или даже буквы! Если глянуть величину эмбединг словаря - он будет занимать ushort величину. 64K всех возможных слогов, букв.
Если убрать притянутый за уши рандомизатор - механизм температуры. То на входящий промпт LLM будет отвечать всегда одним и тем же выводом слог. Что говорит что это просто конечный автомат.
Человек одним входящим предложением может переосмыслить весь свой жизненный опыт, т.е. переобучить мясную нейросеть. LLM же принципиально не обучаются от входящих промтов. Они статичны.
У LLM нету локальной памяти. Что бы они могли поддерживать контекст - весь предыдущий трёп каждый раз помещается в входящий промт - что бы получить один единственный маленький вектор, точка отправления которого и будет служить в векторном пространстве.
Кстати механизм внимания меня вообще убил - тупо складываем кусок предыдущего вектора с новым в итерации. Удивительно что это работает.
Вывод этой портянки текста. Современные LLM не имеют внутри фактов объектов. Не обучаются на входящей информации. Не модулируют факты объекты в виртуальном пространстве. Не имеют короткую память - как у человека. Не имеют внутреннего диалога - это следствие отсутствие визуализации внешнего мира. Не имеют никаких стимулов - это тупой конечный автомат по предсказанию следующего слога, буквы. Они не мыслят вообще - их вывод это иллюзия мысли. Внутри нету никаких проекций в быстрой памяти которой тоже нет.
Короче я задолбался писать. И да - они весьма полезные поисковики информации.
Всевозможные гибриды SOAR, ACT-R и LLM это то что на слуху. Вроде как в спец конторах такие гибриды применяют. Слышал что в Америке в конторах для модулирования и предсказания войн и подобного. В конторах прогнозирующих мировые рынки и их тенденции развития. Там годами пилят подобные спец под себя заточенные программы. Наружу они не выходят.
Да нафиг никому не сдался интеллект похожий на человеческий. Со всеми его недостатками и эволюционными костылями.
Нужен именно НЕчеловеческий ИИ который бы ничего не забывал. Всё запоминал. И делал интеллектуальную работу без ошибок.
Что мы имеем сейчас? Алгоритм поиска соседнего вектора в векторном пространстве. Путём чудовищных вычислений - этот алгоритм каким то чудом стал выдавать на выходе псевдо-похожую речь.
Кто знает как внутренне устроенна LLM - тот у виска крутит пальцем когда слышит рассуждение армии блогером о всемогущем искусственном интеллекте - который вот вот, ещё чуть чуть, уже в 2030 году всех победит и всё придумает.
А те кто плотно с ним работает (например я) получаю то что он может дать и не более. Если я прошу написать его алгоритм - он в 99.99 это сделает блестяще - потому как в векторном пространстве есть цепочка векторов реализующая этот алгоритм.
Но если я дам ему проверить свой код. Уже со страницы кода - это просто финиш. Он найдёт кучу неисправностей, потом ты ему будешь доказывать что это не неисправности. Спустя час он полностью с вами согласится, а потом ты сам увидишь дыры в коде.
Вам кажется что у вас диалог, а в реальности это алгоритм упаковывания всего вашего трёпа в короткий вектор - эмбединг. И уже из этого вектра идёт дальнейший поиск.
А всё потому как там нету алгоритма который бы конкретизировал образы-модели и строил вокруг этих обектов виртуальную модель поведения. Там только алгоритм вытаскивания соседнего вектора из своеобразной огромнейшей векторной базы данных.
Да там вообще нету алгоритма чётких фактов. Вообще всё что выдаёт LLM на выходе - это всё приблизительно. Просто чудовищными мощностями загнали эту приблизительность в 99.99%. Но скоро докатимся что для простого ответа нужна будет мощность АЭС.
И всё из за того что неправильно выбран алгоритм. Скажем так - я уже сейчас начинаю видеть посты от разработчиков LLM - что они пошли неправильной дорогой.
Так как раз проблема в том что те статьи экспериментов что я встречаю от учёных - сама структура эксперимента описана либо очень поверхностно, либо очень-очень поверхностно. Не знаю может где в каких платных научных статьях и есть более детальное описание. А может детальное описание - это коммерческая или какая там - "учоная" тайна. Или как вы пишите - никому это не интересно. Людям подавай информационную жвачку. Фотоны летают в прошлое! А электроны передвигаются выше скорости света! А детали - которые не то что это опровергнут, вообще покажут что речь про другое. Это нигде не достанешь.
Классика. Учёный изнасиловал журналиста (с)
Вы уловили суть. Вся физика да и вообще всё - строится на наблюдениях. Каждый какой то физический эффект имеет множественное количество наблюдений и экспериментов. И вот есть элементы природы до конца не понятые - и вместо того что бы привести множество наблюдений касательно эффекта - в очередной научпоп статье объясняется эффект гравитации - простынёй. И в эпилоге говорится - мол смотрите как всё понятно. А раз вы не понимаете, и задаёте уточняющие вопросы - то вы тупы.
Ка же меня бесят статьи описывающие квантовые спутанные частицы. Там деградировали до того что уже и в прошлое летают и в будущее. Вместо того что бы подробно описать очередной эксперимент который делают с частицами. Глядишь кто то с не зашоринным взглядом и увидит что то новое.
А опыты с пролетанием фотона через 2 щели! Статьи про это просто лютый бред. А мои вопросы - какой размер щелей, какая толщина, какой материал щелей, как вообще 1 фотон смогли выпускать, и как его детектируют, устройство детектора, на каких принципах работает детектор. Таких ответов вообще никто нигде не рассматривает.
И так прост везде. Весь научпоп - это прсто информационный мусор.
P.S. Вообще понимаю почему блогеры в своих видео и статьях пишут бред. Потому что они кроме бреда ничего писать и не могут, да и не нужно им это. И почему отчёты учёных тоже часто похоже на бред. Гранты сами себя не распилят. Так и живём...
Я бы сказал что ситуация ещё хуже. Особенно в физике. Читаешь про какую нибудь квантовую физику, взаимодействие частиц, или например ОТО. Пытаешься понять. А тебе аналогии сыпят - да так что вообще всё неправильно. А те кто сыпят этими аналогиями вместо реального объяснения, считают что выполнили свой долг. И уходят в закат.
Хотя я уже давно убедился - все те кто сыпят аналогиями, сами нифига не понимают что на самом деле творится. Отсюда имеем - электроны подобно планетам вращаются вокруг протонов. Гравитация это искривление пространства. И прочий бред. Ничего общего не имеющий с реальностью.
P.S. По поводу гравитации и искривления пространства - во первых это гипотеза, математический аппарат сходится, а вот реальность - тут никак не проверить. А во вторых земное притяжения по формулам это в 99.99 обусловлено искривлением времени. А уж это объяснение вообще взрыв мозга для понимания. И вообще не доказательно. Потому как не особо доказано что является следствием чего. ОТО Эйнштейна говорит что искривление времени первично. Но ничего не противоречит что гравитация первична, а она уже порождает искривление времени.
Короче никто ничего не объясняет. Потому как сами ничего не знают что там в реальности творится. А математика - она на то и математика. Она нереально точно может рассчитать - ЧТО ТО. Вот только это что то и реальность не всегда совпадают.
Ха! Некому не забывать. Сколько там программеры работают на одной работе?
Если ты работаешь больше 5 лет на одном месте - то на тебя уже как на дурочка смотрят.
Утрированно конечно. Но обычно ты просто приходишь на легаси проект с тонной кодовой базой. Тебе прилетают таски - поправить баг. И ты в лучшем случае разберешься в работе в одном конкретном модуле. А потом попросту уходишь на другой проект. Тебе на замену следующие приходят и также уходят.
А как устроены галеры по типу EPAM. Да там сам принцип работы что ты постоянно скачешь с проекта на проект. Там пописал, сям нагадил. И так по кругу.
Непомню точно но как то чичтал правила про внутреннюю кухню мелкомягких. Там были весьма причудливые правила переступить которые грозилось "смертной казнью."
По типу - никогда не трогать старых переменных, а всегда заводить новые. Ну или что то такое. При желании можно нагуглить
Почему не разваливается? Регулярно разваливается. А в последнее годы это вообще превратилось best practic!
Возьми любой учебник по бизнесу - там просто огромными красными буквами везде написано, запускай продукт на рынок максимально быстро настолько это возможно! Иначе обгонят конкуренты. Приложение не падает сразу при старте? Быстро в продакшен.
Пользователи сейчас играют роль тестеров.
Ну какое то количество компаний банкротится и закрывается сразу после выхода продукта на рынок (в геймдеве это прям видно постоянно).
Но остальная часть в кривь и вкось продолжает работать - и главное за это бизнес получает деньги.
Поэтому нельзя говорить этот код дерьмо, а этот красив! Всё зависит по каким критериям его оценивать. А начальник - бизнесс, а не писатели кода. И критерии их успешности вообще не содержит какой то там код.
Никогда не встречал деление программирования на любительское и профессиональное. Даже интересно было в уме повыбивать критерии для одного и для другого.
От себя могу высказать некоторые жизненные наблюдения. Да - когда работаешь в кровавом энтерпоайзе требуют некоторое соблюдение стилистики кода когда работаешь в текущей команде.
Но! Продакшен компании это в 99.99 легаси код. Который разрабатывается годами. И команды там меняются часто. Более того типичный кейс - тебе прилетает таска, исправить баг, или новя фича. Время строго ограничено. Тебе платят деньги не за красивость, и да же не за код. Тебе платят деньги за закрытые таски. Думаю не надо тут дальше рассказывать про приоритеты которые выбираются... Про рефакторинг я вообще не говорю. Никогда бизнес не поймёт зачем надо что то переделывать просто так. Да это же вредительство!
И возьмём программинг для себя так сказать. Для души. Ооо! Тут просто рай для перфекционизма. Не вопрос 10 раз полностью переделать архитекутру и переписать почти весь код, когда 10 раз попадаются какие то новые вводные данные. Разумеется это продолжается пока тебе это интересно (не выгоришь).
Так что я бы определил что "профессиональный" код ужасный но он продаётся. "Любительский" красив, но почти всегда уходит в забвение...
Сейчас проффесиональный код ещё больше поражён раковой опухолью ИИ. Часто слышу что в компаниях заставляют писать с помощью ИИ. NVidea вроде вообще хвасталась что мол половину кода драйверов написана ИИ. А потом.... Туча тем в инете. Как работающие всегда вещи стали жрать в 10 раз больше ресурсов. Про баги и дыры и не говорю.
Сам изучаю работу LLM. И знаю как там что работает. Она может нагородить на каждый запрос пару листов кода - который будет впринципе делать то что подали в промт. Пару листов кода на каждый запрос. И это просто вавилонская башня кода...
P.S. Ну я тоже в своё время на дельфи много программил. В те времена С# то и не было (C# 1.0 вышла в 2002 году с релизом Microsoft Visual Studio .NET, Delphi же с 1995 года ). Отличная среда. Кстаи даже сейчас продолжает жить. Только несколько преобразовался.
Если сложение строк идёт в одном примере то компилятор преобразует это в string.Concat. Тут как раз такой пример.