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

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

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

Автоматизируем поиск ценной информации в групповых чатах Telegram с помощью LLM

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

Устали мониторить бесконечные групповые чаты в Telegram в поисках важной информации? Решение есть! Пишем компактное приложение на Python, которое будет делать это за нас с использованием LLM.

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

Реализация взаимодействия с БД через Middleware в Telegram-ботах

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

Когда я начинал писать своих первых ботов с использованием базы данных, их код был очень плохим: он расходовал лишние ресурсы, а также была плохая архитектура проекта. Поэтому я хочу поделиться с вами своими знаниями, чтобы вы не наступали на те грабли, на которые наступал я. В проекте бота, который будет использован в качестве примера в данной статье, я использовал такие технологии, как aiogram, SQLAlchemy, alembic и Docker. В качестве СУБД выступает PostgreSQL. Приятного чтения!

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

Концепция «все есть файл» — давно устарела

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

Собственно, сабж.

На это указывает ряд моментов в существующих решениях.

Прежде всего, давайте вспомним, какими важными характеристиками обладает файл?

Читать далее
Всего голосов 59: ↑30.5 и ↓28.5 +2
Комментарии 153

5 способов писать эффективный код на Go: от названий переменных до архитектуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 95: ↑28 и ↓67 -39
Комментарии 544

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

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

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

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

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

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

Привет! Если ты не понимаешь с чего начать защищать 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 мин
Количество просмотров 32K

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Меня зовут Андрей Столбовский, последние 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 мин
Количество просмотров 35K

В этой статье мы поговорим об одном из самых старых языков программирования ― 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

Информация

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