Обновить
1024K+

Python *

Высокоуровневый язык программирования

759,72
Рейтинг
Сначала показывать
Период
Уровень сложности

Что такое AI-агент и из каких основных частей он состоит

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели33K

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

🔥 Начинаем 🔥

Как я разрабатывал приложение llm-translate для перевода с помощью нейросетей

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели19K

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

Тема использования нейросетей в разных областях (в том числе и для перевода) часто обсуждалась на хабре - и я тоже решил поделиться своим велосипедом. В данный момент уже есть базовый функционал и некоторые планы на его расширение.

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

Изображение на обложке - веб-интерфейс страницы перевода в созданном приложении.

Читать далее

Снятие проклятия размерности: как познакомиться со своими данными

Время на прочтение6 мин
Охват и читатели7.2K

1. Проклятие размерности

Человек эволюционировал в 3 пространственных измерениях, и в них мы себя шикарно чувствуем. В них мы живем, радуемся, грустим, да и все драмы жизни проходят в этих измерениях. Правда в первой половине 20 века Теодор Калуца и Оскар Клейн нашли еще одно измерение, но оно маленькое и его людям не видно. После струнные теоретики, такие как Леонард Сасскинд, Герард т`Хофт, Яу Шинтун, Александр Виленкин  и другие, опять сильно усложнили картину мира, и к 4 пространственным измерениям добавили еще 6 (это минимум), но они все где то не пойми где, и влияют на жизнь только физиков-теоретиков, а остальным n-миллиардам людей на Земле, нет никакого дела до этих измерений, им и в 3 хорошо живется.

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

Читать далее

Кольца Барромео и один забавный алгоритмический баг

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели16K

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

Читать далее

Оверинжиниринг: простое сложным языком

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели15K

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

Читать далее

Большой разлив чая: сервис анонимных слухов о мужиках Tea спалил персданные пользовательниц

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели16K

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

Читать далее

Базовый Python для аналитика данных: подборка для самостоятельного обучения

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели42K

Привет! Это команда курса «Python для анализа данных». Собрали для вас подборку бесплатных ресурсов для изучения Python с нуля. Здесь вы найдёте как интерактивные курсы с практическими заданиями, так и теоретические материалы с подробными объяснениями.

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

Читать далее

goYSDA: Как мы в ШАДе переизобрели и сделали непрерывную игру Го, выкинув из него сетку

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

Привет, Хабр!

Все мы знаем Го — глубокую, медитативную игру на доске 19x19. Камни, пересечения, территории... А что, если выкинуть саму сетку и разрешить ставить камни куда угодно в пределах доски?

Мы в команде YSDA (Yandex School of Data Analysis или Школа Анализа Данных, ШАД) задались этим вопросом и решили проверить. Получилось азартно, хаотично и, что самое главное для нас как разработчиков, — чертовски интересно с точки зрения алгоритмов.

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

А в конце встретим неожиданный твист! Узнаем, что такое такое Суго.

Погрузиться в игру →

Как мы подняли современный портал документации из россыпи .md файлов: пошаговое руководство по MkDocs + Material

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели9.8K

От хаоса в Markdown-файлах до стильного, быстрого сайта с поиском, темами и мультиязычностью за один вечер.
В жизни почти каждого IT-проекта наступает момент, когда количество файлов README.md, GUIDE.md, docs.txt и заметок в Confluence достигает критической массы. Документация становится фрагментированной, поиск нужной информации превращается в квест, а новые члены команды тратят часы на то, чтобы просто понять, "что где лежит".

Читать далее

Как устроены переменные в Python: глубокое погружение в память и типы данных

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

В мире Python существует много мифов о том, как работают переменные. Одни говорят, что "всё передаётся по ссылке", другие утверждают обратное. Правда, как обычно, лежит где-то посередине и гораздо интереснее простых объяснений. В этой статье мы детально разберём механизмы работы с памятью в Python 3.13, изучим различия между mutable и immutable объектами, и поймём, когда Python создаёт новые объекты, а когда переиспользует существующие. Дабы статье пожить подольше - рассмотрю только версию 3.13.

Жми, если не Гей

Решаем задачу про ферзей при помощи SMT-солвера

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели2.4K

Автор статьи Modern SAT solvers: fast, neat and underused утверждает, что SAT-солверы «преступно мало используются в нашей отрасли». [SAT — Boolean SATisfiability Solver, то есть солвер, способный находить присвоения, делающие истинными сложные булевы выражения. Более подробно я писал о них ранее.] Какое-то время назад я задался вопросом, почему: как получилось, что они настолько мощны, но ими никто не пользуется? Многие специалисты заявили, что причина в неудобстве кодирования SAT: они лучше предпочтут работать с инструментами, которые выполняют компиляцию в SAT.

Я вспомнил об этом, когда прочитал пост Райана Бергера о решении «задачи ферзей с LinkedIn» как задачи SAT.

Вкратце опишу задачу про ферзей (Queens). У нас есть сетка NxN, разделённая на N областей, и нам нужно разместить N ферзей так, чтобы в каждом столбце, строке и области находился ровно один. Ферзи могут находиться на одной диагонали, но не соседствовать по диагонали.

Читать далее

Делаем ИИ автоответчик в Telegram

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели14K

Привет, Хабр! Хочу поделиться своим опытом создания бота, который может имитировать стиль общения любого пользователя Telegram. Проект AI Telegram Responder позволяет обучать модели на основе истории переписки и использовать их для автоматических ответов в определенных чатах.

Читать далее

На START, внимание, марш: как победить галлюцинации и научить LLM точным вычислениям

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

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

Читать далее

Ближайшие события

1С: Кабинет сотрудника: Как мы чинили то, что называлось «готовым продуктом»

Время на прочтение7 мин
Охват и читатели16K

Привет, Хабр (и просто случайные читатели, зашедшие сюда в поисках истины или интересной статейки на пару минут)!

Сегодня я расскажу вам историю о том, как я провёл полгода в тесных объятиях «1С: Кабинет сотрудника» на новой технологии 1С:Элемент — системы, которая обещала сделать кадровый документооборот простым, как бутерброд с колбасой. Но, как выяснилось, бутерброд этот оказался с сюрпризом… то ли огурцом, то ли гвоздём.

Читать далее

Торговый робот без QUIK и Windows: мой путь к Raspberry Pi и Backtrader на Московской бирже

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

В предыдущих статьях я рассказывал, как пришёл к идее создания собственного торгового робота. Мотивация проста:

✓ Автоматизация - алгоритм не спит, не нервничает и не занят своими делами.
✓ Дисциплина - робот исключает эмоции, следуя правилам.
✓ Тестирование - любую идею можно проверить на исторических данных, прежде чем рисковать деньгами.

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

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

Разбираемся с 🤖

Псевдослучайный рандом в Python

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели9.7K

В этой статье хочу рассказать про нерандомность модуля random в стандартной библиотеке Python. С точки зрения криптографии и математики числа, генерируемые этим модулем, случайные лишь на вид — они порождаются детерминированным алгоритмом, что делает их псевдослучайными. Рассмотрим, как устроен генератор на основе алгоритма Mersenne Twister (MT19937), почему его выходы «нерандомны» в формальном смысле и какие практические следствия это имеет.

написано для новичков и плохо посвященных в тему людей…

Читать далее

Поиск мотивации в скучных задачах

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

Каждый иногда встречается с НЕинтересными для него задачами, но необходимыми к выполнению. Для некоторых это кропотливые и нудные задачи, для некоторых, задачи, требующие смелых решений. Бывает просто лень, хотя это тоже сложное чувство, которое можно разложить на составляющие и анализировать отдельно. Но о лени поговорим как-нибудь в другой раз.

Меня вгоняет в чувство безнадежности задачи, которые не четко формализованы, или которые поставлены нечетко: «Сделай то, не знаю что».

В этой статье я расскажу о своём подходе, как я справляюсь с такими ситуациями.

Читать далее

Говорим с Битрикс24 на языке ИИ: представляем опенсорс MCP-сервер для LLM-интеграции

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.2K

Привет! Мы — партнеры Битрикс24 и создаем для бизнеса приложения с генеративным ИИ, интегрируя их с корпоративными порталами.

В этой статье мы расскажем о созданном нами решении, которое позволяет любым разработчикам легко подключать свои чаты и другие приложения с LLM-моделями к Битрикс24. Речь идет о MCP-сервере — помощнике для ИИ, который позволяет получать из портала Битрикс24, например из раздела CRM, точные данные для ответа пользователю.

Читать далее

NoProp: Реальный опыт обучения без Backprop – от провала к 99% на MNIST

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели3.2K

Всем привет! Обучение нейронных сетей с помощью обратного распространения ошибки (backpropagation) — это стандарт де‑факто. Но у него есть ограничения: память, последовательные вычисления, биологическая неправдоподобность. Недавно я наткнулся на интересную статью «NOPROP: TRAINING NEURAL NETWORKS WITHOUT BACK‑PROPAGATION OR FORWARD‑PROPAGATION» (Li, Teh, Pascanu, arXiv:2403.13 502), которая обещает обучение вообще без сквозного backprop и даже без полного прямого прохода во время обучения! Идея показалась захватывающей, и мы (я и ИИ‑ассистент Gemini) решили попробовать ее реализовать на PyTorch для MNIST.

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

Дисклеймер 1: Это рассказ об учебном эксперименте. Результаты и выводы основаны на нашем опыте и могут не полностью отражать возможности оригинального метода при наличии всех деталей реализации.)

Читать далее

Обратное распространение ошибки… на пальцах… без формул

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели14K

Общая суть метода «обратного распространения ошибки» от простого примера до создания полносвязной нейронной сети.

Читать далее