Анализ данных (Data analysis)
46.3K subscribers
2.33K photos
269 videos
1 file
2.06K links
Data science, наука о данных.

@haarrp - админ

@itchannels_telegram - 🔥 главное в ит

@ai_machinelearning_big_data - ML

@machinelearning_interview - вопросы с собесдований по Ml

РКН: clck.ru/3FmyAp
Download Telegram
🚀 𝐄𝐱𝐜𝐢𝐭𝐢𝐧𝐠 𝐀𝐧𝐧𝐨𝐮𝐧𝐜𝐞𝐦𝐞𝐧𝐭: 𝐈𝐧𝐭𝐫𝐨𝐝𝐮𝐜𝐢𝐧𝐠 𝐃𝐞𝐜𝐢𝐃𝐢𝐟𝐟𝐮𝐬𝐢𝐨𝐧 𝟏.𝟎 - 𝐑𝐞𝐯𝐨𝐥𝐮𝐭𝐢𝐨𝐧𝐢𝐳𝐢𝐧𝐠 𝐓𝐞𝐱𝐭-𝐭𝐨-𝐈𝐦𝐚𝐠𝐞 𝐆𝐞𝐧𝐞𝐫𝐚𝐭𝐢𝐨𝐧!

DeciDiffusion 1.0, новая модель диффузии текста в изображение.

Имея впечатляющие 820 млн. параметров, она достигает такого же исключительного качества, как и модель Stable Diffusion v1.5 с 860 млн. параметров, но за 40% меньшее количество итераций.

🔹 Высочайшая эффективность вычислений: на 40% меньше итераций и в 3 раза быстрее, чем в Stable Diffusion v1.5, что привело к снижению затрат почти на 66%.

pip install diffusers --upgrade
pip install invisible_watermark transformers accelerate safetensors


Colab
Model
Demo

@data_analysis_ml
👍101🔥1🥰1
🐼Как устроен Pandas: взгляд изнутри

Структура данных Pandas
Как правило, датафрейм поддерживается каким-нибудь массивом, например NumPy или Pandas ExtensionArray. Эти массивы хранят данные датафрейма. pandas добавляет промежуточный слой Block и BlockManager. Он управляет этими массивами, обеспечивая максимальную эффективность операций. Это одна из причин, почему в Pandas методы, работающие с несколькими столбцами, могут быть очень быстрыми. Далее более подробно рассмотрим упомянутые слои.

Массивы
Фактические данные датафрейма могут храниться в наборе массивов NumPy или Pandas ExtensionArray. Этот слой обычно направляет к базовой реализации, например использует NumPy API при условии хранения данных в массивах NumPy. Pandas хранит в них данные и вызывает свои методы без расширения интерфейса.

Массивы NumPy обычно являются двумерными и дают ряд преимуществ в производительности, о которых речь пойдет далее. На данный момент Pandas ExtensionArray в основном представляют собой одномерные структуры данных, благодаря чему операции становятся предсказуемыми.
Однако не обошлось и без недостатков: в ряде случаев страдает производительность.

ExtensionArray допускает применение датафреймов, которые поддерживаются массивами PyArrow и другими типами данных Pandas.

Block

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

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

BlockManager
Как следует из названия, BlockManager управляет всеми Block, связанными с одним датафреймом. Он содержит сами Block и информацию об осях датафрейма, например имена столбцов и метки Index.
И самое главное в том, что он направляет большинство операций к фактическим Block:

df.replace(...)

BlockManager гарантирует, что replace выполняется для каждого Block.

Понятие консолидированного датафрейма
Мы исходим из того, что датафреймы поддерживаются типами данных NumPy, например их данные могут храниться в двумерных массивах.

При создании датафрейма Pandas гарантирует, что на каждый тип данных приходится только один Block:

df = pd.DataFrame(
{
"a": [1, 2, 3],
"b": [1.5, 2.5, 3.5],
"c": [10, 11, 12],
"d": [10.5, 11.5, 12.5],
}
)

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

Добавим новый столбец к этому датафрейму:
df["new"] = 100

У него такой же тип данных, как и у существующих столбцов "a" и "c". Рассмотрим 2 возможных варианта дальнейших действий:

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

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

◾️ Второй вариант

📌 Читать

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥52
💻 Как создать простой агент с Guidance и локальной моделью LLM

Guidance  — это инструмент от Microsoft, представляющий собой “язык, организующий управление LLM”. Он позволяет управлять выводом LLM, что облегчает выполнение инструкций.

Что касается GPT 3.5–4, то он успешно работает с большинством инструкций.
Но небольшие локальные модели, такие как LLaMa и ее разновидности (Alpca, WizardML), не всегда выдают правильный ответ. А это большая проблема. Некоторые фреймворки, такие как ReAct, требуют определенного формата инструкций для ответа. Кроме того, работу усложняет тот факт, что LLM иногда предоставляет данные в формате JSON с синтаксической ошибкой.

Пример:
valid_dish = ["Pizza", "Noodles", "Pho"]

# определение текстовой подсказки
order_maker = guidance("""The following is a order in JSON format.
```json
{
"name": "{{name}}",
"age": {{gen 'age' pattern='[0-9]+' stop=','}},
"delivery": "{{#select 'delivery'}}Yes{{or}}No{{/select}}",
"order": "{{select 'order' options=valid_dish}}",
"amount": {{gen 'amount' pattern='[0-9]+' stop=','}}
}```""")

# генерация имени заказчика доставки
order_maker(
name="Alex",
valid_dish=valid_dish
)
**Вывод**
The following is a order in JSON format.
```json
{
"name": "Alex",
"age": 25,
"delivery": "Yes",
"order": "Noodles",
"amount": 10
}```

Как видно, мы легко составили текстовую подсказку, предварительно определили несколько пунктов и добились от LLM точного их выполнения. Скорректировали регулярное выражение для поля age с помощью {{gen ‘age’ pattern=’[0–9]+’ stop=’,’}}.
Это значит, что оно принимает только цифры и заканчивается на ,. Кроме того, используя valid_dish, ограничили тип заказанной еды с помощью “{{select ‘order’ options=valid_dish}}”. Более подробная информация предоставлена по официальной ссылке на GitHub.

Агент ReAct с Guidance и Wizard-Mega-13B-GPTQ
Примечание. С кодом данного раздела можно ознакомиться по ссылке.

Перед запуском необходимо разместить LLM на локальном ПК. В данном случае для этой цели применяется wizard-mega-13B-GPTQ. Вы можете выбрать и другие модели. Сначала загружаем модель и позволяем Guidance ее использовать:

model_para = 'YOUR_MODEL_DIR'
checkpoint_para = 'YOUR_MODEL_FILE'
model = load_quant(model_para, checkpoint_para, 4, 128)
model.to(DEV)
tokenizer = AutoTokenizer.from_pretrained(model_para)

llama = guidance.llms.Transformers(model=model, tokenizer=tokenizer, device=0)
guidance.llm = llama

Испытаем на простой текстовой подсказке. С помощью формата ReAct проверяем, насколько корректно работает модель.

📌 Читать

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92🔥1
Задача из Собеседования в Яндекс с зарплатой 85000 рублей #python #собеседование #задача #yandex

На вход функции поступает 2 строки s и s2. Функция возвращает True, если s1 может быть получена из символов строки s2. Каждый символ s2 используется только 1 раз.

📌Код
👍72👎1
Что лучше — нанять тимлида из сторонней компании или вырастить самостоятельно? Как правильно выбрать подходящего на эту роль сотрудника?

На эти и другие важные вопросы отвечает руководитель аналитики в Авито Глеб Белогорцев. В своем гайде он подробно рассказывает, как понять, какой именно тимлид нужен компании, как распознать потенциального руководителя в числе сотрудников и кого точно не нужно брать на роль тимлида.

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

Реклама.ООО "КЕХ ЕКОММЕРЦ" ИНН 7710668349 erid: Kra23e76V
👍62
🔥Актуальные плейлисты и руководства для дата сайентистов.

1. Полный плейлист по аналитике данных и науки о данных на Python
Python на английском языке
Плейлист на русском

2. Полный плейлист по статистике для аналитики данных и науки о данных
Лекции и семинары по курсу "Математическая статистика" на русском
. Статистика на английском языке
Плейлист статистики на английском языке

3. Полный SQL для аналитики и науки о данных
Полный плейлист по SQl на английском языке
Базовый курс по SQL для аналитиков и менеджеров на русском

4. Учебники по Git и Github
Учебники по Git и Github на английском языке
Git курс

5. EDA и Feature Engineering и Feature Selection
Плейлист по Feature Engineering
Выбор функций

6. Плейлист по машинному обучению
Плейлист курс ML на английском языке
Новый плейлист куос ML 2023 на английском языке.
Машинное обучение на английском языке:
Машинное обучение на русском

7. Полный плейлист по глубокому обучению и NLP
NLP плейлист
Полный плейлист NLP Live на английском языке

8. Важные фреймворки для производственных развертываний
Подробный плейлист по Flask на английском языке
BentoML Tutorial
Gradio Crash Course

9. Полный комплект инструментов AWS Sagemaker и Sagemaker Studio
Плейлист Sagemaker

10. Полное руководство по MLOPS
Полный комплект Dockers In One Shot Английский язык
Учебные пособия MLFLOW с развертыванием
Мониторинг модели Evidently AI

11. Конечные проекты ML, DL и NLP - весь жизненный цикл до развертывания с использованием инструментов с открытым исходным кодом
Плейлист End To End ML Projects на английском языке

12. Генеративный ИИ и открытый ИИ Плейлист
OPENAI Playlist English(In Progress)
Langchain Playlist(In Progress)

13. Полное руководство по Pyspark
Плейлист Pyspark

14. Полный список вопросов для собеседования по науке о данных, машинному обучению и глубокому обучению

https://t.iss.one/data_analysis_ml?boost - поддержите нас голосом, а мы подготовим вам больше полезных подборок
👍389🔥6
🔥 Дайджест полезных материалов из мира Машинного обучения за неделю

Почитать:
Обслуживание моделей PyTorch с помощью TorchServe
Нейростроительное MVP или Почему иногда стоит возрождать проекты
Microsoft предлагает БЕСПЛАТНЫЕ онлайн курсы с сертификацией
7 шагов по контейнеризации Python-приложений
MySQL в Google Colab: Бесшовная интеграция
Как выбрать лучшую ИИ-систему?
Усы, лапы и QR-код – вот мои документы. Заменит ли цифровой паспорт бумажный и чем это обернется для компаний?
Как мы сделали свою ChatGPT Plus с голосовым вводом, чтением PDF, Youtube, и т.д
Использование технологий машинного обучения в аудите: примеры эффективного применения
20 проектов по аналитике данных для новичков в 2023 году
Кентавры и киборги: как консультанты BCG стали решать задачи на 25% быстрее с помощью ИИ
От логики и риторики до теории множеств и матанализа. Полезные материалы по Data Science и машинному обучению
Как мы в Just AI создавали и тестировали собственную LLM JustGPT — третью большую языковую модель в России
Conquer MS-101: Dumpsarena Offers Reliable Study Materials
How to Easily Try Out boto3 Interactively in AWS CloudShell
Kafka Ease: Simplifying Kafka Topic and ACL Management
A Python script to see my most watched YouTube videos
No One Expects the self._spanish_inquisition (Because it’s protected)
My Experience learning Python and SQL
Lovely Silk
My first contribution to other open source project
Data Science Essentials: Your Path to Effective Dataframe Joins with Pandas
Customizing RAG Pipelines to Summarize Latest Hacker News Posts with Haystack 2.0 Preview

Посмотреть:
🌐 Языки программирования, чей исходный код похож на что-то другое #программирование ( 00:42)
🌐 Python Matplotlib. Визуализация данных на PRO уровне. ( 24:43)
🌐 Устраиваемся на работу. Решаем тестовое задание на позицию Python Junior. ( 20:28)
🌐 Уроки Golang с нуля /#29 - Дженерики/обобщения ( 10:52)
🌐 Уроки Golang с нуля /#30 - Горутины ( 08:09)
🌐 Lightning Interview "Risk and Reward: Unraveling Machine Learning for High-Risk Applications" ( 52:37)
🌐 Framework and Lessons Learned from Building a Generative AI Application - Jason Tan ( 24:08)
🌐 Generative AI for Biomedical Insights: Solutions through OpenBIOML and BIO GP - Bidyut Sarkar ( 30:40)
🌐 Как защитить телеграм бота от атак и перегрузок.

Хорошего дня!

@data_analysis_ml
11🔥3👍1🥰1
👨‍🎓 Бесплатный курс от University of London: Foundations of Data Science: K-Means Clustering in Python

Вы рассмотрите фундаментальные понятия науки о данных на примере задачи кластеризации данных и на практике освоите базовые навыки программирования.

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

📌Курс

🔥Наберем 50 бустов и мы выложим список из 25 бесплатных курсов по NLP и 25 курсов по математике для Дата сайентиста.

@data_analysis_ml
🔥96👍62
👨‍🎓 Бесплатный курс : Python and Statistics for Financial Analysis

Python и статистика для финансового анализа.

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

Импортировать, предварительно обрабатывать, сохранять и визуализировать финансовые данные в pandas Dataframe
Манипулировать финансовыми данными
Применять важные статистические функции (частота, распределение, популяция и выборка, доверительный интервал, линейная регрессия и др. ) в финансовых задачах.
Строить торговые модели с использованием
Оценивать эффективность торговых стратегий с помощью различных инвестиционных индикаторов

В платформе курса настроена среда Jupyter Notebook, позволяющая практиковаться в коде на python без установки каких-либо приложений.

📌 Курс

@data_analysis_ml
👍19🔥52
🎓🏆 Вышли новые лекции бесплатного курса: Stanford CS224N: Natural Language Processing with Deep Learning

Курс Stanford NLP является, пожалуй, одним из лучших курсов по Deep NLP в Интернете. Сейчас в открытом доступе находятся новые лекции 2023 года.

Курс охватывает фундаментальные методы и темы, связанные с глубоким обучением, применяемым в NLP.

От архитектур (RNNs, LSTMs, трансформров), предварительного обучения, генерации NLP кода, до новых тем, таких как промпи-инжиниринг, RLHF, мультимодальные агенты и многое другое.

Лекции
Курс

@data_analysis_ml
19🔥9👍3
This media is not supported in your browser
VIEW IN TELEGRAM
💬 Flowise - Build LLM Apps Easily

Если вы хотите использовать drag-and-drop UI для создания своего LLM потока, попробуйте Flowise.

UI с открытым исходным кодом для построения LLM модели с использованием LangchainJS, написанный на Node Typescript/Javascript

git clone https://github.com/FlowiseAI/Flowise.git

Github
Примеры

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥53
👋 Генерация синтетических изображений с использованием диффузионно-трансформерной модели (DiT)

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

Поэтому нам понадобился синтетический датасет, состоящий из похожих на имеющиеся изображений. Мы решили использовать модель DiT (Diffusion Transformer) от Facebook Research. DiT обучалась на ImageNet и имеет 4 модели разных размеров.

Таблица размерностей DiT моделей в изображении.

📌Читать статью

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥2
📈📊 Визуализация распределений вероятностей в Python.


📌 Другие виды распределения

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥86💔1