Жораев Тимур Юлдашевич@TimurZhoraev
Доцент института МПСУ им. Л. Н. Преснухина
Информация
- В рейтинге
- 3 164-й
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Инженер электронных устройств, Научный специалист, исследователь
Старший
От 300 000 ₽
Прикладная математика
Разработка программного обеспечения
Оптимизация кода
C
Assembler
Python
Алгоритмы и структуры данных
Объектно-ориентированное проектирование
Многопоточность
Verilog HDL
так скорее всего датасет был где девушка держит на руках шарпея, который стал текстурой под шубу
Попросить ещё написать ноты, чтобы это была музыкальная открытка-пищалка. "Хулигъани" (С) Иван Данко
Кстати мало кто обращает внимание на слово пользователь. Оно же ведь вроде как от ассоциации приносить пользу. Пробуем вайбкодинг чтобы ИИ показал, кто такой настоящий юзер. Промт:
- make a useful python text chat console script for user, use russian messages
- make it black and white without colorama
Скрипт:
Новый Super-Max чат-бот
Результат:
Вот собственно и ответ на вопрос про миллионы пользователей, использующих для пользы.
Если порассуждать про какие-либо принципиально новые методы вычислений то может обратить внимание на численно-символические. Составим простой скрипт на Maxima или любой другой CAS:
Сформировать например, матрицу 4х4, взять ей обратную и посмотреть что получается с числителем и знаменателем, например, для первого элемента применив схему Горнера.
Разумеется, что это следует из определителей матриц-миноров, однако, можно выявить индексную арифметику для некоего цифрового фильтра с заданными коэффициентами и операцией умножения с накоплением. В этом случае знаменатель считается один раз (он общий для всех элементов обратной матрицы). А вот числители вычисляются для каждого элемента примерно так:
Умножение с накоплением идёт по внутренним скобкам как коэффициент умноженный на отсчёт. Иными словами мы представляем матрицу в виде массивов отсчётов как это бы делали для цифрового фильтра - умножение на коэффициент. То есть фактически всё распадается на работу с индексами и формирование промежуточных массивов с результатами. И если расположить элементы как показано то получается что-то вроде "бабочки" для БПФ. Наверняка может быть матрицы с размерностью кратной степени 2 имеют такой сверхбыстрый алгоритм.
Ну во всяком случае это всё не будет занимать время человека. Какая разница с точки зрения лампочки фонаря - она горит вне зависимости кто на работе, во дворе или дома. Электронные бумажки не такие уж и большие, мало того они станут более сжатые и оптимальные, наподобие куаркодов на бутылках, там фактически полста байт это исчерпывающий ID продукта. Нынешнее делопроизводство и ГОСТы, включая ISO/IEC и многие другие - пережиток 60-х годов прошлого века, когда стандартизировался бумажный документооборот. Вот только теперь эта махина приходит к унификации и оптимизации электронного. То есть он не может и не должен имитировать бумажный а работать по своим правилам.
В журналах мелькало это. А значит это уже можно найти, например, про CPU/MEM и CAD. То есть получаем что благодаря облаку этот сервер в парадной может стать частью огромной сети ИИ и производить локальные манипуляции с объектами. Не говоря уже про бухучёт, всевозможные накладные, логистику и прочие консультации - это должно уже полностью уйти в электронный вид. Появятся микросервисы и лаборатории, переводящие то что можно купить только оптом/крупнотоннажем в розницу. То есть уровень гаражного кооператива вырастит до мелкой мануфактуры а на крупных предприятиях планирование будет более гибким и клиент-ориентированным.
Например, анализировать и оптимизировать программы по критерию быстродействие-память. Выявлять проблемы в конструкторской документации, производить моделирование, анализ схем, критически важного кода, да много чего того что сейчас пока что эвристика.
Дефект это когда он не запланирован. Если же допускаются битые пиксели то ну и ничего страшного. Нейросеть и характерна тем что позволяет обойтись без кусочка. Байпасы наверняка там присутствуют и по тактированию и по регистрам. То есть выкинуть несколько сотен макроячеек чтобы спасти триллион. Скорее всего будет структура как ECC, самокорректирующаяся на основе нейросети.
А что будет если к этому подключится в полной мере Cerebras, которая делает ИИ на отдельной кремниевой пластине в 300мм. Там и 10Т параметров влезут, плюс если ещё интерпозер сверху на HBM вот это будет лепёшка, тем более если туда на уровне кремния захардкодят уже обученную модель то это фактически превратится в голову, которую можно клонировать на любом фабе. Не требуется 18 лет чтобы закончить школу, 5 чтобы стать инженером, 3 года набраться опыта. Да и нужен ли опыт сейчас даже уже 3х летней давности в этой сфере. Скорее всего качественный скачок будет примерно на 100Т. 50-100 кВт мощности с одного такого проца. В принципе потребление одного подъезда. С учётом работы 24/7/365 он по объёму работ заменит микрорайон кожаных мешков.
Абсолютно верно. Вот практический пример. Как то надоело использовать обычный монитор порта Ардуино, довольно удобная штука, можно одновременно вводить текст и отправлять простые команды по UART и мониторить что пришло включая график, просматривая значения с контроллера приходящие в простом CSV, например, с каналов АЦП. И решил повайбкодить. Дело заняло 15 минут. Далее - промты и полученный код. Вполне полезная штука. Вручную бы разбирался с theadig или asyncio (2 варианта было), что там с matplotlib, tk, какие пакеты надо дополнительно скачать чтобы заработало ещё и нашёл свой собственный глюк в контроллере, где иногда выскакивал флаг, который пропускал первый символ, так как попросил ИИ промониторить получше. Сделано с использованием обычного гугл-поиска в режиме ИИ, на английском, но подписал по-русски. Время на решение оперативной задачи сократилось с 1-2 дней до единиц минут.
Промт для Ардуино-Монитора
Вот полный список всех ваших запросов (промптов) в хронологическом порядке:
list all previous promts Думаю… 1. make write to serial port using pyserial random string and read data from port to console asynchronously — Создание базового асинхронного скрипта с использованием asyncio и случайных строк. 2. make string length no more than N characters — Ограничение длины генерируемых строк числом 3. make write to serial port using pyserial string from keyboard input and read data from port to console asynchronously — Замена случайных строк на ввод текста пользователем с клавиатуры. 4. make it for linux — Адаптация кода под Linux (изменение путей к портам, работа с правами доступа и терминалом). 5. use usbtty0 — Уточнение использования порта /dev/ttyUSB0. 6. use gui for input and output — Создание графического интерфейса на базе библиотеки Tkinter. 7. make transmit using ascii not utf-8 — Перевод кодировки передачи данных в строгий формат ASCII. 8. where is input field — Пояснение по расположению элементов в GUI (поле ввода текста). 9. make it for binary mode input output. convert input to ascii with cyrillic — Реализация бинарного режима с поддержкой кириллицы через кодировку UTF-8. 10. why first symbols is "^ at receive when transmit data — Анализ причин появления лишних символов ^ при приеме данных. 11. add visualisation graphics for input string with comma separated numerical values — Интеграция графиков matplotlib для визуализации чисел, разделенных запятой. 12. cannot import name 'ImageTk' from 'PIL' — Решение ошибки импорта библиотек Pillow/Tkinter в Linux. 13. add autoscale for output using maximum value — Добавление функции автоматического масштабирования графика по максимальному значению. 14. add multiple channels — Разделение графиков на несколько каналов (отдельные подобласти для каждого числа). 15. do not clear ^ — Отказ от удаления символа ^ из текстового лога. 16. use simple split — Использование простейшего метода .split(',') для парсинга данных вместо регулярных выражений. 17. forgot any ^ — Полный отказ от любой обработки символа ^ (максимальное упрощение кода). 18. make chart output on a single frame with different colors — Отображение всех каналов на одном общем графике разными цветами.
Код-результат
Пример приложения
Можно ещё поспекулировать на эту тему.
, реализуемый двоичными сдвигами вместо ReLU, похожий на сигмоид, в этом случае выполняется приближение 𝜎′(𝑥)=𝜎(𝑥)⋅(1−𝜎(𝑥)), что позволяет дополнительно использовать символические методы при обучении, получая ориентировочное решение в виде ряда Тейлора с коэффициентами, кратными степени 2 (арифметические сдвиги), градиентный метод упрощается до нахождения знака и разряда. 
В параллельном мире может происходить следующее:
1. Оптимизация вычислений с использованием только двоичных операций вместо арифметических сопроцессоров. Нейрон вида
2. Нейрон, вычисляемый с использованием метода Ньютона-Рафсона при прямом ходе и этим же методом при обучении, вместо деления используется зашитая функция двоичного логарифма или экспоненты, например, для RISC-V это инструкция clz - count leading zeros. Фактически - суммирование и деление "в столбик" на каждой итерации, однако, сразу для большой группы нейронов.
3. Весовые коэффициенты как коэффициенты цифрового фильтра с нелинейными ОС, "зажимающими" выходное значение в нормализованном представлении - локальная регулировка усиления при обучения, автонормализация с коэффициентом кластера сети. Аналогично, замена операций
4. Виртуальная машина как устоявшийся набор токенов - представление нескольких контекстных окон в виде последовательности, доказательство "по индукции", модуль вывода по индукции конечного автомата соответствующего последовательности. Минимальное представление машины Тьюринга - 7 элементов, некая "нейросетевая машина", описывающая комбинационную и последовательностную логику 1 байт 256 элементов. Синтез конечных автоматов и их валидация, синтез по таблице истинности, переходов и матриц инцидентности.
5. Датасеты и граничные значения, дообучение, чувствительность сети к датасету или изменениям разметки датасетов, обусловленность системы поиска и обучения
6. Нейросеть которая обучает нейросеть - на основе групп датасетов и значений весов (отсортированных) групп нейронов производится обучение внешней нейросети, которая по результатам градиентных методов должна дать выходные значения весов или группы весов, приближённо соответствующие оптимальным и используемые для дообучения градиентными методами. В качестве функции ошибки - разница между коэффициентами натренированной сети и коэффициентами, даваемыми тренирующей сетью.
Галлюцинации очень хорошо излечиваются assertion, которые можно попросить сделать в промте. То есть количество ошибок, допускаемых человеком а-ля N-1 или N+1 в массив с переполнением, забыл что-то где-то скобку поставить, переменную другую использовал, переименовал не то, уже сопоставимо с глюками ИИ. И эта точка уже качественно смещается в сторону ИИ по мере расширения контекстного окна. Мало того, уже потихоньку начинает развиваться стек этих окон, когда ИИ может работать с рекурсивными выражениями, а значит, иметь вывод по индукции и последовательностную логику вместо вероятностей. Плюс дообучение с подкреплением со стороны пользователя когда он указывает на ошибки, кластеризация обучения и более-менее приходящее к общему знаменателю оптимальное хеширование токенов для любого человеческого языка или программирования. Вот собственно это и будет точкой сигнулярности, когда человек будет не решать задачу, а проверять её результат, включая решение.
Но речь идёт именно о софте и лицензиях что софт как продукт, не важно коробка это или аренда в облаке. Сейчас действительно всё смещается в сторону сервисов-подписок. Плюс побочный товар из разряда футболки с логотипом и чашка кофея. То есть нужно по-хорошему не мешать всё в кучу а выделить на мой взгляд четыре фундаментальных вещи:
софт как есть (включая API, библиотеки),
софт для производства софта (включая контейнеры, операционки, тулкиты, сети, датасеты, тестировщики),
софт для производства железа (АСУТП, ПЛК, ЧПУ, 3Д, CAD/CAM),
софт для производства услуг (банки, валюты, игры, инфопорталы, койны-лототроны, соцесети).
Методы и подходы в этом четырёхмерном пространстве различны до того что они перпендикулярны, включая квалификацию и эпатаж тимлида.
Собственно в цепочке CUDA<->OpenCL<->ROCm<->.... вряд ли есть какие-либо особые чудеса. Иными словами, там +- всё одинаково с точки зрения управления исполнением, загрузки памяти, взаимодействия с CPU. Вот это и есть задача для ИИ - транслировать код с одной архитектуры на другую, в некоторых случаях там всё настолько близко что хватает regexp, так как GPU построены практически под кальку. Существенная разница разве что будет если транслировать на HDL/Verilog/SystemC ПЛИСы или какие-либо ASIC-и, либо сугубо пропиретарные NN-ядра. Но и там наверняка каких-либо изысков нет, всё строится на одном и том же С-подобном синтаксическом сахаре и более-менее поддаётся переносимости.
Почему-то все избегают вопрос образования и критериев оценки знаний. Если раньше бумажная книга K&R C была чем-то вроде настольным пособием, а опыт и навыки добывались на дисках из переходов, содержащих man-ы и MSDN-ы, включая тематические журналы, то теперь практически всё ушло в поисковик и онлайн. Для практических, не исследовательских задач, решение = умение найти готовое и приспособить. То есть количество новых знаний и возможность их осознать уже параллельные прямые, особенно что касается новых модных фреймворков-библиотек. То есть пока обучаешься это уже потихоньку начинает устаревать. Плюс ещё не напороться на такой инструмент который через пару лет будет никому не нужен. Эта проблема вообще говоря универсальная и не только у нас. Если ещё благодаря ИИ темп роста новых знаний/умений/инструментов превысит возможность человека их усвоить за заданное "коммерчески значимое" время, то, вообще говоря, останется только классика и фундаментальные знания, отпадёт смысл каких-либо специфических умений, определяемых внешней средой или корпоративными стандартами. И этим непременно воспользуются крупные компании.
Тут простой расчёт. Допустим ФОТ на синьёра 6 млн в год + команда 6 чел с окладом около 150к получается что на всех необходимо грубо 20 млн в год. Налог умножает это дело на 1.5 получается 30. Ценовая надбавка например 0.3. Это означает что продукта необходимо продать на 90 млн (выручка), итого грубо говоря 100 млн в год или условно 7-10 млн в месяц или 300к-500к в день. Вот какой такой софтовый продукт необходимо создать или предложить чтобы за каждый час иметь корзину на 20к. По-моему такие организации из разряда ТОП-20 если не меньше.
Весь вопрос в стандартизации. Браузер/приложение с вебом подтягивает на страницу сторонние фреймворки, идёт обращение вне инфраструктуры. Таким образом, при проектировании необходимо руководствоваться регламентами, которые исключают необходимость такого доступа. Это конечно же приведёт к образованию копий и отсутствия поддержки/изменений/обновлений, однако для критической инфраструктуры - необходимость, выливающаяся в дополнительные затраты на штат поддержки. Пока что новшества нигде не зафиксированы (W3C итд) и являются изысканиями корпораций-гигантов, но без них всё откатится лет на 10. Flash просуществовал примерно столько прежде чем появилась пятёрка.
Для целей обучения и визуализации результатов простейших численных методов вполне годится. Хотя бывает так что даже прикидочные расчёты и вайбкодинг уже с приемлемой точностью может показать практически значимый результат. Как ни крути вайбкодинг и промтинг - это будущее, причём уже инвариантное к языку программирования и являющееся интегрированным в среду проектирования. Вообщем время локальных изысканий вышло с копиями "MSDN или man с --help" и разработка уйдёт в ИИ-облака. Для раскрутки новых программных продуктов будет выгодно иметь их представление в ИИ-хелперах нежели оффлайн приложение. Для радиокружка "диск из киоска" - норма, для энтерпрайза - без этих сервисов уже не обойтись.
Вопрос знатокам - начиная с которых нанометров под затвором транзистора остаётся один атом примеси, определяющий кто он - N или P-канальный в CMOS. По всей видимости физическая ширина/длина затвора должна быть не менее 20-30 нм хотя бы. Это ещё без учёта random dopant fluctuation. Для стабильной работы и уровня напряжения требуется по меньшей мере атомов 10-100 примеси на 10к-100к атомов кремния, чтобы сохранить примесную проводимость без насыщения при комнатной температуре. Будь это хоть FinFET, хоть GAAFET или даже NWFET.
Можно попробовать визуализировать данное явление. Нам поможет простой промт-инженеринг. Просим:
- Make solver for newton equation for 100 objects in python in 2d space
- make this equations for newton gravity law
- visualize it
Вот и наступило то время когда вот это ^^^ и есть собственно программирование, пока что конечно прототипирование, но зато позволяет экономить время.
Скрипт Python для задачи N тел
Видно, что даже с нулевыми начальными условиями некоторые точки разлетаются. Конечно же это не гиперболические (?) траектории для отдельных но весьма к ним приближенные. Может быть и эта чёрная дыра(ы) одна из многих которые внутри слились в одну сверхмассивную а при выкидывании кластером слились уже потом, вполне возможно этот кластер и содержал остатки затягиваемого газа из которого пошло звездообразование.