Pull to refresh
0
0
Send message

Аналитика ради аналитики или как выжить в стартапе

Level of difficultyEasy
Reading time6 min
Views3.3K

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

В чём проблема работать аналитиком в стартапе? Когда это твоя первая работа – примерно во всём.

Читать далее
Total votes 10: ↑8 and ↓2+9
Comments8

Cross-Encoder для улучшения RAG на русском

Level of difficultyMedium
Reading time15 min
Views5.5K

Одно из самых прикладных применений языковых моделей (LLM) - это ответы на вопросы по документу/тексту/договорам. Языковая модель имеет сильную общую логику, а релевантные знания получаются из word, pdf, txt и других источников.

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

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

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

Главное - мы натренируем свой кросс-энкодер на русском языке, что служит важным шагом на пути улучшения качества Retrieval Augmented Generation (RAG). Тренировка будет проходит новейшим передовым способом. Схематично он изображен на меме справа)

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

Краткий обзор техник векторизации в NLP

Level of difficultyEasy
Reading time21 min
Views16K

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

===

Технологии NLP — Natural Language Processing, обработки естественного языка — позволяют компьютерам обрабатывать человеческий язык, понимать его значение и контекст, а также связанные с ним эмоциональную окраску и намерения, и далее, использовать эти данные для создания чего-то нового.

Как сделать слова понятными для компьютеров? Используется векторизация. Рассмотрим несколько техник такой векторизации.

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

Обучение и оценка модели с Keras

Reading time25 min
Views105K


Это руководство охватывает обучение, оценку и прогнозирование (выводы) моделей в TensorFlow 2.0 в двух общих ситуациях:

  • При использовании встроенных API для обучения и валидации (таких как model.fit(), model.evaluate(), model.predict()). Этому посвящен раздел «Использование встроенных циклов обучения и оценки»
  • При написании кастомных циклов с нуля с использованием eager execution и объекта GradientTape. Эти вопросы рассматриваются в разделе «Написание собственных циклов обучения и оценки с нуля».

В целом, независимо от того, используете ли вы встроенные циклы или пишете свои собственные, обучение и оценка моделей работает строго одинаково для всех видов моделей Keras: Sequential моделей, созданных с помощью Functional API, и написанных с нуля с использованием субклассирования.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments5

Разработчик с мозгом груга

Reading time14 min
Views89K

Введение


это сборник мыслей о разработке программ собранный разработчиком с мозгом груга

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

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

разработчиков с большим мозгом много, некоторым страница не понравится, скривят кислая рожа

Ещё больше-больше ДУМАЮТ, что они разработчики с большим мозгом и им она тоже не понравится

(груг раньше думал груг с большим мозгом, но потом всё понял)

это ладно!

груг надеется, что тебе понравится читать и может ты научишься на много-много ошибка груг совершил за длинную жизнь программиста
Читать дальше →
Total votes 223: ↑197 and ↓26+209
Comments81

Груг против сложности. Я пролинтил все посты на Хабре про Python, и вот что я нашёл

Reading time52 min
Views61K

В какой-то момент времени я превратился в педанта брюзгу. В фильмах малейшие нестыковки и провалы в логике портят мне весь просмотр. В чатах меня бесит it's вместо its. А в статьях про программирование... Всё плохо. За меня всё уже сказал @AlexanderAstafiev, я лишь процитирую:

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

Самое забавное, что, по моим ощущениям, везде я вижу одни и те же классы проблем. Я даже запилил сервис, где можно закинуть код и получить код ревью, и, собрав немного статистики, понял, что 50 типов ошибок достаточно, чтобы покрыть большую часть проблем в чужом коде. Но выборка у меня была небольшая, и я подумал: а что, если проверить много кода?

И всё заверте...
Total votes 119: ↑114 and ↓5+134
Comments153

Перевод предобученной модели Keras на матричные вычисления

Level of difficultyMedium
Reading time11 min
Views6.7K

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

Эта статья о том, как я переписал обученную в Keras сеть на работу с матричными операциями в Numpy. Заодно это помогло мне "заглянуть под капот" нейронной сети.

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

Введение в машинное обучение с помощью scikit-learn (перевод документации)

Reading time6 min
Views90K
Данная статья представляет собой перевод введения в машинное обучение, представленное на официальном сайте scikit-learn.

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

Машинное обучение: постановка вопроса


В общем, задача машинного обучения сводится к получению набора выборок данных и, в последствии, к попыткам предсказать свойства неизвестных данных. Если каждый набор данных — это не одиночное число, а например, многомерная сущность (multi-dimensional entry или multivariate data), то он должен иметь несколько признаков или фич.

Машинное обчение можно разделить на несколько больших категорий:
  • обучение с учителем (или управляемое обучение). Здесь данные представлены вместе с дополнительными признаками, которые мы хотим предсказать. (Нажмите сюда, чтобы перейти к странице Scikit-Learn обучение с учителем). Это может быть любая из следующих задач:

  1. классификация: выборки данных принадлежат к двум или более классам и мы хотим научиться на уже размеченных данных предсказывать класс неразмеченной выборки. Примером задачи классификации может стать распознавание рукописных чисел, цель которого — присвоить каждому входному набору данных одну из конечного числа дискретных категорий. Другой способ понимания классификации — это понимание ее в качестве дискретной (как противоположность непрерывной) формы управляемого обучения, где у нас есть ограниченное количество категорий, предоставленных для N выборок; и мы пытаемся их пометить правильной категорией или классом.
  2. регрессионный анализ: если желаемый выходной результат состоит из одного или более непрерывных переменных, тогда мы сталкиваемся с регрессионным анализом. Примером решения такой задачи может служить предсказание длинны лосося как результата функции от его возраста и веса.


  • обучение без учителя (или самообучение). В данном случае обучающая выборка состоит из набора входных данных Х без каких-либо соответствующих им значений. Целью подобных задач может быть определение групп схожих элементов внутри данных. Это называется кластеризацией или кластерным анализом. Также задачей может быть установление распределения данных внутри пространства входов, называемое густотой ожидания (density estimation). Или это может быть выделение данных из высоко размерного пространства в двумерное или трехмерное с целью визуализации данных. (Нажмите сюда, чтобы перейти к странице Scikit-Learn обучение без учителя).

Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments0

Основы статистики: просто о сложных формулах

Reading time6 min
Views305K

Статистика вокруг нас


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

Еще будучи студентом психологического факультета СПбГУ, я заинтересовался когнитивной психологией. Кстати, Иммануил Кант не считал психологию наукой, так как не видел возможности применять в ней математические методы. Мои текущие исследования посвящены моделированию психических процессов, и я надеюсь, что такие направления в современной когнитивной психологии, как вычислительные и коннективисткие модели, смягчили бы его отношение!
Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments14

Интерпретируемая модель машинного обучения. Часть 2

Reading time4 min
Views14K
Всем привет. Считанные дни остаются до старта курса «Machine Learning». В преддверии начала занятий мы подготовили полезный перевод, который будет интересен как нашим студентам, так и всем читателям блога. И сегодня делимся с вами завершающей частью данного перевода.





Partial Dependence Plots


Partial Dependence Plots (графики частичной зависимости или же PDP, PD-графики) показывают незначительное влияние одного или двух признаков на прогнозируемый результат модели машинного обучения ( J. H. Friedman 2001 ). PDP может показать связь между целью и выбранными признаками с помощью 1D или 2D графиков.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments1

Умная нормализация данных

Reading time8 min
Views104K

Эта статья появилась по нескольким причинам.


Во-первых, в подавляющем большинстве книг, интернет-ресурсов и уроков по Data Science нюансы, изъяны разных типов нормализации данных и их причины либо не рассматриваются вообще, либо упоминаются лишь мельком и без раскрытия сути.


Во-вторых, имеет место «слепое» использование, например, стандартизации для наборов с большим количеством признаков — “чтобы для всех одинаково”. Особенно у новичков (сам был таким же). На первый взгляд ничего страшного. Но при детальном рассмотрении может выясниться, что какие-то признаки были неосознанно поставлены в привилегированное положение и стали влиять на результат значительно сильнее, чем должны.


И, в-третьих, мне всегда хотелось получить универсальный метод учитывающий проблемные места.


Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments3

Полиномиальная регрессия и метрики качества модели

Reading time4 min
Views16K

Давайте разберемся на примере. Скажем, я хочу спрогнозировать зарплату специалиста по данным на основе количества лет опыта. Итак, моя целевая переменная (Y) — это зарплата, а независимая переменная (X) — опыт. У меня есть случайные данные по X и Y, и мы будем использовать линейную регрессию для прогнозирования заработной платы. Давайте использовать pandas и scikit-learn для загрузки данных и создания линейной модели.

Читать далее
Total votes 3: ↑2 and ↓1+2
Comments9

Как айтишнику получить визу зарубеж на основании удаленной работы в 2022 году

Reading time11 min
Views37K

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

Читать дальше →
Total votes 31: ↑29 and ↓2+35
Comments29
Собираетесь перейти в IT или повысить квалификацию? Мы собрали все образовательные инициативы Microsoft в подобие адвент-календаря, чтобы было удобно ориентироваться.
Читать далее
Total votes 18: ↑18 and ↓0+18
Comments5

Мозг, сенсорные системы и их моделирование

Reading time38 min
Views7.6K

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

Читать далее
Total votes 7: ↑4 and ↓3+3
Comments4

Копнем поглубже: сравниваем популярные алгоритмы оптимизации с менее известными. Часть 2

Reading time6 min
Views5.6K


Еще раз здравствуй, Хабр! Меня зовут Мария Белялова, и я занимаюсь data science в мобильном фоторедакторе Prequel. Кстати, именно в нём и обработана фотография из шапки поста.

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

В этой статье мы посмотрим, как они ведут себя на игрушечной задаче — распознавании цифр из датасета MNIST. В следующей части мы проверим эти алгоритмы в бою на реальной задаче из продакшена. Код для этой и предыдущей части находится здесь.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments2

Объясняем p-значения для начинающих Data Scientist’ов

Reading time9 min
Views238K
Я помню, когда я проходил свою первую зарубежную стажировку в CERN в качестве практиканта, большинство людей все еще говорили об открытии бозона Хиггса после подтверждения того, что он соответствует порогу «пять сигм» (что означает наличие p-значения 0,0000003).

image

Тогда я ничего не знал о p-значении, проверке гипотез или даже статистической значимости.

Я решил загуглить слово — «p-значение», и то, что я нашел в Википедии, заставило меня еще больше запутаться…
При проверке статистических гипотез p-значение или значение вероятности для данной статистической модели — это вероятность того, что при истинности нулевой гипотезы статистическая сводка (например, абсолютное значение выборочной средней разницы между двумя сравниваемыми группами) будет больше или равна фактическим наблюдаемым результатам.
Wikipedia
Хорошая работа, Википедия.

Ладно. Я не понял, что на самом деле означает р-значение.

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

Поэтому я решил объяснить р-значение в этой статье, а также то, как его можно использовать при проверке гипотез, чтобы дать вам лучшее и интуитивное понимание р-значений.
Total votes 10: ↑4 and ↓6+4
Comments9

SQLite-песочница в браузере

Reading time4 min
Views27K

Чего мне всегда не хватало, так это аналога JSFiddle для SQLite. Онлайн-песочницы, в которой можно быстро проверить SQL-запрос и поделиться с другими.

Вот чего хотелось:

— Возможность загрузить готовую базу, а не писать SQL для создания таблиц.
— Подключать как локальные базы, так и удаленные (по url).
— Сохранять базу и запросы в облаке.
— Бесплатно и без регистрации.
— Свежайшая версия SQLite.
— Минимализм.

В итоге сделал сам
Total votes 70: ↑70 and ↓0+70
Comments9

Идеальная светодиодная лампа за 21 рубль

Reading time3 min
Views79K
Удивительно осознавать, что достаточно сложное электронное устройство, которым является светодиодная лампочка, может стоить 21 рубль.

Ещё сложнее поверить, что эта лампочка безукоризненна по всем параметрам.

Читать дальше →
Total votes 174: ↑172 and ↓2+223
Comments204

Быстрый градиентный бустинг с CatBoost

Reading time5 min
Views83K
Привет, хабровчане! Подготовили перевод статьи для будущих учеников базового курса Machine Learning.





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


Источник
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments1
1

Information

Rating
Does not participate
Registered
Activity