Как стать автором
Обновить
12.6

Терминология IT

Термины, понятия, аббревиатуры

Сначала показывать
Порог рейтинга

Ярый сторонник движения за свободное ПО лингвист и программист Ларри Уолл часто радует перлами. Один из них родился в 1987 году и остаётся популярным до сих пор. Речь о Perl — Practical Extraction and Report Language, языке для практического извлечения данных и обработки отчётов.

Ключевая идея Perl выражается наиболее известной фразой Ларри Уолла: «Простые вещи должны оставаться простыми, а сложные — становиться возможными».

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

Ещё одна фраза Ларри иллюстрирует универсальность языка: «Есть несколько способов сделать что-либо». Связано это с тем, что Perl поддерживает как объектно-ориентированный подход, так и процедурную, и функциональную парадигмы.

Perl можно назвать Си-подобным, с заимствованиями из LISP, Бейсика, текстового редактора sed, языка сценариев AWK, командного интерпретатора UNIX и бог знает чего ещё. Это весьма необычный сплав структуры и синтаксиса совершенно разных программных продуктов.

При должном знании английского изучать Perl сравнительно легко из-за обилия бесплатной литературы, свободно распространяемых модулей и развитого сообщества, насчитывающего десятки тысяч программистов. На основе Perl создан язык Raku (ранее — Perl 6), который развивается как самостоятельный диалект.

Теги:
Всего голосов 5: ↑3 и ↓2+3
Комментарии1

Что такое CuPy? Продолжаем знакомиться с терминами из мира нейросетей. Спасибо коллегам из лаборатории больших данных компании «Криптонит», что помогают нам делать эти посты.

CuPy — это совместимая с NumPy/SciPy библиотека для вычислений на графических процессорах (ГП) с помощью Python. CuPy позволяет использовать существующий код на NumPy/SciPy, запуская его на платформах Nvidia CUDA или AMD ROCm.

В среде AMD ROCm CuPy автоматически переводит все вызовы CUDA API в ROCm HIP, что позволяет запускать код на ГП Nvidia и AMD без каких-либо модификаций.

CuPy реализует стандартные API (DLPack, CUDA Array Interface), благодаря которым легко интегрируется с NumPy, PyTorch, TensorFlow, MPI4Py и другими библиотеками.

Кстати, одной из них является библиотека XNumPy, которую написал исследователь компании «Криптонит» Игорь Нетай. Она позволяет контролировать точность расчётов на каждом этапе вычислений.

CuPy может работать с несколькими GPU или кластерами через пакет распределённых вычислений (cupyx.distributed). В CuPy доступны низкоуровневые функции CUDA (профилировщик CUDA Profiler, прямой вызов библиотек CUDA, настройка выделенной памяти и другие).

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Сегодня рассказываем про язык с другой планеты — APL.

Так выглядит APL
Так выглядит APL

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

В 1957 году канадский специалист по теории вычислительных систем Кеннет Айверсон публикует монографию «A Program Language». В ней он описывает необычный по стилю язык для обработки массивов данных и называет его APL (акроним от названия книги).

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

Тогда разработкой Айверсона заинтересовались в IBM, куда его и пригласили на работу. В 1965 году IBM выпускает первый интерпретатор APL, а ещё год спустя — клавиатуру с символами Айверсона и тремя дополнительными секциями управляющих знаков (см. фото).

Язык APL подкупал своей лаконичностью. Он использовался не только в мейнфреймах и терминалах, но также и в персональном компьютере IBM 5100, созданным за 6 лет до начала эпохи IBM PC.

Благодаря коллективу московского Научно-исследовательского центра электронной вычислительной техники (НИЦЭВТ) во многих советских ЭВМ 80-х и начала 90-х годов тоже использовался APL.

Сейчас APL теряет актуальность, хотя самые стойкие приверженцы продолжают развивать его как ряд независимых диалектов.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии3

Flower — фреймворк с открытым исходным кодом для построения систем федеративного обучения нейросетей, код которого доступен на GitHub.

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

Подробнее об этом читайте в колонке Forbes, которую написал Иван Чижов, заместитель руководителя по научной работе лаборатории криптографии в компании «Криптонит».

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

Сегодня проект Flower отличает глубина проработки. В нём более 100 программистов и специалистов по машинному обучению, которые делятся своим практическим опытом.

На странице проекта в GitHub доступна подробная документация и Flower Baselines — коллекция проектов, воспроизводящих эксперименты из научных публикаций по федеративному обучению.

Проект быстро развивается. Через API Flower уже взаимодействует с TensorFlow, PyTorch, pandas, Hugging Face Transformers, Google JAX и другими инструментами машинного обучения.

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии0

CORAL — язык программирования, который получил благословение королевы Елизаветы II. Что он из себя представлял, рассказываем дальше.

Один из стимулов разработки новых ЭВМ и языков программирования — необходимость в быстрой обработке сигналов радиолокационных станций. Чтобы решить эту задачу, требовались средства разработки программ, исполняемых в реальном времени.

В СССР для этого использовали преимущественно АЛГОЛ и его диалекты. По тому же пути пошёл и британский научно-исследовательский центр радиолокации. На базе ALGOL 60 и Fortran в нём разработали CORAL — Computer On-line Real-time Applications Language.

CORAL поддерживал ассемблерные вставки, что позволяло писать очень быстрый код с оптимизацией для конкретных архитектур: 16-разрядных PDP-11, 32-битных VAX и SPARC, 64-битных Alpha и прочих платформ.

Изначально буква R расшифровывалась как «radar», но когда сфера применения Coral 66 расширилась, обновлённая трактовка названия подчеркнула ориентированность языка на системы реального времени.

В семидесятых годах он стал применяться в сфере автоматизации компаниями из Великобритании и США, которые сталкивались с различными ограничениями со стороны Министерства обороны.

Поскольку «джинн уже был выпущен из бутылки», в 1976 году Королева Елизавета II «благословила» выход CORAL в свет. Она отправила первое электронное письмо, в котором сообщала, что Coral 66 отныне доступен всем в компьютерной сети ARPANET (предшественник интернета).

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

YOLO-World — это новая модель машинного обучения для систем компьютерного зрения. Она выполняет обнаружение любого количества объектов без предварительного создания словаря и в режиме реального времени.

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

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

YOLO-World работает иначе. Она выполняет обнаружение объектов по модели с открытым словарём (OVD). Это новый подход, выходящий за рамки предопределенных категорий. Вы просто задаёте текстовый запрос (в виде промптов) перечисляя те объекты, которые хотите обнаружить.

В основе YOLO-World лежит кодер CLIP для кодирования входных текстов и новая перепараметризуемая сеть агрегирования зрительно-языковых путей (RepVL-PAN). Вместе они реализуют магию детектирования объектов без обучения.

Подробнее читайте в статье.

YOLO-World на GitHub

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

RPG — это не только игры! Рассказываем историю этого языка программирования.

Сегодня аббревиатура RPG прочно ассоциируется с компьютерным ролевыми играми. Между тем, это ещё и Report Program Generator — уникальный язык программирования, который появился в 1959 году и до сих пор сохраняет актуальность.

Изначально RPG был написан для IBM 1401 — одного из первых транзисторных компьютеров, созданного для решения бизнес-ориентированных задач. В 60-е годы XX века было выпущено свыше 10 тысяч мейнфреймов IBM 1401, которые могли арендовать даже малые предприятия.

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

RPG II и последующие версии языка адаптировали для самых разных платформ и ОС, включая Unix, IBM PC DOS и Windows (Visual RPG). В 2010 году IBM запустила проект RPG Open Access. Он позволяет программисту определять новые обработчики ввода-вывода, для которых RPG не обеспечивает встроенную поддержку.

IBM продолжает совершенствовать язык RPG. За последние годы в него добавили встроенные операторы SQL, поддержку Unicode и объектов Java, интеграцию с Eclipse и другие современные возможности. При этом сохраняется обратная совместимость. Первые программы на RPG можно запустить и сейчас практически без изменений.

Теги:
Всего голосов 5: ↑5 и ↓0+8
Комментарии0

Одни языки программирования способствуют появлению других. Мы уже писали про долгожителей FORTRAN и COBOL, а сегодня расскажем о связавшем их языке COMTRAN.

Его название представляет собой акроним от COMmercial TRANslator. Это один из первых бизнес-ориентированных языков программирования. Его разработали в IBM под руководством Роберта Бемера, больше известного как «отец ASCII». Первые спецификации COMTRAN опубликовали в 1957 году.

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

Поэтому для удобства чтения исходного кода в COMTRAN было введено разделение листинга на параграфы, причём каждому параграфу присваивалось своё имя. По этим именам можно было выполнять условные (IF… THEN) и безусловные (GO TO) переходы.

Также в COMTRAN впервые появился элемент picture clause  — побайтовое определение формата переменной. Он описывает общие характеристики и требования к редактированию элемента данных, который в COMTRAN может быть числовым или буквенно-цифровым.

В частности, picture clause использовался в программах для печати финансовых документов, на страницах которых перед каждой денежной суммой требовалось ставить знак $, а задолженность указывать со знаком «-».

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

В анализе видеопотока с помощью ИИ выделяют два подхода. Первый из них называется обработкой разреженного (sparse) видео. Он решает задачу предсказания одного результата по анализу видеофрагмента (массива кадров).

Второй подход решает задачу предсказания одного результата на кадр. Такую покадровую обработку называют анализом плотного (dense) видео. Модели ML для работы с плотным видео востребованы там, где требуется уловить кратковременные события и проанализировать быстрые изменения сцен.

❗️Существующие модели глубокого анализа видео (например, 3D CNNs) достигли впечатляющих результатов при обработке разреженного видео. Однако их адаптация к задачам плотного видео сопряжена с рядом проблем.

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

Чтобы решить эти проблемы, коллектив исследователей из Белфаста (Ирландия) разработал TDViT — модель трансформера для обработки плотного видео с блоками временнóго расширения.

Эксперименты с наборами данных ImageNet VID и YouTube VIS показали, что TDViT эффективно извлекает пространственно-временны́е представления и ослабляет негативный эффект временнóй избыточности. Также иерархическая структура блоков позволяет моделировать динамику на больших временных интервалах.

Код TDViT открыт и доступен на GitHub

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Эль-76 — язык программирования высокого уровня, с которым мы хотим вас сегодня познакомить.

«Эль-76» был написан коллективом ИТМиВТ под руководством Владимира Пентковского, позже работавшего в Intel над серией процессоров Pentium.

Вместе со специалистами в области высокопроизводительных вычислений Всеволодом Сергеевичем Бурцевым и Борисом Бабаяном он принимал участие в создании серии супер-ЭВМ «Эльбрус» и уникального языка для неё.

Изначально этот язык называли «автокодом», поскольку для «Эльбрусов» он был нативным, а все остальные программы транслировались в него. Но по своей структуре «Эль-76» — типичный язык высокого уровня, созданный в соответствии с парадигмой структурного программирования. Он поддерживал использование условных переходов, создание циклов, обработку исключений и встроенные типы данных.

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

Написание программ на «Эль-76» облегчалось использованием русскоязычных команд: «начало», «если», «иначе», «конец» и другими. На «Эль-76» были написаны программы для самых ответственных задач, включая обеспечения работы Центра управления полётами.

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии1

Что такое нейропроцессор (NPU)? Это специализированный чип, выполняющий типичные для нейросетей вычисления быстрее, чем это делает процессор универсальной архитектуры. В основном это операции с векторами и матрицами. Другое название этих чипов — «ИИ-ускорители», или AI-сопроцессоры.

Одним из первых серийно выпускаемых NPU был Ni1000, разработанный Nestor совместно с Intel. Он появился на рынке в 1993 году и применялся для оптического распознавания символов (OCR).

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

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

Исходя из конкретных задач, ИИ-ускорители могут быть выполнены на базе программируемых вентильных матриц (FPGA), интегральных схем специального назначения (ASIC), или графических процессоров (GPU).

Популярны и гибридные схемы. Например, самый быстрый суперкомпьютер в мире Frontier использует для ускорения обработки задач искусственного интеллекта как наборы инструкций процессоров AMD Epyc, так и специализированные ускорители AMD Instinct MI250X.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

РЕФАЛ — метаязык, опередивший своё время.

В 1966 году советский кибернетик Валентин Фёдорович Турчин занялся разработкой уникального метаязыка РЕФАЛ (рекурсивных функций алгоритмический). Изначально РЕФАЛ предназначался для различных символьных преобразований, семантического и синтаксического анализа текста.

Однако уже к моменту первой реализации в 1968 году РЕФАЛ превратился в функциональный язык программирования, во многом опередивший своё время.

Уже тогда с помощью РЕФАЛ можно было переводить тексты, генерировать стихи, анализировать числовые последовательности и переписывать программы с одного языка на другой.

РЕФАЛ был основан на нормальных алгоритмах Маркова — сочетании набора символов какого-либо языка (алфавита) и алгоритмических правил их подстановки.

Как писал В. Ф. Турчин: «РЕФАЛ соединяет в себе математическую простоту с практической ориентацией на написание больших и сложных программ».

Исполнение программы на РЕФАЛ происходит путём компилирования её исходного кода в промежуточную программу для абстрактной машины, которая затем интерпретируется.

Современный диалект РЕФАЛ+ появился в 1990 году. Он применяется главным образом для анализа текстов, оптимизации программ (суперкомпиляции) и решения задач в области искусственного интеллекта. На базе популярной платформы Eclipse создана интегрированная среда разработки для РЕФАЛ+.

Теги:
Всего голосов 6: ↑6 и ↓0+8
Комментарии0

spGEMM (Sparse GEneral Matrix-Matrix multiplication) — операция умножения над разреженными матрицами.

Для хранения разреженных матриц используются три основных формата:
— список координат (COO);
— сжатое хранение строкой (CSR);
— сжатое хранение столбцом (CSC).

Каждый из них имеет своим преимущества и недостатки, поэтому есть различные варианты spGEMM, использующие тот или иной формат. Например, они реализованы в библиотеках cuSPARSE, MKL и Kokkos. Во фреймворке PyTorch операции над разреженными матрицами находятся в стадии разработки.

В новой архитектуре Ampere появилась аппаратная поддержка операций с разреженными матрицами, имеющими специальную структуру (semi-structured sparse matrix). Для Ampere Nvidia разработала оптимизированный подход к использованию spGEMM и добавила поддержку редуцирования нейросетей в библиотеку APEX (A PyTorch Extension).

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

Теги:
Всего голосов 4: ↑4 и ↓0+5
Комментарии0

Ближайшие события

11 – 13 февраля
Epic Telegram Conference
Онлайн
27 марта
Deckhouse Conf 2025
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Куда растут тиам лидеры?

Как известно — фельдмаршалами не становятся, а рождаются

Типичный стереотип карьеры в АйТи выглядит следующим образом:

  1. junior developer

    (специалист начального уровня)

  2. middle developer

    (специалист среднего уровня)

  3. senior developer

    (специалист высокого уровня)

  4. .technical leader

    (технический лидер)

  5. team leader

    (лидер команды).

И что мы имеем достигнув конечной точки?

Роль TL предполагает управление командой, и большую ориентированность на коммуникации, чем на кодинг. В проекции на более бюрократическую структуру. например, банка или госсектора, это должность Начальника управления.

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

Да, административные навыки будут приобретены, и TL может тешить себя тем что теперь он управляет не пятью программерами, а сотней, но, как говорил Суньцзы в трактате Искусство войны — «Управление многими подобно управлению немногим. Это вопрос разделения сил. Введение в бой многих подобно введению в бой немногих. Это вопрос формы и названия.» — и по‑факту, независимо от числа «подчинённых», руководитель общается и управляет только пятью‑десятью ближайшими.

Иногда, я встречал подобные высказывания https://www.kt‑team.ru/blog/teamlead

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

Но на практике такого не видел.

А что думаете вы?

Теги:
Всего голосов 9: ↑1 и ↓8-7
Комментарии3

SALMONN — это новая мультимодальная модель машинного обучения с открытым исходным кодом, предназначенная для обработки аудиоданных любого типа: речи, музыки и различных звуков.

В основе SALMONN лежит интеграция большой языковой модели (LLM) с двумя энкодерами: Whisper для восприятия речи и BEATs для остальных звуков. Между собой аудиоэнкодеры и LLM объединяются через модуль преобразования данных Q-Former.

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

В качестве LLM у SALMONN используется модель Vicuna, созданная на основе модели LLaMA с 13 миллиардами параметров и обученная на лучших диалогах с ChatGPT. Также авторы SALMONN выпустили версию своей модели на основе Vicuna с 7 миллиардами параметров. Первая требует для запуска видеокарту с 80 Гб памяти, а вторая — «всего» с 40 гигабайтами.

За счёт квантования модель можно ужать до 24 Гб, тогда получится запустить её даже на игровой видеокарте, а не только на профессиональном ускорителе.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

РЕФАЛ — метаязык, опередивший своё время. Продолжаем рассказывать про языки программирования XX века.

В 1966 году советский кибернетик Валентин Фёдорович Турчин занялся разработкой уникального метаязыка РЕФАЛ (рекурсивных функций алгоритмический). Изначально РЕФАЛ предназначался для различных символьных преобразований, семантического и синтаксического анализа текста.

Однако уже к моменту первой реализации в 1968 году РЕФАЛ превратился в функциональный язык программирования, во многом опередивший своё время.

Уже тогда с помощью РЕФАЛ можно было переводить тексты, генерировать стихи, анализировать числовые последовательности и переписывать программы с одного языка на другой.

РЕФАЛ был основан на нормальных алгоритмах Маркова — сочетании набора символов какого-либо языка (алфавита) и алгоритмических правил их подстановки.

Как писал В. Ф. Турчин: «РЕФАЛ соединяет в себе математическую простоту с практической ориентацией на написание больших и сложных программ».

Исполнение программы на РЕФАЛ происходит путём компилирования её исходного кода в промежуточную программу для абстрактной машины, которая затем интерпретируется.

Современный диалект РЕФАЛ+ появился в 1990 году. Он применяется главным образом для анализа текстов, оптимизации программ (суперкомпиляции) и решения задач в области искусственного интеллекта. На базе популярной платформы Eclipse создана интегрированная среда разработки для РЕФАЛ+.

Теги:
Всего голосов 6: ↑5 и ↓1+4
Комментарии0

Что такое автокодировщик?

Автокодировщик, автоматический ассоциатор или автоэнкодер (autoencoder) — это архитектура искусственной нейронной сети, состоящая из двух частей: энкодера и декодера.

Энкодер анализирует входные данные и сжимает их для представления в скрытом пространстве (latent space). При этом сохраняются связи между автоматически выделенными признаками входных данных.

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

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

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

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Фильтры Throttling VS Debounce

Оказывается, они работают по-разному )

Еще посты об IT в ИТ БД → t.me/it_bd

Оба этих фильтра используются для того, чтобы не дублировать события.

Например, пользователь злостно и быстро кликает на кнопку «Обновить» десять раз подряд.

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

В этом случае нужно отфильтровать лишние события, то есть пропустить лишние клики, обработав лишь 1 событие.

И тут есть два подхода:

  • Throttling  — пропускает первое событие и игнорирует остальные N миллисекунд

    Например, если установить Throttling = 500мс, то обработается первый клик, а все следующие 500мс клики будут игнорироваться.

  • Debounce  — отсчитывает N миллисекунд после последнего события и только после этого пропускает последнее событие.

    Например, если установить Debounce = 500мс, то клики будут игнорироваться, пока пользователь не сделает перерыв в 500мс. После 500мс простоя последнее событие обработается.

остальные посты

Теги:
Всего голосов 7: ↑5 и ↓2+3
Комментарии0

Рассказываем про программирующую программу Ершова, которая оказала сильное влияние на школу информатики.

Работу над первым в мире самодостаточным транслятором ПП-1 Алексея Ляпунова продолжил его ученик Андрей Петрович Ершов.

В 1958 году Ершов написал монографию «Программирующая программа для быстродействующей электронной счётной машины». Она повлияла не только на отечественную, но и на западную школу информатики.

Будущий американский мэтр системного программирования Дональд Кнут изучал монографию Ершова на русском языке, когда сам был студентом.

Вскоре монография была издана за рубежом на разных языках. Её высоко оценили Джон Бэкус, Грейс Хоппер, Джон Маккарти и другие пионеры в области теоретического программирования. Фактически это был первый академический труд по автоматизации процесса создания программ и их переноса на разные архитектуры.

Монография описывала транслятор для БЭСМ и «Стрелы», в котором были реализованы новаторские подходы.

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

Андрей Петрович исследовал статистические свойства таких функций, а затем использовал их для оптимизации кода путём сокращения числа команд и экономии памяти. Позже под руководством Ершова были созданы целые системы оптимизации «АЛЬФА» и «БЕТА», предопределившие методологию оптимизирующей трансляции.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Что такое сшиваемые нейронные сети? Разбираемся вместе с коллегами из лаборатории больших данных компании «Криптонит».

На сегодня созданы целые семейства предварительно обученных моделей с различными архитектурами (таких как ResNet/DeiT), в каждом из которых есть версии разного масштаба (например, DeiT-Ti/S/B).

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

Устранить этот недостаток призвана концепция сшиваемых нейронных сетей (Stitchable Neural Networks), которая была реализована в виде фреймворка глубокого обучения SN-Net. Она позволяет сочетать множество архитектур нейросетей и достигать компромисса между смещением и дисперсией, одновременно задействуя различные типы предварительно обученных моделей, которые авторы называют «якорями».

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

Эксперименты по классификации объектов на основе набора данных ImageNet демонстрируют, что SN-Net может достигать производительности на уровне или даже выше, чем индивидуально обученные модели, поддерживая при этом различные сценарии развёртывания.

Подробнее о SN-Net можно почитать здесь.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0