- Автоматическое журналирование компиляций
- Как быть, если хочется сделать вьюшку с параметрами
- Использование динамической статистики в запросах
- Как сохранить план запроса при вставке данных через database link
- Запуск процедур в параллельных сессиях
- Протягивание остатков
- Объединение нескольких историй в одну
- Нормалайзер
- Визуализация в формате SVG
- Приложение поиска по метаданным Oracle
Бесшовные A/B-обновления в Android: как они устроены
Всем привет. В SberDevices наша команда занимается разработкой различных железок и прошивок для них на базе AOSP.
Начиная с Android 8 (у некоторых вендоров с 7.1) в системе появился новый механизм накатки OTA-обновлений, т. н. Seamless A/B OTA Updates — бесшовные обновления. В этом посте я опишу общие принципы его работы, рассмотрю механизм с точки зрения разработчика, а также проведу сравнение со старым (будем его называть recovery-based) подходом применения обновлений. Всё нижесказанное будет справедливо только для чистого AOSP, т. к. конкретная реализация зависит от вендора.
Звук. От механических колебаний до ALSA SoC Layer
Мы в SberDevices делаем устройства, на которых можно послушать музыку, посмотреть кино и ещё много всего. Как вы понимаете, без звука это всё не представляет интереса. Давайте посмотрим, что происходит со звуком в устройстве, начиная со школьной физики и заканчивая ALSA-подсистемой в Linux.
Можно ли воссоздать полную нейросеть мыши из тонких послойных разрезов мозга?
Источник фото
Карликовая многозубка, самое маленькое млекопитающее по массе. Внутри маленький целостный сложный мозг, который уже принципиально можно картировать
Короткий ответ — можно, но не полную и не очень точную. То есть мы ещё не можем скопировать её сознание, но приблизились к этому как никогда. Проживите ещё лет двадцать — и, возможно, ваш мозг тоже получится забэкапить.
Чтобы приблизиться к оцифровке сознания и такому экзотическому виду бессмертия, стоит сначала разобраться с живыми нейронными сетями. Их реверс-инжиниринг показывает нам, как вообще может быть устроен процесс мышления (вычислений) в хорошо оптимизированных системах.
60 лет назад, 13 сентября 1960 года, учёные собрали первый симпозиум из биологов и инженеров, чтобы они могли разобраться, в чём же разница между сложной машиной и организмом. И есть ли она вообще. Науку назвали бионикой, а целью обозначили применение методов биологических систем к прикладной инженерии и новым технологиям. Биосистемы рассматривались как высокоэффективные прототипы новой техники.
Военный нейроанатом Джек Стил стал одним из людей, заметно повлиявших на дальнейший прогресс в области технологий, в том числе в области ИИ, где развитие получили такие направления, как нейроморфная инженерия и биоинспирированные вычисления. Стил был медиком, разбирался в психиатрии, увлекался архитектурой, умел управлять самолётом и сам чинил свою технику, то есть был вполне неплохим прикладным инженером. Научная работа Стила стала прообразом сценария фильма «Киборг». Так что с некоторой натяжкой можно назвать его прадедушкой Терминатора. А где Терминатор, там и Скайнет, как известно.
Этот пост написан на основе материалов будущей книги нашего коллеги Сергея Маркова «Охота на электроовец: большая книга искусственного интеллекта».
Новое поколение разработчиков. Чем они отличаются и почему это нормально
Существует мнение, что незаметно в IT произошла революция. Для того чтобы стать разработчиком, сейчас не обязательно иметь профильное высшее образование. Многие вузы во всех странах стараются внедрять новые методики обучения, но система образования очень «неповоротлива», любые изменения занимают большое количество времени, а рынок ждать не будет.
Именно эту реальность мы учли в «Школе 21», где обучение построено на способностях человека находить информацию. Здесь используются методики без учителей, лекций и оценок, и это работает. Среди участников и те, кто никогда не программировал, и те, у кого есть какой-то опыт и техническое образование.
Одна из проблем в процессе обучения — предложения о работе, которые получают большое количество участников, ещё не пройдя даже половины пути. Из-за высокого спроса на разработчиков профессия программиста стала доступна практически всем.
Мы решили обсудить плюсы и минусы такого положения дел с руководителем IT-департамента, тимлидом и двумя участниками «Школы 21».
Где стажировку проходили, там и работайте — 4 истории стажёров Сбербанка
Это истории тех, кто учится в «Школе 21», успешно прошёл стажировку и остался работать в Сбербанке. Я уже рассказывала, что этот проект — путь в IT и он крайне эффективен. Если очень коротко — мы научились готовить джунов с нуля за год, делая упор на soft skills. Учиться нужно умению мыслить как разработчик — от анализа требований до взаимодействия внутри команды. Что, собственно, в «Школе 21» и происходит на базе C, где ребята в полубоевых условиях работают над проектами не по учебному материалу, а ищут всю информацию сами. Не все верят, что люди после такой подготовки могут быстро освоить новый язык или фреймворк за время стажировки и начать работать разработчиком.
Могут. Вот истории четырёх участников «Школы 21», которые прошли как раз такой путь.
Когда у вас сберовские масштабы. Использование Ab Initio при работе с Hive и GreenPlum
Ab Initio обладает множеством классических и необычных трансформаций, код которых может быть расширен с помощью собственного языка PDL. Для мелкого бизнеса такой мощный инструмент, вероятно, будет избыточным, и большинство его возможностей могут оказаться дорогими и невостребованными. Но если ваши масштабы приближаются к сберовским, то вам Ab Initio может быть интересен.
Он помогает бизнесу глобально копить знания и развивать экосистему, а разработчику — прокачивать свои навыки в ETL, подтягивать знания в shell, предоставляет возможность освоения языка PDL, даёт визуальную картину процессов загрузки, упрощает разработку благодаря обилию функциональных компонентов.
В посте я расскажу о возможностях Ab Initio и приведу сравнительные характеристики по его работе с Hive и GreenPlum.
- Описание фреймворка MDW и работ по его донастройке под GreenPlum
- Сравнительные характеристики производительности Ab Initio по работе с Hive и GreenPlum
- Работа Ab Initio с GreenPlum в режиме Near Real Time
Почему меня разочаровали результаты Kaggle ARC Challenge
В посте я хочу напомнить о сложностях работы с AGI, рассказать о самых интересных идеях участников, топовых решениях и поделиться мнением, что не так с текущими попытками создать AGI.
Кто-то с ужасом, а кто-то с нетерпением ждет ИИ как в произведениях фантастов. С личностью, эмоциями, энциклопедическими знаниями и главное – с интеллектом, то есть способностями к логическим выводам, оперированию абстрактными понятиями, выделению закономерностей в окружающем мире и превращению их в правила. Как мы знаем, именно такой ИИ теоретики называют «сильным» или ещё AGI. Пока это далеко не мейнстримное направление в машинном обучении, но руководители многих больших компаний уже считают, что сложность их бизнеса превысила когнитивные способности менеджеров и без «настоящего ИИ» двигаться вперёд станет невозможно. Идут дискуссии, что же это такое, каким он должен быть, как сделать тест чтобы уж точно понять, что перед нами AGI, а не очередной blackbox, который лучше человека решает локальную задачу – например, распознавание лица на фотографии.
Event2Mind для русского языка. Как мы обучили модель читать между строк и понимать намерения собеседника
Уже было предпринято несколько попыток решить данную задачу в той или иной форме. Например, на NLP-progress публикуются последние достижения в области commonsense reasoning. Слабость большинства существующих моделей заключается в том, что в их основе лежит supervised подход, то есть им требуются большие размеченные датасеты для обучения. А в силу специфичности задачи разметка часто бывает весьма нестандартной и достаточно сложной.
Для английского существует ряд корпусов и benchmark’ов, а вот для русского языка ситуация с данными намного печальнее. Отсутствие размеченных данных для русского часто является одним из основных препятствий, которое мешает русифицировать работающие английские модели.
В этом посте мы расскажем, как мы создали датасет для задачи Common Sense Reasoning в одной из ее возможных формулировок, предложенной в статье event2mind, а также адаптировали английскую модель event2mind от AllenNLP для русского языка.
Что такое «Школа 21», и почему она устроена именно так
Я постараюсь рассказать о том, что такое «Школа 21», в чём специфика подхода и методологии так, чтобы ожидания от школы и реальность обучения подошли друг у другу максимально близко. Можно уйти в детали педагогического дизайна, но суть Школы именно в её участниках и атмосфере.
По своему опыту я знаю, что методология может вызывать скепсис, так как сама сначала так относилась к Ecole 42 — французскому проекту, франшизой которой является наша школа. В России об Ecole 42 заговорили в 2017 году, когда о ней восхищённо написал Павел Дуров. Мне же повезло познакомиться со школой на четыре года раньше, в первый год её существования. Под катом я расскажу, как от мнения, что подход Ecole 42 — полный абсурд, я пришла к тому, что стала искать возможность открыть такую школу в России.
Люди ломаются на логике, роботы — на всем понемногу. Экзамены по русскому для NLP-моделей
Чтобы корректнее обучать свою модель для русского или другого языка и адаптировать её, хорошо бы иметь какие-то объективные метрики. Их существует не так много, а для нашей локали и вовсе не было. Но мы их сделали, чтобы продолжить развитие русских моделей для общей задачи General Language Understanding.
Мы — это команда AGI NLP Сбербанка, лаборатория Noah’s Ark Huawei и факультет компьютерных наук ВШЭ. Проект Russian SuperGLUE — это набор тестов на «понимание» текста и постоянный лидерборд трансформеров для русского языка.
Как заставить соседей работать над своим проектом, или InnerSource для банка
Публикация всего банковского ПО в open source —
Сжатие данных в Apache Ignite. Опыт Сбера
Итак, при включенном persistence режиме, в результате изменения данных в кэшах, Ignite начинает записывать на диск:
- Содержимое кэшей
- Журнал упреждающей записи (Write Ahead Log, далее просто WAL)
Для сжатия WAL уже довольно давно существует механизм, который называется WAL compaction. В недавно вышедшем Apache Ignite 2.8 появилось еще два механизма позволяющих сжимать данные на диске, это disk page compression для сжатия содержимого кэшей и WAL page snapshot compression для сжатия некоторых записей WAL. Подробнее о всех этих трех механизмах ниже.
Удалёнка — это наша родная среда, и теперь не надо быть таким социальным
Привет! Я из Сбербанка и хочу рассказать про наши особенности удалённой работы. Не спешите в ужасе убегать от этого адского сочетания слов. Я не собираюсь повторять пресс-релизы и говорить про список софта для организации всего этого дела. Я хочу поговорить про то, что настал новый дивный мир. И, похоже, надолго. Сразу оговорюсь — я могу говорить только за несколько команд подразделения, занимающегося автоматизацией всего в кадрах. Не за весь Сбербанк, потому что у всех разные подходы и процессы, а некоторых так вообще нельзя забрать на удалёнку, например, тех же операторов в отделениях. Общий тренд в разработке похож на наш, но детали могут отличаться.
Обычно с удалёнкой проблемы у тех, кто привык жить в офисе. Я до Сбербанка управлял проектами с распределённой командой и не вижу в этом никаких проблем. Есть особенности. Первая — ну, банальная самосознательность и самоорганизация. Типа правил «тебе написали — ответь», «звонят — возьми трубку». У нас есть наша внутренняя договорённость в командах — отвечать на сообщения на удалёнке за десять минут в рабочее время, но она, на мой взгляд, на практике оказалась избыточной. Касается она в первую очередь тех, кто работает в обнимку с диваном.
Гораздо хуже ситуация обстоит с депрессией. Сначала вы не можете пойти в кино, потом надо сидеть целый день дома и работать, а потом работа и личная жизнь окончательно смешиваются. Разработчики могут загнать себя и впасть в депрессию. Раньше у меня была важная метрика того, что человек готов уйти в незапланированный запой — увеличение числа одновременно разрабатываемых фич, больше рабочего времени в день и всё более мелкие придирки вплоть до синтаксиса. Сейчас слежу примерно так же, чтобы, если что, разгружать.
Практика использования Spark SQL, или Как не наступить на грабли
Ниже вы найдёте некоторые нехитрые приёмы по работе со Spark SQL:
- Как с помощью сбора статистики и использования хинтов оптимизировать план выполнения запроса.
- Как, оставаясь в рамках SQL, эффективно обрабатывать соединения по ключам с неравномерным распределением значений (skewed joins).
- Как организовать broadcast join таблицы, если её размер слишком велик.
- Как средствами Spark SQL понять, сколько приложение Spark реально использовало памяти и ядер кластера в развёртке по времени.
Как оценивать интеллект? Подход Google
В ноябре 2019 года вышла программная статья от Google «Об оценке интеллекта» Франсуа Шолле (создатель Keras).
64 страницы посвящены тому, как появилось современное понимание ИИ, почему машинное обучение от него так далеко, и почему мы все еще не можем адекватно измерить «интеллект».
Чтобы отбор был честным, задание для всех одно: залезьте на дерево
Наша команда занимается NLP и общей методологией ИИ-тестов, учитывая последние тренды в универсальных трансформерах типа BERT, которые оцениваются тестами на логику и здравый смысл. Так, NLP забирает в себя все новые задачи, связанные с воспроизведением все более сложных действий и по сути отражающих механизмы мышления. Оказалось, что и другие области ML отхватили свой кусок пирога в этом направлении. Например, CV — «Animal AI Challenge».
Понятно, что сейчас “лучше” при возможности делать ML-модели более интерпретируемыми, не использовать 10 маленьких классификаторов, а тренировать одну модель, и так далее, но насколько это все-таки далеко от реального “интеллекта”?
Sber.DS — платформа, которая позволяет создавать и внедрять модели даже без кода
Идеи и встречи о том, какие ещё процессы можно автоматизировать, возникают в бизнесе разного масштаба ежедневно. Но помимо того, что много времени может уходить на создание модели, нужно потратить его на её оценку и проверку того, что получаемый результат не является случайным. После внедрения любую модель необходимо поставить на мониторинг и периодически проверять.
И это всё этапы, которые нужно пройти в любой компании, не зависимо от её размера. Если мы говорим о масштабе и legacy Сбербанка, количество тонких настроек возрастает в разы. К концу 2019 года в Сбере использовалось уже более 2000 моделей. Недостаточно просто разработать модель, необходимо интегрироваться с промышленными системами, разработать витрины данных для построения моделей, обеспечить контроль её работы на кластере.
Наша команда разрабатывает платформу Sber.DS. Она позволяет решать задачи машинного обучения, ускоряет процесс проверки гипотез, в принципе упрощает процесс разработки и валидации моделей, а также контролирует результат работы модели в ПРОМ.
Чтобы не обмануть ваших ожиданий, хочу заранее сказать, что этот пост — вводный, и под катом для начала рассказано о том, что в принципе под капотом платформы Sber.DS. Историю о жизненном цикле модели от создания до внедрения мы расскажем отдельно.
Java-сериализация: максимум скорости без жёсткой структуры данных
Как на архаичном рынке факторинга перевести все сделки в онлайн? Опыт «Сбербанк Факторинга»
Для большинства людей факторинг – услуга непонятная. По факту — это финансирование поставок компаний, работающих с отсрочкой платежа.
Предположим, вы небольшой производитель круп. Вы отгрузили товар в торговую сеть, но деньги получите в среднем через 60 дней после отгрузки. Многим компаниям ждать столько не под силу: ту же зарплату сотрудникам нужно платить уже сейчас. Одно из решений — факторинг. После заключения договора факторинга вы можете получить финансирование любой поставки. Достаточно после отгрузки товара отправить фактору подтверждающие документы (счета-фактуры, накладные, акты). Фактор верифицирует поставку у вашего покупателя и перечисляет вам деньги за товар, за вычетом собственной комиссии.
В сделке участвуют покупатель, поставщик и фактор, которые подписывают множество бумаг, уведомлений. Раньше взаимодействие с клиентом собиралось как паззл из разных кусочков: например, подписание договоров происходило при помощи сторонних операторов электронного документооборота, верификация поставок — пересылкой по e-mail excel-файлов, а в личном кабинете на сайте фактора поставщик мог посмотреть лишь статистику по сделкам. Было неудобно, трудоемко – и нам, и клиенту. Надо было собрать всё это в одну систему.
NeurIPS 2019: тренды ML, которые будут с нами следующее десятилетие
Будем ли мы, DS-инженеры, в новом десятилетии осваивать еще и биологию, лингвистику, психологию? Расскажем в нашем обзоре.