Работая в айтишечке
958 subscribers
232 photos
3 videos
46 links
Канал о том, как эффективно работать в IT: простые объяснения технических вещей, лайфхаки, лучшие практики и полезные инструменты для повседневных задач.

Автор: @Shevtsoff
Download Telegram
⚙️ Как спроектирована система, подобная Instagram*?

Сегодня мы рассмотрим схему, которая показывает, как можно спроектировать систему, похожую на Instagram. Даже если вы далеки от разработки, эта схема от ByteByteGo поможет понять основные компоненты и их взаимодействие.

❶ Пользователь совершает действие
Всё начинается с вас! Когда вы нажимаете кнопку "лайк", загружаете фото или подписываетесь на другого пользователя (стрелка 1), ваше устройство отправляет запрос в систему. Это может быть что угодно — от публикации нового поста до простого просмотра ленты.

❷ Запрос попадает на сервер
Запрос с вашего устройства отправляется через специальный "шлюз" (API) на бэкенд-сервер (стрелка 2). Этот сервер — это как "мозг" системы. Он обрабатывает ваши действия и решает, что делать дальше.

❸ Сохранение данных в базах данных
После того как сервер получил ваш запрос, он сохраняет данные в соответствующих хранилищах:
— Структурированные данные , такие как профили пользователей, комментарии и подписки, хранятся в реляционных базах данных (например, Postgres).
— Данные, требующие быстрой записи , такие как лента новостей или логи действий, могут храниться в специальных базах данных, которые работают чуть медленнее, но выдерживают большие объемы данных.

Часто запрашиваемые данные (например, популярные посты или профили) временно хранятся в кэше, чтобы их можно было быстро доставить вам.

❹ Хранение медиафайлов
Когда вы загружаете изображения или видео, они сохраняются в специальном хранилище для файлов — объектном хранилище (Object Storage) (стрелка 4). А вся информация о них (например, название файла, размер, дата загрузки) записывается в базу данных.

❺ Очередь задач
Если нужно выполнить задачу, которая не требует мгновенного ответа, например, отправить уведомление о новом лайке, эта задача помещается в очередь (Queue) (стрелка 5). Это помогает системе не перегружаться и выполнять задачи постепенно.

❻ Фоновые процессы
Фоновые рабочие процессы берут задачи из очереди и выполняют их (стрелка 6). Например, они могут отправить уведомление другому пользователю или обработать новый комментарий.

❼ Обновление данных
После выполнения задачи фоновый процесс также обновляет необходимые данные в базах данных (стрелка 7). Например, если кто-то поставил лайк вашему посту, это отразится в вашей статистике.

* — принадлежит Meta, признанной экстремистской организацией и запрещенной на территории РФ ))

#tech #Instagram #systemdesign #ByteByteGo
🔥21
🗳 Data Pipeline Overview: Как данные становятся ценным ресурсом

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

Сегодня разберём очередную схему от ByteByteGo и посмотрим на типовые этапы конвейера:

❶ Collect (Сбор данных)
Данные собираются из разных источников:
— Data Stores : базы данных, CRM, ERP (например, записи заказов).
— Data Streams : реальные события (клики, логи серверов).
— Applications : мобильные приложения, IoT-устройства.

❷ Ingest (Загрузка данных)
Задача — загрузить данные в систему конвейера.

Инструменты :
— Apache Kafka: для потоковой передачи данных в реальном времени.
— Amazon Kinesis : обработка больших объемов данных в режиме реального времени.

Типы обработки :
— Batch Processing : обработка данных порциями (например, ежедневный отчет).
— Stream Processing : обработка данных «на лету» (например, мониторинг транзакций).

❸ Store (Хранение данных)
Где хранятся данные :
— Data Lake : Необработанные данные (например, Amazon S3, HDFS).
— Data Warehouse : структурированные данные для аналитики (Snowflake, Redshift).
— Data Lakehouse : комбинация озера и хранилища (Delta Lake, Azure Synapse)

❹ Compute (Обработка данных)
Цель —- преобразовать данные в формат, удобный для анализа.

ETL vs ELT :
— ETL : Extract → Transform → Load (преобразование до загрузки).
— ELT : Extract → Load → Transform (преобразование после загрузки).

Инструменты :
— Apache Spark - для пакетной обработки.
— Apache Flink - для потоковой обработки.

❺ Consume (Использование данных)
Как данные помогают бизнесу :
— Business Intelligence - инструменты вроде Datalens,Tableau для создания дашбордов.
— Self-Service Analytics - платформы типа Looker для самостоятельного анализа.
— ML Services - использование данных для прогнозирования (например, рекомендации товаров).
— Data Science - исследования с помощью Jupyter Notebooks.

💪 Почему это важно?
— Автоматизация : устраняет рутину (например, ручной экспорт данных).
— Качество данных : очистка и стандартизация улучшают аналитику.
— Быстрое принятие решений : доступ к актуальным данным в реальном времени.

🤓 Основные вызовы
— Сложность интеграции : разные системы могут иметь разные форматы данных.
— Безопасность : защита данных во время передачи и хранения.
— Масштабируемость : конвейер должен расти вместе с объемом данных.

Итог
Конвейеры передачи данных — это «скелет», который позволяет компании быстро переходить от сырых данных к осмысленным решениям. Без них аналитика становится медленной, а бизнес — менее гибким.

👀 См.также
Видео от ByteByteGo на тему "What is Data Pipeline?"
— Big Data Pipeline Cheatsheet for AWS, Azure, and Google Cloud

#data #pipeline #analytics #ByteByteGo
2👍2🔥2
🖥 Топ-20 ключевых понятий в ИИ: простыми словами

ИИ стремительно ворвался в нашу жизнь, привнеся множество новых понятий.
Давайте вместе разберёмся что есть что:

1. Machine Learning (Машинное обучение) — методы, где компьютеры учатся находить закономерности в данных через алгоритмы и статистику.

2. Deep Learning (Глубокое обучение) — подвид машинного обучения, где нейросети самостоятельно обучаются распознавать сложные паттерны в данных.

3. Neural Networks (Нейронные сети) — модели, имитирующие структуру мозга, состоящие из слоёв для анализа данных и выявления скрытых связей.

4. NLP (Обработка естественного языка) — технологии, позволяющие компьютерам понимать, анализировать и генерировать человеческий текст или речь.

5. Computer Vision (Компьютерное зрение) — алгоритмы, учащие машины «видеть» и интерпретировать изображения, видео или графику.

6. Reinforcement Learning (Обучение с подкреплением) — метод, где ИИ учится через пробу, ошибку и получение «наград» за правильные действия.

7. Generative Models (Генеративные модели) — инструменты, создающие новые данные (текст, изображения) на основе изученных примеров.

8. LLM (Большие языковые модели) — алгоритмы вроде GPT, которые генерируют тексты, отвечают на вопросы и имитируют человеческое мышление.

9. Transformers (Трансформеры) — архитектура ИИ, фокусирующаяся на ключевых элементах данных (например, словах в предложении).

10. Feature Engineering (Инженерия признаков) — создание дополнительных параметров в данных для улучшения обучения моделей.

11. Supervised Learning (Обучение с учителем) — обучение модели на данных с готовыми ответами (например, размеченные фото).

12. Bayesian Learning (Байесовское обучение) — подход, учитывающий вероятности и неопределенность в данных для гибких прогнозов.

13. Prompt Engineering (Инженерия запросов) — формулировка задач так, чтобы ИИ давал максимально релевантные ответы.

14. AI Agents (ИИ-агенты) — автономные программы, которые воспринимают среду, принимают решения и действуют (например, чат-боты).

15. Fine-Tuning Models (Дообучение моделей) — адаптация предобученной модели (например, GPT) под конкретные задачи.

16. Multimodal Models (Мультимодальные модели) — системы, работающие с разными типами данных: текстом, изображениями, аудио.

17. Embeddings (Эмбеддинги) — представление данных (слова, объекты) в виде числовых векторов для обработки компьютером.

18. Vector Search (Векторный поиск) — метод поиска похожих объектов (товаров, текстов) через сравнение их векторных представлений.

19. Model Evaluation (Оценка моделей) — проверка точности ИИ с помощью тестовых данных и метрик (например, точность, скорость).

20. AI Infrastructure (Инфраструктура ИИ) — аппаратное и программное обеспечение для запуска и масштабирования ИИ-систем.

Эти концепции важны для понимания, как работают современные ИИ-технологии: от чат-ботов до автономных машин.

С ними вы сможете:
— Выбирать подходящие инструменты для своих проектов.
— Разбираться в новостях и трендах ИИ.
— Грамотно формулировать задачи для нейросетей.

Источник: ByteByteGo

#ai #bytebytego #terms
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63👍21
☕️ Как устроен RAG: два шага к идеальному ответу

Представьте, что вы спрашиваете у ИИ-ассистента про новый фильм. Обычно он опирается на данные, «встроенные» в него во время обучения. Но если информация устарела или слишком специфична, ИИ может ошибиться. Тут на помощь приходит RAG.

RAG (Retrieval-Augmented Generation) — технология, позволяющая ИИ-моделям использовать внешние источники знаний для генерации более точных и актуальных ответов. В отличие от стандартного подхода, где модель обучается на фиксированном наборе данных, RAG динамически дополняет контекст запроса пользователя информацией из специализированных баз, не участвовавших в обучении модели. Это делает LLM «умнее» в конкретных областях без необходимости повторного обучения.

Как работает RAG?
Процесс RAG можно разбить на шесть этапов:

Запрос пользователя
Пользователь задает вопрос через интерфейс LLM (например, текстовое поле или голосовой ввод). Запрос направляется на сервер.

Преобразование в вектор и поиск
Сервер конвертирует запрос в векторное представление («переводит» ваш вопрос на свой язык) и отправляет его в систему поиска.

Поиск релевантной информации
Система ищет ответы в ваших базах знаний: PDF-файлах, базах данных, репозитории кода, веб-страницах или API. Цель — найти самые актуальные данные для ответа.

Обогащение контекста
Полученная информация возвращается на сервер, где добавляется к исходному запросу, создавая «обогащенный контекст».

Генерация ответа LLM
Обогащенный контекст передается LLM (например, GPT, Gemini, Claude). Модель использует новые данные для формирования ответа.

Возврат результата
Готовый ответ возвращается пользователю.

В чем преимущества?
Всегда актуально: даже если помощник «не знал» чего-то раньше, он найдёт свежую информацию.
Точность: подходит для сложных тем, где ошибаться нельзя — медицина, законы, наука.
Не нужно учить заново: вместо того чтобы «переучивать» помощника на новые данные, просто обновляют источники информации.

Итог
RAG — это как дать умному помощнику шпаргалку с самой важной информацией. Он остаётся таким же быстрым и сообразительным, но теперь может помочь в любой области, где есть знания. Если вы когда-нибудь задумывались, как ИИ даёт точные ответы на специфические вопросы — теперь знаете секрет!

#ai #ByteByteGo
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍42
☕️ MCP (Model Context Protocol)?

MCP — это новый стандарт от компании Anthropic, который помогает искусственным интеллектам (например, модели Claude) работать с внешними системами: базами данных, файлами, API и другими инструментами.

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

MCP — это не фреймворк или инструмент, а именно протокол, аналогичный: HTTP для интернета, SMTP для обмена сообщениями.

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

🧐 Как это работает?
MCP строится на клиент-серверной архитектуре и состоит из трёх частей:
Host (хост): Это среда, где работает ИИ (например, приложение Claude). Он предоставляет доступ к инструментам (БД, API) через MCP. Пример : Вы спрашиваете ИИ: «Проанализируй продажи за квартал». Хост запускает MCP Client, чтобы связаться с базой данных.
MCP Client (клиент): Часть ИИ, которая формирует запросы к внешним системам. Пример : Если ИИ нужно взять данные из PostgreSQL, MCP Client превращает запрос в структурированный код (например, SQL-запрос).
MCP Server (сервер): «Переводчик», который связывает ИИ с внешним миром (Google Drive, API, БД). Пример : MCP Server для PostgreSQL получает SQL-запрос от клиента, выполняет его в базе и возвращает результат ИИ.

🧩 Ключевые элементы MCP
Они делятся между клиентом и сервером и реализуют «правила общения»:

Для клиента (MCP Client):
❶ Roots (Корни) — Безопасный доступ к файлам и данным.
Пример : ИИ может открыть файл в Google Drive через MCP Server, но не увидит другие файлы пользователя.
❷ Sampling (Выборка) — Запрос помощи у ИИ для задачи.
Пример : ИИ просит пользователя уточнить, какую именно таблицу из БД использовать.

Для сервера (MCP Server):
❸ Prompts (Инструкции) — Подсказки для ИИ, чтобы он понимал контекст.
Пример : «Ты работаешь с финансовыми данными, используй формат отчета X».
❹ Resources (Ресурсы) — Данные, к которым обращается ИИ.
Пример : Таблицы из PostgreSQL или файлы из Dropbox.
❺ Tools (Инструменты) — Функции, которые ИИ может вызывать.
Пример : Выполнить SQL-запрос, отправить письмо через API или обработать изображение.

🤌 Как это работает на практике?
Сценарий: Вы спрашиваете: «Покажи график продаж за 2023 год».
1. Host (ваш ИИ-ассистент) запускает MCP Client.
2. MCP Client формирует запрос к MCP Server для PostgreSQL: «Получи данные о продажах».
3. MCP Server подключается к БД, выполняет SQL-запрос и возвращает данные.
4. Resources (данные о продажах) и Tools (график) используются для создания ответа.
5. ИИ показывает вам график, используя Prompts (например, «График должен быть в формате PDF»).

🔗 Полезные материалы
Учебная программа MCP для начинающих от MS
Документация MCP
Спецификация MCP
GitHub репозиторий MCP
Сообщество MCP

#ai #mcp #bytebytego
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42