Обновить
Сначала показывать
Порог рейтинга
Уровень сложности

vLLM, LoRA и GPU-кластеры: техническая анатомия обогащения поисковой выдачи Авито мультимодальными моделями

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

Привет, Хабр! Меня зовут Кирилл Нетреба, я Backend-ML-инженер в Авито. В этой статье я разберу, как мы научили платформу отыскивать нужные пользователю объявления, даже если в них нет соответствующего запросу текста. Мы препарируем связку из Qwen2.5-VL, фреймворка vLLM и LoRA-адаптеров, а также заглянем в бэкенд-инфраструктуру, которая переваривает миллионы обновлений в сутки без деградации latency.

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

Читать далее

Новости

Как переложить нагрузку по code review с разработчиков на LLM

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

Привет! Меня зовут Марк Каширский, я работаю DS-инженером в команде LLM Авито. Создаю инструменты для разработчиков, чтобы им было легче и удобнее работать. В статье рассказываю, как мы автоматизировали процесс Code review при помощи больших языковых моделей.

Читать далее

Фитнес план для PostgreSQL своими руками: как похудеть, когда нет доступа к pg_repack и pgcompacttable

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

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

Эта история о том, как мы придумали и реализовали свой собственный метод, когда никакие другие сторонние инструменты не позволяли сохранять работоспособность сервиса и гарантировать надёжность. Его можно применять во всём мире, где используются платформы на базе PostgreSQL.

Читать далее

Как я искал самую эргономичную клавиатуру

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

Привет! Меня зовут Иван Нещадин, я TechLead команды Bridge в Авито. Больше пяти лет я работаю в компании, а вот механическими клавиатурами увлекаюсь уже почти десять лет. Последние три года я особенно плотно погрузился в мир эргономичных и ортолинейных клавиатур. Если вам стало интересно, что же за заклинание я сейчас произнёс и что за вундервафлю вы видите на обложке статьи, тогда добро пожаловать!

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

Читать далее

Как работает система фейков для сквозного тестирования в Авито

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

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

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

Мы столкнулись с этим при работе с платформой в Услугах Авито: пользователь заполняет форму заявки, переходя между экранами. Логика переходов между экранами зависела от категории услуги, типа экрана и выбранных опций. Сценариев стало попросту слишком много. Пришлось искать другой путь. 

Меня зовут Константин Горностаев, QA в Авито, в этой статье я расскажу о подходе, который позволил нам решить эту задачу и получил название «система фейков».

Читать далее

Одна за всех? Как я организовала более 100+ встреч QA-комьюнити и не выгорела

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

Всем привет! Меня зовут Юля Трусова и я тестировщик. А ещё я лидирую под ключ одно из самых крупных и древних комьюнити в Авито — QA Community. В этой статье я расскажу про свой подход к теме, поделюсь важными вехами в становлении комьюнити и с удовольствием почитаю про ваш опыт в комментариях.

Читать далее

Как мы построили речевую аналитику для кол-центров и начали анализировать тысячи звонков

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

Привет! Я Артём Юрченко — DS-инженер в команде Недвижимости Авито. Наши кол-центры совершают до 30 000 звонков в день, и вручную можно проверить лишь небольшую часть из них. Расскажу, как мы начали строить систему речевой аналитики и разработали первую модель, которая автоматически находит в звонках возражения клиентов и анализирует, как операторы их отрабатывают. 

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

Читать далее

Как Swift работает с памятью: подробный гайд для разработчиков. Часть 2

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

Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков.

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

Читать далее

Как Swift работает с памятью: подробный гайд для разработчиков. Часть 1

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

Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков.

В этой статье последовательно разберем, как Swift управляет памятью: от базовых понятий вроде ARC,  Copy‑on‑Write, экзистенциальных контейнеров до нетипичных задач с «зомби»-объектами и non-frozen типами. Материал основан на документации Swift, докладах WWDC и практических примерах. Статья рассчитана на middle- iOS‑разработчиков, которые хотят лучше понимать, что происходит с их кодом на уровне памяти и почему одни решения оказываются дороже других.

Эта статья выйдет в двух частях: в первой разберем теорию, а во второй — практические примеры с кодом.

Читать далее

От сетевых эффектов до функций Ляпунова: как математические модели объясняют поведение систем и сообществ

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

Привет, Хабр! На связи Лера, технический писатель в Авито. Сегодня хочется поделиться обзором на книгу «Модельное мышление» Скотта Пейджа. 

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

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

Читать далее

Как в Авито построили систему мониторинга BGP

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

Всем привет! Меня зовут Антон Ильичев, я сетевой инженер в Авито. В этой статье расскажу, зачем мы централизованно собираем и анализируем маршрутную информацию с сетевых устройств, причём тут протокол BMP и как устроена наша система мониторинга. В конце вас будет ждать лаба на docker-compose, которую вы можете запустить у себя и посмотреть на систему в действии.

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

Читать далее

Модернизация и развитие зрелых продуктов на Kotlin Multiplatform: опыт компаний и эффект для бизнеса

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

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

Поддержка двух нативных приложений в таких условиях может быть дорогой в финансовом плане и сложной в скорости вывода новых функциональностей. Один из способов модернизировать продукт и снизить расходы – постепенно перейти на Kotlin Multiplatform.

В этой статье технический директор Александр Кияйкин и iOS-разработчик Мария Нестерова из CleverPumpkin вместе с экспертами X5 Tech, AvitoTech и MAGNIT OMNI разбирают, как компании со зрелыми цифровыми продуктами использует KMP, какие риски учитывают и какой видят от этого эффект.

Читать далее

Как мы внедрили бота, чтобы слайды делали сами себя

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

Привет! На связи Маша Иванова — старший аналитик в команде монетизации и Азамат Эмирбеков — старший BI-разработчик. Мы помогаем коллегам в командах Авито Недвижимости и Авто — собираем аналитические данные.

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

Читать далее

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

Как мы прокачиваем HealthScore для 6000+ витрин и готовим DWH к AI

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

Привет! Меня зовут Дмитрий Мележиков, я отвечаю за BI в домене Маркетинг и участвую в общих DWH/BI-проектах Авито.

В статье рассказываю, как мы построили систему HealthScore — метрику здоровья данных. От математической модели и пайплайна сбора метаданных до процесса массовой очистки. А ещё вы узнаете, почему HealthScore и сертификация витрин важны для AI Copilot. Без белого списка доверенных витрин ассистент может масштабировать ошибки так же быстро, как и инсайты. 

Читать далее

Отсечь змейке хвост: останавливаем разнос базы данных, когда времени на это нет

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

Привет, Хабр! Меня зовут Кирилл Абрамов, я backend-инженер в сервисе Автотека Авито. В этой статье я расскажу, как остановил постоянное увеличение объёма базы данных PostgreSQL и что надо делать, если времени на остановку не остаётся.

Читать далее

Как расти QA-инженеру: инструменты, которые действительно работают

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

Привет! Я Ангелина Архипова, тимлид QA в Авито. Это вторая часть статьи про развитие QA, ранее я разобрала этапы взросления QA-инженера — от охотника за багами до лидера, который формирует культуру качества в команде.

Когда смотришь на эти этапы со стороны, они часто кажутся абстрактными: вроде бы понятно, что должно измениться, но не всегда ясно, как к этому прийти на практике. Какие инструменты действительно помогают расти? На что стоит тратить время, а что можно смело отложить? И как не застрять на одном этапе, даже если формально ты уже «сеньор»?

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

Читать далее

Фидбэк-лайт: как тратить меньше времени и сил на обратную связь, сохраняя её эффективность

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

Привет, Хабр! Меня зовут Егор Дудин, я технический руководитель юнита «Деловые услуги» в Авито Услуги. В этой статье я излагаю своё видение построения и работы с обратной связью и её роли в крупной IT-компании. 

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

Под катом - кейсы из практики, примеры работы с фидбэком и 13 советов от меня.

Читать далее

Как мы улучшили рекомендации для пользователей Авито с помощью трансформенной персонализации

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

Привет! Меня зовут Саша Михеев, и я работаю в Авито над развитием персонализации пользователей. Делаю так, чтобы покупатели видели объявления, которые могут их заинтересовать. В статье рассказываю, как мы внедряли «трансформеры», чтобы улучшить рекомендации для пользователей.

Статья будет полезна data scientist-ам, ML-инженерам, ML-Ops-специалистам и продакт-менеджерам.

Читать далее

Как писать юнит-тесты, которые не ломаются

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

Привет, Хабр! Меня зовут Владимир, я Python-разработчик в команде IMV в Авито. Мы разрабатываем продукт, который помогает оценивать рыночную стоимость товара, будь то автомобиль, квартира или холодильник. Мы часто пишем тесты, и в этой статье я расскажу, как разные подходы к юнит-тестированию влияют на качество тестов, когда они помогают проекту, а когда — мешают, и почему само по себе наличие тестов ещё не гарантирует пользы. Статья будет полезна разработчикам, тимлидам и всем, кто пишет юнит-тесты и поддерживает код в долгоживущих проектах.

Читать далее

Полезные фичи новой версии Go — 1.26

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

Всем привет! Меня зовут Паша Агалецкий, я техлид команды платформы разработки Авито. В этой статье я расскажу о самых интересных и полезных фичах релиза новой версии Go — 1.26. Статья будет полезна всем, кто работает с Go и следит за развитием языка. 

Читать далее
1
23 ...