Pull to refresh
1
0
Георгий Мамедалиев @gerchik

User

Send message

Как котята лапками настраивают GPU в Kubernetes и при чем тут эффект Манделы

Level of difficultyHard
Reading time9 min
Views6.1K
image

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

Привет, Хабр! Меня зовут Антон. Мне часто приходится настраивать инфраструктуру для обучения и инференсинга моделей на GPU в Kubernetes. Хочу поделиться волшебным инструментом, который позволяет это делать без костылей и велосипедов, если у вас лапки.

В этой статье расскажу и про боли при настройке GPU для ML-задач, и про лекарство — GPU-оператор. Разберемся на примере с GPU NVIDIA, но и для AMD общая концепция будет похожа. Ранее я выступал с этим материалом на конференции Pycon 2024.
Читать дальше →
Total votes 26: ↑26 and ↓0+35
Comments0

Obsidian — Notion свободного человека

Level of difficultyEasy
Reading time5 min
Views78K

Notion объявили, что уходят из России и 9 сентября блокируют аккаунты пользователей.

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

Для любителей Ноушена это большая проблема, для любителей Обсидиана это возможность сказать: "Мы же вам говорили" и начать хвастаться своими кастомными обсидианами.

Я сам долгое время пользовался Ноушеном. Первое знакомство было умопомрачительно, захватывающе. Чего только стоят мои конспекты с футбольными тактиками, где я ковертировал видео с матчей и тренировок в гифки, а потом добавлял к конспектам.

Год назад перевёл все свои заметки в Обсидиан. Причина простая: Обсидиан может гораздо больше вещей, чем Notion.

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

Читайте в статье
Total votes 114: ↑108 and ↓6+121
Comments265

Выбираем правильный инференс: Как мы сэкономили 70к $ на ЛЛМках

Reading time4 min
Views4.7K

Недавно ко мне обратились знакомые, которые активно впиливали LLM в своей продукт, однако их смущала стоимость такого решения - они платили около 8$/час за Huggingface inference Endpoint 24/7, на что уходили просто невиданные ~100 тысяч долларов в год. Мне нужно было заресерчить какие есть способы развертывания больших текстовых моделей, понять какие где есть проблемы и выбрать оптимальных из них. Результатами этого ресерча и делюсь в этой статье)

Читать далее
Total votes 15: ↑5 and ↓10-4
Comments19

У вас новый ремонт? Лучше! Рисунок нового ремонта. Как мы из Stable Diffusion сделали дизайнера интерьеров

Level of difficultyMedium
Reading time19 min
Views13K

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

Читать далее
Total votes 29: ↑26 and ↓3+30
Comments38

Как IT-специалисту составить резюме: советы рекрутеров

Reading time3 min
Views16K

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

А еще попробуйте заполнить резюме на Хабр Карьере — там же его можно красиво скачать в пдф, которую часто хвалят специалисты в отзывах.

Читать далее
Total votes 25: ↑20 and ↓5+34
Comments44

Программист никому не должен доверять, и даже самому себе

Level of difficultyMedium
Reading time7 min
Views5.5K

Программисты должны быть параноиками.

  • «Я дважды проверил код»
  • «Код проходит все тесты»
  • «Ревьюер одобрил мой код»

«Так ли корректен мой код?»

Писать код корректно трудно, а подтвердить корректность кода невозможно.
Вот некоторые из причин этого:

  • Всеобщность: даже если код правильно вёл себя один раз, будет ли он вести себя так во всех случаях на всех машинах и всегда?
  • Ложное прохождение теста: непрохождение тестов указывает на наличие багов, но прохождение тестов не гарантирует их отсутствия.
  • Отсутствие определённости: можно написать формальное доказательство корректности кода, но теперь нужно задаться вопросом, корректно ли доказательство. Потребуется доказать доказательство. Эта цепочка проверки проверок никогда не закончится.

Безумно было бы стремиться к определённости корректности кода. Баг может скрываться в зависимости, которую вы никогда не найдёте. Однако отчаиваться не стоит, всё равно можно снизить вероятность багов, расширяя своё понимание и внимательность.
Читать дальше →
Total votes 26: ↑26 and ↓0+34
Comments4

Работаем с PyTorch на CPU

Level of difficultyMedium
Reading time10 min
Views5.5K


В этой статье мы рассмотрим железо, настройки, подводные камни и неочевидные вещи, которые позволят выжать всё из вашего процессора для как можно более комфортной работы PyTorch на CPU. Даже если у вас есть видеокарта, поддерживаемая PyTorch, вы сможете увеличить продуктивность компа через распараллеливание нагрузки на CPU и видеокарту.
Поехали!
Total votes 36: ↑36 and ↓0+51
Comments10

Как я зарабатывал 13 млн в год на любителях пассивного дохода

Level of difficultyEasy
Reading time10 min
Views250K

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

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

Читать далее
Total votes 183: ↑170 and ↓13+210
Comments534

Можно ли научить чат-бота всегда говорить правду. Часть 2

Level of difficultyMedium
Reading time10 min
Views2.2K

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

Часть первая тут.

Как пользователи, мы хотим иметь возможность просто загрузить все нужные нам документы в RAG и пользоваться ими без дополнительных настроек. Большинство традиционных подходов RAG также используют полученные документы “как есть”, без проверок, являются ли эти документы релевантными или нет. Более того, современные методы в основном рассматривают полные документы как справочные знания, как во время поиска, так и во время использования. Но значительная часть текста в этих извлеченных документах часто не важна для генерации и только затрудняет поиск релевантной информации. А если результат работы ретривера окажется низкого качества, есть большая вероятность получить галлюцинацию в ответе.

Для решения проблемы можно двигаться в нескольких направлениях.

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

Рекомендательная система для интернет-магазина: графы, векторы и генеративный ИИ

Level of difficultyMedium
Reading time8 min
Views1.7K

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

Требуется:

1. построить умную рекомендательную систему, чтобы при заходе на сайт, руки сами тянулись к заветной кнопке «Купить»;

2. облегчить пользователю поиск товаров даже с самыми нестандартными запросами;

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

Ресурсы: команда ИИ из 6 человек, полгода работы, графовая база Neo4j, векторный поиск, генеративный ИИ и безграничное терпение бизнес-команд.

Эта статья о том, как мы это сделали и с какими трудностями столкнулись на своем пути.

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

GPT-4, Claude 3, Gemini Pro или опенсорс — как выбрать LLM под свою задачу?

Level of difficultyMedium
Reading time10 min
Views24K
image

Несмотря на то, что сейчас из каждого утюга рекламируется доступ к ChatGPT и GPT-4, вообще говоря, в мире существует несколько больше разных поставщиков LLM (больших языковых моделей), и некоторые из которых могут гораааздо более эффективнее решать какие-то конкретные задачи.

Я уже полгода веду проект VseGPT.ru с доступом к разным LLM из России по OpenAI API (ну, и через вебчат). Львиная доля работы — подключение новых нейросетей. Сейчас их уже свыше 60, и каждую я попробовал хотя бы раз, ну, когда подключал.

Правда, сайт LLMExplorer, собирающий данные об опенсорс нейросетях с портала Hugging Face, говорит, что их там уже более 33 000 штук. М-да.

В общем, вероятно, я не знаю о текстовых сетках всё, но определенно знаю кое-что — хотя бы в пределах своего скромного опыта в 60 сеток. Так что кому интересно — прошу под кат.
Читать дальше →
Total votes 25: ↑24 and ↓1+31
Comments28

Wasm на весь стек — движемся от клиента к серверу с использованием Leptos, Rust и Spin

Level of difficultyHard
Reading time9 min
Views4.9K


Leptos – интересное пополнение в ряду веб-фреймворков для Rust. Помимо того, что Leptos может обеспечить быстрые обновления на стороне браузера через клиентскую часть WebAssembly, а также детализированные отклики на сигналы в ходе реактивной коммуникации, он ещё и чрезвычайно удобен для взаимодействия с серверными службами через изоморфные серверные функции. Таким образом, выполнять удаленные вызовы к API оказывается не сложнее, чем вызывать функции Rust. Именно благодаря интеграции с серверной частью Leptos так привлекателен для использования совместно со Spin. Если вам интересно, как это выглядит, или же вы хотите погоревать над весьма неказистым пользовательским интерфейсом, то читайте дальше.
Читать дальше →
Total votes 21: ↑21 and ↓0+32
Comments4

Llama 3.1-70b в своем Телеграм боте — бесплатно, безлимитно и всего 20 строк кода

Level of difficultyEasy
Reading time2 min
Views37K

Да, всего 20 строк кода и бот:

1) по качеству ответов будет соизмерим с ChatGPT-4o;
2) будет отвечать очень быстро т.к. подключим мы его через Groq который в среднем в 10 раз быстрее других аналогичных сервисов;
3) будет поддерживать диалог и запоминать последние сообщения.

Читать далее
Total votes 50: ↑40 and ↓10+38
Comments102

Когда достаточно простого класса Python — взять и начать управлять ML-экспериментами

Level of difficultyMedium
Reading time7 min
Views5.4K

Мы в ПГК занимаемся грузоперевозками, причем решаем различные транспортные задачи не только методами математической оптимизации, но и с помощью моделей машинного обучения. Наши дата-сайентисты проводят десятки экспериментов — в том числе и без необходимости прибегать к инструментам логирования вроде MLflow. В этом им помогает компактный Python-класс. Расскажем, как он устроен, и поделимся кодом.

Читать далее
Total votes 7: ↑7 and ↓0+8
Comments5

Что нужно знать, чтобы успешно пройти System Design Interview

Reading time16 min
Views41K

Для любого разработчика глубокое понимание основных принципов системного проектирования является необходимым условием для создания стабильных и масштабируемых программных систем, способных обеспечивать высокую производительность. Системное проектирование (System Design) включает разработку архитектуры и структуры программной системы, направленную на удовлетворение специфических требований и обеспечение требуемых показателей производительности.

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

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

Читать далее
Total votes 49: ↑47 and ↓2+56
Comments26

Векторные базы данных: простым языком про устройство и принцип работы

Level of difficultyEasy
Reading time11 min
Views20K

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

Читать далее
Total votes 30: ↑29 and ↓1+35
Comments16

Я программист, и я тупой

Reading time2 min
Views76K
Я пишу код за деньги уже пятнадцать лет. Пробовал себя и в других ролях – управление продуктом, аналитика, тестирование, – но как-то не пошло. И с течением лет пришел к осознанию, что я не очень умный. К сожалению.

Никаких особых медицинских диагнозов мне не ставили, но мои умственные способности крайне ограниченны. Даже те задачи на Leetcode, которые попроще, вызывают у меня затруднения. Когда я читаю о самом обычном алгоритме консенсуса, у меня кипит мозг. У меня плохо получается отслеживать сложные зависимости в кодовой базе. Я не способен освоить модные языки вроде Rust (пытался, но по правде сказать, для меня это чересчур). Я терпеть не могу микросервисы и современный фронтенд: там слишком много движущихся частей, и уследить за всеми я не в состоянии.

Как же я выхожу из положения?
Читать дальше →
Total votes 297: ↑283 and ↓14+324
Comments333

Async iterator timeout в Python

Level of difficultyMedium
Reading time5 min
Views2.4K

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

В числе прочих задач, решаемых при реализации возможности стриминга, существует задача определения ситуации, в которой сервис, исполняющий запрос, упал с ошибкой, и больше не может продолжать стриминг ответов. В таком случае мы даже не можем понять что именно произошло - обработка и отдача очередной порции ответа будет, но задерживается, либо же передача прервалась, и нужно сообщить об ошибке “наверх”. В протоколе HTTP, например, для детерминирования корректной вычитки ответа может быть использован заголовок Content-Length. Достаточно посчитать количество вычитанных из сокета байт тела запроса\ответа, и сравнить со значением заголовка. Сходится - мы все получили, не сошлось и сокет закрыт - ошибка. Однако вариант решения с заранее заданным количеством данных в первой порции ответов не является универсальным, поскольку не во всех случаях можно точно понимать, сколько именно данных будет передано. Да и архитектура с использованием брокеров сообщений предполагает постоянное поддержание соединения, поэтому мы можем только знать, что из такой-то очереди поступают ответы на ранее сделанный запрос, и в каком-то из ответов будет метка окончания, как маркер того, что запрос обработан и ответ выслан и получен полностью, а если такого маркера еще не получено - остается продолжать ждать. Но ждать можно бесконечно.

Читать далее
Total votes 10: ↑9 and ↓1+13
Comments3

Архитектура высоконагруженных телеграм-ботов на Python

Level of difficultyMedium
Reading time22 min
Views29K


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

Мессенджеры стали нашими неотъемлемыми спутниками, а их потенциал не ограничивается простым обменом сообщениями. Боты обеспечивают автоматические решения задач, которые ранее требовали участия человека. Они работают как виртуальные ассистенты, способные отвечать на вопросы, предоставлять информацию, обрабатывать заказы, делать рекомендации и многое другое.
Читать дальше →
Total votes 15: ↑14 and ↓1+15
Comments14

Как создать мультидокументный ридер и чат-бот с помощью LangChain и ChatGPT

Reading time16 min
Views4.6K

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

Читать далее
Total votes 13: ↑12 and ↓1+15
Comments4
1
23 ...

Information

Rating
Does not participate
Location
Dallas, Texas, США
Date of birth
Registered
Activity