Уважаемый valenok, вы так уверенно и убежденно срываете покровы с современных представлений о мироздании, что хочется почитать об этой вашей концепции побольше. Не скупитесь, дайте ссылки на того русского физика, на статьи и материалы, которые послужили вам пищей для формирования ваших… выводов и убеждений. Я бы сходил за этими сведениями в гугл, но боюсь нарваться на вторичные некомпетентные и откровенно ворованные у ваших источников мнения и суждения. Хочется поизучать материалы поближе к, так сказать, оригиналам, причаститься к истине и, возможно, тоже прильнуть к вашему, судя по всему, немногочисленному, но дерзкому и решительному конгломерату действительно Знающих ученых специалистов.
Думаю многие здесь с удовольствием окунутся в пучину знаний и открытий.
Мне показалось, что автор вопроса про дрейф имел в виду особенности рельефа, вызванные дрейфом и наползанием литосферных плит. Это должно порождать характерные островные гряды, корные цепи, протяженные скалистые стены, вулканы…
Думаю тут пришлось бы городить куда более сложную геологическую модель. Например можно добавить нулевым этапом формирование литосферных плит и их небольшое сдвигание, чтобы сформировать базу, на которую будет напыляться уже основной рельеф.
Интересно было бы подумать о применении для этого нейронной сети. Уж очень здорово они такого рода задачки с изображениями сейчас проделывают.
Прикольная уязвимость была бы для энергосистемы страны, если бы какая-то китайская компания выпустила бы супер-дешевый интегральный модуль для управления бойлером с вайфаем и таймером. Небольшая дыра в прошивке и все термопоты синхронизировавшись через интренет по времени до миллисекунд вдруг положили бы энергетическую сеть на лопатки синхронной коммутацией с частотами порядка герца.
А если серьёзно, то проблема, в общем-то, может быть немного сглажена на государственном уровне выделением грантов и субсидий на крупномасштабные рекламные кампании этих бойлеров. Сыграть на национальной идее, на верности традициям, на технологиях, которые эти традиции теперь помогут блюсти с английской точностью… бла-бла-бла и у всех, глядишь, уже современные бойлеры, а чайник — не комильфо. Для олдфагов и хипстеров можно пустить встречную PR-компанию, которая против новомодного электрического мракобесия и всячески возвеличивает природный газ, как единственный способ Правильно нагреть чай.
Ещё можно по аналогии с двухтарифными выпускать «умные» счетчики, которые будут более детально оценивать характер потребления электроэнергии в каждом домохозяйстве и предлагать соответствующие тарифы в зависимости ещё и от телесериально-чайниковых пульсаций в пиковые часы.
Неразрешимые задачи неразрешимы только до тех пор, пока смотреть телек на работе выгоднее, чем проводить реформы, устраивать PR-кампании, разрабатывать сложные стратегии.
Я имел в виду что-то вроде того, как используют лазер из DVD-привода или привод шпинделя от HDD для реализации забавных простых самоделок. речь не о каком-то практически полезном девайсе, а о чем-то вроде «точило из убитого HDD за 5 минут» или «простой выжигатель по сетчатке из подручных средств для идиотов и увлекающихся». Может быть подшипники клевые какие-нибудь оттуда выниматьможно или привод считывающей головки легко приспособить для простой установки для рисования фигур Лиссажу на стенке лазерной указкой.
Пока это «своя противоугонка с секретом», это может подействовать, если руки у самодельщика из правильного места, а как только мы выпускаем серийный образец и он занимает значительную долю рынка, то тут же вырабатываются меру по его обнаружению и обходу. Это война брони и снаряда. Серебряных пули ровно три: быть неуловимым Джо, страховка от угона, качественная кастомная (не серийная) защита типа геркончика в секретном месте. Надо понимать, что как только тот, кто ставил вам геркончик, начинает делать на этом бизнес, тут же это всё приобретает куда меньший смысл из-за снижения оригинальности.
Даже статейка на гиктаймсе про то, «как я зачетно спрятал геркончик не скажу где» уже натолкнет людей которые в теме на мысли о том, как это учесть в своей «работе».
Кстати. Сейчас же бурно растут микросервисы! Наверняка, возьмись, скажем, umputun решать эту задачу, он не стал бы греть воздух своим макбуком, а снял бы на амазоне минут на 10 виртуалочку, которая этот корпус протянет через оперативку целиком и не подавится. Тоже, кстати, прокатило бы простое решение, правда с большей заточкой на очереди и потоки.
Само собой все должно быть целесообразно. Вы, конечно, правы учитывая время на разработку и соотнося его с получаемой пользой. Даже если бы ваш алгоритм над ЭТОЙ задачей работал несколько суток или две недели, то, думаю, все равно самый простой подход был бы наиболее эффективным с практической точки зрения. Действительно, соберете ли вы за эти дни где-то еще столько разнообразного текста, чтобы нагрузить этот алгоритм на следующую неделю? Не думаю. Это одноразовая задача.
Однако, поупражняться в решении таких задач никогда не вредно. Сейчас у вас задача одноразовая, а, возможно, завтра у кого-то из читателей хабра появится похожая задача, но уже из области обработки биологических, статистических или физических данных, которые прут с неимоверной скоростью и в огромных количествах. Не знаю даже что бы это могло быть: может быть цепочки нуклеотидов ДНК или данные с большого адронного коллайдера, но какие-то похожие потребности могут возникнуть и полезно придумать пару приемчиков «про запас».
Вот, к примеру, давайте представим, что мы гугл и через наш мессенджер льётся гигабайтами текст и всякая переписка. Очевидно, что там не совсем тот язык, что встречается в литературе или википедии, а нам нужно настроить экранную клавиатуру так, чтобы она работала особенно хорошо в нашем мессенджере. На какие-нибудь аж пол процента лучше аналогов (или 15% что уже не так и смешно). Тут нам надо сидеть на потоке и постоянно мониторить тенденции.
Кстати! Можно же отслеживая динамику по журналу всплытия и опускания n-грамм в отсортированном частотном словаре попробовать проследить за тенденциями и закономерностями в нашем хаотичном мире.
Вот отчего было в статье об этом не обмолвиться? Риторический вопрос.
А по задаче вашей забавно выходит. Счетчики самой редкой N-граммы и самой часто встречающейся занимают в памяти одинаковое количество места. Зато часто встречающиеся случаи нужно гораздо чаще инкрементировать. Это значит, что в оперативке можно держать столько высокочастотных N-грамм, сколько влезает, а остальные хранить на диске. Ещё нужно держать на заметке самую редкую N-грамму из тех что в оперативке. Тогда при обработке очередной пары мы ищем ее сперва в ОЗУ, а если не найдём, то на диске. После инкремента смотрим не стала ли эта пара более высокочастотной, чем самая редкая в ОЗУ. Если стала, то меняем их местами. Так высокочастотники будут всплывать с диска в ОЗУ вытесняя более редких сородичей на медленное хранилище. Дисковые операции медленные, поэтому их можно отделить через очередь в отдельный поток.
Это еще не все, что можно придумать. Слова N-грамм можно однозначно сжимать. Имея таблицу частот встречаемости символов или даже слогов можно выделять под них неодинаковое количество бит. То есть создать фактически свою бинарную кодировку, в которой буквы будут занимать меньше 8 бит. Это своеобразная обратимая «хеш-функция» без коллизий.
Ещё можно держать в ОЗУ небольшой индекс блоков медленного хранилища. Ключ там будет, например, CRC16 от N-граммы, а значение — номер блока в массиве на жестком диске. Это ускорит поиск по медленному хранилищу не вынуждая нас держать его полный индекс в оперативке (ведь он довольно большой получился бы).
Ну и, если поверх всего этого ваш блочный подход со слиянием прикрутить, то все получится еще и параллелить. Сливая пару таких словарей, разделенных по частотам между ОЗУ и диском мы можем быстро сливать оперативные их части, подтягивая с дисков всплывающие на освободившееся более редкие N-граммы.
Какая-то статья неполная. Вызывает недоумение нераскрытостью довольно очевидных вопросов. Я понимаю, что всё это можно найти через гугл и разобраться, но зачем тогда статья?
Так вот, почему-то нет ссылок на примеры корпусов для поиграться. Почему-то нет и намёка на хотя бы порядок размера такого корпуса. Нет никаких данных о том, какого порядка получаются размеры итоговых словарей N-грамм.
Те цифры, что я увидел на сайте opencorpora говорят, что все эти счетчики N-грамм вполне помещаются в памяти. Наверно автор не просто так поднимает проблему, а речь идет не о сотых пентиумах, но тогда тема явно не раскрыта.
И ещё. Я вот не понял один момент. Допустим корпус весит гигабайт. Не значит ли это, что перечень всех пар рядом стоящих слов будет не более чем вдвое превышать размер корпуса? А если убрать повторяения, то перечень уникальных пар будет ощутимо меньше удвоенного размера корпуса. Корпус весь в память помещать не нужно, достаточно обрабатывать его в потоке извлекая с HDD через буффер. А несколько гигов разместить в памяти современного компьютера в виде хеш-таблицы… по-моему это не проблема. Где я не прав?
Ребята из DIY сообщества, запилите статью или видео о том, что можно достать полезного из старого видика. Недавно достал с полки свой старый шарп, так он, черт его дери, еще работает, а звуки загрузки выгрузки кассеты — это что-то фантастическое про терминатора и сервомоторы. Внутри это всё выглядит как чудо техники, как роботизированный цех малюсенького футуристического завода. Что эта штука вытворяет там с пленкой — это вообще вообразить трудно. Только после пары часов вдумчивой медитации смог понять что к чему в плане механики.
Короче, народ, что полезного и интересного оттуда можно выпаять для самоделок?
Я бы предложил такой вариант. Фонды, финансирующие исследования требуют от лабораторий (или обещают им бонусы), чтобы они страховали правильность результатов своих исследований. Таким образом часть средств от каждого гранта лаборатория должна держать на специальном страховом счете. Эти средства получат лаборатории, которые перепроверят и обоснованно опровергнут результаты предыдущих исследований. Лаборатория также может сама претендовать на свою же страховку, если найдёт ошибки в своих исследованиях. Таким образом мы мотивируем лаборатории перепроверять свои и чужие исследования, искать ошибки и тщательнее контролировать свои выводы. Размер страхового взноса лаборатории должен напрямую зависеть от качества ее исследований и публикаций, от ее рейтинга по индексу исследования/опровержения.
Классная статья. Мне кажется такую надо прибить гвоздями где-нибудь в избранных в особом разделе чтобы давать почитать молодым сотрудникам. Было, помнится, похожее про системы контроля версий, ещё про что-то, но спустя какое-то время эти статьи уже надо специально искать. Может стоит сделать на хабре такой специальный хаб «tutorials»?
Я бы с удовольствием добавил себе в коллекцию статеечки с «расстановкой всех точек» про все аспекты логирования в крупном питоновском (и не только) проекте, про юнит-тестирование, про универсальные шаблоны и «хорошие практики» проектов на основных фреймворках и т.д.
Ни разу не слышал о поршневых гидравлических насосах. Там насос шестеренного типа с наружным зацеплением (две шестеренки в зацеплении прогоняют масло между собой) и никаких гидравлических аккумуляторов (это вообще как, типа расширительного бака? Жидкость же несжимаема). При разрыве шланга, как я понимаю, давление падает довольно быстро, так что упругой струи, долго рисующей травмы и разрушения не будет, однако некоторые шланги в системе гибкие и, очевидно, несного тянутся, что, собственно, и создаёт тот самый запас жидкости, который вылетает и травмирует попавшихся под струю.
Не то чтобы я спорю с вами, но, вы, видимо, не слыхали о травмах, причиненных зеваке маслом из порванного шланга гидравлической системы обычного экскаватора.
Нну робот понятие растяжимое… Вон фотомыльницы как-то лица находят на фото. Тоже своего рода роботы. А недостаток облачной нейронной сети в скорости ее отклика. Если находить котиков и всячески тегировать фотки — это вполне облачная задача, то быстрый автофокус на лицах в телефоне через облако не сделаешь, особенно с пингом мобильного инета или с его полным отсутствием.
А таких вот быстрых задач, где пригодились бы нейронные сети и компактные размеры, очень много. Начиная от квадрокоптеров, которые могли бы резко улучшить свою стабилизацию по дешевым оптическим сенсорам, до умной фильтрации показаний тензо-датчиков унитазов, которые могли бы экономить воду и твитить о достижениях хозяев.
Я так понял, что robert_ayrapetyan имел в виду, что проблема имеет комплексный характер. Не только аккумуляторы, но также датчики, сервомоторы, двигатели, системы связи и позиционирвания, вычислительные мощности и в первую очередь алгоритмы нуждаются в улучшении, и развитии, причем многократном. И здесь нет никакой четкой взаимосвязи между компонентами. Возможно в какой-то момент будет запущена в продажу маленькая микросхемка с универсальной интегральной нейронной сетью на борту. Если ее будут ставить везде и она станет крайне дешевой, если люди начнут писать много систем виртуального обучения этой сети, то, возможно, бытовая робототехника испытает резкий скачок и на текущей механической базе. Нейронка просто будет подстраиваться под все недостатки аппаратной базы, как подстраивается таракан к укороченным или удлиненным лапкам. Так что недостатки сенсоров и позиционирования будут закиданы терафлопсами и адаптивной способностью ПО.
Думаю многие здесь с удовольствием окунутся в пучину знаний и открытий.
Думаю тут пришлось бы городить куда более сложную геологическую модель. Например можно добавить нулевым этапом формирование литосферных плит и их небольшое сдвигание, чтобы сформировать базу, на которую будет напыляться уже основной рельеф.
Интересно было бы подумать о применении для этого нейронной сети. Уж очень здорово они такого рода задачки с изображениями сейчас проделывают.
А если серьёзно, то проблема, в общем-то, может быть немного сглажена на государственном уровне выделением грантов и субсидий на крупномасштабные рекламные кампании этих бойлеров. Сыграть на национальной идее, на верности традициям, на технологиях, которые эти традиции теперь помогут блюсти с английской точностью… бла-бла-бла и у всех, глядишь, уже современные бойлеры, а чайник — не комильфо. Для олдфагов и хипстеров можно пустить встречную PR-компанию, которая против новомодного электрического мракобесия и всячески возвеличивает природный газ, как единственный способ Правильно нагреть чай.
Ещё можно по аналогии с двухтарифными выпускать «умные» счетчики, которые будут более детально оценивать характер потребления электроэнергии в каждом домохозяйстве и предлагать соответствующие тарифы в зависимости ещё и от телесериально-чайниковых пульсаций в пиковые часы.
Неразрешимые задачи неразрешимы только до тех пор, пока смотреть телек на работе выгоднее, чем проводить реформы, устраивать PR-кампании, разрабатывать сложные стратегии.
Даже статейка на гиктаймсе про то, «как я зачетно спрятал геркончик не скажу где» уже натолкнет людей которые в теме на мысли о том, как это учесть в своей «работе».
Однако, поупражняться в решении таких задач никогда не вредно. Сейчас у вас задача одноразовая, а, возможно, завтра у кого-то из читателей хабра появится похожая задача, но уже из области обработки биологических, статистических или физических данных, которые прут с неимоверной скоростью и в огромных количествах. Не знаю даже что бы это могло быть: может быть цепочки нуклеотидов ДНК или данные с большого адронного коллайдера, но какие-то похожие потребности могут возникнуть и полезно придумать пару приемчиков «про запас».
Вот, к примеру, давайте представим, что мы гугл и через наш мессенджер льётся гигабайтами текст и всякая переписка. Очевидно, что там не совсем тот язык, что встречается в литературе или википедии, а нам нужно настроить экранную клавиатуру так, чтобы она работала особенно хорошо в нашем мессенджере. На какие-нибудь аж пол процента лучше аналогов (или 15% что уже не так и смешно). Тут нам надо сидеть на потоке и постоянно мониторить тенденции.
Кстати! Можно же отслеживая динамику по журналу всплытия и опускания n-грамм в отсортированном частотном словаре попробовать проследить за тенденциями и закономерностями в нашем хаотичном мире.
А по задаче вашей забавно выходит. Счетчики самой редкой N-граммы и самой часто встречающейся занимают в памяти одинаковое количество места. Зато часто встречающиеся случаи нужно гораздо чаще инкрементировать. Это значит, что в оперативке можно держать столько высокочастотных N-грамм, сколько влезает, а остальные хранить на диске. Ещё нужно держать на заметке самую редкую N-грамму из тех что в оперативке. Тогда при обработке очередной пары мы ищем ее сперва в ОЗУ, а если не найдём, то на диске. После инкремента смотрим не стала ли эта пара более высокочастотной, чем самая редкая в ОЗУ. Если стала, то меняем их местами. Так высокочастотники будут всплывать с диска в ОЗУ вытесняя более редких сородичей на медленное хранилище. Дисковые операции медленные, поэтому их можно отделить через очередь в отдельный поток.
Это еще не все, что можно придумать. Слова N-грамм можно однозначно сжимать. Имея таблицу частот встречаемости символов или даже слогов можно выделять под них неодинаковое количество бит. То есть создать фактически свою бинарную кодировку, в которой буквы будут занимать меньше 8 бит. Это своеобразная обратимая «хеш-функция» без коллизий.
Ещё можно держать в ОЗУ небольшой индекс блоков медленного хранилища. Ключ там будет, например, CRC16 от N-граммы, а значение — номер блока в массиве на жестком диске. Это ускорит поиск по медленному хранилищу не вынуждая нас держать его полный индекс в оперативке (ведь он довольно большой получился бы).
Ну и, если поверх всего этого ваш блочный подход со слиянием прикрутить, то все получится еще и параллелить. Сливая пару таких словарей, разделенных по частотам между ОЗУ и диском мы можем быстро сливать оперативные их части, подтягивая с дисков всплывающие на освободившееся более редкие N-граммы.
Так вот, почему-то нет ссылок на примеры корпусов для поиграться. Почему-то нет и намёка на хотя бы порядок размера такого корпуса. Нет никаких данных о том, какого порядка получаются размеры итоговых словарей N-грамм.
Те цифры, что я увидел на сайте opencorpora говорят, что все эти счетчики N-грамм вполне помещаются в памяти. Наверно автор не просто так поднимает проблему, а речь идет не о сотых пентиумах, но тогда тема явно не раскрыта.
И ещё. Я вот не понял один момент. Допустим корпус весит гигабайт. Не значит ли это, что перечень всех пар рядом стоящих слов будет не более чем вдвое превышать размер корпуса? А если убрать повторяения, то перечень уникальных пар будет ощутимо меньше удвоенного размера корпуса. Корпус весь в память помещать не нужно, достаточно обрабатывать его в потоке извлекая с HDD через буффер. А несколько гигов разместить в памяти современного компьютера в виде хеш-таблицы… по-моему это не проблема. Где я не прав?
Короче, народ, что полезного и интересного оттуда можно выпаять для самоделок?
Я бы с удовольствием добавил себе в коллекцию статеечки с «расстановкой всех точек» про все аспекты логирования в крупном питоновском (и не только) проекте, про юнит-тестирование, про универсальные шаблоны и «хорошие практики» проектов на основных фреймворках и т.д.
А таких вот быстрых задач, где пригодились бы нейронные сети и компактные размеры, очень много. Начиная от квадрокоптеров, которые могли бы резко улучшить свою стабилизацию по дешевым оптическим сенсорам, до умной фильтрации показаний тензо-датчиков унитазов, которые могли бы экономить воду и твитить о достижениях хозяев.