LINUX.ORG.RU
ФорумTalks

Так какие же языки программирования наиболее эффективны с точки зрения использования токенов?

 ,


0

4

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

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

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

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



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

Как хорошо, что люди не используют ии чтобы делить текст на токены.

ya-betmen ★★★★★
()

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

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

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

Дык надо сделать язык специально для ИИ. Думаю что-то на базе иероглифов. Идеально для ИИ будет.

Там уже проверили APL. Получилось не очень. А вот концептуально похожий на него J (но с ASCII) оказался даже эффективнее, чем Closure.

static_lab ★★★★★
()

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

Т.н. «ИИ» никак и ничего понимать не может принципиально.

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

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

ЗЫ: Ну очень не хватает «реакции» КГ/АМ, потому что в данном случае это оно и есть, и «клоунв» тут явно маловато.

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

отличная идея ! осталось придумать язык в котором ИИ разбираться проще всего :-)

на самом деле нет. Чем больше материалов (исходников) на языке, и чем чаще фрагменты употребляются совместно с естественным, тем «лучше ИИ кодит». Он-же не программирует, а выбирает схожее с запросом

То есть востребованы массовые Python/Somelang-нотебуки, и максимально комментированный код с легко определяемой привязкой комментов.

imho хуже всего LLM будет с генерацией lisp/tcl - они теперь относительно редки и гомоиконны, код/данные/коменты неразличимы

MKuznetsov ★★★★★
()

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

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

Т.н. «ИИ» никак и ничего понимать не может принципиально.

А так называемый «ЕИ*» что-то может понимать? Мы уже разобрались как он работает? Не получится ли, что человеческий интеллект, это та же нейронка, просто больше на несколько порядков?

*естественный интеллект

Camel ★★★★★
()

...а мы все идём в газенваген.

Пофиксил, не благодари.

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

Mechanistic interpretability и что он находит в этом «ничего более»? Нет, не слышали.

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

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

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

yvv1
() автор топика
Ответ на: комментарий от Stanson

Ну очень не хватает «реакции» КГ/АМ

Капитан Очевидность отмечает, что отношение массы к произведению силы тока и расстояния никакого физического смысла не имеет

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

А проверяли носители иероглифической письменности или основанной на латинице?

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

От создателей «Китайцы ничего не могут придумать сами! Только копируют!»

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

Думаю что-то на базе иероглифов.

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

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

Судя по результату, сгенерировалась какая-то поделка даже проще, чем MS Paint. Примерно такую же фигню мне Claude с нуля нагенерировал.

static_lab ★★★★★
()

Многословная Жаба уделала модные молодежные Раст и Гошку, а всех трех дед на Похапе лол.

Пистон был обоссан Перлом и (((Раби))).

Их всех унизил кто бы вы думали? Разумеется Лисп.

MoldAndLimeHoney ★★
()

Вообще, когда я фантазировал об ИИ, я предполагал, что он будет кодить сразу в машкодах/байткоде. А оказалось, что ему нужен ЧЕЛОВЕКА-ПОНЯТНЫЙ язык лол. Это все, что нужно знать об искусственном ИНТЕЛЛЕКТЕ.

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

Вообще, когда я фантазировал об ИИ, я предполагал, что он будет кодить сразу в машкодах/байткоде. А оказалось, что ему нужен ЧЕЛОВЕКА-ПОНЯТНЫЙ язык лол.

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

yvv1
() автор топика
Ответ на: комментарий от Stanson

Тупо идиотский архиватор с гигантскими потерями и ублюдочной «распаковкой»

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

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

Вообще, когда я фантазировал об ИИ, я предполагал, что он будет кодить сразу в машкодах/байткоде. А оказалось, что ему нужен ЧЕЛОВЕКА-ПОНЯТНЫЙ язык лол.

Не нужен ему человеко-понятный язык. Если для написания кода берут LLM обученные на языках, то и на выходе будут языки.

Обучите на байткоде будет байткод на выходе, но это будет уже не LLM.

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

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

Это все, что нужно знать

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

CrX ★★★★★
()

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

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

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

А нельзя просто скормить llm спецификации, а дальше она сама?

В ответе получите описание как писать по спецификациям. Есть простое правило: мусор на входе – мусор на выходе.

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

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

А нельзя просто скормить llm спецификации, а дальше она сама?

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

yvv1
() автор топика
Ответ на: комментарий от sabacs

А нельзя просто скормить llm спецификации, а дальше она сама?

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

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

Причем здесь сайт? Я о формальной спецификации ЯП.

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

Тогда откуда столько визгов про грядущий agi который всех уволит?

Белки истерички которые дупля не отбивают в данной теме и ведутся на хайп и маркетинг.

Obezyan
()

Мы ведь на всех парах летим в светлое будущее

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

scanner
()

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

Вряд ли кто-либо станет разбираться в сгенерированном коде ибо кода вскоре «народится» огромное количество. Тесты прошли да и ладно. А раз так, то и читаемость исходного кода людьми будет не так важна, как его производительность работы.

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

Вряд ли кто-либо станет разбираться в сгенерированном коде ибо кода вскоре «народится» огромное количество. Тесты прошли да и ладно. А раз так, то и читаемость исходного кода людьми будет не так важна, как его производительность работы.

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

Что-то это мне напоминает…

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

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

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

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

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

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

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

Так твой мозг примерно по похожей схеме работает.

Да-да, конечно-конечно. А бензин это тоже органика, как хлеб или мясо.

Так что скоро закон Мура для нейросеточек придумают.

Закон Мура такой закон оказался, что прям всем законам закон. Аж на несколько лет. Я уж молчу про все эти маркетинговые сказки о квантовых компьютерах.

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

Вряд ли кто-либо станет разбираться в сгенерированном коде ибо кода вскоре «народится» огромное количество

Я понимаю когда это говноприложуха-однодневка в аппсторе, а если это прошивка рентген аппарата или электроники в самолёте?

Тесты прошли да и ладно

Особенно если языковая модель возилась с написанием тестов, а потом решила что все тесты должны состоять из assert(true).

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

Я понимаю когда это говноприложуха-однодневка в аппсторе, а если это прошивка рентген аппарата или электроники в самолёте?

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

Пока ещё водятся денежки в кармане, самое время переучиваться на новую профессию. Я думаю, что пара лет ещё есть для этого.

Особенно если языковая модель возилась с написанием тестов, а потом решила что все тесты должны состоять из assert(true).

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

Enthusiast ★★★★
()

для ИИ нужно больше смысла в меньшем кол-ве токенов

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

JaneDoe
()

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

Вебмакака ближе к бешеному тостеру, чем к программисту. Но это мы уже знали.

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

  1. ИИ не существует, это ЛЛМ.

  2. Ничего оно не «понимает», оно работает по алгоритму предсказания следующего токена.

  3. Для лучшего понимания кода нужно понимать его архитектуру и записывать код в совместимом с читателем стиле. Токенизируемость кода не имеет общего с программированием человеком. ЛЛМ не умеет реально понимать архитектуру, только пытаться подобрать изместные паттерны.

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

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

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

Вся остальная разработка неизбежно станет автоматической ибо в сотни раз дешевле и производительнее человеческой.

Это пока LLM в убыток за счёт инвесторов работают, не?

static_lab ★★★★★
()

Во первых надо определиться какие языки рассматриваем. Недавно программист решил переписать проект по ряду причин с с++ на go . я спросил: а почему на go? когда все переходят на rust. Он сказал что ИИ лучше герерит на go и еще какая то проблеблемка с платформой.

Так что go, но не факт. Руководитель по какой то веской причине может захотеть rust или что-то еще.

jura12 ★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)