Как стать автором
Обновить
-5
0

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

Отправить сообщение

Алгоритм генерации столбцов (Column Generation)

Уровень сложности Средний
Время на прочтение 16 мин
Количество просмотров 1.7K

Генерация столбцов - подход к решению задач смешанного линейного программирования (MIP) с большим кол-вом переменных или столбцов.

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

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 0

Прощайте, базы данных, да здравствуют векторные базы данных

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 62K

Революция в области искусственного интеллекта переформатирует все отрасли нашей жизни, с одной стороны обещая невероятные инновации, а с другой ー сталкивая нас с новыми вызовами. В безумном потоке изменений эффективная обработка данных становится приоритетом для приложений, на основе больших языковых моделей, генеративного ИИ и семантического поиска. В основе этих технологий лежат векторные представления (embeddings, дальше будем называть их Эмбеддинги), сложные представления данных, пронизанные критической семантической информацией.

Эти вектора, созданные LLMs, охватывают множество атрибутов или характеристик, что делает управление ими сложной задачей. В области искусственного интеллекта и машинного обучения эти характеристики представляют различные измерения данных, необходимые для обнаружения закономерностей, взаимосвязей и базовых структур. Для удовлетворения уникальных требований к обработке этих вложений необходима специализированная база данных. Векторные базы данных специально созданы для обеспечения оптимизированного хранения и запросов векторов, сокращая разрыв между традиционными базами данных и самостоятельными векторными индексами, а также предоставляя ИИ-системам инструменты, необходимые для успешной работы в этой среде нагруженной данными.

Читать далее
Всего голосов 53: ↑51 и ↓2 +49
Комментарии 55

Введение в OpenAI Assistants API (а заодно и в ChatGPT Custom Instructions)

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 6.8K

Прошедший месяц назад релиз новинок OpenAI включал в себя множество функций. Этот тьюториал посвящен введению в практическое использование одной из них - Assistants API. Также попутно затронем выпущенную в августе функцию в составе ChatGPT под названием Custom Instructions.

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 7

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Уровень сложности Средний
Время на прочтение 44 мин
Количество просмотров 122K

Поскольку блокировки интернета в РФ в последние недели и месяцы многократно активизировались, а маразм все крепчает и крепчает, стоит еще раз поднять тему обхода этих самых блокировок (и делаем ставки, через сколько дней на эту статью доброжелатели напишут донос в РКН чтобы ограничить к ней доступ на территории страны).

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее
Всего голосов 490: ↑482 и ↓8 +474
Комментарии 315

Алгоритмы AdaBoost (SAMME & R2). Принцип работы и реализация с нуля на Python

Уровень сложности Сложный
Время на прочтение 11 мин
Количество просмотров 2.4K

Следующим мощным алгоритмом машинного обучения является AdaBoost (adaptive boosting), в основе которого лежит концепция бустинга, когда слабые базовые модели последовательно объединяются в одну сильную, исправляя ошибки предшественников.

В AdaBoost в качестве базовой модели используется пень решений (могут использоваться другие модели) — дерево с небольшой глубиной, которому присваивается вектор весов размера N, каждое значение которого соответствует определённому значению y_train и изначально равно 1 / N, где N — количество образцов в обучающей выборке. Каждый следующий пень обучается с учётом весов, рассчитанных на основе ошибок предыдущего прогноза. Также для каждого обученного пня отдельно рассчитывается вес, используемый для оценки важности итоговых прогнозов.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 2

Программированию конец?

Уровень сложности Средний
Время на прочтение 27 мин
Количество просмотров 68K

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

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

Основные моменты видео:

Разногласия в части темы замены программистов Искусственным Интеллектом.

Автоматизация задач с помощью ИИ: написание и отладка кода.

Влияние ИИ на участие разработчиков в процессе.

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

А также много другое и капелька теории!

Читать далее
Всего голосов 94: ↑28 и ↓66 -38
Комментарии 544

Нейронная сеть, имеющая способность к самообучению

Уровень сложности Средний
Время на прочтение 13 мин
Количество просмотров 8.7K

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

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 31

Что ты делаешь для безопасности Active Directory? (часть 1)

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 11K

Привет! Если ты не понимаешь с чего начать защищать Active Directory я привожу краткий перевод публикации "The Complete Active Directory Security Handbook. Exploitation, Detection, and Mitigation Strategies" от Picus Security. На своем опыте могу сказать, что восстановление Active Directory после влома - это сущий ад, вся инфраструктура, завязанная на доменную аутентификацию превращается в руины, и восстановление, по существу, является созданием инфраструктуры Active Directory с нуля.

!!! Данный текст предназначен для усиления мер безопасности Active Directory, а все описанные техники приводятся в качестве примера для понимания направления атак и способов их детектирования !!!

Структура хэндбука от Picus Security включает описание самых распространенных типов атак на Active Directory и методов их обнаружения.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 0

Как работает сеть в контейнерах: Docker Bridge с нуля

Уровень сложности Средний
Время на прочтение 21 мин
Количество просмотров 30K

В этой статье мы собираемся разобраться со следующими вопросами:

* Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельные сетевые среды?

* Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?

* Как выйти во внешний мир (например, в Интернет) изнутри контейнера?

* Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?

* Как реализовать публикацию портов, подобную Docker?

Читать далее
Всего голосов 71: ↑71 и ↓0 +71
Комментарии 14

Как языковая модель предсказывает следующий токен (часть 1)

Время на прочтение 27 мин
Количество просмотров 6.2K

Я обучил небольшой (порядка 10 миллионов параметров) трансформер по превосходному туториалу Let’s build GPT: from scratch, in code, spelled out Андрея Карпати. После того, как он заработал, я захотел максимально глубоко понять, как он устроен внутри и как создаёт свои результаты.

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

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

Если вы знакомы с трансформерами и хотите сразу узнать вывод, то он таков: каждый блок трансформера (содержащий слой многоголового внимания и сеть с прямой связью) изучает веса, связывающие конкретный промт с классом строк, найденных в обучающем корпусе. Распределение токенов, соответствующее этим строкам в обучающем корпусе, и есть приблизительно то, что блок выводит как прогноз для следующего токена. Каждый блок может ассоциировать один и тот же промт со своим классом строк обучающего корпуса, что приводит к другому распределению следующих токенов, а значит, и к другим прогнозам. Окончательный результат работы трансформера — это линейное сочетание прогнозов каждого блока.

Читать далее
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 5

Как я устроился в Амазон и перестал переживать за свой английский

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 86K

Готовитесь к собеседованию за рубежом и переживаете за свой английский? Хотели бы работать в международной компании, но сомневаетесь, хватит ли языка? Не уверены, поймут ли ваш акцент? Тогда эта статья может помочь.

Меня зовут Андрей Столбовский, последние 5 лет я работал в Яндексе, а в прошлом году перешёл в Амазон и теперь работаю Software Development Manager в AWS Redshift – это мой первый полноценный опыт работы в международной компании. 

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

Итак, поехали. 

Поехали!
Всего голосов 282: ↑279 и ↓3 +276
Комментарии 160

LISP — исследование оригинального языка ИИ

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 3.6K

Откройте для себя один из первых языков программирования, который, по мнению Майка Бедфорда, не мог быть более непохожим на своих ранних собратьев.

В предыдущей части нашей серии, посвященной классическим языкам программирования, мы рассмотрели ALGOL, а в этом месяце мы углубились в изучение другого архаичного языка - LISP. Однако то, что оба они появились в 1950-х годах, - это практически единственное, что их объединяет; в большинстве других аспектов они не могут быть более разными. Скорее всего, практически все языки, которыми вы когда-либо пользовались, относятся к типу императивных. LISP же является декларативным языком. Проще говоря, программирование на императивном языке предполагает определение набора операций, которые при последовательном выполнении обеспечивают требуемую функциональность. требуемую функциональность. Тот факт, что существует альтернатива, может вызвать удивление, но в декларативном языке конечный результат определен, а система сама решает, как достичь поставленной цели.

Эти два подхода можно сравнить с инструкциями, прилагаемыми к мебели для самостоятельной сборки. При императивном подходе инструкция представляет собой подробный перечень указаний, а при декларативном методе вам просто показывают картинку собранной мебели. На самом деле, это не первое знакомство с декларативным программированием за последние месяцы. Чуть ранее мы познакомились с языком Prolog, который практически канул в Лету в 1980-х годах, а затем вновь стал популярным благодаря Al-революции.

Читать далее
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 8

Квазицитирование в Lisp

Время на прочтение 39 мин
Количество просмотров 3.7K

Аннотация


Квазицитирование (quasiquotation) — это технология, обычно используемая в Lisp для создания программ, генерирующих другие программы. В статье объясняется механизм работы квазицитирования, поясняется почему он работает именно так и каковы его ограничения, а также даётся экскурс в историю квазицитирования.

Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Комментарии 22

Почему я остаюсь с Лиспом (и вам тоже стоит)

Время на прочтение 15 мин
Количество просмотров 14K

Зрелый язык может использоваться немногими. Но он остаётся частью моей кодовой базы.

Как давнего пользователя (и активного сторонника) Scheme/Common Lisp/Racket, меня иногда спрашивают, почему я предпочитаю их. К счастью, я всегда возглавлял собственные инженерные организации, поэтому мне никогда не приходилось оправдывать это перед руководством. Но есть еще более важная аудитория - мои собственные коллеги-инженеры, которые никогда не имели удовольствия использовать эти языки. Хотя им не требуются оправдания, они все же спрашивают из интеллектуального любопытства, а иногда и из-за удивления, почему я не схожу с ума по поводу следующей крутой функции, которая будет в этом месяце добавлена в Python или Scala, или что бы там ни было в их вкусе.

Читать далее
Всего голосов 40: ↑32 и ↓8 +24
Комментарии 136

Первый древнейший: в чём уникальность языка программирования LISP

Время на прочтение 10 мин
Количество просмотров 34K

В этой статье мы поговорим об одном из самых старых языков программирования ― Lisp. Несмотря на свой внушающий уважение возраст, он всё ещё находится в строю и заставляет переосмысливать всю теорию программирования. Так что же это за язык и чем он примечателен?

Лисп, или LISP (от англ. LISt Processing language — «язык обработки списков», современное написание: Lisp) — семейство языков программирования, программы и данные в которых представляются в виде списков.

Существует альтернативная расшифровка названия LISP: Lots of Irritating Superfluous Parentheses («Много раздражающих лишних скобок») — намёк на особенности синтаксиса языка.

Шутливое «Десятое правило Гринспена» гласит: «Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp».

Читать далее
Всего голосов 15: ↑13 и ↓2 +11
Комментарии 26

История о том, как IT-шник ушел в гостиничную сферу или почему ваш летний отпуск может быть омрачен

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 7.1K

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

Когда вы бронируете гостиницу и вас заселяют не в тот номер который вы забронировали, либо вдруг вам отказывают в завтраке, который должен быть в вашей брони, вы прежде всего начинаете ругаться с гостиницей. В этой статье я вам расскажу о оборотной стороне работы гостиницы и почему такое происходит.
В статье я затрону техническую часть: применение PMS систем для автоматизации работы гостиницы и проблемы в работе сервисов бронирования отелей, таких как Яндекс и Островок.

Краткое вступление

Когда‑то давно, в прошлой жизни, я работал в сфере IT. Но в жизни произошли определенные события, после которых я переехал в Республику Дагестан, город Дербент.

В данном регионе сейчас активно развивается туризм и в какой‑то момент мне поступило предложение забрать в аренду гостиницу. Предложенные мне условия оказались интересными и я влился в тему. Изначально профильного образования у меня не было, но это нынче не проблема и уже в этом месяце планирую получить диплом по специальности «руководитель гостиницы, санатория».

Читать далее
Всего голосов 18: ↑13 и ↓5 +8
Комментарии 25

Компьютерное зрение сквозь года

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 7.6K

Как-то я столкнулся с довольно тривиальной, но новой для себя задачей - оптического распознавания символов (OCR). Так сложилось, что готовые инструменты (типа tesseract-ocr) мне не подошли, поэтому пришлось изобретать велосипед. Но к этому процессу я решил подойти со всей отвественностью: проверить несколько подходов, определить их примущества, недостатки и выбрать наиболее подходящий для конкретной задачи. По итогу это мини-исследование вылилось в данную обзорную статью. Здесь я хочу привести примеры нейросетевых моделей, характерных для различных этапов становления области компьютерного зрения (далее - CV) в том виде, в котором мы его знаем сейчас.

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 8

Шахматные алгоритмы, которые думают почти так же, как человек, только лучше

Время на прочтение 6 мин
Количество просмотров 37K

Когда создавались первые вычислительные машины, их воспринимали только как дополнение к человеческому разуму. И до недавнего времени так и было. Программисты учили компьютеры играть в шахматы с 1960-х годов. И тогда победа у игрока-новичка уже считалась большим прогрессом. О серьёзных матчах даже не задумывались.

В 1980-х программа Belle достигла рейтинга Эло в 2250 пунктов, что примерно соответствует рейтингу мастера спорта. И с того времени развитие компьютерных шахмат вышло на совершенно новый уровень. 

Сначала честь человечества не смог защитить Гарри Каспаров в 1996 году, а сегодня уже создана нейросеть с рейтингом около 5000 Эло, что в разы превосходит даже сильнейших игроков.

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

Приятного чтения
Всего голосов 21: ↑18 и ↓3 +15
Комментарии 30

Каково это, создавать язык программирования сегодня?

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 16K

«Эта книга – классика. Относитесь к ней бережно».

Такую фразу произнёс архитектор из нашей команды, передавая мне The Dragon Book. Разработкой компиляторов я увлёкся где-то 15 лет назад ещё на заре своей карьеры. Как-то раз, читая эту книгу поздно вечером, я заснул, небрежно уронив её на пол. Надеюсь, владелец не заметил небольшую вмятину на обложке после того, как я ему её вернул.

Вышла эта книжка в 1986 году. В те времена создание компиляторов было крайне сложной задачей, требовавшей обладания различными навыками в области компьютерных наук в целом и программирования в частности. Теперь, почти четыре десятилетия спустя, этой задачей занимаюсь я. Насколько сложна она сегодня? Приглашаю вместе разобрать процесс создания языка и посмотреть, насколько современные инструменты его упростили.
Читать дальше →
Всего голосов 62: ↑59 и ↓3 +56
Комментарии 5

Отопление в ИЖС с помощью сплит-кондиционера «на тепло». Так ли это выгодно на самом деле?

Время на прочтение 30 мин
Количество просмотров 14K

Отопление тепловыми насосами

Продолжим обсуждение способов экономичного отопления в ИЖС без использования трубного газа.

Ранее были рассмотрены варианты отопления электричеством и отопления с применением СУГ.

Экономика загородного дома. Как утеплить дом и не разориться?

По желанию читателей решил рассмотреть и вариант отопления с помощью «кондиционеров на тепло».

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

Изначально предполагается использовать именно самую дешёвую версию сплит‑кондиционера, у которого компрессорно‑конденсаторный блок (далее ККБ) установлен на улице.

Идея сама по себе увлекательная, но содержит в себе ряд подводных камней, не очень афишируемых в рекламных проспектах.

Рассмотрением этих незаметных или преднамеренно скрываемых препятствий мы и займёмся в этой статье.

Читать далее
Всего голосов 53: ↑50 и ↓3 +47
Комментарии 137

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность