All streams
Search
Write a publication
Pull to refresh
6
0
Виктория @ledevik

SMM в IT или «да ты же просто постики пишешь»

Send message

Слышали про Audio2photoreal? Это модель машинного обучения, которая анимирует мимику 3D-аватаров на основе аудиозаписей голоса.

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

В его основе лежит объединение двух методов: векторного квантования (VQ) и диффузии. Первый точнее передаёт движения, а второй повышает детализацию.

Процесс анимации состоит из трёх частей:
• моделирования мимики;
• предсказания динамики позы;
• отрисовки движений тела.

На выходе получается анимированная со скоростью 30 кадров/с реконструкция говорящего человека.

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

На GitHub доступна реализация Audio2photoreal на Pytorch3D. С её помощью вы можете сгенерировать говорящих аватаров, используя в качестве входных данных речевые аудиозаписи.

Tags:
Total votes 1: ↑1 and ↓0+3
Comments0

Интересуетесь криптографией? Тогда регистрируйтесь на международную олимпиаду по криптографии NSUCRYPTO-2024 — первый тур пройдёт уже 13 октября!

Уровень задач непростой — будет интересно и профессионалам! Первый тур, индивидуальный, пройдёт 13 октября, а командный — с 14 по 21 октября.

В этом году мы снова стали партнёром олимпиады, а руководитель лаборатории криптографии «Криптонита» Василий Шишкин вошёл в состав программного комитета.

Tags:
Total votes 4: ↑4 and ↓0+6
Comments0

Mira и MiraData помогут тренировать генеративные нейросети, создающие видеоролики. Рассказываю, что это такое вместе с экспертами из лаборатории искусственного интеллекта ИТ-компании «Криптонит».

Китайский холдинг Tencent выложил в открытый доступ MiraData — набор видеоданных с увеличенной длительностью от 60 до 120 секунд и структурированными субтитрами. С помощью него можно тренировать генеративные нейросети, создающие видеоролики.

MiraData — это часть платформы Mira. Она же — аналог SORA, популярной нейросети для синтеза видео. В ней также объединяются подходы трансформеров и диффузионной генерации.

Дата-сет MiraData создавался с учётом особенностей Mira, среди которых можно выделить следующие:

  • поддержка генерации видеороликов большой длительности;

  • ориентированность на динамичные ролики с частой сменой планов;

  • сохранение целостности 3D объектов даже после быстрого изменения ракурса;

  • подробные описания сцены (средняя длина субтитров составляет 349 слов).

Как пишут разработчики: «Проект Mira — это наша попытка исследовать и усовершенствовать весь конвейер обучения моделей для легких инфраструктур T2V (text-to-video), подобных Sora».

Подробнее читайте на странице проекта в GitHub.

Tags:
Total votes 1: ↑1 and ↓0+3
Comments0

Язык программирования FOCAL использовали на советском компьютере-клавиатуре «Электроника БК-0010» и на ПК серии PDP.

FOCAL — Formulating Online Calculations in Algebraic Language (формулирование онлайн-вычислений на алгебраическом языке). Он появился в 1968 году как упрощённый вариант языка JOSS, в котором впервые было представлено разделение времени. Первая версия называлась просто FOCAL. Через год вышла доработанная редакция FOCAL-69, а ещё через два появился FOCAL-71.

По сравнению с BASIC, FOCAL требовал меньше памяти и мог работать в минимальном системном окружении. Интерпретатор «Фокал» записывался прямо в ПЗУ и позволял писать более сложные программы.

Синтаксис у FOCAL и BASIC сходен. При этом в FOCAL каждое зарезервированное слово начинается на свою уникальную букву, поэтому команды можно сокращать. Например, вместо COMMENT писать C, вместо TEXT — T, а QUIT заменить Q.

Вот пример листинга:
01.01 C Вывести на экран слово «Криптонит» заглавными буквами
01.02 T "КРИПТОНИТ" !
01.03 Q

На FOCAL была написана оригинальная игра «Посадка на Луну» (Lunar Lander), позже переписанная на другие языки. «Фокал» мог стать популярным, однако из-за стремления к упрощению он не поддерживал пользовательские функции, а все переменные в нём были только числовыми (с фиксированной запятой), что затрудняло написание кода.

В середине семидесятых на смену PDP пришла 32-разрядная архитектура VAX и «Фокал» постепенно утратил актуальность. С девяностых этот язык практически не используется.

Tags:
Total votes 3: ↑3 and ↓0+6
Comments1

Слышали о самом (не)благозвучном языке программирования — Brainfuck?

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

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

За мозговыносящий синтаксис, больше похожий на топтание кота по знакам препинания, Brainfuck и получил своё название. Для примера напишем программу, которая будет выводить слово KRYPTONITE в ASCII кодах (75 82 89 80 84 79 78 73 84 69).

Вот один из вариантов её реализации:
++++++++++[>+++++++>++++++++<<-]>+++++.>++.+++++++.<+++++.++++.-----.-.-----.>-----.<----.


Здесь используется цикл и три ячейки памяти. Мы записываем в нулевую ячейку "10" как начальное значение счётчика. В конце каждого цикла оно уменьшается на единицу, пока не станет равным нулю. В первую ячейку записываем "7", а во вторую — "8".

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

Например, буква «К» получается добавлением пяти (+++++) к значению "70" из первой ячейки, а буква «R» — добавлением двух (++) к значению "80" из второй ячейки.

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

Tags:
Total votes 1: ↑1 and ↓0+3
Comments1

Cети Колмогорова-Арнольда (KAN) могут стать эффективной альтернативой многослойным перцептронам (MLP), лежащим в основе моделей глубокого машинного обучения. MLP основаны на универсальной теореме аппроксимации, а KAN базируются на теореме Колмогорова-Арнольда.

В то время как у MLP есть фиксированные функции активации на узлах (искусственных нейронах), у KAN вместо них используются обучаемые функции активации на гранях («веса»).

В KAN вообще нет линейных весов — каждый весовой параметр заменяется одномерной функцией, параметризованной как сплайн.

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

В мае 2024 года была опубликована интересная научная работа, в которой выполнено обобщение оригинального описания теоремы Колмогорова-Арнольда на произвольные размерности.

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

Tags:
Total votes 1: ↑1 and ↓0+1
Comments0

Язык программирования Eiffel.

В 1985 году французский специалист в области программной инженерии Бертран Мейер представил язык программирования Eiffel, ориентированный на создание ПО для критически важной инфраструктуры.

Название Eiffel было дано в честь Александра Гюстава Эйфеля, построившего в Париже знаменитую башню. Аналогия призвана показать, что язык «Эйфель» также надёжен, как Эйфелева башня, и позволяет быстро создавать сложные конструкции из стандартных компонентов без ущерба безопасности.

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

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

Язык Eiffel продолжает развиваться, а Бертран Мейер с 2014 года преподаёт в российском Университете Иннополис, где ведёт курсы «Введение в требования и спецификации программного обеспечения», «Методология и методы научного исследования» и другие.

Tags:
Total votes 4: ↑2 and ↓2+4
Comments1

Если у вас таблицы с миллионами строк, обратите внимание на Polars — проект с открытым исходным кодом, который написан на Rust и распространяется бесплатно по лицензии MIT. Рассказываем про эту быструю альтернативу Pandas ниже.

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

Проект поддерживает распространённые форматы (CSV, JSON, Parquet), умеет работать с различными облачными хранилищами (S3, Azure Blob, BigQuery) и базами данных (Postgres, MySQL).

В отличие от Pandas, Polars не присваивает каждой строке метку с индексом. Строки индексируются по их целочисленным позициям в таблице. Поэтому в Polars семантика запроса не меняется в зависимости от состояния индекса.

Для представления данных в памяти Polars использует Apache Arrow — колоночно-ориентированный формат, широко используемый аналитиками из-за его высокой эффективности. Он ускоряет загрузку данных и сокращает расход памяти. Pandas применяет для этих целей массивы NumPy. Поскольку многие переходят на Polars с Pandas, из соображений совместимости Polars может конвертировать данные в формат NumPy.

Для тех, кто знаком с Pandas, переход на Polars не составит труда благодаря схожести интерфейсов. Устанавливается Polars с помощью стандартного менеджера пакетов.

Tags:
Total votes 2: ↑2 and ↓0+4
Comments0

Что такое 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, настройка выделенной памяти и другие).

Tags:
Total votes 1: ↑1 and ↓0+3
Comments0

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

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

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

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

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

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

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

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

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

Tags:
Total votes 4: ↑4 and ↓0+4
Comments3

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

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

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

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

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

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

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

Tags:
Total votes 3: ↑3 and ↓0+4
Comments0

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 (предшественник интернета).

Tags:
Total votes 3: ↑3 and ↓0+3
Comments0

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

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

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

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

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

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

YOLO-World на GitHub

Tags:
Total votes 3: ↑3 and ↓0+3
Comments0

Рассказываем, что такое FastViT. Это новая модель для задач машинного зрения, дуэт трансформера и свёрточной нейросети (CNN), объединяющий сильные стороны двух архитектур.

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

В тестах разработчиков FastVIT она оказалась в 1,9 раза быстрее, чем ConvNeXt и в 3,5 раза быстрее, чем CMT на наборе данных ImageNet при том же, или даже чуть меньшем проценте ошибок. FastVIT более устойчива к искажениям.

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

Тесты авторов показали, что при разрешении 1024×1024 RepMixer уменьшает время обработки изображений почти вдвое — на 43,9%.

FastVIT использует и другие архитектурные улучшения. Подробнее о них читайте здесь.

Tags:
Total votes 3: ↑3 and ↓0+5
Comments0

Ну что, родители школьников, настало ваше счастливое время?? Приближаются (или уже даже начались) летние каникулы!

Но тут встаёт вопрос: а чем занять детей во время отдыха, чтобы они постоянно не сидели в телефоне и не смотрели YouTube?

У нас есть подборка материалов с идеями полезного досуга!

▪️ Чем заняться с детьми на праздниках, если ты айтишник. Часть 1. Наш коллега Андрей объясняет своей дочери понятие «гамма», шифр из рассказа «Пляшущие человечки» Конан Дойла и принцип работы решётки Кардано.

▪️ Что делать с детьми летом, если ты айтишник. Часть 2. В этой части Андрей доказывает, что пятилетний ребёнок и мультиметр с паяльником — это не гремучая смесь, а очень даже рабочая комбинация для совместного досуга (естественно, под бдительным присмотром и руководством родителя-айтишника).

Этот материал вошёл в шорт-лист номинации «Технотекст 2023» на Хабре — особенно советуем его прочитать.

▪️ Как вырастить из ребёнка айтишника долгими зимними вечерами? Часть 3. В продолжении сериала серии материалов наш коллега тестирует связанные с криптографией игры для детей: «Секретный код» и «Взломай код».

❗️ А на этой неделе у нас выходит новая статья из этой серии! Вы узнаете о разноцветном шифровании, «тетрисе» на бумаге, вспомните безопасные игры со спичками (или счётными палочками), выберитесь из числовых лабиринтов и познакомитесь с чудаковатыми родственниками кубика Рубика. Не пропустите!

Tags:
Total votes 4: ↑4 and ↓0+6
Comments0

Всем привет! Я работаю в ИТ-компании «Криптонит», и наши тимлиды (думаю, как везде) часто дают технические задачи на собеседованиях.

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

Мы сняли видео, где решаем задачи с собеседований во frontend-разработку «Криптонита». Помог это сделать Василий Беляев, руководитель группы разработки интерфейсов.

?Смотрите ролик на YouTube-канале «Криптонита» — https://youtu.be/EhNF3Et5aDk. Он будет полезен для джунов и мидлов.

В видео разбираемся, что делать с задачей «Палиндром», «Поворот матрицы» и «Подсчёт элементов в списке». А в конце — бонус-решение, которое не требует кода. Обязательно досмотрите до конца!

Tags:
Total votes 6: ↑4 and ↓2+5
Comments0

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

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

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

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

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

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

Tags:
Total votes 2: ↑2 and ↓0+2
Comments2

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

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

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

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

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

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

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

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

Tags:
Total votes 6: ↑6 and ↓0+8
Comments0

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 позволяет получать разреженные нейросети без существенной потери в качественных метриках. Он уменьшает объём обрабатываемых данных и способствует более эффективному балансу нагрузки в параллельных вычислениях.

Tags:
Total votes 4: ↑4 and ↓0+5
Comments0

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity

Specialization

SMM Specialist, PR-manager
Senior