Уж лучше LSW (Linux Subsystem for Windows) :) Несвободная, телеметрическая и живущая своей жизнью винда в изолированном контенейре на линуксовом хосте.
В чем разница между кодом и алгоритмом? Только в уровне абстракции. А уровень абстракции можно повышать бесконечно, чем собственно и занимается математика.
Вот скажем код который выводит числа от -87134 до +983724. Нейросеть его легко напишет, и такого кода практически гарантированно никто раньше не писал. Формально, нейросеть генерирует именно нечто новое.
Далее, код который выводит числа от M до N. Это еще код или уже алгоритм? Мы просто поднялись на уровень выше, заменили конкретные числа на обобщенные. Как переход от арифметики к алгебре. Хотя что конкретное число, что переменная "икс" - всего лишь математические абстракции, и то что делают первоклассники, складывая в столбик - всего лишь формальные манипуляции над абстрактными символами по определенному алгоритму. Это ничем не отличается от того что делают студенты, вычисляя производные и интегралы - просто другой алфавит языка и другие правила.
Мы можем например попросить нейросеть сгенерировать код, который выводит не числа, а программные коды для какого-то класса конкретных алгоритмов с параметрами. Такое вот метапрограммирование. Да, это уже сложнее, но вопрос чисто количественный - мощность нейросети.
Вот откуда вы это берёте??? Вам так кажется? Вам хочется в это верить? Какая-то новая религия как будто зарождается...
Никакой религии, обычная техническая экстраполяция. ИИ вполне способен генерировать новый (при том рабочий) код - то есть такой, которого нет нигде в интернете. Новый код принципиально ничем качественно не отличается от нового алгоритма или нового закона математики. Отличия только количественные. И разумеется ИИ может ошибаться. Кстати, также и человек, изучая новый язык программирования, иногда выдает вроде бы логичные, но неверные языковые конструкции - наблюдал лично.
Едрить, для них ещё матчасть и переводить на автоматический надо? Вот это сверх-интеллект! А сам он эту проблему решить не может? Ну, судя по тому как он в геометрии разбирается - не может((
Можно не переводить, просто скормить ему весь либген и сайхаб. Но это потребует на порядки больше вычислительных ресурсов для самой модели - потому что человеческий способ представления математических знаний крайне неоптимален именно для языковой модели. То же самое и с геометрией - она по своей природе не языковая, и тут вариантов два - или на порядки увеличивать вычислительную мощность и обучать одновременно на форумах и картинках (вот прямо как школьников в школе учат), или переводить геометрию на формальный язык и обучать на нем.
Вот тут в соседней статье как раз про этом. ИИ вполне может генерировать новые алгоритмы. Более того, если всю математику переписать на какой нибудь Coq и загнать в такую систему, то рано или поздно ИИ и математические открытия сможет делать. А где математика там и физика и вся остальная наука...
А что есть новое? Формально, они создают именно новое - то есть такой код (или текст) который они выдают, на момент выдачи отсутствует где-либо еще. Это не поисковик. Но ведь и человек действует так же - на основе изучения каких-то примеров генерирует нечто похожее, но другое.
То что я пишу для работы - оно и так мне не принадлежит.
То что я пишу для себя - я все равно или никому не показываю, или же наоборот отдаю всем в абсолютно свободное пользование.
Во всех случаях код, сгенеренный ИИ, напрямую к использованию не годится - обычно это лишь примеры как сделать что-то. Как использовать какую-то функцию библиотеки, не читая документацию на саму библиотеку. При встраивании этих примеров в проект все равно приходится всё переписывать.
А у Гугла есть бесплатный онлайн доступ к каким-то моделям? (не считая того что они там встроили в поисковик, это не чатбот а просто однократная генерация на поисковый запрос)
Кстати, а сколько у него длина контекста? Я в основном пользуюсь Grok и наткнулся на то что там длина контекста около мегабайта. При попытке общаться в одном чате слишком долго просто возникает непонятная ошибка, новые ответы не генерятся. Ну и сослаться на соседние чаты не получалось, но это кажется у всех чатботов так было.
Ссылки и указатели это отличная тема для обсуждения дизайна языков программирования. Как лучше?
Указатели - это наиболее низкоуровневая абстрация, ближе всего к реальности и значит содержащая меньше всего противоречий. И еще указатели явные, их нужно разыменовывать каждый раз при использовании.
Ссылки - более высокоуровневая конструкция, также они кажутся более безопасными (хотя разумеется это не так - можно например сделать ссылку на разыменованный указатель, указывающий на память, которую затем освободить).
Если подумать то получаются как минимум следующие аспекты:
Явность/неявность при обращении (нужно или нет "разыменовывать")
Встроенная нуллабельность указателей и ненуллабельность ссылок
Возможность адресной арифметики
Адресная арифметика считается источником ошибок, хотя в низкоуровневом программировании от нее никуда не деться. Но это как раз решаемый вопрос, можно потреборвать чтобы она выполнялась только в каком нибудь "unsafe" контексте. В большинстве случаев указатели нужны лишь для динамически создаваемых объектов и там никакая арифметика не нужна.
Нуллабельность... она в языках программирования нужна, во многих случаях есть специальное состояние null, которое нужно выразить явно, а во многих других такого состояния нет. И хорошо если синтаксис языка предоставляет единый механизм для этого.
Остается явность/неявность - самое непростое, поскольку касается самой идеологии написания кода. Иногда важно явно выразить что происходит именно обращение по указателю; а иногда нам все равно, что там внутри - переменная просто представляет объект, а как он там хранится - без разницы.В Си (еще до C++) придумали операцию "стрелка" "->" специально для явного обращения к полям структуры по указателю, хотя ничто не мешало задействовать операцию "точка" - конфликта не было бы, в Си указатель не может быть одновременно составным объектом. Сделали так именно для явного обращения, такова идеология языка. В последующих языках от этого отказались, там везде "точка". В Go работают оба способа: (*myPointer).field и myPointer.field
В том то и дело, что несколько не связанных между собой частных не нужно, нужен один общий, но такой в котором все другие (в том числе и существующая явная обработка) окажутся именно частными случаями.
Например, что мне нравится в Go так это единый синтаксис для обычных функций и лямбд. Во всех других языках изощряются со всякими стрелками и прочими спецсимволами, а в Go и там и там func - просто для лямбд не указывается имя. То есть единый синтаксис и внутри два частных случая - именованные функции и анонимные.
не создавать нескольких способов реализации одной и той же функциональности.
никогда ни к чему и не придут. Потому что правило в целом неверное. Но и много разных несовместимых между собой способов и синтаксисов добавлять тоже не нужно, это будет еще хуже чем сейчас.
А нужно разработать универсальный способ обработки ошибок, включающий максимум различных возможностей и предложений, и разработать такой синтаксис, чтобы конкретные предложения оказались частными случаями этого максимально общего способа.
Если чего-то нет - сделайте! С современным изобилием LLM это должно быть не очень сложно, заодно и изучите эту самую грамматику в процессе делания (здесь сработает тот же самый принцип что и при конспектировании, написании заметок и т.д. вместо простого чтения уже готового материала без записей).
Я думаю автор все же про генераторы текста, а не видео и картинок.
И текста, и картинок. И если с текстом бесплатные сервисы неплохо справляются (да, приходится все сохранять в древовидном редакторе, затем при необходимости подгружать обратно), то с картинками все как-то хуже.
Вообще чем больше пользуюсь ИИшками тем больше нравится:) Хотя в запуске именно на смартфоне смысла не вижу, все чаще возникает желание не зависеть от инета, а запускать локально. Чтобы без цензуры и ограничений, чтобы неограниченная длина контекста, чтобы была возможность дообучать на своем контенте, чтобы можно было делать древовидную историю запросов а не линейную, и т.д. Если с текстовыми еще вполне можно работать через инет (grok весьма неплох, deepdeek по ощущениям чуть хуже но тоже ничего) то вот для генерации картинок я так ничего и не нашел нормального и бесплатного одновременно.
Но покупать видеокарту за полмиллиона... ИМХО все-же перебор. А статей на эту тему очень не хватает. Как найти оптимальное соотношение цены и качества? Каковы перспективы в плане удешевления железа?
У меня такой необычный вопрос к людям, разбирающимся в схемах. А как вы их "чувствуете", представляете их работу в уме? Особенно если схема большая и навороченная? С постоянным током я могу - это как-то само из детства пришло, когда соединял батарейки и лампочки. Однако так получилось что пошел по другому пути, в чистый программинг, и нелинейные схемы, способные что-то усиливать, генерировать колебания и т.п., остались в стороне. Вот я смотрю на схему на картинке, вроде и элементов немного, но как "проэмулировать" ее работу в голове?
Вы используете какие-то паттерны? Здесь же нужно не просто смотреть на схему но и понимать числовые характеристики элементов?
Wine это скорее аналог WSL1. А виртуалка в бесшовном режиме - аналог WSL2.
Как в анекдоте - или достигнем или не достигнем.
Уж лучше LSW (Linux Subsystem for Windows) :) Несвободная, телеметрическая и живущая своей жизнью винда в изолированном контенейре на линуксовом хосте.
В чем разница между кодом и алгоритмом? Только в уровне абстракции. А уровень абстракции можно повышать бесконечно, чем собственно и занимается математика.
Вот скажем код который выводит числа от -87134 до +983724. Нейросеть его легко напишет, и такого кода практически гарантированно никто раньше не писал. Формально, нейросеть генерирует именно нечто новое.
Далее, код который выводит числа от M до N. Это еще код или уже алгоритм? Мы просто поднялись на уровень выше, заменили конкретные числа на обобщенные. Как переход от арифметики к алгебре. Хотя что конкретное число, что переменная "икс" - всего лишь математические абстракции, и то что делают первоклассники, складывая в столбик - всего лишь формальные манипуляции над абстрактными символами по определенному алгоритму. Это ничем не отличается от того что делают студенты, вычисляя производные и интегралы - просто другой алфавит языка и другие правила.
Мы можем например попросить нейросеть сгенерировать код, который выводит не числа, а программные коды для какого-то класса конкретных алгоритмов с параметрами. Такое вот метапрограммирование. Да, это уже сложнее, но вопрос чисто количественный - мощность нейросети.
Никакой религии, обычная техническая экстраполяция. ИИ вполне способен генерировать новый (при том рабочий) код - то есть такой, которого нет нигде в интернете. Новый код принципиально ничем качественно не отличается от нового алгоритма или нового закона математики. Отличия только количественные. И разумеется ИИ может ошибаться. Кстати, также и человек, изучая новый язык программирования, иногда выдает вроде бы логичные, но неверные языковые конструкции - наблюдал лично.
Можно не переводить, просто скормить ему весь либген и сайхаб. Но это потребует на порядки больше вычислительных ресурсов для самой модели - потому что человеческий способ представления математических знаний крайне неоптимален именно для языковой модели. То же самое и с геометрией - она по своей природе не языковая, и тут вариантов два - или на порядки увеличивать вычислительную мощность и обучать одновременно на форумах и картинках (вот прямо как школьников в школе учат), или переводить геометрию на формальный язык и обучать на нем.
Вот тут в соседней статье как раз про этом. ИИ вполне может генерировать новые алгоритмы. Более того, если всю математику переписать на какой нибудь Coq и загнать в такую систему, то рано или поздно ИИ и математические открытия сможет делать. А где математика там и физика и вся остальная наука...
А что есть новое? Формально, они создают именно новое - то есть такой код (или текст) который они выдают, на момент выдачи отсутствует где-либо еще. Это не поисковик. Но ведь и человек действует так же - на основе изучения каких-то примеров генерирует нечто похожее, но другое.
То что я пишу для работы - оно и так мне не принадлежит.
То что я пишу для себя - я все равно или никому не показываю, или же наоборот отдаю всем в абсолютно свободное пользование.
Во всех случаях код, сгенеренный ИИ, напрямую к использованию не годится - обычно это лишь примеры как сделать что-то. Как использовать какую-то функцию библиотеки, не читая документацию на саму библиотеку. При встраивании этих примеров в проект все равно приходится всё переписывать.
А у Гугла есть бесплатный онлайн доступ к каким-то моделям? (не считая того что они там встроили в поисковик, это не чатбот а просто однократная генерация на поисковый запрос)
Кстати, а сколько у него длина контекста? Я в основном пользуюсь Grok и наткнулся на то что там длина контекста около мегабайта. При попытке общаться в одном чате слишком долго просто возникает непонятная ошибка, новые ответы не генерятся. Ну и сослаться на соседние чаты не получалось, но это кажется у всех чатботов так было.
Ссылки и указатели это отличная тема для обсуждения дизайна языков программирования. Как лучше?
Указатели - это наиболее низкоуровневая абстрация, ближе всего к реальности и значит содержащая меньше всего противоречий. И еще указатели явные, их нужно разыменовывать каждый раз при использовании.
Ссылки - более высокоуровневая конструкция, также они кажутся более безопасными (хотя разумеется это не так - можно например сделать ссылку на разыменованный указатель, указывающий на память, которую затем освободить).
Если подумать то получаются как минимум следующие аспекты:
Явность/неявность при обращении (нужно или нет "разыменовывать")
Встроенная нуллабельность указателей и ненуллабельность ссылок
Возможность адресной арифметики
Адресная арифметика считается источником ошибок, хотя в низкоуровневом программировании от нее никуда не деться. Но это как раз решаемый вопрос, можно потреборвать чтобы она выполнялась только в каком нибудь "unsafe" контексте. В большинстве случаев указатели нужны лишь для динамически создаваемых объектов и там никакая арифметика не нужна.
Нуллабельность... она в языках программирования нужна, во многих случаях есть специальное состояние null, которое нужно выразить явно, а во многих других такого состояния нет. И хорошо если синтаксис языка предоставляет единый механизм для этого.
Остается явность/неявность - самое непростое, поскольку касается самой идеологии написания кода. Иногда важно явно выразить что происходит именно обращение по указателю; а иногда нам все равно, что там внутри - переменная просто представляет объект, а как он там хранится - без разницы.В Си (еще до C++) придумали операцию "стрелка" "->" специально для явного обращения к полям структуры по указателю, хотя ничто не мешало задействовать операцию "точка" - конфликта не было бы, в Си указатель не может быть одновременно составным объектом. Сделали так именно для явного обращения, такова идеология языка. В последующих языках от этого отказались, там везде "точка". В Go работают оба способа: (*myPointer).field и myPointer.field
А существующий механизм panic-recover это разве не оно?
В том то и дело, что несколько не связанных между собой частных не нужно, нужен один общий, но такой в котором все другие (в том числе и существующая явная обработка) окажутся именно частными случаями.
Например, что мне нравится в Go так это единый синтаксис для обычных функций и лямбд. Во всех других языках изощряются со всякими стрелками и прочими спецсимволами, а в Go и там и там func - просто для лямбд не указывается имя. То есть единый синтаксис и внутри два частных случая - именованные функции и анонимные.
Из-за вот этого правила
никогда ни к чему и не придут. Потому что правило в целом неверное. Но и много разных несовместимых между собой способов и синтаксисов добавлять тоже не нужно, это будет еще хуже чем сейчас.
А нужно разработать универсальный способ обработки ошибок, включающий максимум различных возможностей и предложений, и разработать такой синтаксис, чтобы конкретные предложения оказались частными случаями этого максимально общего способа.
А как думаете, на каком уровне вот эти книги (если кто читал):
Alice and Bob Meet the Wall of Fire - edited by Thomas Lin
The Selfish Gene - Richard Dawkins
Redefining Reality: The Intellectual Implications of Modern Science - Steven Gimbel
Great Mental Models - Shane Parrish
The Great Questions of Philosophy and Physics - Steven Gimbel
The Island of Knowledge - Marcelo Gleiser
Know This - edited by John Brockman
An Introduction to Formal Logic - Steven Gimbel
Если чего-то нет - сделайте! С современным изобилием LLM это должно быть не очень сложно, заодно и изучите эту самую грамматику в процессе делания (здесь сработает тот же самый принцип что и при конспектировании, написании заметок и т.д. вместо простого чтения уже готового материала без записей).
Я себе свой написал уже давно. Сейчас большинство использует Obsidian.
И текста, и картинок. И если с текстом бесплатные сервисы неплохо справляются (да, приходится все сохранять в древовидном редакторе, затем при необходимости подгружать обратно), то с картинками все как-то хуже.
Вообще чем больше пользуюсь ИИшками тем больше нравится:) Хотя в запуске именно на смартфоне смысла не вижу, все чаще возникает желание не зависеть от инета, а запускать локально. Чтобы без цензуры и ограничений, чтобы неограниченная длина контекста, чтобы была возможность дообучать на своем контенте, чтобы можно было делать древовидную историю запросов а не линейную, и т.д. Если с текстовыми еще вполне можно работать через инет (grok весьма неплох, deepdeek по ощущениям чуть хуже но тоже ничего) то вот для генерации картинок я так ничего и не нашел нормального и бесплатного одновременно.
Но покупать видеокарту за полмиллиона... ИМХО все-же перебор. А статей на эту тему очень не хватает. Как найти оптимальное соотношение цены и качества? Каковы перспективы в плане удешевления железа?
У меня такой необычный вопрос к людям, разбирающимся в схемах. А как вы их "чувствуете", представляете их работу в уме? Особенно если схема большая и навороченная? С постоянным током я могу - это как-то само из детства пришло, когда соединял батарейки и лампочки. Однако так получилось что пошел по другому пути, в чистый программинг, и нелинейные схемы, способные что-то усиливать, генерировать колебания и т.п., остались в стороне. Вот я смотрю на схему на картинке, вроде и элементов немного, но как "проэмулировать" ее работу в голове?
Вы используете какие-то паттерны? Здесь же нужно не просто смотреть на схему но и понимать числовые характеристики элементов?