Информация
- В рейтинге
- 3 420-й
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Инженер электронных устройств, Научный специалист, исследователь
Старший
От 300 000 ₽
Прикладная математика
Разработка программного обеспечения
Оптимизация кода
C
Assembler
Python
Алгоритмы и структуры данных
Объектно-ориентированное проектирование
Многопоточность
Verilog HDL
скорее всего будут нормальные векторные модели, которые собственно вмещают пару десятков килобайт описания из разряда выдавить, продавить сопряжение, касательность и прочие зависимости. Модель вполне может сделать синтез по граничным условиям. Тот же OpenSCAD текстовый вполне себе годен. Промпт: OpenSCAD сделать зубчатое колесо аналог эвольвенты без библиотек 12 зубьев центральное отверстие шпонка сопряжение другое зубчатое колесо 16 звеньев центральный вал
Результат
Код
Центральный вал конечно пропустил но про шпонку уже представление имеет
Проблема в том, что много кода созданного человеком для человека. И все эти технологии которые сейчас имеются фактически дожатие того что было сделано до появления ИИ. Как только будет код "do not edit machine generated" дело уже пойдёт лучше, да и язык это будет не те которые сейчас лучше всех а те которые специально адаптированы для ИИ с наименьшими глюками и ошибками
Вообще говоря главная пропасть - между просто данными для обучения и подготовленными человеком датасетами. Это отдельное искусство сформировать нужные шаблоны обучения.
Попробуем проиллюстрировать с использованием "высокоэнтропийного" вайбкодинга что же произошло с Землей на начальном этапе лунной программы.
Модель:
Язык змей горыныч модель окружность 1 окружность 2 навстречу друг другу диаметры отношение один к четырём окружность есть 64 точки отрезков аппроксимация каждый отрезок масса отрезки связаны в точках использовать сохранение импульса закон Ньютона столкновение без рассеяния отрезки между собой закон Гука пружинят конечные разности расчёт шаг счёта по времени примерно одна окружность в секунду использовать матплотлиб визуализация
Реализация
Почти в точку. Сейчас все бизнес-проекты будут не то как попасть в индексацию поисковика а как угодить в RAG и прочие MCP по ключевым тегам не говоря уже о попадании в претренинг когда о компании знает уже сама модель на захардкоженном уровне. Влезть в эту тему на этапе становления - это почище битка.
и правильно делают, они учатся языку промптов, и глючить вместе с ИИ, чтобы не делать плохих запросов. Плюс это отличная обратная связь для развития датасетов претренинга
В своё время читал Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++. 1999 год, спустя 27 лет актуально и сейчас. Так вот там объект - это нечто, обладающее состоянием, поведением и идентичностью (искал в тексте эти ключевые слова). А для ООП обязательно имеют иерархию наследования и динамическое поведение, грубо говоря таблицу виртуальных функций, представляющую неявное поле типа данных (индекс). С++ скорее просто обогатился синтаксисом из интерпретируемых языков нежели вобрал уж прям нечто совсем концептуальное, ad-hoc полиморфизм уже был тогда, просто сейчас это выглядит как некий макрос с удобной формой записи, как декоратор на Питоне, вобравший assertion. Как только на С++ видится что-то вроде std::memcpy или sizeof(*this) или dynamic/reinterpret_cast или operator x (float16,int8) - это повод взять вновь K&R С, шлифанув пары malloc-free или mutex ИИ-шкой, попросив дописать разрядность к имени функции.
Лучше составить таблицу в которой будет представлено количество работы с кодом, файловой системой и уровни ошибок - системное проектирование, синтаксис, доступ (не найдено) в ответ на количество действий разработчика.
Кто будет читать это через 10 лет вопрос: что спереди, телега или лошадь?
Можно также с генератором.
Интересно также что это работает со строками
оказывается true
Что-то никак нет ухода от крайностей - текстовый редактор уровня "консоль" и чистый WYSIWYG, нужно что-то среднее между LaTeX и окончательной вёрсткой. То есть должна быть полная взаимосвязь между элементами того что в графике и сам текст хотя-бы имел минимальный скетч из атрибутов - положение, размер шрифта даже если это моноспейс, верхний-нижний индекс. Тогда в окончательную вёрстку попадает полный стиль набор а в промежуточную только прибитое к некоторому условному форматированию. Тоже самое про программирование разделов, нумерации, глав итд. В ворде это сделано как линейный список, годный только для книг. Для более сложной документации содержащей перекрёстные ссылки этот подход не годен, в этом случае там нумерация будет почти как вручную текстом просто сгенерированная автоматически.
Так инструмент в данном случае совершенно искусственный и вообще говоря не ясно какова его актуальность в текущих реалиях. Это как есть куча оснастки для ремонта паровозов но насколько это востребовано сейчас если это конечно не ниша. Но есть другой нюанс на этот счёт. Можно взять идеальный современный ручной инструмент с вырезами под любые пальцы, мягкими накладками, приятно держать, а можно паровозошморгалку, обычную отбойную отвёртку из прошлого века, которая делает тоже самое и вручить её роботу. Она совершенно устарела и неудобна для человека, но зачем спрашивается ему делать задание лично когда есть такой вот помощник, который в принципе неплохо справляется и руки точно не порежет, на крайний заменить можно хоть целиком.
Именно! Так зачем теперь нужно дополнять ценные гигаватт-часы на дополнительные новомодные триллионы токенов, когда банальный С вытягивает 100% проблем. Да, человеку неудобно, а кто сказал что там что-то нужно читать и знать когда есть 100500 различных парсеров, тестов, санитайзеров, которые генерируются или обвязка для которых налету llm-кой. Вплоть до питона, который анализирует С, делает заголовки и код С, заготавливает метрику, отправляет в LLM, делает автоматом рефакторинг, с файлами -конфигами больше уже нет необходимости возиться, да и версия кода не есть версия текста программы по большому счёту. Это про комментарии и их хранилище с нагенерённой документацией и summary от LLM.
Позвонить в сервис, попросить чтобы дали задание написать мануал для LLM с годной векторной базой данных. Старые мануалы скорее переживают суровый закат, всевозможные языки разметок чтобы быть покрасивее, все эти md, man, hlp, да ещё и не векторные и не структурированные рисунки. Машинно-ориентированный мануал это фактически генератор знаний по запросу. Линейные книги и html-ки это уже прошлый век.
Проблема скорее в формализации качества. Новая фишка должна либо быть более понятной, более безопасной, уменьшить время на её обучение, на разработку, величину кода, его эффективность. Все языки как раз состязались именно чтобы быть приятными человеку, машине всё равно что там написано. Когда же пришла LLM это соревнование потеряло смысл и проще взять совершенно базовые вещи языков высокого уровня которые становятся просто ассемблером для LLM. И чем лаконичнее язык в плане грамматики и синтаксиса тем лучше. В конечном итоге это С (с диалектами CUDA, шейдеры, OpenCL, OpenMP...), Питон, Бэйсик, Фортран, ЛИСП, Verilog ну и ещё что-то из разряда Maxima, Maple, Mathematica. Оркестрируя этим делом можно составить приложение любой сложности.
Чем больше синтаксического сахара - тем больше можно получить случайной соли.
Поэтому и хорош С, что его можно попарсить всем чем угодно и вытащить сам алгоритм - отследить все вызовы malloc-free и где они вызываются и в каком порядке, промптом можно даже попросить сделать смартпойнтер или глобальный стек для отладки, вывод которого скормить той же модели для анализа если там вдруг двойной фри на указатель или указатель без фри. Если этот довесок невозможен ввиду того что это одноплатный процессор на логике 555й серии - можно попросить создать на питоне виртуальную машину с вызовами и моделью поведения, как на верилоге.
так нужно генерировать неправильный код на очень хорошей платформе, который будет генерировать правильный код на плохой. Иными словами кто мешает сгенерировать питон который будет следить за дефайнами, стимулусами, тестбенчами и прочими do-файлами со времён tcl tk, и иже с ними имеющие кодовую базу в тератокены. То есть он будет делать C-вставки в проект, включая парсинг самих C-файлов проекта тем же cparcer. В этом и заключается сила простых языков с точки зрения промптинга и анализа что для них есть превосходные инструменты для обратных связей - вытаскивать структуры, определения, функции итд и встраивать то что необходимо, включая тесты. Изолированная единица с параметром - и настраивай как угодно, остальные имеют те же питон модели поведения, не обязательно всё возлагать на один язык. Достаточно промоделировать и использовать сгенерированный код. В ту же копилку и DMA с режимами работы, потокобезопасные очереди, всевозможные контроллеры прерываний с приоритетами итд
Для решения проблемы с динамической памятью можно использовать штатный санитайзер gcc или просить модель сделать smart pointer даже на простом С. Вообще говоря этот язык переживёт с LLM второе рождение, так как все новомодные фишки которые появились за последнее десятилетие в языках и призванные синтаксисом улучшить читабельность для человека уйдут на второй план, так как контроль за надёжностью и управлением памяти как раз может взять на себя модель, мало того, сугубо компилируемые языки разрослись до уровня интерпретаторов, для нововведений нет кодовой базы для глубокого обучения. Более того, стиль написания скриптов будет примерно такой, как новый язык. Известно, что в моделях есть "температура", а значит, и "энтропия" (cross-entropy). Поэтому промпт-ТЗ должно предельно иметь её высокое значение относительно алгоритма без лишней составляющей. Пример для простого С, используемого как ассемблер для промпта. Сделаем цифровой фильтр с динамической памятью.
Практикум вайб-курса цифровой обработки сигналов в одном Хабр-комментарии. Промптим код без демонов Максвелла с хорошей энтропией:
Язык С мэйн иметь флоат два массива cx и x длина nx два массива cy и y длина ny объединить одна структура глобальная поля структура сделать маллок область видимости выход фри. Инициализация x и y ноль. Мэйн внутри цикл отсчёты внутри аккумулятор ноль первый элемент x равно константа цикл по элемент массив cx и x умножение с накоплением цикл по элемент массив cy и y аккумулятор минус умножение с накоплением. Сохранить аккумулятор первый элемент массив y. Сдвинуть элемент массив x и массив y один позиция вправо, инкремент индекса только использовать временная переменная тэ1 тэ2 обмен.
Код-скелет
Хотеть коэффициент cx массив как единица делить количество. Нужно первый коэффициент cy равно ноль. Ещё два коэффициент cy посчитать полюс устойчивость единичная окружность комплексная плоскость хорошо остальные ноль.
Догадайся что это IIR
Принтф "импульсная характеристика" принтф формат CSV в файл "эксперимент" тэикстэ на дисплей тоже красиво табуляция массив цикл отсчёты.
ввод-вывод
Ой плохо проверка после маллок массив что индекс цикл не высоко его размер сделать до 20. Но вводи сканф размер массив x,y и cx,cy клавиатура если энтер и энтер то по умолчанию.
Тест границы массива
Хотеть ГНУ мэйкфайл компиляция что мой С стандарт проверка не хуже C11 мой архитектура есть 64 бита и процессор x86 а не АРМ иначе ошибка. Называю mymain си мой файл я
Антилопа мэйкфайл
Хотеть бэш скрипт питон автомат загрузка матплотлиб вэнв виртуальное окружение зависимости хорошо а ежели вэнв есть то продолжить активировать вэнв и запустить скрипт питон называю я graph а если скрипт нет выйти сообщить создайте скрипт.
Бэш питон вэнв автомат
Питон язык загружает CSV файл импульсная характеристика формат время, номер отсчёт, значение, строить матплотлиб красиво цвет график точки и линии подпись ось сетка включено, пакет только матплотлиб импорт другие нельзя.
Питон язык строить CSV
Результат
Это импульсная характеристика или переходная на функцию Хевисайда - уже вопрос для билета
Один из главных моментов - не существует релятивистской динамики абсолютно твёрдого тела, так как возмущение в нём передаётся мгновенно а не со скоростью света, являющейся предельной. Поэтому рассматриваются только материальные точки или их облака (см. тензор Риччи) Если точка неподвижна - тензор Эйнштейна равен нулю, тензор Риччи обращается в ноль (рядом нет энергии), остаётся скаляр Риччи и метрический тензор, для точки - это решение в виде метрики Шварцшильда, представляющей собой расстояние в пространстве-времени (скалярный интервал), квадрат вектора - скаляр, он то и показывает величину того самого искривления, более верно - величина близости к точеченой массе. Ещё более весомый постулат - это дивергенция тензора Эйнштейна равна нулю, это означает, что нет источников и приёмников энергии и момента, то есть можно приравнять энергию к геометрии с коэффициентом. То есть дивергенция геометрии должна быть нулевой, что означает, что гравитация локально не способна порождать или поглощать энергию (!), закон сохранения энергии-момента. Грубо говоря четырёхмерная плёнка, охватывающая точку в пространстве-времени имеет нулевую общую входящую и выходящую энергию (геометрию) - это про ковариантную дивергенцию (там же инвариантность к диффеоморфизму) .