Основные компоненты Docker и взаимодействие между ними
Docker Client — это интерфейс, через который пользователь взаимодействует с Docker. Команды, такие как
Docker Host — это операционная система, на которой установлен Docker. Внутри Docker Host находятся:
- Containers — запущенные приложения, которые изолированы друг от друга.
- Images — неизменяемые шаблоны, из которых создаются контейнеры.
Docker Registry — это хранилище образов, где они могут быть загружены или загружены. На изображении показаны примеры репозиториев, таких как Ubuntu и NGINX.
Daemon — это служба, которая управляет контейнерами, образами и сетями. Она обрабатывает команды, отправленные через Docker Client.
Docker Client — это интерфейс, через который пользователь взаимодействует с Docker. Команды, такие как
docker build, docker pull и docker run, отправляются через клиент.Docker Host — это операционная система, на которой установлен Docker. Внутри Docker Host находятся:
- Containers — запущенные приложения, которые изолированы друг от друга.
- Images — неизменяемые шаблоны, из которых создаются контейнеры.
Docker Registry — это хранилище образов, где они могут быть загружены или загружены. На изображении показаны примеры репозиториев, таких как Ubuntu и NGINX.
Daemon — это служба, которая управляет контейнерами, образами и сетями. Она обрабатывает команды, отправленные через Docker Client.
👍5❤3🔥3😁3
Техники промпт-инжиниринга
(описание для предыдущего поста)
Промпт-инжиниринг представляет целенаправленный процесс разработки входных данных при работе с большими языковыми моделями (LLM).
Давайте разберём основные техники промпт-инжиниринга.
✅ 1. Базовые техники промпт-инжиниринга
* Zero-shot (нулевое обучение) — примеры не предоставляются, только задача
* One-shot (одношаговое обучение) — показывается один пример перед задачей
* Few-shot (малошаговое обучение) — используется несколько примеров для обучения паттернам
🧠 2. Техники улучшения рассуждений
* Chain-of-Thought (CoT) — поощрение пошагового рассуждения
* Self-Consistency — генерация нескольких вариантов CoT и выбор лучшего
* Tree-of-Thought (ToT) — исследование нескольких путей рассуждений (продвинутый уровень)
* ReAct — сочетание этапов рассуждения с использованием действий/инструментов (например, вызовы API)
🧾 3. Инструкции и ролевой промпт-инжиниринг
* Instruction prompting — чёткие директивы («Сформулируй краткое содержание...»)
* System/Role prompting — определение роли или поведения («Ты — юридический ассистент»)
* Гибридный подход — сочетание чётких инструкций с примерами
⚙️ 4. Техники составления промпта
* Prompt chaining — использование вывода одного промпта в следующем
* Dynamic prompting — внедрение переменных или контекста в реальном времени
* Meta prompting — запрос к модели улучшить или проверить собственный ответ
🖼 5. Мультимодальный промпт-инжиниринг
* Изображение + текст — предоставление визуального и текстового контекста
* Аудио/видео + текст — использование транскрипций или сенсорного ввода (зависит от модели, например, GPT-4o, Gemini 1.5)
🧑⚕️ 6. Промпт-инжиниринг для конкретных областей
* Кодовый промпт — ограниченные, специфичные для инструмента входные данные (например, Python, SQL)
* Медицинский/юридический промпт — высокоточный язык с требованиями строгой формы и точности
🧪 7. Оценка и отладка промпта
(Не являются техниками промпт-инжиниринга, но являются важными инструментами)
* Prompt ablation — удаление элементов для проверки их вклада
* Injection testing — оценка устойчивости промпта в приложениях или агентах
❌ Что не является техникой промпт-инжиниринга
* RAG: архитектура, объединяющая поиск и генерацию. Промпты используются внутри неё
* Агенты/системы использования инструментов — фреймворки оркестрации (например, LangGraph, AutoGPT). Промпт-инжиниринг — это лишь один из компонентов, а не сама техника
(описание для предыдущего поста)
Промпт-инжиниринг представляет целенаправленный процесс разработки входных данных при работе с большими языковыми моделями (LLM).
Давайте разберём основные техники промпт-инжиниринга.
✅ 1. Базовые техники промпт-инжиниринга
* Zero-shot (нулевое обучение) — примеры не предоставляются, только задача
* One-shot (одношаговое обучение) — показывается один пример перед задачей
* Few-shot (малошаговое обучение) — используется несколько примеров для обучения паттернам
🧠 2. Техники улучшения рассуждений
* Chain-of-Thought (CoT) — поощрение пошагового рассуждения
* Self-Consistency — генерация нескольких вариантов CoT и выбор лучшего
* Tree-of-Thought (ToT) — исследование нескольких путей рассуждений (продвинутый уровень)
* ReAct — сочетание этапов рассуждения с использованием действий/инструментов (например, вызовы API)
🧾 3. Инструкции и ролевой промпт-инжиниринг
* Instruction prompting — чёткие директивы («Сформулируй краткое содержание...»)
* System/Role prompting — определение роли или поведения («Ты — юридический ассистент»)
* Гибридный подход — сочетание чётких инструкций с примерами
⚙️ 4. Техники составления промпта
* Prompt chaining — использование вывода одного промпта в следующем
* Dynamic prompting — внедрение переменных или контекста в реальном времени
* Meta prompting — запрос к модели улучшить или проверить собственный ответ
🖼 5. Мультимодальный промпт-инжиниринг
* Изображение + текст — предоставление визуального и текстового контекста
* Аудио/видео + текст — использование транскрипций или сенсорного ввода (зависит от модели, например, GPT-4o, Gemini 1.5)
🧑⚕️ 6. Промпт-инжиниринг для конкретных областей
* Кодовый промпт — ограниченные, специфичные для инструмента входные данные (например, Python, SQL)
* Медицинский/юридический промпт — высокоточный язык с требованиями строгой формы и точности
🧪 7. Оценка и отладка промпта
(Не являются техниками промпт-инжиниринга, но являются важными инструментами)
* Prompt ablation — удаление элементов для проверки их вклада
* Injection testing — оценка устойчивости промпта в приложениях или агентах
❌ Что не является техникой промпт-инжиниринга
* RAG: архитектура, объединяющая поиск и генерацию. Промпты используются внутри неё
* Агенты/системы использования инструментов — фреймворки оркестрации (например, LangGraph, AutoGPT). Промпт-инжиниринг — это лишь один из компонентов, а не сама техника
Telegram
METANIT.COM
Техники промпт-инжиниринга
Описание в следующем посте
Описание в следующем посте
🤡19❤5👍5👏1
10 основных структур данных, используемых в повседневной жизни:
- List: Используется для представления последовательности элементов. Пример применения — ленты новостей в Twitter.
- Array: Массив, где элементы хранятся по индексам. Применяется для математических операций и работы с большими наборами данных.
- Stack: Структуры данных типа «последним пришёл — первым вышел». Используется для функций отмены/возврата в текстовых редакторах
- Queue: Очередь, где элементы обрабатываются по принципу «первым пришёл — первым вышел». Применяется для управления заданиями принтера и пользовательскими действиями в играх.
- Heap: Используется для планирования задач.
- Tree: Иерархическая структура, применяемая для анализа HTML-документов и принятия решений в ИИ.
- Suffix Tree: Применяется для поиска строк в документах.
- Graph: Используется для отслеживания связей между людьми (например, в социальных сетях) и поиска путей.
- R-tree: Применяется для поиска ближайших соседей.
- Hash Table: Используется в системах кэширования
- List: Используется для представления последовательности элементов. Пример применения — ленты новостей в Twitter.
- Array: Массив, где элементы хранятся по индексам. Применяется для математических операций и работы с большими наборами данных.
- Stack: Структуры данных типа «последним пришёл — первым вышел». Используется для функций отмены/возврата в текстовых редакторах
- Queue: Очередь, где элементы обрабатываются по принципу «первым пришёл — первым вышел». Применяется для управления заданиями принтера и пользовательскими действиями в играх.
- Heap: Используется для планирования задач.
- Tree: Иерархическая структура, применяемая для анализа HTML-документов и принятия решений в ИИ.
- Suffix Tree: Применяется для поиска строк в документах.
- Graph: Используется для отслеживания связей между людьми (например, в социальных сетях) и поиска путей.
- R-tree: Применяется для поиска ближайших соседей.
- Hash Table: Используется в системах кэширования
👍15🔥2❤1👏1
Какой способ инициализации числового массива более интуитивен?
Anonymous Poll
2%
numbers = 1, 2, 3, 4, 5;
27%
numbers = {1, 2, 3, 4, 5};
69%
numbers = [1, 2, 3, 4, 5];
1%
numbers = (1, 2, 3, 4, 5);
🔥18🤨14🍾5👨💻3❤2🤡2
Основные способы масштабирования баз данных:
(описание к предыдущему посту)
1. Индексирование (Indexing):
- Анализируйте шаблоны запросов вашего приложения и создавайте правильные индексы.
- Пример: создание индекса для столбца
2. Материализованные представления (Materialized Views):
- Предварительно вычисляйте результаты сложных запросов и храните их для более быстрого доступа.
- Пример: создание материализованного представления для таблицы
3. Денормализация (Denormalization):
- Уменьшайте количество сложных объединений для улучшения производительности запросов.
- Пример: объединение таблиц
4. Кэширование базы данных (Database Caching):
- Храните часто запрашиваемые данные в более быстром слое хранения.
- Пример: кэширование данных в приложении.
5. Репликация (Replication):
- Создавайте копии вашей основной базы данных на разных серверах для масштабирования чтения.
- Пример: создание реплик основной базы данных.
6. Вертикальное масштабирование (Vertical Scaling):
- Повышайте производительность сервера базы данных, добавляя больше CPU, RAM или хранилища.
- Пример: добавление ресурсов на сервер базы данных.
7. Шардинг (Sharding):
- Распределяйте ресурсы, которые потребуются до того, как они понадобятся.
- Пример: разделение таблицы
Эти стратегии помогают улучшить производительность и масштабируемость баз данных, позволяя справляться с возрастающими нагрузками и требованиями приложений.
(описание к предыдущему посту)
1. Индексирование (Indexing):
- Анализируйте шаблоны запросов вашего приложения и создавайте правильные индексы.
- Пример: создание индекса для столбца
order_amount в таблице Orders.2. Материализованные представления (Materialized Views):
- Предварительно вычисляйте результаты сложных запросов и храните их для более быстрого доступа.
- Пример: создание материализованного представления для таблицы
Orders с фильтрами.3. Денормализация (Denormalization):
- Уменьшайте количество сложных объединений для улучшения производительности запросов.
- Пример: объединение таблиц
Customers и Orders в одну таблицу Customer Orders.4. Кэширование базы данных (Database Caching):
- Храните часто запрашиваемые данные в более быстром слое хранения.
- Пример: кэширование данных в приложении.
5. Репликация (Replication):
- Создавайте копии вашей основной базы данных на разных серверах для масштабирования чтения.
- Пример: создание реплик основной базы данных.
6. Вертикальное масштабирование (Vertical Scaling):
- Повышайте производительность сервера базы данных, добавляя больше CPU, RAM или хранилища.
- Пример: добавление ресурсов на сервер базы данных.
7. Шардинг (Sharding):
- Распределяйте ресурсы, которые потребуются до того, как они понадобятся.
- Пример: разделение таблицы
Orders на несколько шардов.Эти стратегии помогают улучшить производительность и масштабируемость баз данных, позволяя справляться с возрастающими нагрузками и требованиями приложений.
Telegram
METANIT.COM
Основные способы масштабирования баз данных
👎6👍4❤2👏1
Как работают каналы (pipes) в Linux:
(описание к предыдущему посту)
#linux
1. Каналы (Pipes):
- Позволяют межпроцессное взаимодействие путем отправки данных из вывода одного процесса (stdout) на ввод другого (stdin).
- Однонаправленные: данные текут только в одном направлении — от писателя к читателю.
- Концептуальный поток: Процесс A (stdout) → [PIPE] → (stdin) Процесс B.
2. Анонимные каналы (Anonymous Pipes):
- Временный, однонаправленный канал связи между двумя связанными процессами.
- Однонаправленные: данные текут только в одном направлении.
- Область видимости: существует только во время выполнения процессов.
- Создание: создаются программно с помощью системного вызова pipe() или неявно через оператор | в командной оболочке.
- Использование: обычно используются для связывания команд в конвейере.
- Пример:
-
- Вывод фильтруется с помощью
- Отфильтрованные строки подсчитываются с помощью
3. Именованные каналы (Named Pipe, FIFO):
- Также известны как FIFO (First In, First Out).
- Постоянный канал связи, который существует как специальный файл в файловой системе, позволяющий не связанным процессам общаться.
- Однонаправленные: как анонимные каналы, данные текут в одном направлении.
- Постоянство: остается в файловой системе до явного удаления.
- Создание: создается с помощью команд
- Область видимости: может быть доступен через разные сессии или несвязанные процессы.
- Пример:
1. Создание именованного канала:
2. Запись в канал:
3. Чтение из канала:
4. Важные примечания:
- Анонимные каналы идеальны для простых, временных задач, таких как связывание команд в конвейере.
- Именованные каналы лучше подходят для сложных рабочих процессов, требующих межпроцессного взаимодействия между несвязанными процессами или сессиями.
(описание к предыдущему посту)
#linux
1. Каналы (Pipes):
- Позволяют межпроцессное взаимодействие путем отправки данных из вывода одного процесса (stdout) на ввод другого (stdin).
- Однонаправленные: данные текут только в одном направлении — от писателя к читателю.
- Концептуальный поток: Процесс A (stdout) → [PIPE] → (stdin) Процесс B.
2. Анонимные каналы (Anonymous Pipes):
- Временный, однонаправленный канал связи между двумя связанными процессами.
- Однонаправленные: данные текут только в одном направлении.
- Область видимости: существует только во время выполнения процессов.
- Создание: создаются программно с помощью системного вызова pipe() или неявно через оператор | в командной оболочке.
- Использование: обычно используются для связывания команд в конвейере.
- Пример:
cat file.txt | grep "keyword" | wc -l-
cat читает файл.- Вывод фильтруется с помощью
grep.- Отфильтрованные строки подсчитываются с помощью
wc.3. Именованные каналы (Named Pipe, FIFO):
- Также известны как FIFO (First In, First Out).
- Постоянный канал связи, который существует как специальный файл в файловой системе, позволяющий не связанным процессам общаться.
- Однонаправленные: как анонимные каналы, данные текут в одном направлении.
- Постоянство: остается в файловой системе до явного удаления.
- Создание: создается с помощью команд
mkfifo или mknod.- Область видимости: может быть доступен через разные сессии или несвязанные процессы.
- Пример:
1. Создание именованного канала:
mkfifo my_pipe2. Запись в канал:
echo "Hello, World!" > my_pipe &3. Чтение из канала:
cat < my_pipe4. Важные примечания:
- Анонимные каналы идеальны для простых, временных задач, таких как связывание команд в конвейере.
- Именованные каналы лучше подходят для сложных рабочих процессов, требующих межпроцессного взаимодействия между несвязанными процессами или сессиями.
Telegram
METANIT.COM
Как работают каналы (pipes) в Linux
#linux
#linux
❤5🔥3👏1
Какой способ установки типа переменной более интуитивен (перед переменной или после переменной) ?
Anonymous Poll
90%
int n = 5;
10%
n: int = 5;
🤡22🌚12👍8😁6🤨4❤3🔥2
В руководство по языку Python добавлена новая статья про Пакетный менеджер uv
https://metanit.com/python/tutorial/6.10.php
#python
https://metanit.com/python/tutorial/6.10.php
#python
👍13❤3🔥2🤮2🆒2
Тем временем в июле ситуация в российском ИТ прододжила ухудщаться.
hh.индекс, который показывает соотношение количества активных резюме к количеству активных вакансий на рынке в выбранной профобласти, достиг 13, 7 (больше или равно 12 — крайне высокий уровень конкуренции соискателей за рабочие места)
Предлашаемые зарплаты за последние полгода застыли на уровне 90 000 рублей (медианный уровень дохода в вакансиях)
Количество вакансий уменьшилось год к году на 33%, а колиество резюме возросло на 28%
https://stats.hh.ru/?hhIndexProfArea=information_technology
hh.индекс, который показывает соотношение количества активных резюме к количеству активных вакансий на рынке в выбранной профобласти, достиг 13, 7 (больше или равно 12 — крайне высокий уровень конкуренции соискателей за рабочие места)
Предлашаемые зарплаты за последние полгода застыли на уровне 90 000 рублей (медианный уровень дохода в вакансиях)
Количество вакансий уменьшилось год к году на 33%, а колиество резюме возросло на 28%
https://stats.hh.ru/?hhIndexProfArea=information_technology
😢31😁6😱5👎4🌚4🤣2🎅2
Что такое принципы SOLID?
(описание к предыдущему посту)
SOLID — это набор рекомендаций по созданию программного обеспечения, которое легко понимать, модифицировать и расширять.
Аббревиатура SOLID расшифровывается следующим образом:
S → Принцип единственной ответственности
O → Принцип открытости/закрытости
L → Принцип подстановки Лисков
I → Принцип разделения интерфейсов
D → Принцип инверсии зависимостей
* Принцип единственной ответственности (SRP) гласит, что у класса должна быть только одна причина для изменения. Другими словами, у него должна быть единственная чётко определённая обязанность или задача в программной системе.
* Принцип открытости/закрытости (OCP) утверждает, что программные сущности (например, классы) должны быть открыты для расширения, но закрыты для модификации. Это означает, что можно добавлять новую функциональность, не изменяя существующий код.
* Принцип подстановки Лисков (LSP) утверждает, что объекты производного класса должны иметь возможность заменять объекты базового класса без нарушения корректности программы.
* Принцип разделения интерфейсов (ISP) подчёркивает, что классы или компоненты, использующие интерфейсы, не должны зависеть от интерфейсов, которые они не используют.
* Принцип инверсии зависимостей (DIP) гласит, что высокоуровневые модули (или классы) не должны зависеть от низкоуровневых модулей; оба должны зависеть от абстракций, таких как интерфейсы.
(описание к предыдущему посту)
SOLID — это набор рекомендаций по созданию программного обеспечения, которое легко понимать, модифицировать и расширять.
Аббревиатура SOLID расшифровывается следующим образом:
S → Принцип единственной ответственности
O → Принцип открытости/закрытости
L → Принцип подстановки Лисков
I → Принцип разделения интерфейсов
D → Принцип инверсии зависимостей
* Принцип единственной ответственности (SRP) гласит, что у класса должна быть только одна причина для изменения. Другими словами, у него должна быть единственная чётко определённая обязанность или задача в программной системе.
* Принцип открытости/закрытости (OCP) утверждает, что программные сущности (например, классы) должны быть открыты для расширения, но закрыты для модификации. Это означает, что можно добавлять новую функциональность, не изменяя существующий код.
* Принцип подстановки Лисков (LSP) утверждает, что объекты производного класса должны иметь возможность заменять объекты базового класса без нарушения корректности программы.
* Принцип разделения интерфейсов (ISP) подчёркивает, что классы или компоненты, использующие интерфейсы, не должны зависеть от интерфейсов, которые они не используют.
* Принцип инверсии зависимостей (DIP) гласит, что высокоуровневые модули (или классы) не должны зависеть от низкоуровневых модулей; оба должны зависеть от абстракций, таких как интерфейсы.
Telegram
METANIT.COM
Что такое принципы SOLID?
👍15🔥3👏1
Мессенджер Max станет обязательным для предустановки на все новые смартфоны в РФ с 1 сентября. Вкратце о мессенджере:
"Max сочетает в себе функции общения (чаты, звонки, передача файлов до 4 ГБ), интеграцию с государственными сервисами (Госуслуги, цифровая подпись), а также финансовые инструменты через систему быстрых платежей."
"Приложение собирает IP-адреса, данные о местоположении и активностях пользователей, а его политика допускает передачу этих сведений государственным органам. End-to-end шифрование, в отличие от других мессенджеров, пока не реализовано - используется защита канала связи, что оставляет данные уязвимыми на серверах"
https://ria.ru/20250806/yurist-2033592622.html
"Max сочетает в себе функции общения (чаты, звонки, передача файлов до 4 ГБ), интеграцию с государственными сервисами (Госуслуги, цифровая подпись), а также финансовые инструменты через систему быстрых платежей."
"Приложение собирает IP-адреса, данные о местоположении и активностях пользователей, а его политика допускает передачу этих сведений государственным органам. End-to-end шифрование, в отличие от других мессенджеров, пока не реализовано - используется защита канала связи, что оставляет данные уязвимыми на серверах"
https://ria.ru/20250806/yurist-2033592622.html
РИА Новости
Юрист рассказал, когда MAX будет обязателен к установке на новые смартфоны
Мессенджер MAX станет обязательным для предустановки на все новые смартфоны в РФ с 1 сентября, рассказал РИА Новости юрист, руководитель Центра правопорядка в... РИА Новости, 13.08.2025
🤡64💩28👎6👍5🤣3😁2❤1🤔1
Вице-президент Microsoft Дэвид Уэстон поделился смелыми прогнозами относительно будущего Windows-ПК. По мнению Уэстона, к 2030 году взаимодействия людей с компьютерами кардинально изменится.
В Microsoft говорят, что центральным элементом Windows станет искусственный интеллект. ИИ-модель Copilot уже интегрирована в каждый уголок системы, но в ближайшие 5 лет нейросеть проникнет еще глубже.
Дальше — интереснее. По словам Дэвида, из-за плотной интеграции ИИ в Windows людям не понадобятся ни мышки, ни клавиатуры. Компьютерами можно будет управлять голосом, силой мысли, зрением и другими мультимодальными способами. В Microsoft говорят, что мышки и клавиатуры в будущем покажутся «чужеродными». Ровно так же, как для современной молодежи кажутся рудиментами кнопки на телефонах.
https://www.pcgamer.com/software/windows/kiss-goodbye-to-your-keyboard-and-mouse-in-microsofts-vision-for-the-windows-os-in-2030-theyll-both-feel-as-alien-as-it-does-for-gen-z-to-use-dos/
В Microsoft говорят, что центральным элементом Windows станет искусственный интеллект. ИИ-модель Copilot уже интегрирована в каждый уголок системы, но в ближайшие 5 лет нейросеть проникнет еще глубже.
Дальше — интереснее. По словам Дэвида, из-за плотной интеграции ИИ в Windows людям не понадобятся ни мышки, ни клавиатуры. Компьютерами можно будет управлять голосом, силой мысли, зрением и другими мультимодальными способами. В Microsoft говорят, что мышки и клавиатуры в будущем покажутся «чужеродными». Ровно так же, как для современной молодежи кажутся рудиментами кнопки на телефонах.
https://www.pcgamer.com/software/windows/kiss-goodbye-to-your-keyboard-and-mouse-in-microsofts-vision-for-the-windows-os-in-2030-theyll-both-feel-as-alien-as-it-does-for-gen-z-to-use-dos/
PC Gamer
Kiss goodbye to your keyboard and mouse, in Microsoft's vision for the Windows OS in 2030 they'll both 'feel as alien as it does…
And it's all thanks to, yup you guessed it, AI.
🤡60😁6👍3🤬2🤮2💩2❤1👎1👻1