LINUX.ORG.RU

Промежуточный язык для ИИ

 


0

1

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

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

Так вот. Есть gap между планированием и коданием. В котором и плавают нейросетки. И глючат

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


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

Суть в том, что нужен какой-то язык программирования который понимает общепринятые подходы к программированию на например жабе, C++ + Qt, С++ вообще и т.д. Но при этом он не описывает саму программу а лишь потоки данных.



Последнее исправление: ckotctvo (всего исправлений: 1)

Я наверное сделаю для тебя открытие, но языковые модели, несмотря на слово «языковые» в названии к языкам отношения не имеют никакого, за исключением конкретной предметной области применения. Это просто тип корелляционных данных (они могут быть не только языком) который мы вводим и хотим продолжить. То что ты хочешь сделать, поменяет форму, но не содержание вывода, так как содержание какое было такое и осталось там, но да могут быть оптимизации если машине сделать более машинисто. Самый эффективный ввод который ты можешь сделать всегда будет соответствовать тому в какой он форме был на этапе создания модели, причём у каждой модели будет своё, поэтому ты этого никогда не сделаешь в рамках унифицированного вида, пока нет одного монополиста под которого можно подгонять.

Нейрослоперы вы хоть изучите как работает ваш предмет обожания :D (это издёвка, но добрая, а не злая)

anonymous
()

Язык декомпозиции и композиции. Язык разбиения сложной задачи на более лёгкие (или уже решённые) подзадачи и последующей сборки этих подзадач в один комплекс.

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

anonymous
()

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

bbc69
()
Ответ на: комментарий от bbc69

обучающих материалов

Прикол в том что эти материалы только «правильные», нет «неправильных». Ошибка выжившего, галлюцинации.

anonymous
()

нужен какой-то язык программирования который понимает общепринятые подходы к программированию

Парадигма программирования © (wikipedia.org). Выбирай по вкусу…
Но язык ничего не понимает, он средство «причёсывания мыслей» и отображения «букв на цифры».

при этом он не описывает саму программу а лишь потоки данных.

Data-driven programming © (wikipedia.org).

quickquest ★★★★★
()

Metaprog же. В связке с ИИ будет просто пушка

anonymous
()

Я слышал об исследовании билингвов, там говорят одна и та же область мозга отвечает за оба языка (в отличие от тех, кто учил 2й язык в сознательном возрасте), я так понял разница в языках не настолько большая если не пытаться описывать различия текстом, а засунуть всё в нейросеть. Так что новый язык - «ненужно»)

sergej ★★★★★
()

Нам нужен universal modeling language номер 16.

Давайте соберем комитет и пусть сочиняют, в этот раз точно получится.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от ckotctvo

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

Но тут тоже есть проблемка: язык - не только синтаксис, но и набор подходов к написанию кода. У разных языков он очевидно разный. И что брать будем? Вместе оно превратится в винегрет.

bbc69
()

Нужен язык планирования программирования.

Нет, не нужен.

sparkie ★★★★★
()

Тут кошка атакует

Ясно, понятно.

@ckotctvo — ребёнок, не забывать при общении.

Короче, пишу так, чтоб было понятно даже детям:

приподнятый корень из косинуса нейросеть делает с ошибкой

Конечно делает с ошибкой. Это ведь зависит не от обучения, а от особенностей функции активации. Раньше, пока ReLU была основной функцией и её не поменяли на GeLU/SiLU/SwiGLU она не то что «зависимости» в виде корней не видела, а имела проблемы с кластеризацией гладких границ, например, вписанный в круг (тут круг это условность, возникающая при проецировании многомерного пространства на двухмерное, на самом деле там многомерный его аналог) кластер не могла найти.

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

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

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)

Я бы предложил для начала такой специальный язык «планирования программирования» и «планирования всего остального»… Русский. Выучитесь грамотно им пользоваться - и люди нейросети потянутся. Правда, вам этого очень не хватает - умения сформулировать на естественном человеческом языке свою мысль в понятной, необходимо-достаточной, непротиворечивой форме. Пока этого нет - никакие другие языки вам не помогут - ни английский, ни UML, ни другие формальные, неформальные, полные или неполные по Тьюрингу.

EvilSpirit
()
Последнее исправление: EvilSpirit (всего исправлений: 3)

UML - универсальный язык моделирования. Предлагали уже такой?

Saakx
()

плохо решают сложные задачи но хорошо решают простые задачи

протечка в четвертой криокамере

slowpony ★★★★★
()

Промежуточный язык для ИИ

Как только поймут промежушный язык для МНУ, так сразу.

slackwarrior ★★★★★
()
Ответ на: комментарий от anonymous

ИМХО ИИ создали для того, чтобы люди могли более эффективно творить зло.

Люди ведь человеко убийцы искони.

anonymous
()
Ответ на: комментарий от anonymous

А ножи что бы резать друг друга (%

Любая технология может быть применена как в пользу так и во вред.

США например частенько акцентирует для чего им нужен ИИ.
Так вот вовсе не для добрых дел.

anonymous
()
Ответ на: комментарий от anonymous

Плотность графической информации выше, чем у текста.

Кхе-кхе! (Вспоминает блок-схемы по ГОСТу и импрессионистскую живопись Метапрога.)

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

hobbit ★★★★★
()
Ответ на: комментарий от anonymous

«Одной и той же газетой можно убить и муху, и человека» (c) Илья Глазунов

hobbit ★★★★★
()
Ответ на: комментарий от dataman

Ржавой стал популярен, именно когда rustc save-analysis появился. Без него это писец жесткий языкм для понимания 🐈

steemandlinux ★★★★★
()
Последнее исправление: steemandlinux (всего исправлений: 1)

все языки програмирования созданы для человекочитаемости. машина думает по своему, логика у нее своя, сильно отличная от мышления человека. чтобы привести ее к пониманию человеком и создали ЯП. от болеее близких к машине: ассемблер, до более близких к человеческим понятиям: функции, потоки, объекты, абстракции, парадигмы… это прокладки/костяли нужны чисто для человека.
единственная структура стоящая на пересечении всего онного самого - AST. в которую парсят/токенизируют текст на ЯП.
ИИ обрабатывает промт и на его основе формирует AST, (никакой костыль для ИИ не нужон, он сам себе машина) который апосля преобразуется в бинарь. фсё… профит !!
чисто мои предположения :)

pfg ★★★★★
()

Невросеть корень из пинуса может узнать только если догадается прогу написать и запустить, иначе она высрет лишь наиболее вероятный токен, что в 99% случаев неправильный ответ

anonymous
()

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

Суть в том, что нужен какой-то язык программирования который понимает общепринятые подходы к программированию на например жабе, C++ + Qt, С++ вообще и т.д. Но при этом он не описывает саму программу а лишь потоки данных.

пролог. а затем на нём реализовать алгол-68 и литературно-грамотный Web-68

ну то есть: вот берёшь ты например, обычный пролог и DCG (direct clause grammars) оттудова: DCG (metalevel.at) .

и пишешь на DCG аналог двухэтажных грамматик ван Вейнгаардена, VWG. стандарт Algol-68, в двух вариантах: первоначальный draft как более каноничный, с более компактным, но и более сложным описанием; и обновлённый Revised Report 76 года – с более громоздким, но в чём-то более запутанным описанием.

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

вот например, публикация: Executable Semantic Definition of Programming Languages Using Two-level Grammars (Van Wijngaarden Grammars

что там происходит? определяем простой императивный язык программирования вроде паскаля, бейсика или питона (или: алгол-68) на VWG, 1VWG, 2VWG и т.п. через понятия/правила; метапонятия/метаправила; гиперпонятия/гиперправила – в итоге раскручивая интерпретатор простого императивного языка программирования (переменные и их окружения, bindings, environment; присваивание переменных;… ; if/then/else; циклы и т.п.)

из VWG грамматики и определённого в ней исполняемого описания семантики интерпретатора.

сравни это с классической метациклической раскруткой лиспа, например в изначальном предложении Маккарти, или ту же реализацию из SICP.

сравни это например, с реализацией интерпретатора и компилятора простого языка типа паскаля от Markus Triska на прологе: alzint lisprolog

далее например, автор пишет в той публикации что он взял парсер VWG на сишечке в 1000 строк и переписал на ABC в 200 строк.

anonymous
()
Ответ на: комментарий от anonymous

о, ты ведь не знаешь о языке программирования ABC (cwi.nl), не так ли, $username? а между тем этот ABC (cwi.nl) был более-менее адекватный язык программирования, в чём-то похожий на ЛОГО и лисп, в лучшем смысле.

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

а между тем, в ABC изначальном и ЛОГО были претензии на естественноязычный синтаксис: HOW TO в ABC, TO в ЛОГО – вот так определялись функции. по сути что в ЛОГО что в ABC – списки с символами, почти как в РЕБОЛ/RED/Red\System или в лиспах.

так что далее: раскручиваем реализацию вроде alzint на dcg в реализацию полноценного алгол-68 на VWG.

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

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

далее можно посмотреть например, на PopLog, Shen, tamgu, LispE: лисп+пролог +ml в некоторых вариантах, прозрачно интегрированные в общее ядро.

то есть, далее можно раскрутить лисппролог как минимум тремя способами: типа PopLog/tamgu; типа лисппролога у Маркуса Триска; или, раскрутить сначала alzint на DCG в алгол-68, на котором написать лисп (и пролог).

anonymous
()
Ответ на: комментарий от anonymous

затем берём например, литературно-грамотное метапрограммирование Дональда нашего Кнута.

Дональд Э. Кнут по сути написал свой «TeX: the program and the book» изначально как раз на алголе стенфордском под мейнфреймы – в виде литературно-грамотного компендиума с манускриптом и своего макро или даже мета процессора WEB: tangle.web, weave.web (см. например: tex-fpc, tex-gpc где собирается минималистичный дистрибутив TeX достаточный чтобы собрать примеры, и metafont – как раз в виде изначальных tangle.web + change file с патчами под FPC или GPC).

далее, автор книги PAME «Programming Algol-68 Made Easy» – написал свой вариант WEB: Web-68

написал он свои tang.a68, weav.a68 – как раз на алголе. на RosettaCode есть примеры в Category:Web 68

там например: GUI приложение на XForms на algol68toc, реализации алгола-68 транспилируемой в Сишечку с ALIEN прототипами FFI на C.

далее можно посмотреть например на djot и djota.pl.

то есть: на парсере DCG грамматик пролога написана реализация djot – транспиляция markdown подобной разметки djot в html.

Web-68 тоже транспилирует в HTML, а не в изначальный православный TeX.

так что далее в принципе по вот той спецификации метаязыков Web-68 и WEB изначального должно родиться нечто их объединяющее, и реализация tang.pl/weav.pl на DCG.

ещё например, можно посмотреть на проекты FoNC/STEP и OMeta парсер на смоллтоке – или также на LogTalk=Prolog+SmallTalk и примеры в его репозитории парсеров, аналогичных OMeta только на DCG, но и на ООП прологе LogTalk тоже.

то есть: раскрутив эту инфраструктуру, можно получить аналогичное Web-68, djota, PopLog, lisprolog – только на прологе.

далее делаем свой algol-68 в духе новомодного ga68 с модулям в gcc 16.2 , либо вот того algol68toc (или, опция –compile в Algol-68g genie для конпеляции через clang транспилированого в сишечку алгола и plugin compilers для FFI с батарейками)

и делаем нечто вроде PopLog, Shen, tamgu, LispE. на которых и пишем эти свои Web-68,djota, … и прологоалгололисп.

на прологоалгололиспе – пишем теперь парсер почти естественного контролируемого языка.

например, смотрим на Attempto. и смотрим на OpenCyc (который на abcl + пролог + лисп на прологе для парсинга KLIF и онтологий OpenCyc).

то есть: парсер псевдоестественного языка типа Attempto или с базой знаний по онтологиям, объектам и классом типа фреймовой – типа OpenCyc интегрируем во всё это на прологе (или: алголе, или: лиспе).

например, смотрим на репозиторий prologmud, logicmoo. там фактически сделан аналог LambdaMOO только на прологе, с интегрированным OpenCyc подобными базами знаний.

далее пишем на этом нечто вроде юпитероноутбукной лламы цпп.

и, где тут место лламе? она толком не нужна если повсюду пролог на прологе через пролог чтобы пролог чтобы алгол чтобы web чтобы opencyc и attempto.

ллама это ч0рный ящик с большой красной кнопкой. а так – мы получим нормальую объяснительную модель, подобным образом парсер, разработанный на прологоалгололиспе — будет в качестве нормальной трассировки прологопарсера объяснять свою executable semantic definition на каждом шаге, объяснять почему он понял и распарсил именно вот это именно вот так.

ударим пролетарским прологоалгололиспом по мутным ч0рным ящикам галлюцинаций латентного пространства эмбеддингов с токенами – работающих как надо, как задумано: прозрачно и понятно на каждом шаге, всю дорогу!!!

anonymous
()
Ответ на: комментарий от anonymous

Суть в том, что нужен какой-то язык программирования который понимает общепринятые подходы к программированию на например жабе, C++ + Qt, С++ вообще и т.д. Но при этом он не описывает саму программу а лишь потоки данных.

метапрог тут тоже при всём этом.

например, рисуешь свои метапроги с описанием dataflow DSL на каком-то GUI для пролога: XPCE под SWI-Prolog, либо чего-то поверх LogTalk, либо изобретаешь свой велосипед на REBOL, RED, RED/System, например.

к примеру, нечто вроде DRAKON-Editor, только не на Tcl/tk ActiveTcl – а на RED (в духе того лайвкодингового ёкселя в 14 строчек).

или чего-то типа конечных автоматов. например, читаешь книжку А. Шалыто про SWITCH-технологию и изобретаешь нечто вроде UniMod в духе IDE для FSM только не на жабе с эклипсами, а на RED и RED/System, диалектах parse, vid, draw (там даже диалект SVG появился).

и – пишешь на эдаком прологоалгололиспе свой метапрог с блекджеком и прочими всякими….

anonymous
()

Но при этом он не описывает саму программу а лишь потоки данных.

чем тебе не нравится например, в этом смысле WEB изначальный или Web-68 HTML-ный?

именованный блок кода включается в другой именованный блок кода. это отношение доминирования, частичного порядка для топологической сортировки гипертекстовых блоков кода, по отношению блок А включает Б если в определениях блока кода А (устанавливающем полном @<блокА@>= … @ или дополняющем инкрементальном, включая все @<блокА@>+= … @ ) внутри … есть ссылка на блок Б в качестве трансклюзии из Xanadu изначального: ссылки включения, цитирования, include-ссылки.

допустим, ссылки могут быть не только текстовыми, из текста блока А в текст блока Б. но и ссылками цитирования, трансклюзии – включая вставкой ссылаемое; или процедурными в стиле блекбоксового компонетн паскаля: <StdLinks.OpenLink(‘….’)имя-ссылки<> или аналогичное изоморфно эквивалентное: <StdInterpreter.LoadModuleAndRunCommand(‘out.text(«Hello from Oberon-2!»);’)процедурная-ссылка-коммандер<>

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

кнопочки в метапроговом диагармере, запускаторы конпелируемых подфункций и транспилируемых FFI привязок в няшную сишечку, вот это вот всё —

— … дабы невозбранно достигнуть желаемого.

anonymous
()
Ответ на: комментарий от ckotctvo

посмотри на Spec Driven Development.

на кукумбер Behaviour Driven Development. и на Attempto. и на парсер BDD DCG грамматиками.

метапроги и ИИшнеца доведут тебя до цугундера кукумбера.

anonymous
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария