Pull to refresh
10
5.6
Skillfactory School @skillfactory_school

Школа Computer Science

Send message

Как избирательное забывание помогает в обучении ИИ

Level of difficultyMedium
Reading time4 min
Views520

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

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments0

Не становитесь безопасниками

Level of difficultyEasy
Reading time5 min
Views32K

Мир информационной безопасности манит своей романтикой: борьба со злом, защита данных, хакерские трюки. Но за ширмой героических будней скрывается изнурительная работа, горы рутины и постоянный стресс. Эта статья — не хвалебная ода профессии, а откровенный разговор о ее темной стороне.

Возможно, в комментариях напишут «Не надо обобщать, у меня все не так» — это правда, многое зависит от конкретной компании или специализации. Но в ИБ есть общие «болячки», о которых нельзя молчать.

Читать далее
Total votes 24: ↑14.5 and ↓9.5+5
Comments37

Как работает нативная поддержка категорий в XGBoost

Level of difficultyEasy
Reading time10 min
Views2K

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


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


Если вас интересует градиентный бустинг и его применение к дереву решений, посмотрите мою книгу.

Читать дальше →
Total votes 4: ↑2 and ↓20
Comments0

Как запустить часть большого ИИ на слабом железе

Level of difficultyEasy
Reading time8 min
Views6.5K

Начало работы с Petals


Этот блокнот познакомит вас с основами Petals — системы логического вывода и точной настройки языковых моделей с сотнями миллиардов параметров без необходимости использования высокопроизводительных GPU. С помощью Petals вы можете объединять вычислительные ресурсы с другими людьми и запускать большие языковые модели с миллиардами параметров, например BLOOM-196B или BLOOMZ того же размера, что и GPT-3.

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments3

Исследование винтажной компьютерной техники: 4 бита драконов: игра-лабиринт Dungeons & Dragons от Mattel

Level of difficultyMedium
Reading time13 min
Views3.7K


Когда мои родители продали дом и перебрались на белоснежные просторы Великого севера, они вывезли несколько коробок моего барахла, которое долго пылилось в гараже. Мы сейчас разбираем вещи и роемся в этих коробках на случай, если в не столь далёком будущем нам самим понадобится переехать. В одной из коробок нашлась моя старая компьютерная игра-лабиринт DUNGEONS & DRAGONS™ от Mattel Electronics.


Это большая, «делюксовая» из двух игр D&D от Mattel (у Intellivision, конечно, был свой набор, а у нас был Tandyvision), вторая — DUNGEONS & DRAGONS™ компьютерная игра в жанре фэнтези. Это было портативное устройство с неожиданно привлекательной реинкарнацией игры Hunt the Wumpus, о которой мы поговорим в другой раз. Эта игра больше похожа на настолку, но в ней есть компьютерный антагонист и звуковое сопровождение.

Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments4

Градиентные тени на CSS

Level of difficultyMedium
Reading time11 min
Views8K

Мне часто задают вопрос: Возможно ли создать тени из градиентов, а не из сплошных цветов? В СSS не существует конкретного свойства для этого (поверьте мне, я проверял), а в любом посте по этой теме содержится только множество хитростей для того, чтобы получить что-то похожее на градиент. В этой статье я расскажу вам о некоторых из них.


Но для начала… ещё одна статья о градиентных тенях? Серьёзно?

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments4

Как работает поиск по коду на Github

Level of difficultyEasy
Reading time11 min
Views11K


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


Нам часто задают вопрос о новом поиске по коду: «Как он работает?». В дополнение к моей лекции на GitHub Universe, я в общих чертах отвечу на этот вопрос, а также немного расскажу о системной архитектуре и технических основах данного продукта.


Так как же он работает? Мы создали собственный поисковый движок с нуля на Rust специально для поиска по коду. Наш поисковый движок называется «Blackbird», но прежде чем я стану описывать как он работает, думаю, что нужно понять наши предпосылки. На первый взгляд, создание поискового движка с нуля выглядит спорно. Зачем это делать? Разве уже нет большого количества существующих решений с открытым исходным кодом?

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments10

Квантовая теория поля открывает пути к решению математической головоломки

Reading time5 min
Views8.2K

В январе Карен Фогтманн и Майкл Борински опубликовали доказательство того, что в до сих пор недоступном математическом мире, называемом пространством модулей, существует множество математических структур — графов, которые Фогтманн и ее коллеги впервые описали в середине 1980-х.


«Это сверхсложная задача. Удивительно, что у них получилось», — считает Дэн Маргалит, математик из Технологического института Джорджии.

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

Читать дальше →
Total votes 15: ↑8 and ↓7+1
Comments3

OpenAPI Comparator — детектор изменений, ломающих [большие] API

Level of difficultyEasy
Reading time5 min
Views3.5K

Защита от изменений API, которые могут повлиять на ваших клиентов, — одна из самых больших проблем при разработке HTTP API. Если вы вносите критические изменения, то создаете клиентам серьёзные проблемы. Стабильный API — ключ к удовлетворенности клиентов и, в конечном счете, к успеху в бизнесе.


Но есть одна загвоздка: потребности клиентов меняются, что часто требует развития самого API. Например, добавления параметров для работы с данным ресурсом или удаления других параметров для упрощения всего API.

Читать дальше →
Total votes 4: ↑2 and ↓20
Comments4

Сказ о поддержке подсказок типов для функции сложения в Python, или Вот как непросто бывает идти в IT…

Level of difficultyMedium
Reading time8 min
Views5K

Подсказки типа великолепны! Но не так давно я играл в адвоката дьявола: я утверждал, что на самом деле эти подсказки способны раздражать, особенно программистов из старой школы Python.


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


Итак, именно вы поддерживаете популярную стороннюю библиотеку slowadd. В ней много вспомогательных функций, декораторов, классов и метаклассов, но вот главная функция:


def slow_add(a, b):
    time.sleep(0.1)
    return a + b
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments9

Реверс-инжиниринг искусного двоичного сложения в нейросети

Level of difficultyMedium
Reading time10 min
Views3.8K


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

Читать дальше →
Total votes 17: ↑13 and ↓4+9
Comments11

[Научпоп с кодом] Что такое «жидкая» нейросеть и как научить её играть в Atari?

Level of difficultyMedium
Reading time12 min
Views8.2K


Алгоритмы в основе традиционных сетей настраиваются во время обучения, когда подается огромное количество данных для калибровки наилучших значений их весов, ликвидные («текучие») нейронные сети лучше адаптируются.


«Они способны изменять свои основные уравнения на основе входных данных, которые они наблюдают», в частности, изменяя скорость реакции нейронов, — рассказывает директор Лаборатории компьютерных наук и искусственного интеллекта Массачусетского технологического института Даниэла Рус.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments5

Как я написала веб-плеер с искусственным интеллектом

Reading time10 min
Views5K


Идея создать собственный веб-плеер с музыкой лоу-фай пришла мне в голову однажды воскресным днём во время изучения глубоких генеративных моделей. Я занялась этим проектом и закончила его за время каникул. Веб-плеер имеет две опции: пользователи могут выбрать трек лоу-фай на основе реальной песни, преобразованной с помощью библиотеки Tone.js, или трек, сгенерированный искусственным интеллектом. В обоих случаях поверх накладываются барабанные ритмы, атмосферные звуки и цитаты, которые пользователь сам выбрал на предыдущем шаге. В этом посте речь пойдёт в основном о том, как использовать нейросети LSTM для генерации midi-треков, а в конце я кратко расскажу о том, как с помощью Tone.js создаются песни.

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments5

Представление, кластеризация и подобие в примерах, иллюстрациях и таблицах

Reading time13 min
Views5.6K

Ключевые элементы машинного обучения и скрытых пространств



Эта статья послужит введением в представление (embedding), подобие (similarity) и кластеризацию (clustering).


Знать эти ключевые понятия машинного обучения нужно, чтобы понять, что такое скрытое пространство.


  • Под представлением понимается представление реального мира в виде данных. Только после представления мы сможем анализировать и использовать в приложениях объекты и явления реального мира.
  • Подобие определяет степень сходства между представлениями реального мира и позволяет, например, рекомендовать тот или иной товар.
  • Кластеризация позволяет объединить представления реального мира в группы, например, чтобы найти книги по заданной тематике.

За подробностями приглашаем под кат.

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments1

Логистическая регрессия: подробный обзор

Reading time5 min
Views17K


Рисунок 1. Модель логистической регрессии. Источник.


Логистическая регрессия использовалась в области биологических исследований ещё в начале двадцатого века. Затем её стали применять во многих общественных науках. Логистическая регрессия применима, когда зависимая переменная (целевое значение) является категориальной. Подробности в иллюстрациях — в материале, а практика — на нашем курсе, посвящённом Data Science.

Читать дальше →
Total votes 6: ↑4 and ↓2+2
Comments4

Bittorrent с нуля на Go

Reading time15 min
Views20K


BitTorrent — протокол загрузки и распространения файлов через Интернет. В отличие от традиционных отношений клиент/сервер, когда загрузчики подключаются к центральному серверу (например, для просмотра фильма на Netflix или загрузки веб-страницы), участники сети BitTorrent, называемые одноранговыми узлами, загружают фрагменты файлов друг с друга. Это то, что делает BitTorrent одноранговым протоколом. Исследуем, как он работает, и создадим собственный клиент, который сможет находить одноранговые узлы и обмениваться с ними данными.

Читать дальше →
Total votes 59: ↑56 and ↓3+53
Comments9

PyTorch разоблачил вредоносную цепочку зависимостей

Reading time6 min
Views8.3K

pypi


PyTorch обнаружил вредоносную зависимость с тем же именем, что и у библиотеки torchtriton во фреймворке. Это привело к успешной компрометации через вектор атаки путаницы зависимостей. Подробности — к старту нашего курса «Белый хакер».

Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments5

Как включить в модель знания предметной области

Reading time6 min
Views6.1K

Зачем это нужно?


Представьте, что вам дали размеченный набор данных, и ваша задача — предсказать новый. Что вы будете делать? Вероятно, сперва вы попробуете обучить модель машинного обучения поиску правил для разметки новых данных. А что дальше? Подробности — к старту нашего флагманского курса по науке о данных.

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments9

Как писать код на Go? Подход Google. Часть первая

Reading time11 min
Views4.5K

Рекомендации по стилю для проектов из Google с открытым исходным кодом


Руководство по стилю Go


Принципы стиля


Есть несколько охватывающих всё принципов, которые резюмируют представления о том, как писать читаемый код на языке Go. Ниже перечислены признаки читаемого кода в порядке их важности:


  1. Ясность: Назначение и обоснованность кода должны быть понятны читателю.
  2. Простота: Код должен выполнять свою задачу самым простым способом.
  3. Лаконичность: Код должен содержать как можно меньше воды.
  4. Сопровождаемость: Код должен быть написан так, чтобы его легко было поддерживать.
  5. Согласованность: Код должен согласоваться с более масштабной кодовой базой Google.

Подробности — к старту курса по Backend-разработке на Go.

Читать дальше →
Total votes 8: ↑5 and ↓3+2
Comments1

Таинственный мир информационной геометрии. Введение

Reading time8 min
Views6.6K


Изображение создано автором с помощью искусственного интеллекта


У многих из нас в старших классах отношения с геометрией напоминали несчастную любовь, переходящую в ненависть. Особенно нелегко было, когда речь зашла о координатах и объёме. Даже расчёты с использованием геометрии вызывали отторжение. А впереди ждал бум информационных технологий и шумиха вокруг машинного обучения, ИИ и науки о данных. Всё это побудило многих нырнуть в тёмные глубины математики, где среди прочих дисциплин нас снова ждала геометрия. Информационная геометрия применима в статистическом многомерном обучении (statistical manifold learning), которое недавно зарекомендовало себя в обучении на высокоразмерных наборов данных без учителя. Также информационная геометрия позволяет вычислять расстояние между двумя вероятностными мерами, что находит применение при подборе шаблонов, построении альтернативных функций потерь для обучения нейронной сети, сети распространения убеждений и решении задач оптимизации. Подробности — к старту нашего флагманского курса по Data Science.

Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments4
1
23 ...

Information

Rating
786-th
Location
Россия
Works in
Registered
Activity