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

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

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

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

Фильтры 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

COBOL (COmmon Business Oriented Language) — один из первых языков программирования, инструкции которого записывались английскими словами (OPEN, SELECT, ASSIGN…) и были легко читаемы. Он был создан в 1959 году комитетом CODASYL по разработке универсального языка программирования для коммерческих систем.

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

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

В США, Канаде, Мексике и десятках стран поменьше на COBOL до сих пор работают многие высоконагруженные бэкенды. Это сотни миллиардов строк кода, который сегодня уже мало кто может поддерживать.

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

С 2020 года IBM разрабатывает помощник на основе искусственного интеллекта, который помог бы переписать код с COBOL на Java. Проблема в том, что даже с ним остаётся колоссальное количество ручной работы и требуются многочисленные проверки.

Код на COBOL «вылизывали» полвека, и его можно считать образцом стабильности. Как поведут себя переписанные программы в столь ответственных областях — трудно предугадать, а цена ошибки слишком велика.

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

В своих разработках «Криптонит» активно использует искусственные нейронные сети. Поэтому мы решили расшифровать связанные с этой сферой термины и их практический смысл. Все материалы из рубрики "Нейрословарь" подготовлены при помощи наших экспертов из лаборатории больших данных.

MPNet — это гибридная языковая модель, разработанная в 2020 году компанией Microsoft и китайским Университетом науки и технологий в Нанкине. Её название расшифровывается как Masked and Permuted Pre-training for Language Understanding (маскированное и перестановочное предварительное обучение для понимания языка).

Необходимость в разработке MPNet была продиктована тем, что в современных языковых моделях используются два основных подхода к обработке лексем: это масочное и пермутационное моделирование языка (MLM и PLM соответственно). PLM лучше учитывает зависимости между лексемами на выходе, а MLM эффективнее выполняет предварительное обучение и тонкую настройку согласованности.

MPNet объединяет сильные стороны MLM и PLM. Перестановки учитывают только локальный контекст (соседние слова) и ничего не знают о положении предсказываемого слова (или токена) в предложении, а при маскировании модель видит всё предложение целиком, кроме замаскированного слова. Она знает глобальный контекст предложения и положение слова, но плохо учитывает локальный контекст.

#нейрословарь

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

Знаете, какой язык высокого уровня был одним из первых и дошёл до наших дней? Fortran — про него новый выпуск истории языков программирования.

Название Fortran является акронимом от FORmula TRANslating System — система трансляции формул. Он был разработан сотрудником IBM Джоном Бэкусом в 1954-1957 годах.

Ключевая идея Бэкуса была в том, что последовательности вычислений нужно записывать не в машинных кодах, а как вызовы типовых подпрограмм. При этом сами подпрограммы появились только в FORTRAN II вместе с поддержкой процедурного программирования в 1958 году. Для этого Бэкус и трое его коллег из IBM разработали символическую систему записи математических расчётов, сделав акцент на циклические выражения.

Другие важные особенности Fortran — встроенная поддержка параллельных вычислений и векторных операций. Поэтому Fortran до сих пор актуален, особенно в сфере высокопроизводительных вычислений (HPC). В частности, тесты для рейтинга TOP 500 самых быстрых суперкомпьютеров мира написаны на Fortran.

Ещё одна причина сохраняющейся актуальности языка — простота операций над большими массивами и компиляция в эффективный двоичный код. На Fortran пишут библиотеки математических функций (см. IMSL Fortran Numerical Libraries), ПО для решения инженерных и научных задач, специфический софт для Big Data и бизнес-аналитики.

Актуальная сегодня версия Fortran стандартизирована в 2018 году. Следующий стандарт Fortran 202x находится в разработке.

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

Ансамблевое обучение (ensemble learning) — это объединение разных моделей машинного обучения для более эффективного решения задачи классификации или регрессии. Идея комбинировать простые алгоритмы для взаимного нивелирования их ошибок возникла в 90-е годы XX века.

К настоящему моменту разработан целый ряд методов ансамблевого обучения, такие как бэггинг (bagging), стэкинг (stacking), блендинг (blending) и бустинг (boosting).

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

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

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

Что такое «программирующая программа»?

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

Переход от машинных кодов к языкам высокого уровня стал возможен благодаря разработке методов структурного представления алгоритмов и автоматизации самого процесса написания программ.

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

Под руководством Алексея Ляпунова в 1954 году в Институте математики АН СССР был написан первый советский транслятор — ПП-1, или «программирующая программа номер 1». Она вызвала большой интерес со стороны высшего руководства страны и получила статус приоритетной разработки.

Уже в 1956 году на её базе создали «ПП-2» первый в мире транслятор с загрузчиком, отладчиком и библиотекой основных процедур. Он использовался на засекреченной ЭВМ «Стрела», установленной в Вычислительном центре Минобороны СССР.

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

Слышали про метод главных компонент? Его ещё называют PCA — principal component analysis. Он широко используется в машинном обучении. Чаще всего он применяется для предварительной обработки данных в задачах кластеризации, классификации и реконструкции.

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

По этим же соображениям оправдано применение PCA перед построением модели классификации (такой как логистическая регрессия или метод опорных векторов — SVM).

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

К преимуществам PCA можно отнести его универсальность и простоту реализации, а к недостаткам — линейность и чувствительность к масштабированию признаков . Если анализируемые признаки имеют различные масштабы, то результаты PCA могут быть искажены.

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

Что такое Bias-Variance Tradeoff?

Компромисс между смещением и дисперсией (Bias-Variance Tradeoff) — одна из базовых концепций в машинном обучении. Она отражает поиск баланса между двумя источниками ошибок в модели предсказания: смещением (bias) оценки параметров и дисперсией (variance) ошибки прогноза. По сути это поиск компромисса между недо- и переобучением.

Смещение оценки модели возникает из-за ошибочных предположений о данных. Модель с большим смещением хуже выделяет взаимосвязь между признаками и предсказываемыми данными, то есть склонна недообучаться.

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

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

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

Гиперпараметры модели

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

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

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

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

Корректно подобранные гиперпараметры могут также улучшить способность модели к обобщению и оптимизировать её работу с учётом конкретной аппаратной платформы.

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

Точность и полнота нейросетей

В своих разработках «Криптонит» использует искусственные нейронные сети. И мы продолжаем пояснять термины.

В машинном обучении precision (точность) и recall (полнота) являются двумя метриками, используемыми для оценки производительности алгоритмов классификации. Они численно показывают, насколько успешно классификатор отделяет объекты одного класса от другого.

Точность (P) измеряется как доля верно классифицированных объектов от общего числа положительных примеров (в которых классификатор счёл, что пример содержит объект данного класса).

Точность вычисляется по формуле P = TP / (TP + FP), где TP — количество истинно положительных примеров, а FP — количество ложноположительных примеров.

Полнота (R) показывает долю правильно классифицированных положительных примеров от общего числа истинно положительных примеров.

Формула для расчёта полноты: TP / (TP + FN), где FN — количество ложноотрицательных примеров.

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

Если важно минимизировать ложные положительные прогнозы (неверно классифицированные негативные примеры), стоит ориентироваться на точность. Если важнее избегать пропуска положительных примеров (нужно минимизировать ложные отрицательные прогнозы), стоит ориентироваться на полноту.

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

Что такое YandexGPT?

Рассказываем вместе с нашими экспертами из лаборатории больших данных.

YandexGPT или YaGPT — генеративная нейросеть на основе языковой модели YaLM (Yet another Language Model). Она применяется как режим общения в голосовом помощнике «Алиса» (включается по команде: «Алиса, давай придумаем!»), встроена в Яндекс Браузер и доступна через API в облачной платформе Yandex Cloud.

Главное отличие от ChatGPT состоит в том, что YaGPT изначально обучалась на русскоязычных текстах и поисковых запросах к Яндексу. Поэтому она точнее строит фразы на русском языке.

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

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

Недавно компания "Яндекс" представила обновлённую версию языковой модели — YandexGPT 2. Она лучше справляется с задачами генерации и обработки текста, но также не в курсе последних событий, так как для её обучения использовались наборы данных, собранных до марта 2023 года.

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

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

Что такое XLNet?

XLNet, или eXtreme Language Model — это языковая модель, созданная компанией Microsoft в 2017 году. Она использует современную архитектуру Transformer с некоторыми улучшениями и модификациями.

Главное из них — использование функции Cross-Layer Attention, выполняющей обработку контекстуальных зависимостей. Она позволяет моделировать двунаправленные взаимодействия между различными слоями и обеспечивает комплексное представление входных данных.

В классической модели Transformer каждый слой самостоятельно обрабатывает данные. Функция Cross-Layer Attention отменяет это ограничение. Точнее, она позволяет учитывать зависимости между данными, находящимися как выше, так и ниже текущего слоя. Это даёт возможность лучше анализировать контекст, особенно в длинных запросах.

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

Напишите в комментариях, какие ещё термины вам бы хотелось разобрать в рубрике #нейрословарь, которую мы ведём вместе с экспертами из лаборатории больших данных компании "Криптонит".

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

Что такое GoogLeNet?

Рассказывают наши эксперты из лаборатории больших данных.

GoogLeNet — глубокая свёрточная нейросеть, разработанная командой исследователей из Google в 2014 году для классификации изображений. «Le» в её названии — это отсылка к нейросети LeNet 5, одной из первых свёрточных нейросетей, способствовавшей развитию идеи глубокого обучения с 1988 года.

Главным отличием архитектуры GoogLeNet от других свёрточных нейросетей (CNN) является использование дополнительного модуля начальной обработки данных — Inception. Он параллельно применяет свёртки с разными размерами ядра (1x1, 3x3, 5x5), а затем объединяет вектора признаков. Это позволяет эффективнее выделять локальные и глобальные признаки анализируемого изображения.

Несмотря на глубокую архитектуру сети, состоящую из 22 слоёв, количество используемых параметров GoogLeNet остаётся относительно небольшим. Это достигается благодаря использованию свёртки 1x1, которая по сути работает как линейный фильтр и уменьшает размерность следующего слоя. Поэтому GoogLeNet менее требовательна к объёму памяти видеокарты, чем AlexNet и другие архитектуры без модуля Inception.

За счёт своей сбалансированности GoogLeNet показывает высокую точность классификации на изображениях различного размера. В 2014-м году она победила в соревновании ImageNet. С тех пор на её основе разрабатываются более современные нейросети, также использующие глубокую свёрточную архитектуру и концепцию модуля Inception.

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

Что такое YOLO?

Разбираемся вместе с нашими экспертами из лаборатории больших данных.

YOLO (you only look once) — это архитектура детектора по распознаванию объектов в реальном времени. YOLO состоит из двух частей: encoder (свёрточные слои) и head (классификационный слой).

Энкодер выполняет роль первичной обработки изображений и извлечения признаков объектов. Обычно для этого используется Darknet или другая предобученная CNN.

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

Благодаря своей способности анализировать объекты одновременно на всём изображении, YOLO обеспечивает высокую скорость и точность распознавания объектов.

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

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

Что такое "пирамида признаков"?

Рассказываем в рубрике #нейрословарь вместе с нашими экспертами из лаборатории больших данных.

Пирамида признаков (FPN, Feature Pyramid Net) — это вычислительная архитектура, используемая в машинном зрении для обработки изображений без привязки к их разрешению. Она позволяет обнаруживать объекты на изображениях различных размеров, масштабировать их и автоматически подстраиваться под меняющиеся условия.

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

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

Основные конкурирующие архитектуры для FPN — U-Net и SegNet. Они менее требовательны к ресурсам, но работают только с изображениями фиксированного разрешения и распознают объекты определённого размера. FPN лишена этих ограничений, поэтому в условиях меняющегося окружения показывает более стабильные результаты.

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

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

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

Это может быть текстовый ответ чат-бота, или озвученный с помощью синтеза речи ответ голосового ассистента. Если ответ формируется на другом языке, то мы получаем систему машинного перевода, вроде Google Translate.

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

Напишите, какие ещё термины из сферы машинного обучения вам хотелось бы разобрать в нашей рубрике #нейрословарь.

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

Что такое многослойный перцептрон (MLP)? Рассказывают эксперты из лаборатории больших данных компании "Криптонит".

Многослойный перцептрон (MLP) — это одна из элементарных архитектур, с которой часто начинают освоение нейронных сетей и принципов их обучения. Обычно его сравнивают с такими типами моделей машинного обучения, как опорно-векторная машина и сети Кохонена. По сравнению с ними, MLP предоставляет более точные результаты, особенно в задачах классификации.

Для обучения MLP используется принцип обратного распространения ошибки. Одно из преимуществ MLP — способность обучаться на наборах данных любого размера.

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

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

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

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