Мышь на голове у мамонта
Исследователи во всем мире предлагают способы генерации текста с заданием условий. Интересный метод предложен Uber AI в статье Plug and Play Language Models: A Simple Approach to Controlled Text Generation (далее по тексту просто «статья»). Ниже приведен пример, сгенерированный моделью из статьи. Модель настроили так, чтобы она завершила предложение позитивно:
The food is awful, but there is also the music, the story and the magic! The «Avenged Sevenfold» is a masterfully performed rock musical that will have a strong presence all over the world.
(Еда ужасна, но еще здесь есть музыка, сюжет, магическая атмосфера. «Avenged Sevenfold» — мастерски исполненный рок-мюзикл, который получит признание по всему миру) Plug and Play Language Model (PPLM) позволяет пользователю подключать одну или несколько моделей для каждого из желаемых параметров (позитив или негатив, тематика и т.п.) в большую предобученную языковую модель (LM). Ключевая особенность подхода заключается в том, что он использует LM как есть — никакого обучения или настройки не требуется. Это позволяет исследователям использовать лучшие языковые модели.
Модели классификаторов могут быть в 100 000 раз меньше, чем основная модель (LM), и при этом эффективно управлять ими — как мышь, сидящая на голове мамонта и говорящая ему, куда идти.
Хорошая и плохая курица
Когда необходимо управлять тональностью текста (т.е. сделать его положительно или отрицательно окрашенным), исследователи из Uber AI предлагают вместо BoW использовать дискриминатор, обученный на наборе данных, размеченном по тональности (эмоциональной окраске). Количество параметров в дискриминационных моделях PPLM-Discrim может быть 5000 или меньше. 5000 — это ничтожно мало по сравнению с количеством параметров в основной модели (LM), и обучать такую модель гораздо легче и быстрее.
В следующих примерах использовали дискриминатор тональности с 5000 параметрами (1025 параметров на класс (— —, —, 0, +, + +)), обученный на наборе данных SST-5, чтобы управлять тональностью генерируемых текстов. Positive — от модели требуется текст с положительной эмоциональной окраской; Negative — с отрицательной окраской.
Specifications:
Power Output into 8 Ohm: | 80W Both Channels Driven, Nominal (THD+N <0.1%) |
Power Output into 4 Ohm: | 130W Both Channels Driven, Nominal (THD+N <0.1%) |
Inputs (Digital): | Digital 1 (D1) – Coax SPDIF (up to 192kHz/24bit)Digital 2 (D2) – Optical SPDIF (max. 96kHz/24bit)Digital 3 (TV) – Optical SPDIF (max. 96kHz/24bit)Digital 4 (CD) – Coax SPDIF (up to 192kHz/24bit)Digital 5 (Bluetooth) – Bluetooth (48kHz/16bit) |
Inputs (Analogue): | A1 – Variable Input (no signal sense)A2 – Fixed Input (with signal sense)MM (Phono) — RIAA (equalised) |
Outputs: | 1x pair Speaker binding posts (L&R)1x pair of RCA Analogue (Pre-out/SUB)3.5mm Stereo mini-jack headphone socket — 7.5Vrms drive suitable for all headphone types including high-impedance |
Other: | IEC mains power socket (3 pin)/Fuse holder3.5mm mini-Jack – 12v trigger Input (On / Standby)IR wired input 3.5mm jack |
Construction: | Formed Plated steel and bespoke machined anodised aluminium front panel. |
Primary Interface (on unit): | Dynamic Control Dial (with haptic feedback) to control volume and inputs |
Secondary Interface (on unit): | Standby, Backward, Play/Pause, Forward |
Other Interface: | IR remote |
Bluetooth: | A2DP Audio profile / Codecs: SBC, aptX & AAC Bluetooth Range: 15m (typical) |
Digital Coax Input: | up to 24bit/192kHz PCM |
Digital Optical Input: | up to 24bit/96kHz PCM |
MaestroUnite: | System Creation and ControlAdvanced System SettingOver the Air Updates via Wi-Fi |
Mains Transformer Rating: | 400VA |
Dimensions (Including Encoder and Connections (W x H x D)): | 432 x 76 x 373 mm |
Dimensions (Excluding Encoder and Connections (W x H x D)): | 432 x 76 x 346 mm |
Weight: | 10.2 kg |
Audio Formats: | MP3, AAC, WMA, OGG, WMA-L, ALAC, OPUS |
Hi-Resolution Audio Formats: | MQA, FLAC, WAV, AIFF, Supports converted DSD playback via the BluOS desktop app (only) |
Sampling Rate: | Up to 24 bit / 192kHz |
Supported Operating Systems (Minimum Spec): | Windows 7 SP1, macOS 10.9 Mavericks, iOS 9.3, Android 5.0 Lollipop or above |
Supported Cloud Services: | Amazon Alexa, Amazon Music, Spotify Connect, TIDAL Connect, Deezer, Qobuz, HDTracks, HighResAudio, Murfie, JUKE, Napster, Slacker Radio, KKBox, Bugs |
Free Internet Radio: | TuneIn Radio, iHeartRadio, Calm Radio, Radio Paradise |
Control Integrations: | Crestron, Control4 (OS 3), Control4 (2.9.1), RTI, URC, Push, Lutron, ELAN, iPort |
Format Support / Sampling Rate: | PCM / up to 192KHz/24bit |
Warranty: | 5 Years |
Модули IoT Edge
Модуль IoT Edge позволяет развертывать бизнес-логику на пограничном устройстве и управлять ею. Модуль Azure IoT Edge представляет собой наименьшую единицу вычислительных ресурсов, которыми управляет IoT Edge. Эти модули могут содержать службы Azure (например, Azure Stream Analytics) или пользовательский код для конкретного решения.
Центр IoT Edge — это один из модулей, составляющих среду выполнения Azure IoT Edge. Он действует в качестве локального прокси-сервера для Центра Интернета вещей, предоставляя те же конечные точки протокола, что и Центр Интернета вещей. Эта согласованность означает, что клиенты (устройства или модули) могут подключаться к среде выполнения IoT Edge так же, как к Центру Интернета вещей.
Пакеты SDK для устройств помогают разработчику модулей:
- Использовать центр IoT Edge для безопасного подключения к центру Интернета вещей.
- Зарегистрировать модуль в центре Интернета вещей и объявить идентификатор модели, определяющий коллекцию интерфейсов DTDL, которые реализует устройство.
- Синхронизировать свойства, определенные в интерфейсах DTDL, между устройством и центром Интернета вещей.
- Добавлять обработчики для команд, указанных в интерфейсах DTDL.
- Отправлять данные телеметрии в центр Интернета вещей.
Настройка ALSA
и советуют поизучать dmix — это модуль микшера каналов в ALSA — буду смотреть
alsamixer
alsamixer — псевдографический интерфейс микшера. Половина советов по настройке ограничивается этой утилитой. И действительно, именно эта утилита часто покажет, когда канал неожиданно замьютился или у него сбросился уровень громкости.
Но настройка в микшере результата не дала.
hdajacksensetest
Следующая полезная утилита — hdajacksensetest. Показывает какие разъемы детектируют подключение внешних устройств.
Ок, я вижу, что мой внешний сабвуфер подключен на порт 0x1a.
Давайте попробуем найти как можно объяснить карте, куда выводить LFO.
hdajackretask
Большинство советов по настройке маппинга указывают на утилиту hdajackretask:
Тут вроде бы все понятно — есть порты, есть маппинг. К сожалению, никакие манипуляции с портом 0x1a к успеху не привели.
Может, после настройки надо явно перезагружать сервисы?
Нет, смотрим дальше.
HDAAnalyzer
Для настройки маппинга есть еще одна утилита:
скачать ее можно в виде python-скрипта(!!!) вот тут.
Выглядит эта штука как прокачанный вариант hdajackretask — она даже умеет строить схему маршрутизации портов графически. Но эксперименты с этой штукой тоже не привели ни к чему, кроме полной потери звука.
Никакого гайда по настройке я не нашел, поэтому пробовал методом проб и ошибок.
Engineered With Care:
All the power of our integrated amplifier, with all the control of BluOS multi-room audio technology. The Attessa Streaming Amplifier gives you easy, one-touch access to all your devices, from TVs to turntables, from consoles to CD transports. Best of all, it gives you high-end audio capability with the kind of simple, smartphone-based control that we’ve come to expect in every area of our lives. The technology is complex, but using it couldn’t be simpler. So now, you can have hi-res audio in every room of your house – all at the touch of a button.
For more information on BluOS, please see bluos.net.
Почему именно PulseAudio?
Почему Pulse так необходим? Это не так. ALSA работает настолько хорошо, что многие дистрибутивы только сейчас начинают интегрировать Pulse по умолчанию. Тем не менее работа с ALSA может потребовать многих часов ручной настройки.
И здесь мы не говорим о настройке по умолчанию. Дополнительная настройка звука alsa может привести к созданию запутанных конфигурационных файлов и скриптов, поэтому вам будет сложно создать единственную конфигурацию на все случаи жизни. Проблема не всегда в ALSA, иногда причиной стает само приложение, но это не меняет конечный результат.
Сейчас мы требуем от нашего компьютера намного больше чем раньше. Раньше аудиовыход подключался к наушникам или колонкам и все. Сейчас же часто необходимо подключать компьютер к пучковой аудиосистеме, телевизору и получать звук с микрофона по Bluetooth.
PulseAudio позволяет все это настроить просто и быстро, а вам только останется убедиться, что все работает правильно. Также здесь добавляется несколько дополнительных полезных функций. Например, возможность передавать аудио на другой компьютер изменение форматов и каналов.
Что такое Plug and Play
Plug and Play — это функция, позволяющая подключить устройство к компьютеру и заставить его работать напрямую. Например, подключение мыши к компьютеру, USB-накопитель, подключение клавиатуры… Это значительно упрощает задачу, поскольку нам не нужно устанавливать драйверы или что-либо настраивать. В основном это для подключения, и мы можем использовать его без лишних слов.
Это то, что мы комментируем по шкале с точки зрения безопасности. С одной стороны, у нас есть возможность подключения этих устройств, и что они работают быстро, без необходимости чего-либо настраивать, но с другой стороны, мы можем найти определенные проблемы безопасности что может существовать.
термин Plug and Play присутствует в большом количестве компьютеров и периферийных устройств. Это стало нормальным явлением. Несколько лет назад нередко приходилось устанавливать драйверы с компакт-диска, чтобы новая мышь, которую мы купили, заработала. Теперь вам просто нужно подключить его к USB-порту, и Windows быстро его настроит, и в считанные секунды мы сможем его использовать.
Эта технология значительно упростила подключение устройств, обмен данными и информацией. Это избавляет от необходимости выполнять сложные конфигурации и загружать драйверы, поскольку весь этот процесс выполняется системой автоматически, как только устройство подключается через USB.
Как работает аудио в Linux
Если не вдаваться в подробности, то вот небольшая схема того, как будет работать звук в Linux:
Здесь есть источник и есть цель. Что-то создает звук, что-то должно его получить и обработать, а затем, наконец, воспроизвести. Для большинства повседневных задач мы используем обычные приложения, например, VLC для генерации звука и колонки или наушники для воспроизведения.
В обратном порядке то же самое. Устройство, например, микрофон, генерирует звук, а затем отправляет его приложению, например, Jitsi или Skype. Модель всегда работает похожим образом. Но между этими двумя точками существует звуковая подсистема Linux.
Если не углубляться в историю, для управления звуком linux использовалась Advanced Linux Sound Architecture (ALSA). Если быть точным, то она и сейчас используется. Но в современных дистрибутивах настройка звука в linux выполняется без непосредственной настройки ALSA пользователем. Вместо этого применяются инструменты более высокого уровня — PulseAudio.
Как работает PPLM
Алгоритм PPLM производит прямой и обратный обход нейронной сети, состоящей из двух подсетей — базовой предобученной языковой модели (LM) и модели классификатора по заданному пользователем атрибуту (attribute model):
Сначала выполняется прямой проход через языковую модель LM для генерации слова и вычисления вероятности соответствия этого слова требуемому классу (атрибуту) с использованием модели классификатора. Далее, обратный проход обновляет внутренние скрытые представления LM на основе градиентов логарифмических вероятностей требуемого класса (подробнее об этом тут), чтобы увеличить вероятность соответствия сгенерированного текста заданному атрибуту.
После обновления генерируется новое распределение по словарю из распределения, полученного из обновленных переменных, и выбирается один токен или слово. Этот процесс повторяется на каждом шаге, причем скрытые слои основной нейросети, представляющие прошлое состояние (для преобразователей: ключи и значения), постоянно изменяются на каждом временном шаге.
Чтобы гарантировать, что полученная языковая модель возвращает не бессмыслицу, а примерно такие же разумные результаты, как и исходная языковая модель (в данном примере, GPT-2) применяются два подхода:
- Минимизация дивергенции Кульбака-Лейблера (KL) между выходным распределением модифицированной и немодифицированной языковой модели.
- Получение вероятности распределения для следующего слова с помощью смешанного распределения модифицированной и немодифицированной языковой модели (post-norm fusion (введено в Stahlberg et al. (2018)).
Управление PPLM можно настроить: сила дополнительной модели с заданным нами атрибутом может быть увеличена или уменьшена, и при нулевой силе восстанавливается исходная языковая модель.
Как отключить Plug and Play и не устанавливать программное обеспечение
Можем ли мы настроить Windows на отключить Plug and Play ? Ответ положительный. Однако следует иметь в виду, что это помешает ему автоматически настраивать устройства, которые мы подключаем. Это должно быть ясно, потому что это может иметь негативные последствия в будущем. Конечно, всегда можно переломить ситуацию.
Чтобы отключить Plug and Play в Windows и не устанавливать программное обеспечение автоматически с подключаемых устройств, мы можем использовать Систему Редактор реестра. Для этого нам нужно перейти в Пуск, найти редактор реестра и запустить его.
Оказавшись внутри, мы должны перейти по пути EquipoHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionDevice Installer. Здесь мы должны создать новый 32-битный ключ значения DWORD. Мы должны дать этому ключу имя DisableCoInstallers и значение 1. Это будет так, как мы видим на изображении ниже.
С этого момента, как только мы создали это новый ключ и он включен, Windows не будет устанавливать никаких драйверов при подключении любого устройства через USB. Например, если мы подключим клавиатуру или мышь, они ничего не сделают напрямую.
В том случае, если по ошибке мы подключаем устройство, имеющее уязвимость на программном уровне , поскольку мы видели, что это может происходить в отдельных случаях, у нас не будет этой проблемы с безопасностью, поскольку она не настраивается автоматически.
По логике вещей, мы должны иметь в виду, что эти устройства не будут работать, пока мы настроить их вручную . Если мы вернемся к примеру с той мышью или клавиатурой, которую мы подключили, нам придется вручную загрузить ее драйверы и установить их в системе. Это более медленный процесс, но если говорить строго о безопасности, в этом смысле он лучше.
Что, если мы хотим вернуться в предыдущее состояние и заставить Windows автоматически настраивать Устройства Plug and Play ? Процесс очень прост, и нам нужно будет только выполнить те же шаги, которые мы объяснили, но на этот раз присвоить значение 0 тому ключу, который мы создали, или напрямую удалить его. Операционная система установит программное обеспечение, как только мы подключим любое совместимое устройство.
Диагностика ALSA
Первым делом понадобятся хоть какие-то инструменты для диагностики — это пакет alsa-utils
Теперь посмотрим, как видит наше оборудование система
Кроме того, настройки надо проверять. Для этих целей обнаружилась утилита speaker-test
вызов speaker-test —help покажет, что умеет утилита, но мне особенно интересна конфигурация
- -D — id устройства. 1,0 — это индексы устройства и подустройства, их мы видели выше в выводе aplay
а вот структура текстовой части описана тут - -c — количество каналов на которые будет выведен тест
В моем случае первые 2 канала работают хорошо, а вот дальше интересно — 3й канал LFO не звучит, но зато звучит 4й канал. Такое ощущение, что LFO настроен как… стерео?.. Мне кажется, это часть моей проблемы.
Допиши за меня
Нейросети научились порождать правдоподобные тексты, дописывая за человеком. Например, если мы напишем The food is awful (Еда ужасна), нейросетевая модель сгенерирует правдоподобное завершение предложения (сгенерировано из предварительно обученной модели GPT-2-medium):
The food is awful. The staff are rude and lazy. The food is disgusting — even by my standards. (Еда ужасна. Персонал грубый и ленивый. Еда отвратительна даже по моим стандартам)
Языковые модели способны выявлять и запоминать информацию о грамматике и типичных речевых паттернах, но нет простого способа заставить их генерировать текст с определенными свойствами или по конкретной тематике. К примеру, если мы хотим сгенерировать текст с тем же началом: Еда ужасна, но затем продолжить в положительном смысле или постепенно сменить тему создаваемого текста на тему политики.
Key Features:
- Hi-Res music streaming with BluOS Premium Multi-Room Audio Technology which supports 20+ streaming services and can stream up to 64 zones, all controllable via your smart phone
- The one touch dial control user-interface is both simple and intuitive to use. Select listening volume or source guided by a graphical interface incorporating haptic feedback to confirm your selection.
- Three self-allocated BluOS presets directly available from the inputs list for instant access
- Robust steel and aluminium construction with no visible aerials
- A wide variety of digital and analogue connections including Bluetooth and AirPlay 2
- MaestroUnite setup for over the air updates and partnering of other devices to form a single Roksan system, a bespoke technology and app developed for Roksan
- An integrated Moving Magnet phono stage allows the connection to a turntable without the need for additional boxes and accessories
- A powerful amplifier capable of getting the most out of a variety of loudspeakers
- SPDIF inputs will decode MQA encoded PCM streams including MQA CD’s played back by the Attessa CD Transport
- Designed and developed in-house in the UK
Расскажи про космос
Посмотрим , что можно получить из PPLM, применяя разные модели классификации.
Исследователи Uber AI в качестве дополнительно модели использовали мешок слов (BoW) для различных тем, где вероятность темы определяется суммой вероятностей каждого слова в мешке. Например, BoW, представляющий тему Space, может содержать слова, такие как «планета», «галактика», «пространство» и «вселенная». В таблице ниже показаны примеры PPLM-BoW по теме с несколькими вариантами префиксов (начал предложений). В каждом примере получили связный текст, имеющий отношение к теме.
Результаты для тем , , и , начинающихся с одного и того же префикса, показаны ниже. Самый первый пример — генерация без заданной темы.
Помимо этого были получены примеры с неестественными префиксами, которые не имеют никакого отношения к заданной теме. Например, исследователи задали начало предложения «The chicken», а в качестве темы — . В результате, даже при таком варианте PPLM смог управлять генерацией текста и подстроить его под заданную тему.
Детоксикация языка
Модели, обученные на большом количестве текстов в Интернете, могут отражать предвзятость и токсичность, присутствующие в исходных данных. Например, GPT-2 может высказывать расистские суждения, если подобрать провоцирующее на это начало предложения. Этот риск ограничивает сферы применения языковых моделей.
К счастью, PPLM можно легко адаптировать для детоксикации языка, подключив классификатор токсичности в качестве модели атрибута и обновив латентность с отрицательным градиентом. Исследователи из Uber AI провели тест, в котором добровольные оценщики отметили токсичность пятисот образцов текста, сгенерированных PPLM с детоксификацией, и сравнили их с базовой моделью GPT-2. В среднем доля токсичной речи снизилась с 63,6% до 4,6%.
Если вам интересно узнать больше о работе, здесь и здесь представлен код. Также, можно поиграть с интерактивной демонстрацией.
Правка конфигов
Других утилит, способных помочь в настройке звука я не обнаружил. Остается попробовать только одно — искать и править конфиги. С помощью гугла и find, мне удалось обнаружить несколько локаций.
PulseAudio
в папке alsa-mixer тут лежат конфиги. Т.к. Pulseaudio более-менее работает тут я ничего трогать не стал.
Как я понял, это настройки службы pulseaudio — один из немногих конфигов, изменения в котором на что-то влияют. именно тут настройками:
я заставил звучать свой сабвуфер из Pulseaudio так, как он должен. Для lfe-crossover-freq 200 — это очевидно частота среза в герцах.
Но тут же становится очевидно, что настроить нечто более сложное(при подключении наушников прекращать отправлять бас на сабвуфер) в этом конфиге возможности нет.
ALSA
Тут лежит несколько shell-скриптов, в т.ч. alsa-info.sh, который может быть полезен при подготовке дефекта в трекере и т.д.
а в папке pcm какие-то конфиги, разобраться в которых мне не удалось:
Трогать их я пока не решился. — второй доказанно полезный конфиг. Вот эта строчка, дописанная в низ конфига, реально заставила работать наушники под ALSA:
Про настройку этого конфига написано довольно много. Одна из его целей, как я понял — сопоставить устройствам кодеки(model). Кодеки это… какой-то пресет маппингов… Есть табличка (копия есть тут). Думаю, в большинстве случаев для стандартных конфигураций этого действительно достаточно.
Там описаны модели для разных контроллеров. Но если для вас они не срабатывают, то вам рекомендуют добавить свою конфигурацию.
Звучит классно, но тут я должен сделать 2 ремарки:
- гайда как сделать свою конфигурацию — что конфигурить, куда сохранять, коммитить и т.д. я не нашел.
- После изменения настроек в alsa-base.conf нужно перезагружать ОС. Без перезагрузки никакие и даже хардкорный не заставляют ALSA перечитать кодек устройства.
Кстати, в — лежат файлы уже непосредственно устройства, т.е. как я понял hdajackretask работает именно с этими файлами. Тут тоже, наверное, можно сделать что-то полезное, если знать куда что писать.
Выводы
На этом у меня все. После правок в и , я получил результат, описанный в начале. Это все, чем я мог помочь вам в деле настройки звука под Ubuntu.
Большинство приведенной тут информации я получил и документации ALSA на Arch Linux.
Как я и говорил, после проделанной работы появляется больше вопросов, чем ответов:
- как так pulseaudio нормально работает с сабвуфером, а ALSA нет???
- какие все-таки конфиги надо править для правки маппинга портов??
- как оформить вот свою модель HD-Audio???
- насколько ALSA эффективна по сравнению с аналогами в других ОС? подходит ли она вообще для работы со звуком?
Общий вывод, который я могу сделать по результатам проделанной работы: в целом видно, что если GUI, например, сообщество более-менее занимается, то звуковая подсистема явно остается за бортом.
На сегодняшний день возможности использования этой подсистемы не выдерживают никакой конкуренции с аналогами в других популярных ОС.
Такие досадные проблемы, как неработающий сабвуфер или наушники, или отсутствие НЧ-фильтра для сабвуфера, заставляют еще раз подумать, прежде чем отказываться от предустановленного софта. Ведь никому не хочется получать от своей железки меньше отдачи из-за кривостей ОС.
з.ы. Если есть еще какие-то инструменты, мануалы, про которые полезно знать при настройке звука — пишите, я добавлю их в статью
з.з.ы. По поводу своей конкретной проблемы я завел тикет, владельцы Asus N55 — велкам:https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1733029
Выводы по отключению или отключению Plug and Play в Windows
Так действительно ли полезно отключать Plug and Play в Windows? Для домашних пользователей в целом это не то, что действительно важно. Это не принесет большого вклада, даже если мы будем говорить о безопасность , но это затруднит правильную работу некоторых устройств
Мы советуем делать это только тогда, когда мы знаем, что собираемся установить устройство, имеющее уязвимость на уровне программного обеспечения, и мы не хотим, чтобы система устанавливала его. Интересно быть самим собой, вручную устанавливающим драйверы, которые, как мы знаем, были исправлены или не представляют никакого риска.
Поэтому, хотя отключение Plug and Play в Windows, чтобы предотвратить установку драйверов устройств, очень легко применить и отключить, мы всегда должны помнить, что эти драйверы придется устанавливать вручную. Это дополнительная трудность, хотя на другой чаше весов находится улучшение безопасности, позволяющее избежать определенных рисков, связанных с возможным уязвимым программным обеспечением.