Pull to refresh
32
0
Rajken @Rajken

Пользователь

Send message

Создание игровых карт на основе диаграмм Вороного

Reading time6 min
Views10K
Я написал статью о генерации полигональных карт при помощи диаграмм Вороного, но не объяснил, как писать её код. В этой статье я расскажу об основах создания вот таких карт с примерами кода на Javascript:


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

  1. симплекс-шум: jwagner/simplex-noise.
  2. Вороной: mapbox/delaunator.

Если вы не работаете с Javascript, то для большинства языков тоже существуют библиотеки шума, а Delaunator был портирован на многие языки.
Читать дальше →

ruT5, ruRoBERTa, ruBERT: как мы обучили серию моделей для русского языка

Reading time5 min
Views29K


В зоопарке русскоязычных моделей прибавление: в открытом доступе появилась модель text2text-генерации ruT5 и модели-энкодеры ruRoBERTa и ruBERT, формирующие семантическое пространство текста. Модели можно использовать для создания классификаторов текстов, кластеризации, извлечения информации, суммаризации и многих других NLP-задач.

Ещё в начале пути создания виртуальных ассистентов Салют мы, команда NLP R&D SberDevices, поняли, что нужно обучать базовые языковые модели для русского языка, ориентируясь на успешные модели для английского. Опыта в этом, надо сказать, у нас было немного. Прошло два года, и сейчас мы обучили множество моделей, которыми хотим поделиться с вами.

С нашими «гптшками» вы уже знакомы, и про них мы уже рассказывали. Сейчас мы решили расширить наш открытый зоопарк и остальными моделями. Их все легко дообучать и использовать в проме на одной GPU, в том числе в Colab. Мы надеемся, что эти модели будут полезны русскому NLP-сообществу и помогут родиться многим интересным решениям.

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

Все модели размещены в формате PyTorch-Transformers. Вы можете скачать их в HF transformers.

Colab с примерами.
Читать дальше →

Маленький и быстрый BERT для русского языка

Reading time9 min
Views70K

BERT – нейросеть, способная неплохо понимать смысл текстов на человеческом языке. Впервые появившись в 2018 году, эта модель совершила переворот в компьютерной лингвистике. Базовая версия модели долго предобучается, читая миллионы текстов и постепенно осваивая язык, а потом её можно дообучить на собственной прикладной задаче, например, классификации комментариев или выделении в тексте имён, названий и адресов. Стандартная версия BERT довольно толстая: весит больше 600 мегабайт, обрабатывает предложение около 120 миллисекунд (на CPU). В этом посте я предлагаю уменьшенную версию BERT для русского языка – 45 мегабайт, 6 миллисекунд на предложение. Она была получена в результате дистилляции нескольких больших моделей. Уже есть tinybert для английского от Хуавея, есть моя уменьшалка FastText'а, а вот маленький (англо-)русский BERT, кажется, появился впервые. Но насколько он хорош?

Читать далее

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

Reading time9 min
Views69K

fiona


Вторая частьhttps://habr.com/ru/post/563484/


Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


  • Приемлемый уровень естественности речи;
  • Большая библиотека готовых голосов на разных языках;
  • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
  • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
  • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
  • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
  • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
  • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
  • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

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

Максимально оптимизированная веб-загрузка изображений в 2021 году

Reading time6 min
Views31K

В этой статье я расскажу про 8 методик оптимизации загрузки изображений, которые уменьшают необходимую пропускную способность сети и нагрузку на процессор при выводе на экран. Приведу примеры аннотированного HTML, чтобы вам было легче воспроизвести. Какие-то методики уже давно известны, а какие-то появились относительно недавно. В идеале, ваш любимый механизм публикации веб-документов (например, CMS, генератор статичных сайтов или фреймворк для веб-приложений) должен всё это реализовывать из коробки.
Читать дальше →

Вычисляем баллистические траектории в играх

Reading time7 min
Views34K

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

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

Уравнения движения


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

Существует четыре основных уравнения движения. В статье мы воспользуемся только одним.

Навеянное Prolog-ом коммерческое решение пробыло больше 10 лет в эксплуатации

Reading time13 min
Views5.2K
Для большинства программистов которые хотя бы слышали про Prolog это только странный артефакт из времён когда компьютеры были размером с динозавров. Некоторые сдали и забыли в институте. И лишь узкие как листочек A4 специалисты сталкивались с чем-то подобным в современном мире. Так уж получилось, что далёком 2003-ем году я использовал некоторые решения подчерпнутые из Prolog-а, в коммерческих играх на Flash и больше десятилетия они радовали французов. Причём применил я это полудекларативное решение не потому что прочитал книжку Братко и впечатлился, а потому что это было реально нужно нашему проекту. Я до сих пор регулярно порываюсь воспроизвести то решение на современном уровне, потому что оно очень много где было бы полезным в современном игрострое, но, к сожалению, каждый раз находятся дела поважнее… В общем об этом всём и расскажу.


Скриншот той самой флэшовой игры до сих пор приветствует вас на сайте toox.com/jeux/jeux-de-cartes/coinche
Ещё раз предупреждаю, всё что будет дальше не про Prolog, а про надёрганные из него идеи

Переменные CSS — курс молодого бойца

Reading time12 min
Views24K

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

Основная цель статьи: я хочу иметь место, где собрано все, что я знаю о переменных CSS, чтобы узнать и понять больше. Здесь вы прочитаете обо всем, что должны знать о переменных CSS, включая примеры применения в коде. Вы готовы? Тогда погружаемся.
Приятного чтения!

Веб-разработчику: 10 полезных инструментов

Reading time3 min
Views22K
Статья, перевод которой мы публикуем сегодня, посвящена 10 полезным инструментам, которые предназначены для веб-разработчиков. Автор материала считает, что это — как раз такие инструменты, которые позволяют, как говорится, «работать с умом, а не до ночи».


Читать дальше →

BungeeCord и Minecraft: Проблемы безопасности и опасности

Reading time6 min
Views25K

Коротко о Bungee


BungeeCord — прокси-сервер, позволяющий игровым проектам объединять несколько серверов Minecraft с возможностью быстрого переключения игроков между ними.

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

Коротко, где чаще всего используется BungeeCord:

  • Сервера с несколькими игровыми режимами (в том числе, сервера с мини-играми)
  • Сервера с высокой нагрузкой и необходимостью распределения онлайна
  • Сервера, использующие защиту от бот-атак на основе BotFilter (характерный признак такого сервера — «проверка на падение» или капча при входе)

image

Наиболее распространенные уязвимости таких серверов:

  • Неконтролируемый доступ к командам прокси-сервера
  • Обход сервера авторизации
  • Подмена данных игрока
  • Уязвимости модулей промежуточных серверов
Читать дальше →

Сравниваем подсистемы WSL 1 и WSL 2. Стоит ли переходить?

Reading time4 min
Views34K


В этой заметке в стиле «мысли вслух» автор хотел бы сравнить WSL первой и второй версии, благо опыт общения имеется.
Читать дальше →

Laravel-Дайджест (1–7 июня 2020)

Reading time2 min
Views4.3K

Подборка новых статей по фреймворку Laravel. Обсудим дефолтные контроллеры, настроим мидлвары и подключим Paypal. Также посмотрим новую админку, позагружаем видео на сайт, отрефакторим код вместе со Spatie и погоняем тесты. Плюс еще много всего вкусного!


Laravel Digest
Фото: Taylor Otwell

Читать дальше →

Как я чуть не выкинул 150к на ветер или история установки приточной вентиляции в квартире

Reading time19 min
Views709K

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


Читать дальше →

Советы по использованию алгоритма коллапса волновой функции

Reading time7 min
Views13K
image

В последнее время я много экспериментировал с процедурной генерацией на основе ограничений. В частности, с алгоритмом Wave Function Collapse (WFC, коллапс волновой функции). Я даже написал собственную open source-библиотеку и ассет unity.

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

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

Первые в мире серийные лампы с солнечным спектром

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



Читать дальше →

Docker Tips: Очистите свою машину от хлама

Reading time8 min
Views195K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Docker Tips: Clean Up Your Local Machine" автора Luc Juggery.


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

Читать дальше →

Умные телевизоры Samsung, LG, Vizio и TCL ежесекундно снимают «отпечатки» экрана и отправляют на сервер

Reading time5 min
Views101K

Сетевая активность телевизора Samsung 5 Series. Скриншот: Geoffrey Fowler/The Washington Post

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

Об этом не принято говорить, но факт: если из умного телевизора убрать «умную» функциональность, то он станет дороже. Дело в том, что производители ТВ плотно вовлечены в индустрию контента, рекламы, маркетинга, дата-майнинга и торговли данными пользователей. По объёму собираемых данных эти платформы догоняют Google и Apple.

Издание The Washington Post провело небольшой эксперимент и отследило, как четыре крупнейших производителя ТВ записывают всё, что мы смотрим. Сетевой трафик телевизоров Samsung, LG, Vizio и TCL изучали программой IoT Inspector от Принстонского университета.
Читать дальше →

Почему для открытия меню Windows читает один файл сто тысяч раз?

Reading time4 min
Views158K

«Проводник тратит 700 мс на то, чтобы открыть контекстное меню панели задач. 75% этого времени он выполняет 114 801 операцию считывания из одного файла, средний объём считываемых данных 68 байт.

Мне стоит написать пост об этом, или достаточно саркастичного твита?»


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

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

Этот пост написан как проверка скоростного блогинга. От момента нахождения проблемы и саркастичного твита о ней до публикации поста прошло примерно 90 минут.
Читать дальше →

Генерируем тайловые уровни и прячем квадраты от игрока

Reading time8 min
Views19K

Генерация уровней в Unexplored 2


Мы очень гордимся генератором уровней игры Unexplored 2, это программа, отвечающая всем современным требованиям. В посте я расскажу о том, как создаются уровни игры.

Нам не пришлось заново изобретать велосипед. В Unexplored 1 мы уже создали техники, которые сильно повлияли на успех первой игры. Unexplored 2 просто продолжила начатое. Фундамент нашей технологии состоит из двух частей: мы применяем многоэтапную генерацию, которая почти имитирует процесс, очень похожий на работу живого дизайнера уровней. Поверх него мы используем технику под названием "циклическая генерация подземелий", которая гораздо лучше справляется с генерацией естественно выглядящих уровней, чем большинство стандартных приложений генеративного создания контента. В этом посте я расскажу о первом аспекте. Адаптация циклической генерации подземелий к Unexplored 2 будет темой будущего поста.

Имитация «человеческого» дизайна уровней


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

Шейдеры 3D-игр для начинающих

Reading time19 min
Views25K
image

Хотите научиться добавлять в свою 3D-игру текстуры, освещение, тени, карты нормалей, светящиеся объекты, ambient occlusion и другие эффекты? Отлично! В этой статье представлен набор техник затенения, способных поднять уровень графики вашей игры на новые высоты. Я объясняю каждую технику таким образом, чтобы вы могли применить/портировать эту информацию в любом стеке инструментов, будь то Godot, Unity или что-то иное.

В качестве «клея» между шейдерами я решил использовать великолепный игровой движок Panda3D и OpenGL Shading Language (GLSL). Если вы пользуетесь таким же стеком, то получите дополнительное преимущество — узнаете, как использовать техники затенения конкретно в Panda3D и OpenGL.
Читать дальше →

Information

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