Интересное что-то
522 subscribers
2.72K photos
253 videos
140 files
4.53K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Forwarded from Анализ, коты, цветы и Катя (Катерина)
🐰 Самый простой способ понять работу RabbitMQ 🐰

В сообществе аналитиков довольно известен этот визуализатор работы Kafka. Я узнала о нём из блога Системный сдвиг, а затем оценила классную рекомендацию по работе с ним от Yet Another Analyst.

Но поскольку я провожу уроки именно по RabbitMQ, стало интересно: А есть ли похожая визуализация RabbitMQ для тех, хочет быстро просто “увидеть”, как оно работает?

Оказывается, есть! И даже несколько:
🔗 TryRabbitMQ
🔗 RabbitMQ Visualizer

Я советую первый. Как с ним работать? Часть 1.


🚦 0. Добавьте producer и queue. Попробуйте соединить их напрямую. Добавьте exchange, соедините всё по схеме: producer → exchange → queue. Что то должно начинать получаться, потому что еxchange — обязательный этап маршрута в RabbitMQ. У связи exchange и queue появился binding — ключевой элемент понимания маршрутизации. Добавьте consumer. Попробуйте соединить consumer с exchange. Что-то снова будет не хватать. Но правильный порядок близок: producer → exchange → queue → consumer.

💥 1. Выберите для exchange тип fanout. Создайте еще 2 очереди и 2 потребителя и привяжите их к exchange. Отправьте сообщение без routing key. Куда оно ушло? Установите разные binding key и отправьте сообщения со случайными с routing key. Что происходит? Удалите один binding. Получает ли эта очередь сообщение? Здесь можно еще поэкспериментировать с ключами, Но основную особенность обменника типа fanout вы уже должны нащупать.

Это первые важные шаги для знакомства с базовой схемой кролика и типом обменника Fanout. Сохраняйте, пробуйте.

В следующем посте расскажу про упражнения для схем с Direct и Topic exchange — не пропустите!

#RabbitMQ #ОчередиСообщений #MessageBroker #SystemAnalyst
Forwarded from Анализ, коты, цветы и Катя (Катерина)
🐰 Самый простой способ понять работу RabbitMQ — Часть 2 🐰
🧵 Первая часть

В первой части я поделилась двумя визуализаторами для RabbitMQ:
🔗 TryRabbitMQ
🔗 RabbitMQ Visualizer
И простыми упражнениями, чтобы разобраться с типом обменника fanout.

Теперь давайте посмотрим на обменники типа Direct и Topic.

1) Очистим поле и снова создадим схему: producer → exchange → 3 очереди → 3 consumer'а. Тип обменника — direct. Для binding key укажем key1, key2, key3. Теперь отправим сообщение с routing key = key. Куда попало сообщение? Затем поочерёдно отправим сообщения с ключами key1, key2, key3. Попробуйте также: key1_1, key1.*, key1.#. Если всё сделали правильно — должны появиться мысли про "полное соответствие".

2) Меняем тип обменника на topic. Для binding key задаём: *.low.* , #.spb , *.high.#
Сразу подсказка: . — разделяет ключи, * — заменяет ровно одно слово, # — заменяет 0 и более слов. Пробуем отправлять: key1.low.smr, key1.middle.spb, key2.high.krd, low.smr, key, high и другие. Для полноты картины можно поэкспериментировать с регистром и пробелами.

3) RabbitMQ для практиков: создаём схему с несколькими exchange'ами, соединяем их как на картинке. Пробуем задавать разные типы для обменников, подбирать ключи и очереди, отправлять сообщения с разными routing key. И просто наблюдать, как идёт сообщение. На этом этапе особенно важен подход "А что если?.." и ваша фантазия.

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

📌 В последней части (на следующей неделе) расскажу, что нельзя увидеть в визуализаторе, куда копать тем, кто хочет больше.

#RabbitMQ #ОчередиСообщений #MessageBroker #SystemAnalyst
Forwarded from Refat Talks: Tech & AI
Media is too big
VIEW IN TELEGRAM
🤌 Anthropic выпустила курс AI Fluency - он супер и по контенту, и по оформлению

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

Главный инсайт курса - 79% пользователей застряли на уровне "automation" (тупо просят AI что-то сделать), а 21% успешных работают на уровне "augmentation" - относятся к AI как к умному коллеге.

Вот например (вроде база, но как хорошо систематизировано): 6-слойный промптинг:
- Контекст: кто ты, зачем спрашиваешь, как будешь использовать ответ
- Примеры: покажи что именно хочешь получить
- Ограничения: формат, длина, стиль ответа
- Шаги: разбей сложную задачу на этапы
- Thinking space: "подумай сначала, потом отвечай"
- Роль: "ты senior разработчик" или "ты UX-эксперт"

И то, что я использую часто - мета-обучение. Курс учит просить AI улучшать твои же промпты. "Claude, как бы ты переписал мой промпт чтобы получить лучший результат?" - и промпт эволюционирует от новичкового до экспертного за 2-3 итерации.

Практический пример с данными:
Было: "Claude, проанализируй эти данные"
Стало: "Ты data scientist с 10 летним опытом. Проанализируй данные как будто готовишь инсайты для CEO. Выдели 3 самых неожиданных паттерна с уровнем уверенности для каждого."

Разница в качестве - небо и земля.

Курс бесплатный, дают фреймворк который останется актуальным даже когда выйдет GPT-10. И да, учат составлять Personal AI Policy - набор правил как и когда использовать AI в работе.

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

Сделал саммари на русском, там же есть mindmap: https://pebble-athlete-3cb.notion.site/Anthropic-Academy-AI-Fluency-204eb5d3f3cb80c28d7ddd0591d55cfe

Но сам курс это не заменит, лучше пройдите (или пройдитесь по тому, что кажется новой информацией) самостоятельно, если интересна эта тема.
Forwarded from DataДжунгли🌳
#SQLWednesday

Сегодня обсудим классический вопрос с собеседования для #DataEngineer. 🪄
Вопрос звучит так:
"Перед тобой #csv файл 20ГБ, как откроешь?"
Конечно никакой pd.read_csv() тут не поможет это просто уложит ваше ядро в #JupyterNotebook.
-- Или поможет ? Дочитай до конца и узнаешь.
Такой вопрос могут задать на самом деле и Junior и Middle да и выше. Потому что не всегда очевидно как это сделать красиво и эффективно.

Самый эффективный способ работать с такого размера файлом это естесвенно загрузить его в базу.
#Postgres уже имеет нативный инструмент для работы с csv файлами и вот как это выглядит.


COPY raw.sales
FROM '/var/lib/postgresql/big_sales.csv' -- путь до файла на сервере или локальный путь(если постгре локальная).
WITH (
FORMAT csv, -- CSV-парсер
HEADER true, -- пропускаем строку заголовков
DELIMITER ',', -- если вдруг не запятая
QUOTE '"', -- кавычки по умолчанию
ENCODING 'UTF8' -- кодировка можно изменить если будет "криво"
);

Легко и просто. Но мы не всегда имеем доступ к серверной файловой системе, так вот как это сделать прям из JupyterNotebook не ломая ядро?

1. Для нашего эксперимента я сгенерировал файл гигант вес которого 13.4GB
2. У меня уже есть развернутый постгрес на удаленном сервере(вы можете локально установить)
3. Будем пользоваться любимым пандас с chunksize


import pandas as pd
import sqlalchemy as sa

DB = dict(
user="",
password="",
host="",
port=5432,
dbname="",
)
engine = sa.create_engine(
f"postgresql+psycopg2://{DB['user']}:{DB['password']}@{DB['host']}:{DB['port']}/{DB['dbname']}",
)

# параметры CSV
csv_path = "big_file.csv"
chunk_rows = 100_000 # будем грузить по 100K строк
table_name = "example_csv"
schema = "raw"

# создаём таблицу один раз с нужными колонками
with engine.begin() as conn:
conn.exec_driver_sql(f"""
CREATE SCHEMA IF NOT EXISTS {schema};
DROP TABLE IF EXISTS {schema}.{table_name};
CREATE TABLE {schema}.{table_name} (
col_0 text, col_1 text, col_2 text, col_3 text, col_4 text,
col_5 text, col_6 text, col_7 text, col_8 text, col_9 text
);
""")

# грузим чанками
reader = pd.read_csv(
csv_path,
chunksize=chunk_rows,
iterator=True,
header=0,
)

for i, chunk in enumerate(reader, 1):
chunk.to_sql(
name=table_name,
con=engine,
schema=schema,
if_exists="append",
index=False,
method="multi",
)
print(f"Чанк {i}: {len(chunk)} строк залито")

print("Готово!")


Пересылайте коллегам, чтобы не терялись на собеседованиях и знали что ответить 💡

Чтобы поиграть дома в DE тетрадку с кодом прилагаю 🧠

#DataJungle #Postgres #ETL
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Инжиниринг Данных (Dmitry)
Все знакомы с понятием Ad-hoc запросов. Обычно мы воспринимаем их негативно, так как они отвлекают, время-то и так мало.

На самом деле, ad-hoc запросы могут бысть источником quick wins, и способом быстро показать impact и завоевать доверие (earn trust).

Ad-hoc — это не бардак. Это VIP-запросы, которые показывают: вам доверяют. Ваша задача - не утонуть, а превратить это в рычаг для влияния.

Вот пример фреймфорка:

1. Принять быстро
Ответ в течение пары минут (или автоответ, если в фокусе) показывает: у нас есть процесс, а не паника.

2. Быстрое фильтрование (2 минуты):

- Это повлияет на $Xk+ или стратегию?
- Нужно на этой неделе для принятия решений?
- Делается за полдня одним аналитиком?
- Если да → делаем. Если нет - в бэклог с пометкой по приоритету.

3. Минимум, но по делу
- Отправляем краткий инсайт, график или SQL - что реально помогает. Повторилось 3 раза? → автоматизация.

📌 Чтобы не сгореть:

- Назначаем on-call-аналитика/инженера (10% времени спринта)
- Не забываем про ротацию и отслеживание нагрузки
- Повторяемые запросы → обучающие материалы или дашборды

Эскалации - через менеджера, не через «договорился в курилке».
Forwarded from дAI потестить!
Media is too big
VIEW IN TELEGRAM
Клонировать голос, бесплатно, без регистрации и смс

Появилась мысль озвучить мем определенным голосом, а подписка на 11labs закончилась. "Я не буду покупать тебе 11labs, потому что у тебя еще четыре 11labs дома лежат неоткрытые"
Тем временем 11labs у меня дома:

hailuo.ai
(Пока) бесплатный сервис, но ожидаю нефритового стержня в спину.
Можно настраивать эмоции.
Из минусов - не похоже😀

Fish-speech
Portable by NerualDreming | Portable | ComfyUI
Хорошо копирует манеру речи. Для коммерции использовать рано, но для TTS результат приятный. Влюблен. Снимаю шляпу.
Не забываем крутить на этой модели fish-speech-1.5.
Себе ставил по этой инструкции.
Есть в Pinokio. Есть в боте @AINetSD_bot

XTTS
Есть в Pinokio. Есть в боте @AINetSD_bot
Старый добрый XTTS. Не похож, да от него и не требуется. В ударения попадает, уже хорошо.
Кто любит эксперименты, может попробовать две русские модельки: первая от Tensor banana и вторая от малыша NeuroDonu.

F5-TTS
Есть в Pinokio.
Как подрубить русскую модель смотрим здесь.
Не советую😀. Не поможет.

P.S. На видео пират, потому что Heygen не любит знаменитостей.
P.S.S. Понятно чей голос клонировал?
Исходник приложил в комменты 👇👇👇.
P.S.S.S Мем я так и не сделал😐
#TTS
Около месяца назад Секвоя провела очень трушный AI ивент, мне его посоветовали посмотреть фаундеры которые шарят лучше меня, ну а я делюсь с вами:

https://www.youtube.com/playlist?list=PLOhHNjZItNnMEqGLRWkKjaMcdSJptkR08
Forwarded from Нескучный Data Science (Евгений Смирнов)
Media is too big
VIEW IN TELEGRAM
🔥 10 правил: как проектировать LLM-приложение

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

Ключевые советы:
1️⃣ Выберите архитектуру решения: ml workflow или агенты.
2️⃣ Всегда используйте RAG.
3️⃣ Используйте structed output.
4️⃣ Применяйте все фичи поисковых движков в retrive-части RAGа - не ограничивайтесь эмбеддингами.
5️⃣ Сделайте лучшие метрики качества.
6️⃣Обрабатывайте экстремально плохие кейсы при помощи GurdRails.
7️⃣ Вставляйте агентов, где важно итеративно подумать.
8️⃣ Реализуйте механизм доспрашивания что справляться с неполными или неточными вопрос.
9️⃣ Дистиллируйте LLM чтобы оптимально использовать ресурсы.
1️⃣0️⃣ Оркестрируйте различные по сложности модели для экономии ресурсов.

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

Ставьте 🔥 , если вам зашло выступление так же, как и мне и если вы хотите видеть больше топовых докладов в канале.
Please open Telegram to view this post
VIEW IN TELEGRAM
2. Ну RAG точно не всегда нужен для продуктов с LLM.
3. Тоже не всегда нужен. А может и вреден в некоторых случаях - вроде как SO влияет на когнетивные способности модели.
4. Не все фичи одинаково полезны. Не надо их все врубать только потому что можете.
9. Нельзя делать оптимизацию ради оптимизации. Дистиляция делает модель тупее, это надо учитывать (а лучше проверять на тестах).
10. Чем сложнее система тем выше вероятность ошибки.