🖥 Delta Lake — это платформа хранения данных с открытым исходным кодом, которая позволяет строить архитектуру Lakehouse для Spark, Flink, Trino, Hive, Scala, Java, Rust, Python и не только!
С помощью Delta Lake вы можете ускорить выполнение запросов Polars по сравнению с CSV.
Посмотрите на время выполнения запроса #polars для файла #csv с 1 миллиардом строк в сравнении с упорядоченной таблицей deltalake (вычисления выполняются на Macbook M1). Delta Lake работает в 30 раз быстрее. ✅
▪Github
▪Project
@data_analysis_ml
Департамент информационных технологий города Москвы ищет аналитика Data Science.
Ты: любишь искать закономерности и строить прогнозные модели на основе больших данных, владеешь Python (DS-библиотек), у тебя есть знания и опыт в Machine Learning и владение различными инструментами визуализации данных?
У нас: задачи городского масштаба, конкурентная зарплата и премии, обучение и профессиональный рост!
Направляй свое резюме @sergey_job и присоединяйся к команде Департамента информационных технологий, чтобы сделать город еще комфортнее.
🔥📖 Список Awesome ресурсов, посвященных обработке естественного языка
▪Использование #NLP на разных языках
▪Библиотеки на различных языках (C++, Java, NodeJS, R, Scala, Python, ...)
▪Рекомендации и полезные учебные пособия
▪Датасеты
▪Лучшие практики
📌Github
@data_analysis_ml
Последний шанс поступить в онлайн-магистратуру МФТИ “Финансовые технологии и аналитика”
Ближайшие даты экзаменов: 4 и 19 сентября
- Диплом очной магистратуры МФТИ гособразца по направлению 38.03.05 «Бизнес-информатика»
- Онлайн-обучение из любой точки мира
- Углубленная специализация в области финтех-разработки или аналитики
- Гранты на запуск своего стартапа в области Data Science/AI/ML до 3 млн рублей
- Более 5 проектов в портфолио: реальные задачи от Сбера, ВТБ, Ozon FinTech, Альфа-Банка и других Fintech-компаний уже с первого семестра
- Возможность совмещать с работой и развивать корпоративный проект в качестве дипломного
- Рассрочка под 3% от Сбера и Минобразования: платеж во время учебы до 900 руб/мес
Бесплатный подготовительный курс и запись прошедших консультаций по экзаменам доступны после регистрации. Оставить заявку, чтобы записаться на День открытых дверей и начать готовиться к экзаменам.
💛 Зачем нужен AutoGPT
AutoGPT — это автономный агент, одна из форм ИИ, автономно решающая поставленную задачу.
✅AutoGPT использует модель GPT-4 для автоматизации многоэтапных проектов, требующих обратного взаимодействия.
Это позволяет агенту AutoGPT объединять выводы и суждения независимо.
✅ Агент имеет доступ к интернету и может чтение/запись файлов. Агенты на базе AutoGPT должны сделать GPT-4 полностью автономным сервисом.
Сейчас на Github представлены три наиболее популярных AutoGPT:
🟡BabyAGI от Йохеи Накадзимы;
🟡Auto-GPT Торана Брюса Ричардса, известного под псевдонимом Significant Gravitas;
🟡Jarvis от Microsoft.
Запускать эти популярные AutoGPT можно после локальной установки. А для этого требуется определенный опыт программирования, поскольку агент работает на Python и требует ключей OpenAI и приложения Pinecone.
💛 Однако уже появились приложения AutoGPT, запускаемые в браузере, например AgentGPT и Cognosys. BabyAGI также может работать в браузере через пространство Hugging Face.
Поскольку эксперимент находится в стадии разработки, можно ожидать, что AutoGPT скоро станет удобнее для пользователя, получит приятный и интуитивно понятный интерфейс.
⭐️ R&D лаборатория Adept AI разрабатывает модели ИИ для автоматизации выполнения задач и преобразования текстовых команд в действия.
Они используются в различных сферах, таких как туризм (например, Expedia) и возможно в будущем и в медицине.
Целью этих разработок является создание активных агентов ИИ, которые могут принимать самостоятельные решения.
Это выводит ChatGPT на новый уровень и превращает ИИ в помощника человека.
@data_analysis_ml
🚀 Ruff
Ruff - это #Python-линтер, написанный на Rust, который может быть использован для замены различных инструментов, таких как Flake8, isort, pydocstyle, yesqa, eradicate, pyupgrade и autoflake.
Ruff также работает в 10-100 раз быстрее, чем существующие линтеры.pip install ruff
▪Github
▪Документация
@data_analysis_ml
🔍 Выявление неявных связей при анализе графов или как увидеть незримое
Неявные связи в графах. Что это и как с ними работать, разберу на примерах.
Граф — множество узлов, объединенных множеством ребер.
С узлами все понятно, взяли города России, клиентов банка или компьютеры в сети, и получили множество объектов, которые и будут узлами для графа.
Что же с ребрами? На первый взгляд все просто: города соединены дорогами, клиенты совершают переводы денежных средств, а компьютеры постоянно обмениваются информацией. Все, что было перечислено, относится к явным типам связей.
Существует факт взаимосвязи между объектами: если дороги нет, то ребро между узлами отсутствует.
Что же относится к неявным связям? Неявные связи сложнее, они могут зависеть от явных связей или же быть самостоятельными.
Например, возьмем двух людей, которые работают на абсолютно разных работах, живут в разных концах города. На первый взгляд, они не имеют ничего общего, но при этом они оба по выходным приходят на матч любимой команды – это и есть неявная связь.
Теперь перейдем к практическому примеру.
Есть 2 файла:
◾️Данные о мошенниках, их номерах телефонов, а также периоды их активности;
◾️Данные о клиентах и номерах телефонов с периодами активности.
◾️Данные с номерами телефонов сложно найти в открытом доступе, придется сгенерировать их самостоятельно. Код для генерации необходимых данных расположен по ссылке.
Следующим этапом будет создание графа. Для этой задачи понадобятся следующие python-библиотеки:
▪️Pandas – для работы с файлами;
▪️NetworkX – для создания графа связей, его визуализации;
▪️Matplotlib и Numpy – нужны для настройки визуализации графа;
▪️Datetime – для операций над временными данными.
Перед созданием графа взглянем на данные, с которыми нам предстоит работать.
Описание данных:
📍index – id клиента / мошенника;
📍numbers – номер телефона;
📍Date_start – начало периода активности;
📍Date_end – окончание периода активности.
➡️ Продолжение
@data_analysis_ml
☝️Низкое качество #данных может привести к неверным выводам и плохой работе модели.
pandera предоставляет гибкий и удобный API для выполнения проверки данных на объектах типа dataframe
, чтобы сделать конвейеры обработки данных более читаемыми и надежными.
▪Github
▪Документация
@data_analysis_ml
🖥 AutoScraper: Умный, автоматический, быстрый и легкий веб-парсер на Python
Если вы хотите автоматически спарить веб-сайт за несколько строк кода на #Python, попробуйте autoscraper.
С помощью autoscraper можно извлекать элементы с определенными шаблонами, просто предоставив текст с этим шаблоном.$ pip install autoscraper
▪Github
@data_analysis_ml
🖥 Контроль за дрейфами предсказательных моделей и Popmon
Для решения задачи мониторинга данных в голландском банке ING была разработана библиотека Popmon для Python, название которой является сокращением от «population monitoring» — «наблюдение за популяцией».
В качестве датасета для демонстрации я буду использовать данные ежедневных замеров метеорологических сенсоров с 1961 по 1978 год: показания трех датчиков, минимальная и максимальная температура воздуха, минимальная температура травы, количество осадков и скорость ветра. Целью датасета является предсказание скорости ветра. Источник находится здесь.
Данная библиотека позволяет найти отклонения по входным и выходным данным в датасетах. Также имеется возможность провести сравнительный анализ датасета на основе статистики из другого.
Popmon умеет работать с датафреймами из библиотек Pandas и PySpark. В целях демонстрации я буду использовать Pandas.
▪Читать дальше
▪Github
@data_analysis_ml
Яндекс уже применяет нейросеть YandexGPT в браузере и в Алисе, голосовом помощнике. Какие профессии нужны, чтобы нейросеть становилась умнее, и как отбирают данные для обучения — расскажут сотрудники, работающие над YandexGPT.
→ Бесплатно, 21 августа в 19:00 Мск
Наши спикеры:
◾️Николай Зинов
Руководитель группы YaLM Alignment в Яндексе
◾️Ирина Барская
Руководитель службы аналитики и исследований в Яндексе
Вы узнаете:
— что такое нейросетевые языковые модели;
— как модель предобучают на гигантском наборе текстов, а затем учат делать то, что попросит человек;
— кто в этом участвует: разработчики, аналитики и другие специалисты;
— как аналитики собирают данные и почему эти данные так важны.
→ Зарегистрируйтесь на вебинар
Реклама АНО ДПО "Образовательные технологии Яндекса", ИНН:7704282033, erid:LjN8JvPzS
❗️Один из важнейших инструментов MLOps — это MLFlow.
▶️ 10 августа в 20:00 мск в рамках онлайн-курса MLOps от OTUS пройдёт открытый урок «MLflow версии 2. Рецепты и пайплайны в машинном обучении».
✅ На открытом уроке вы узнаете:
🔹 О развитии MLFlow и о том, какие усовершенствования вошли в новые релизы (2.x)
🔹 О роли пайплайнов в организации процессов машинного обучения
🔹 Что такое MLFlow recipes и как их использовать для повышения эффективности работы DS
🧑💻 Спикером выступит преподаватель OTUS Данила Слепов. Он проектирует AI-системы, разрабатывает архитектуру MLOps платформ.
👉 РЕГИСТРАЦИЯ
https://otus.pw/KJDp/Нативная интеграция. Информация о продукте www.otus.ru
🔥В OTUS открыт набор в группу курса “Язык R для анализа данных”. На серии открытых уроков преподаватели раскрывают возможности применения языка R и его особенности, а также делятся практическими советами.
Одна из сфер применения языка R — финансы. Поэтому мы решили посвятить этой теме следующее практическое занятие, участие в котором бесплатно.
📌14.08 в 20.00 (мск) приглашаем на вебинар “Анализ финансового портфеля с помощью языка R”, на котором разберем:
- как загружать и обрабатывать финансовые данные в R;
- способы сборки из данных портфелей;
- методы анализа построенного портфеля;
- характеристики портфеля.
Результат урока: вы научитесь работать с финансовыми данными в R. Построите финансовый портфель и узнаете какие есть подходы к анализу построенного портфеля.
👉Регистрация для участия https://otus.pw/Aa2R/
Не упустите возможность протестировать формат обучения и получить ценные знания. Приобретая курс, возможно оформить рассрочку на весь период обучения, а также получить скидку.
Нативная интеграция. Информация о продукте www.otus.ru
📎 Практическое применение Scrapy в Data Science
• Установка и настройкаpip install scrapy
• Основы веб-скрепинга
Чтобы проиллюстрировать фундаментальную концепцию Scrapy, давайте создадим простой веб-скрепер, извлекающий данные с сайта. В этом примере мы будем извлекать цитаты с сайта “http://quotes.toscrape.com”. Изображение 1.
✔️ Мы определяем класс с именем “QuotesSpider
”, который наследуется от класса Scrapy Spider
. Мы указываем URL-адреса, с которых парсер начинает собирать данные. Метод “parse” является точкой входа парсера, в нем мы извлекаем нужные данные (цитаты и авторов) с помощью CSS-селекторов. Для возврата извлеченных данных мы используем оператор “yield
”.
• Продвинутые техники скрапирования
Рассмотрим две важные техники парсинга: работу с пагинацией на страницах и извлечение данных из страниц всех собранных страниц. Изображение 2.
✔️ Мы создаем класс под названием “ProductSpider
” для сбора информации о товарах с сайта электронной коммерции. В методе “parse
” мы извлекаем название продукта и его цену со страниц. Кроме того, мы переходим по ссылкам на страницы с подробной информацией с помощью метода “response.follow
” и определяем отдельный метод “parse product
” для разбора страниц с подробной информацией об отдельных товарах. В методе “parse_product
” мы извлекаем дополнительные сведения, например, описание товара.
• Обработка входа в систему и аутентификации
Scrapy предлагает функции для обработки сценариев входа в систему и аутентификации, что позволяет собирать данные из закрытых областей сайта. Пример обработки входа в систему с помощью FormRequest
: Изображение 3.
✔️ Мы создаем класс с именем “LoginSpider
” для обработки процесса входа в систему. В методе “parse
” мы извлекаем данные формы входа в систему, включая CSRF-токен. Затем мы отправляем форму входа в систему с помощью FormRequest
, передавая данные формы и функцию обратного вызова “after_login
” для обработки ответа. В методе “after_login
” можно выполнять дальнейшие операции Парсинга на аутентифицированных страницах.
@data_analysis_ml
👀 12 лучших репозиториев GitHub по компьютерному зрению
Список из наиболее важных Awesome репозиториев GitHub, посвященных компьютерному зрению, которые охватывают широкий спектр исследовательских и образовательных тем. Огромный кладезь знаний из области CV.
1. Awesome Computer Vision
2. Computer Vision Tutorials by Roboflow
3. Transformer in Vision
4. Awesome Referring Image Segmentation
5. Awesome Vision Language Pretraining Papers
6. Awesome Vision and Language
7. Awesome Temporal Action Detection
8. Awesome Masked Autoencoders
9. Awesome Visual Transformer
10. Transformer-Based Visual Segmentation
11. CVPR 2023 Paper with Code
12. Awesome Deepfakes Detection
👍Лайк , если полезно
@data_analysis_ml
👆 Рост производительности машинного обучения с Rust
Создадим с нуля небольшой фреймворк машинного обучения на Rust.
Цели
1. Выяснить, заметен ли рост скорости при переходе с Python и PyTorch на Rust и LibTorch, серверную библиотеку PyTorch на C++, особенно в процессе обучения модели. ML-модели становятся крупнее, для их обучения требуется больше вычислительных возможностей, для обычного человека порой нереальных. Один из способов уменьшить рост аппаратных требований — понять, как сделать алгоритмы вычислительно эффективнее. Python в PyTorch — это лишь слой поверх LibTorch. Вопрос в том, стоит ли менять его на Rust. Планировалось использовать крейт Tch-rs для доступа к тензорам и функционалу Autograd DLL-библиотеки LibTorch как «калькулятору градиентов», а затем разработать с нуля на Rust остальное.
2. Сделать код достаточно простым для четкого понимания всех вычислений линейной алгебры и с возможностью легко его расширить при необходимости.
3. Во фреймворке ML-модели должны определяться, насколько это возможно, по аналогичной структуре стандартных Python/PyTorch.
4. Поизучать Rust и не скучать.
Но статья посвящена скорее преимуществам применения Rust в машинном обучении.
• Переходим сразу к конечному результату — вот как маленьким фреймворком создаются нейросетевые модели.
Листинг 1. Определение нейросетевой моделиstruct MyModel {
l1: Linear,
l2: Linear,
}
impl MyModel {
fn new (mem: &mut Memory) -> MyModel {
let l1 = Linear::new(mem, 784, 128);
let l2 = Linear::new(mem, 128, 10);
Self {
l1: l1,
l2: l2,
}
}
}
impl Compute for MyModel {
fn forward (&self, mem: &Memory, input: &Tensor) -> Tensor {
let mut o = self.l1.forward(mem, input);
o = o.relu();
o = self.l2.forward(mem, &o);
o
}
}
• Затем модель инстанцируется и обучается.
Листинг 2. Инстанцирование и обучение нейросетевой моделиfn main() {
let (x, y) = load_mnist();
let mut m = Memory::new();
let mymodel = MyModel::new(&mut m);
train(&mut m, &x, &y, &mymodel, 100, 128, cross_entropy, 0.3);
let out = mymodel.forward(&m, &x);
println!("Training Accuracy: {}", accuracy(&y, &out));
}
Для пользователей PyTorch это интуитивно понятная аналогия определения и обучения нейросети на Python. В примере выше показана модель нейросети, используемая затем для классификации. Модель применяется к набору данных Mnist тестов производительности для сравнения двух версий модели: Rust и Python.
• В первом блоке кода создается структура MyModel с двумя слоями типа Linear.
• Второй блок — ее реализация, где определяется ассоциированная функция new, которой инициализируются два слоя и возвращается новый экземпляр структуры.
• В третьем блоке реализуется типаж Compute для MyModel, им определяется метод forward. Затем в функции main загружается набор данных Mnist, инициализируется память, инстанцируется MyModel, а после она обучается в течение 100 эпох с размером пакета 128, потерями перекрестной энтропии и скоростью обучения 0,3.
Очень даже понятно: это то, что потребуется для создания и обучения новых моделей на Rust с помощью маленького фреймворка. Теперь копнем поглубже и разберемся, как это все возможно.
Если вы привыкли создавать ML-модели в PyTorch, то наверняка, глядя на код выше, зададитесь вопросом: «Зачем здесь ссылка на Memory?». Объясним ниже. 👇
▪Часть 1
▪Часть 2
@data_analysis_ml
🔝Лучшие GitHub репозитории для изучения MLOps.
#️⃣ MLOps-Basics
#️⃣ MLOps-Guide
#️⃣ Awesome MLOps
#️⃣ Awesome MLOps - Tools
#️⃣ DTU MLOps
#️⃣ MLOps Course
@data_analysis_ml
🦙 Lagent: A lightweight framework for building LLM-based agents
Lagent - это легковесный фреймворк с открытым исходным кодом, который позволяет легко и эффективно создавать агентов на основе больших языковых моделей (LLM). Он также предоставляет некоторые типовые инструменты для расширения возможностей LLM. pip install lagent
▪Github
@data_analysis_ml
🔥 Дайджест полезных материалов из мира : Data Science за неделю
Почитать:
— Неструктурированные данные: примеры, инструменты, методики и рекомендации
— Строим пайплайн в sсikit-learn — пошаговое руководство
— Цифровая трансформация цементного завода (ч.9): автоматическая корректировка качества муки
— MLOps от Gucci и оценка уровня Data Driven’ности в компании
— Kaggle для футболистов. Разбираем подходы призеров соревнований по детекции столкновений (1 и 2 место)
— Вам в хранилище или к озеру? Чем занимаются специалисты по работе с данными и как стать Data-инженером
— Преобразование табличных данных в Python
— Работа с матрицами в python
— SRP: Refactoring the Data Science Beyond Classes
— NumPy Tutorial #9: Array Join
— How to use Kaggle for Climate Change studies
— Apache Flink
— Troubleshooting SQL Server Errors - A Comprehensive Guide
— NumPy Tutorial #8: Array Iterating
— How to handle datasets with missing values In machine learning
— 5 FREE Machine Learning Online Courses
— NumPy Tutorial #7: Array Reshape
— The most important skills for data scientist
Посмотреть:
🌐 How to use GitHub Codespaces for Coding and Data Science (⏱ 11:53)
🌐 Практика парсинга Python (⏱ 05:27)
🌐 Уроки Парсинга на Python Сравниваем Scrappy и bs4 (⏱ 10:06)
🌐 Большой гайд по парсингу на Python. Часть 3 Работаем с selenium (⏱ 06:14)
🌐 Уроки Golang с нуля /#24 - Тесты (⏱ 09:50)
🌐 Полный Гайд по парсингу на Python: от азов до продвинутых техниик,. Часть 1 (⏱ 07:04)
🌐 Полный Гайд по парсингу на Python: Практика. Часть 2 (⏱ 05:59)
🌐 ODSC APAC Keynote Talk "Infuse Generative AI in your Apps Using Azure OpenAI Service" (⏱ 24:32)
🌐 Lightning Interview "Confident Data Science" (⏱ 48:13)
🌐 ODSC APAC Keynote Talk "Navigating the Post Pandemic Credit Risk Landscape with AI/ML Innovation" (⏱ 23:24)
🌐 New AI Beats DeepMind’s AlphaGo Variants 97% Of The Time! (⏱ 06:01)
🌐 AI Mind Reading Experiment! (⏱ 05:47)
Хорошего дня!
@data_analysis_ml
🧑Использование библиотеки Facerecognition и фреймворка Django для распознавания лиц в реальном времени
В этом посте рассмотрим, как использовать библиотеку Facerecognition для распознавания лиц на изображениях. Комбинируя ее с веб-фреймворком Django, мы покажем этапы создания веб-приложения пропускной системы.
Здесь вы найдете простые и понятные инструкции, шаг за шагом, которые помогут создать свою собственную пропускную систему, способную распознавать лица и управлять доступом в компании.
В процессе решения задачи было выделено 3 основных фреймворка для создания веб-приложений: Django, Flask и FastAPI. Рассмотрим особенности каждого из них.
Одним из плюсов фреймворка FastAPI является поддержка асинхронных процессов. Такие процессы позволяют увеличить скорость обработки данных в разы. Также плюсом данного фреймворка является поддержка из коробки Websockets. Благодаря указанному протоколу пользователь может получать данные в режиме реального времени.
📌Читать дальше
📌Github
@data_analysis_ml
⚡ Event-Driven Declarative Orchestrator
Популярные библиотеки оркестровки потоков операций по обработке данных, такие как Airflow, требуют написания Python-кода для использования их возможностей, что усложняет код и затрудняет работу с проектом.
Чтобы отделить код data science от логики оркестровки, используйте библиотеку Kestra.
▪Github
▪Демо
@data_analysis_ml
👩🎓Получаем степень в области Data Science с лучшими бесплатными курсами.
📂 Python:
http://cs50.harvard.edu/python/2022/
📂 Machine Learning:
http://developers.google.com/machine-learning/crash-course
📂 Deep Learning
http://introtodeeplearning.com
📂 Data Analysis
http://pll.harvard.edu/course/data-analysis-life-sciences-4-high-dimensional-data-analysis
📂 Линейная Алгебра
http://pll.harvard.edu/course/data-analysis-life-sciences-2-introduction-linear-models-and-matrix-algebra
📂 Excel и PowerBI
http://learn.microsoft.com/training/paths/modern-analytics/
📂 Визуализация данных:
http://pll.harvard.edu/course/data-science-visualization
📂 PowerBI
http://learn.microsoft.com/users/collinschedler-0717/collections/m14nt4rdwnwp04
📂 Tableau:
http://tableau.com/learn/training
📂 Statistics:
http://cognitiveclass.ai/courses/statistics-101…
📂 SQL:
http://online.stanford.edu/courses/soe-ydatabases0005-databases-relational-databases-and-sql
@data_analysis_ml
🔥 Применение эффективного асинхронного web-парсинга при работе с Bigdata
Парсинг или веб-скрапинг — это автоматизированный сбор и структурирование информации из открытых источников при помощи специальной программы, называемой парсером. Технически получить доступ к открытой информации можно с помощью API, но как правило доступ ограничен или требует вложения денежных средств.
Рассмотрим принцип работы парсинга. Данный процесс происходит в несколько этапов:
1. Отправка HTTP-запроса на сервер.
2. Поиск необходимых данных.
3. Трансформация полученных данных.
При отправке HTTP-запроса на сервер у нас есть два варианта:
• отправить запрос и ждать, пока сервер даст ответ (синхронный запрос);
• отправить запрос и продолжить работу. Когда данные будут получены, программа вызовет функцию обработчик события (асинхронный запрос).
У каждой из представленных реализаций есть свои плюсы и минусы. Так, например, асинхронный запрос значительно увеличивает производительность кода, поскольку позволяет обрабатывать несколько запросов одновременно, но его довольно сложно реализовать. В свою очередь, синхронный запрос прост в разработке и отладке, но имеет низкую эффективность за счёт последовательной отправки HTTP-запросов.
Основные проблемы парсинга
Парсинг, как и любая технология, сталкивается с рядом проблем. Перечислим наиболее актуальные:
• блокировка доступа к данным: использование CAPTCHA, блокирование IP-адресов и другое;
• скорость выполнения: большой объем данных требует много ресурсов и времени;
• сложность обработки ошибок: ошибки соединения, ошибки синтаксиса и другие;
• работа с динамическим контентом: необходимо разрабатывать специальные инструменты для анализа сайтов, использующих технологии ajax и javascript.
Реализация парсера на основе Beautiful Soup. Обзор возможностей.
Beautiful Soup — это библиотека Python для извлечения данных из файлов форматов HTML и XML. Beautiful Soup (или BS4) использует DOM-модель (Document Object Model) для трансформации и извлечения данных.
Основными возможностями BS4 являются:
• поиск элементов на странице по тегу, классу, id и другим атрибутам;
• извлечение текста и атрибутов элементов;
• навигация по дереву элементов страницы;
• манипуляции с HTML-кодом, такие как добавление, удаление или изменение элементов.
Для извлечения данных из HTML-кода необходимо использовать конструктор BeautifulSoup(), который принимает два аргумента: разметку (HTML-код) и анализатор (необходим для обработки HTML-кода). BS4 поддерживает различные библиотеки для синтаксического анализа, включая стандартные html.parser, а также более быстрые, такие как lxml и html5lib. В нашем случае будем использовать lxml. Также, для отправки запросов на сайт воспользуемся библиотекой requests.
Реализация кода на базе Beautiful Soup
Для начала установим и импортируем библиотеки.# установка
pip install beautifulsoup4
pip install requests
pip install lxml
# импорт
from bs4 import BeautifulSoup
import requests
📌 Продолжение
@data_analysis_ml
🟡 Дайджест полезных материалов из мира : Data Science за неделю
Почитать:
— Опыт работы с данными или с чем может столкнуться аналитик
— Кто, как и ради чего создаёт онлайн-образование в IT-сфере: истории пяти экспертов
— Тестирование грамматики Llama Cpp, основанной на ограничениях выборки
— 2 ВИЗУАЛИЗАЦИИ, КОТОРЫЕ ЛЕГЧЕ С ПИТОНОМ (по сравнению с TABLEAU)
— Как получить real-time данные смарт-контракта, используя The Graph (пишем свой сабграф)
— Apache Spark 3.4 для Databricks Runtime 13.0
— ML-искусство переживать проблемы: как избегать разочарований и находить аналоги товаров в периоды out-of-stock
— Enhancing Database Performance: In-Depth Query Optimization with ApacheAGE
— Step by step guide to becoming a Data Scientist in 2023
— Visual Language Processing: Bridging Vision and Language with Transformers
— Guia Avançado do Método `merge` no Pandas com Exemplos
— 8 Completely FREE Big Data Resources
— CV-based self-diagnosis telemedicine application
— A Powerful Tool for Data Engineers: Apache Doris 2.0.0 is Production-Ready!
— Embracing Modularity: Template for Structuring Machine Learning Projects
— ⛏ Get Mining into Data with These Top 5 Resources
— Python Data Type
Посмотреть:
🌐 Универсальный рецепт по написанию и аннотированию декораторов Python.
🌐 NVIDIA Omniverse: Virtual Worlds Come Alive
🌐 Lightning Interview "Hands-On Generative AI Applications"
Хорошего дня!
@data_analysis_ml
✔ Redis Explained
Глубокое техническое погружение во все тонкости Redis.
В статье рассматриваются различные топологии Redis, персистентность данных и форкинг процессов.
Отличная иллюстрированная статья для глубокого понимания Redis.
▪Читать
@data_analysis_ml
Руководство по созданию бота YouTube с помощью LangChain и Pinecone Vectorstore 🤖📹
Просмотр часового видеоролика на YouTube по любой научной теме, безусловно, непростая задача. ИИ может помочь с этим.
К концу этого поста вы сможете создать свой собственный чат-бот для YouTube с искусственным интеллектом.
Я проведу вас через весь процесс шаг за шагом. Вы сможете:
•Создать модели OpenAI
•Загрузить исходные документы
•Разделить текст на фрагменты
• Создать и обработать векторные эмбеддинги
•Задать любой вопрос боту и получить ответ
Инициирование модели OpenAI
Запустим модель LLM и добавим в код ключ API. Мы будем использовать модель gpt-3.5-turbo , но вы можете выбрать любую другую.from langchain.llms import OpenAI
llm = OpenAI(model_name = 'gpt-3.5-turbo',
openai_api_key = 'ваш ключ',
temperature = 0.7)
Загрузка исходго видео.
Скопируйте и вставьте ссылку на видео с YouTube. Загрузите текст видео с помощью функции loader.load()
и сохраните его в переменной, как показано ниже.from langchain.document_loaders import YoutubeLoader
loader = YoutubeLoader.from_youtube_url('<https://www.youtube.com/watch?v=ogEalPMUCSY&pp=ygUJTGFuZ2NoaWFu>')
doc = loader.load()
Разделение текста на фрагменты
Размделим весь PDF-файл с текстом из видео на фрагменты с помощью функциии RecursiveCharacterTextSplitter.
Установим размер фрагмента 1000 и значение перекрытия фрагментов 10. Это позволит разбить документ на фрагменты по 1000 слов.from langchain.text_splitter import RecursiveCharacterTextSplitter
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=10)
text_chunks = text_splitter.split_documents(doc)
Создание и хранение векторных эмбеддингов
Настроим функцию эмбедингов OpenAIEmbeddings
и хранилище векторов Pinecone
. Подключим pinecone. Загрузите все текстовые фрагменты в векторное хранилище с помощью функции Pinecone.from_texts.
from langchain.vectorstores import Pinecone
from langchain.embeddings import OpenAIEmbeddings
import pinecone
import tqdm
import os
embeddings = OpenAIEmbeddings(openai_api_key= 'ваш апи ключ')
pinecone.init(
api_key= 'PINECONE_API_KEY'
environment = 'PINECONE_API_ENVIRON'
)
index_name = 'chatchain'
docsearch = Pinecone.from_texts(texts = [t.page_content for t in text_chunks],embedding=embeddings, index_name=index_name)
Настроим запросыsimilarity_searh
и k=4 выдаст 4 наиболее релевантных фрагмента, относящихся к нашему запросу. Передайте эти документы в load_qa_chain. Он просуммирует фрагменты в соответствии с нашим запросом и выдаст наилучший возможный ответ.from langchain.chains.question_answering import load_qa_chain
query = 'what is vector embeddings'
docs = docsearch.similarity_search(query, k=4)
chain = load_qa_chain(llm, chain_type = 'stuff')
chain.run(input_documents=docs, question=query)
С помощью этого чат-бота вы можете загрузить любое видео,, задать любые вопросы по нему и получить искомое за считанные секунды с помощью ии-бота.
📌Бесплатный курс от Activeloop на LangChain & Vector Databases in Production.
📌pinecone
📌Статья
@data_analysis_ml
🦙 MM-Vet: Evaluating Large Multimodal Models for Integrated Capabilities
MM-Vet - новый оценочный бенчмарк, который проверяет большие мультимодальные модели (БММ) на сложных мультимодальных задачах.
▪Github
▪Модель
▪Статья
▪Датасет
@data_analysis_ml
🔥 Awesome Data Science: List of Resources for Data Scientists
Продолжаем публиковать крутые Awesome репозитории. Тщательно подобранный список Awesome ресурсов по науке о данных.
▪Статьи
▪Книги
▪Шпаргалки
▪Датасеты
▪Инструменты
▪Игры
▪Курсы
и многое другое
🖥 Github
👍Лайк , если полезно
@data_analysis_ml
⚡️Маст-хэв список для программистов, каналы с последними книжными новинками, библиотеками, разбором кода и актуальной информацией, связанной с вашим языком программирования.
Лучший способ получать свежие обновлении и следить за трендами в разработке.
Машинное обучение: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
C#: t.me/csharp_ci
C/C++/ t.me/cpluspluc
Data Science: t.me/datascienceiot
Devops: t.me/devOPSitsec
Go: t.me/Golang_google
Базы данных: t.me/sqlhub
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Linux: t.me/+A8jY79rcyKJlYWY6
Big Data: t.me/bigdatai
Хакинг: t.me/linuxkalii
Тестирование: /channel/+F9jPLmMFqq1kNTMy
Java: t.me/javatg
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка машинное обучение: /channel/addlist/_FjtIq8qMhU0NTYy
📕 Бесплатные Книги для программистов: /channel/addlist/YZ0EI8Ya4OJjYzEy
🎞 YouTube канал: uproger" rel="nofollow">https://www.youtube.com/@uproger
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🔮Как временные ряды помогают бороться с влиянием между группами в A/B-тестировании
Зачастую для того, чтобы правильно провести A/B-тест, может быть недостаточно случайно и стратифицированно разбить пользователей на группы. Могут помешать “сетевые эффекты“, которые сделают группы зависимыми. И это касается не только социальных сетей.
🪄Как понять, когда могут возникнуть такие проблемы? И как измерить, насколько сильно искажается эффект? Есть немало методов разного уровня сложности и надежности.
Но одним из самых простых и в то же время строгих методов является Interrupted Time Series Design.
Читайте статью о методе и делитесь своим мнением в комментах.