⚙️ Как спроектирована система, подобная Instagram*?
Сегодня мы рассмотрим схему, которая показывает, как можно спроектировать систему, похожую на Instagram. Даже если вы далеки от разработки, эта схема от ByteByteGo поможет понять основные компоненты и их взаимодействие.
❶ Пользователь совершает действие
Всё начинается с вас! Когда вы нажимаете кнопку "лайк", загружаете фото или подписываетесь на другого пользователя (стрелка 1), ваше устройство отправляет запрос в систему. Это может быть что угодно — от публикации нового поста до простого просмотра ленты.
❷ Запрос попадает на сервер
Запрос с вашего устройства отправляется через специальный "шлюз" (API) на бэкенд-сервер (стрелка 2). Этот сервер — это как "мозг" системы. Он обрабатывает ваши действия и решает, что делать дальше.
❸ Сохранение данных в базах данных
После того как сервер получил ваш запрос, он сохраняет данные в соответствующих хранилищах:
— Структурированные данные , такие как профили пользователей, комментарии и подписки, хранятся в реляционных базах данных (например, Postgres).
— Данные, требующие быстрой записи , такие как лента новостей или логи действий, могут храниться в специальных базах данных, которые работают чуть медленнее, но выдерживают большие объемы данных.
Часто запрашиваемые данные (например, популярные посты или профили) временно хранятся в кэше, чтобы их можно было быстро доставить вам.
❹ Хранение медиафайлов
Когда вы загружаете изображения или видео, они сохраняются в специальном хранилище для файлов — объектном хранилище (Object Storage) (стрелка 4). А вся информация о них (например, название файла, размер, дата загрузки) записывается в базу данных.
❺ Очередь задач
Если нужно выполнить задачу, которая не требует мгновенного ответа, например, отправить уведомление о новом лайке, эта задача помещается в очередь (Queue) (стрелка 5). Это помогает системе не перегружаться и выполнять задачи постепенно.
❻ Фоновые процессы
Фоновые рабочие процессы берут задачи из очереди и выполняют их (стрелка 6). Например, они могут отправить уведомление другому пользователю или обработать новый комментарий.
❼ Обновление данных
После выполнения задачи фоновый процесс также обновляет необходимые данные в базах данных (стрелка 7). Например, если кто-то поставил лайк вашему посту, это отразится в вашей статистике.
* — принадлежит Meta, признанной экстремистской организацией и запрещенной на территории РФ ))
#tech #Instagram #systemdesign #ByteByteGo
Сегодня мы рассмотрим схему, которая показывает, как можно спроектировать систему, похожую на Instagram. Даже если вы далеки от разработки, эта схема от ByteByteGo поможет понять основные компоненты и их взаимодействие.
❶ Пользователь совершает действие
Всё начинается с вас! Когда вы нажимаете кнопку "лайк", загружаете фото или подписываетесь на другого пользователя (стрелка 1), ваше устройство отправляет запрос в систему. Это может быть что угодно — от публикации нового поста до простого просмотра ленты.
❷ Запрос попадает на сервер
Запрос с вашего устройства отправляется через специальный "шлюз" (API) на бэкенд-сервер (стрелка 2). Этот сервер — это как "мозг" системы. Он обрабатывает ваши действия и решает, что делать дальше.
❸ Сохранение данных в базах данных
После того как сервер получил ваш запрос, он сохраняет данные в соответствующих хранилищах:
— Структурированные данные , такие как профили пользователей, комментарии и подписки, хранятся в реляционных базах данных (например, Postgres).
— Данные, требующие быстрой записи , такие как лента новостей или логи действий, могут храниться в специальных базах данных, которые работают чуть медленнее, но выдерживают большие объемы данных.
Часто запрашиваемые данные (например, популярные посты или профили) временно хранятся в кэше, чтобы их можно было быстро доставить вам.
❹ Хранение медиафайлов
Когда вы загружаете изображения или видео, они сохраняются в специальном хранилище для файлов — объектном хранилище (Object Storage) (стрелка 4). А вся информация о них (например, название файла, размер, дата загрузки) записывается в базу данных.
❺ Очередь задач
Если нужно выполнить задачу, которая не требует мгновенного ответа, например, отправить уведомление о новом лайке, эта задача помещается в очередь (Queue) (стрелка 5). Это помогает системе не перегружаться и выполнять задачи постепенно.
❻ Фоновые процессы
Фоновые рабочие процессы берут задачи из очереди и выполняют их (стрелка 6). Например, они могут отправить уведомление другому пользователю или обработать новый комментарий.
❼ Обновление данных
После выполнения задачи фоновый процесс также обновляет необходимые данные в базах данных (стрелка 7). Например, если кто-то поставил лайк вашему посту, это отразится в вашей статистике.
* — принадлежит Meta, признанной экстремистской организацией и запрещенной на территории РФ ))
#tech #Instagram #systemdesign #ByteByteGo
🔥2❤1
🗳 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
Конвейер данных — это система, которая автоматизирует движение данных от источников до конечных пользователей. Она преобразует сырые данные в полезную для бизнеса информацию.
Сегодня разберём очередную схему от 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
ИИ стремительно ворвался в нашу жизнь, привнеся множество новых понятий.
Давайте вместе разберёмся что есть что:
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
🔥6❤3👍2⚡1
Представьте, что вы спрашиваете у ИИ-ассистента про новый фильм. Обычно он опирается на данные, «встроенные» в него во время обучения. Но если информация устарела или слишком специфична, ИИ может ошибиться. Тут на помощь приходит 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👍4❤2
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
🔥4❤2