Forwarded from Dealer.AI
Anthropic делится современной "базой" для улучшения RAG.
Антропики продолжают образовывать разработчиков и предлагают "новый" хинт для работы с RAG - контекстуально дополненные вектора чанков текста.
Основная идея использовать не только микст bm25 и dense vector индексов, но и предварительно чанки дополнять информацией связанной с ними из разных частей документа, откуда эти чанки были нарезаны. Для этого используется Claude3 Haiku. Которому дают инструкцию сделать краткое примечение на 50-100токенов. Промпт имеет вид:
На выходе мы получаем чанк следующего формата:
Такой хинт позволил улучшить метрики до 35% (правда смотрят на reduce ошибки). Кстати, авторы также приготовили кукбук с кодом на поиграться тут.
Мое мнение: Мы тоже ведем экспы с LLMками для изменения текстов в RAG. Но работаем именно с перефразами запроса, для улучшения multi-hop метода. Однако, в отличии от метода "заметок" антропика, наш подход требует и тюна эмбеддера к таким стилям запроса и уже тогда е2е мы имеем ап метрик +6-10п.п.
Использование таких вот заметок очень помогает связать инфо о чанках с другими частями текста, которые ссылаются на них, ведь одна и таже инфа может обсуждаться в разных местах.
Помимо этого в блоге также есть полезная инфа про реранкинг, проблемы нарезки и выбора эмбеддера, но это уже известная база. Читаем, преисполняемся.
Антропики продолжают образовывать разработчиков и предлагают "новый" хинт для работы с RAG - контекстуально дополненные вектора чанков текста.
Основная идея использовать не только микст bm25 и dense vector индексов, но и предварительно чанки дополнять информацией связанной с ними из разных частей документа, откуда эти чанки были нарезаны. Для этого используется Claude3 Haiku. Которому дают инструкцию сделать краткое примечение на 50-100токенов. Промпт имеет вид:
<document> {{WHOLE_DOCUMENT}} </document> Here is the chunk we want to situate within the whole document <chunk> {{CHUNK_CONTENT}} </chunk> Please give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. Answer only with the succinct context and nothing else.
На выходе мы получаем чанк следующего формата:
original_chunk = "The company's revenue grew by 3% over the previous quarter." contextualized_chunk = "This chunk is from an SEC filing on ACME corp's performance in Q2 2023; the previous quarter's revenue was $314 million. The company's revenue grew by 3% over the previous quarter."
Такой хинт позволил улучшить метрики до 35% (правда смотрят на reduce ошибки). Кстати, авторы также приготовили кукбук с кодом на поиграться тут.
Мое мнение: Мы тоже ведем экспы с LLMками для изменения текстов в RAG. Но работаем именно с перефразами запроса, для улучшения multi-hop метода. Однако, в отличии от метода "заметок" антропика, наш подход требует и тюна эмбеддера к таким стилям запроса и уже тогда е2е мы имеем ап метрик +6-10п.п.
Использование таких вот заметок очень помогает связать инфо о чанках с другими частями текста, которые ссылаются на них, ведь одна и таже инфа может обсуждаться в разных местах.
Помимо этого в блоге также есть полезная инфа про реранкинг, проблемы нарезки и выбора эмбеддера, но это уже известная база. Читаем, преисполняемся.
Anthropic
Contextual Retrieval in AI Systems
Explore how Anthropic enhances AI systems through advanced contextual retrieval methods. Learn about our approach to improving information access and relevance in large language models.
Forwarded from gonzo-обзоры ML статей
Were RNNs All We Needed?
Leo Feng, Frederick Tung, Mohamed Osama Ahmed, Yoshua Bengio, Hossein Hajimirsadegh
Статья: https://arxiv.org/abs/2410.01201
Продолжение возрождения рекуррентных сетей. На сей раз снова классика (RNN/LSTM/GRU), а не новомодные SSM (которые ещё и не эквивалентны RNN, в смысле находятся в более простом классе сложности, см. https://www.youtube.com/watch?v=4-VXe1yPDjk).
RNN обладают фундаментальными преимуществами в виде требований к памяти. Они линейны (от размера последовательности) при обучении и константны при инференсе. Чего не скажешь про ванильные трансформеры, у которых квадратичная и линейная сложности соответственно. Один только большой минус был у RNN -- обучение не параллелилось. Обучались они последовательно через backpropagate through time (BPTT), что для длинных последовательностей очень медленно. Здесь преимущества трансформеров в виде параллелизации при всех их недостатках относительно сложности оказалось достаточно, чтобы их обучение скейлилось, и вот мы там где мы есть -- трансформеры вытеснили рекуррентные сети из своих экологических ниш и доминируют почти везде.
Работы последних пары лет устраняют этот недостаток RNN, на свет появились LRU, Griffin, RWKV, Mamba и прочие. Всё это современное разнообразие эффективно параллелится с помощью одного и того же алгоритма -- parallel prefix scan, он же parallel prefix sum (https://www.cs.cmu.edu/~guyb/papers/Ble93.pdf).
Авторы текущей работы адаптируют parallel scan для старых добрых LSTM/GRU, устраняя зависимость input, forget и update гейтов от скрытого состояния (H). Заодно и tanh нелинейность тоже убирают (привет, LRU!). Обычные ванильные RNN не рассматривают, ссылаясь на проблемы с затухающими и взрывающимися градиентами (но вспомним LRU от DeepMind, он как раз был вариацией обычной RNN, https://t.me/gonzo_ML/1734).
У LSTM, кстати, тоже было 100500 разных вариантов, например, peephole connections с дополнительной зависимостью гейтов от содержимого ячейки памяти -- помните, у LSTM по факту две переменные состояния, внутреннее состояние ячейки памяти (C, не видно снаружи) и скрытое состояние (H, hidden state, которое снаружи видно). По LSTM, на мой взгляд, есть два фундаментальных источника информации кроме оригинальных статей. Один -- это PhD диссертация Феликса Герса (Felix Gers, http://www.felixgers.de/papers/phd.pdf), который и добавил в архитектуру forget gate (изначально было только два других гейта) + peephole connections. Второй -- PhD диссертация Алекса Грейвса (Alex Graves, https://www.cs.toronto.edu/~graves/phd.pdf), который придумал CTC loss и многомерные RNN. Сила хороших PhD. Ну да ладно.
Авторы получают минималистичные версии LSTM и GRU (minLSTM и minGRU соответственно), которые требуют меньше параметров, параллелятся при обучении и дают хорошее качество. Надо вспомнить, что было в истории много других заходов на рекуррентные сети с быстрым параллельным обучением. Например, QRNN (https://arxiv.org/abs/1611.01576, она более отличается благодаря наличию свёрток) или SRU (https://arxiv.org/abs/1709.02755).
По сути работы авторы посмотрели на оригинальные архитектуры LSTM и GRU и убрали вещи, которые мешали реализовать их обучение через parallel scan.
В GRU убралась зависимость update gate (z) и скрытого состояния (h) от предыдущего значения h. Reset gate ушёл совсем. Затем ушёл tanh при вычислении финального значения h. Теперь нужно O(2*d_h*d_x) параметров вместо O(3*d_h(d_x + d_h)) в оригинальном GRU.
В LSTM также ушла зависимость от предыдущего состяния h в forget и input гейтах, а также в содержимом ячейки памяти c. Из вычисления c также ушёл tanh, и в итоге дропнули output gate и саму ячейку c, осталось только h. minLSTM требует O(3*d_h*d_x) параметров вместо O(4*d_h(d_x + d_h)) в LSTM.
По времени вычисления новые модели minLSTM/minGRU сравнимы с Mamba и, например, на длине последовательности в 512 элементов быстрее оригиналов в LSTM/GRU в 235 и 175 раз. На больших длинах ещё солиднее.
Leo Feng, Frederick Tung, Mohamed Osama Ahmed, Yoshua Bengio, Hossein Hajimirsadegh
Статья: https://arxiv.org/abs/2410.01201
Продолжение возрождения рекуррентных сетей. На сей раз снова классика (RNN/LSTM/GRU), а не новомодные SSM (которые ещё и не эквивалентны RNN, в смысле находятся в более простом классе сложности, см. https://www.youtube.com/watch?v=4-VXe1yPDjk).
RNN обладают фундаментальными преимуществами в виде требований к памяти. Они линейны (от размера последовательности) при обучении и константны при инференсе. Чего не скажешь про ванильные трансформеры, у которых квадратичная и линейная сложности соответственно. Один только большой минус был у RNN -- обучение не параллелилось. Обучались они последовательно через backpropagate through time (BPTT), что для длинных последовательностей очень медленно. Здесь преимущества трансформеров в виде параллелизации при всех их недостатках относительно сложности оказалось достаточно, чтобы их обучение скейлилось, и вот мы там где мы есть -- трансформеры вытеснили рекуррентные сети из своих экологических ниш и доминируют почти везде.
Работы последних пары лет устраняют этот недостаток RNN, на свет появились LRU, Griffin, RWKV, Mamba и прочие. Всё это современное разнообразие эффективно параллелится с помощью одного и того же алгоритма -- parallel prefix scan, он же parallel prefix sum (https://www.cs.cmu.edu/~guyb/papers/Ble93.pdf).
Авторы текущей работы адаптируют parallel scan для старых добрых LSTM/GRU, устраняя зависимость input, forget и update гейтов от скрытого состояния (H). Заодно и tanh нелинейность тоже убирают (привет, LRU!). Обычные ванильные RNN не рассматривают, ссылаясь на проблемы с затухающими и взрывающимися градиентами (но вспомним LRU от DeepMind, он как раз был вариацией обычной RNN, https://t.me/gonzo_ML/1734).
У LSTM, кстати, тоже было 100500 разных вариантов, например, peephole connections с дополнительной зависимостью гейтов от содержимого ячейки памяти -- помните, у LSTM по факту две переменные состояния, внутреннее состояние ячейки памяти (C, не видно снаружи) и скрытое состояние (H, hidden state, которое снаружи видно). По LSTM, на мой взгляд, есть два фундаментальных источника информации кроме оригинальных статей. Один -- это PhD диссертация Феликса Герса (Felix Gers, http://www.felixgers.de/papers/phd.pdf), который и добавил в архитектуру forget gate (изначально было только два других гейта) + peephole connections. Второй -- PhD диссертация Алекса Грейвса (Alex Graves, https://www.cs.toronto.edu/~graves/phd.pdf), который придумал CTC loss и многомерные RNN. Сила хороших PhD. Ну да ладно.
Авторы получают минималистичные версии LSTM и GRU (minLSTM и minGRU соответственно), которые требуют меньше параметров, параллелятся при обучении и дают хорошее качество. Надо вспомнить, что было в истории много других заходов на рекуррентные сети с быстрым параллельным обучением. Например, QRNN (https://arxiv.org/abs/1611.01576, она более отличается благодаря наличию свёрток) или SRU (https://arxiv.org/abs/1709.02755).
По сути работы авторы посмотрели на оригинальные архитектуры LSTM и GRU и убрали вещи, которые мешали реализовать их обучение через parallel scan.
В GRU убралась зависимость update gate (z) и скрытого состояния (h) от предыдущего значения h. Reset gate ушёл совсем. Затем ушёл tanh при вычислении финального значения h. Теперь нужно O(2*d_h*d_x) параметров вместо O(3*d_h(d_x + d_h)) в оригинальном GRU.
В LSTM также ушла зависимость от предыдущего состяния h в forget и input гейтах, а также в содержимом ячейки памяти c. Из вычисления c также ушёл tanh, и в итоге дропнули output gate и саму ячейку c, осталось только h. minLSTM требует O(3*d_h*d_x) параметров вместо O(4*d_h(d_x + d_h)) в LSTM.
По времени вычисления новые модели minLSTM/minGRU сравнимы с Mamba и, например, на длине последовательности в 512 элементов быстрее оригиналов в LSTM/GRU в 235 и 175 раз. На больших длинах ещё солиднее.
Forwarded from Aspiring Data Science (Anatoly Alekseev)
#optimization #guroby #gurobipy_pandas #guroby_ml
Что примечательно, в качестве ограничений оптимизационной модели можно использовать ... регрессоры!
https://www.youtube.com/watch?v=-xXUVM2UJlg
Что примечательно, в качестве ограничений оптимизационной модели можно использовать ... регрессоры!
https://www.youtube.com/watch?v=-xXUVM2UJlg
YouTube
Prescriptive Analytics in the Python Ecosystem with Gurobi [PyCon DE & PyData Berlin 2024]
🔊 Recorded at PyCon DE & PyData Berlin 2024, 24.04.2024
https://2024.pycon.de/program/KCYDM9/
🎓 Watch as Dr. Robert Luce introduces you to the world of prescriptive analytics with Gurobi in Python, enhancing your optimization workflows with mathematical…
https://2024.pycon.de/program/KCYDM9/
🎓 Watch as Dr. Robert Luce introduces you to the world of prescriptive analytics with Gurobi in Python, enhancing your optimization workflows with mathematical…
Forwarded from MISTER SOSISTER ~ CHINESE TIME OF MY LIFE
Люблю такие контринтуитивные но при этом рабочие методы. Всем фантазерам которые строят звездолеты посвящается.
При этом, говоря про звездолеты и компании которые меняют мир, я много об этом думал. Например, почему кто-то питчит плагин для екоммерса, а кто-то ракеты до Марса, хотя ни у того ни у того еще ничего нет.
И мне кажется ключевое здесь track record. Для того чтобы строить большие проекты нужно доказать что вы можете строить маленькие. Даже в венчуре и мире безумных идей есть рациональная прогрессия.
Если вы студент, то мысль что вы сможете построить прибыльную компанию уже достаточно безумна, а вот если вы успешно построили самолет, то тут уже могут дать деньги и на звездолет.
Пет-проекты кажется далеки от того что делает Илон Маск, но они несомненно к этому приближают.
Ребята в комментах недоумевают: Кто будет покупать HEIC to JPG конвертер, если он есть в айфоне, да ещё и бесплатно?
📍 Разгадка вот в чем:
Помните, с чего мы начинаем? Ищем существующий спрос в поиске.
Т.е. это идея продукта была взята не из головы. А на основе цифр по запросам реальных людей.
И тут уже кроется половина разгадки. Если люди это ищут в поиске, значит людей что-то не устраивает в текущих решениях.
📍 А что чаще всего их не устраивает в текущих решениях?
1) Самое банальное. Люди просто не знают о текущих решениях.
2) Текущие решения могут быть для них переусложнены.
Вспомните, как часто вы не можете найти нужную функцию в ОС?
Например, чтобы сделать конвертацию в JPG на айфоне нужно еще догадаться найти это: Фото → Поделиться → Параметры → Наиболее совместимый формат.
Конечно, многие не находят!
И люди идут гуглить и быстро находят наше приложение, заточенное конкретно под эту функцию.
А еще фокус на одной фиче позволил сделать наше приложение просто удобнее:
Например, конвертация работает на компьютере (и некоторым конвертация нужна именно там, а не на мобайле). Также там встроена массовая конвертация файлов и т.д.
И 1-2% американцев платят за такую пользу, потому что при ставке $50/час у некоторых них, проще заплатить $3, чем потратить час на поиск бесплатного (не факт, что хорошего) аналога.
Короче, выбрать одну маленькую фичу, которая есть в ОС, и запустить ее в отдельном продукте — не просто можно. Это капец как нужно! И кстати, это один из наших методов поиска идей)
При этом, говоря про звездолеты и компании которые меняют мир, я много об этом думал. Например, почему кто-то питчит плагин для екоммерса, а кто-то ракеты до Марса, хотя ни у того ни у того еще ничего нет.
И мне кажется ключевое здесь track record. Для того чтобы строить большие проекты нужно доказать что вы можете строить маленькие. Даже в венчуре и мире безумных идей есть рациональная прогрессия.
Если вы студент, то мысль что вы сможете построить прибыльную компанию уже достаточно безумна, а вот если вы успешно построили самолет, то тут уже могут дать деньги и на звездолет.
Пет-проекты кажется далеки от того что делает Илон Маск, но они несомненно к этому приближают.
Forwarded from Тимлид Очевидность | Евгений Антонов
Я принес. Дмитрий Болдырев и групповая динамика
В последнее время видел ссылки на эти видео в нескольких каналах, а тут еще и многоуважаемый подписчик в чатик занес.
Про групповую динамику я в целом знаю и понимаю. Вот эти всякие форминги, шторминги, норминги, перформинги.
Казалось бы, про это можно за 5 минут прочитать статейку, или телеграм-пост. Но такое пятиминутное чтение дает столь же поверхностное понимание, которое и глубины не имеет, и выветрится легко.
У Дмитрия же каждой стадии уделено целое видео. Да еще и с замечательным художественным примером про бригаду электромонтажников в тайге.
Пока вышло только два видео:
1. Про формирование команды https://www.youtube.com/watch?v=4BXv3qYlTYI
2. И про шторминг https://www.youtube.com/watch?v=ebJzCUrjqvQ
Смотрится очень увлекательно, как будто сериал с интересным сюжетом и живыми жизненными персонажами. Заодно много деталей про групповую динамику поглощаешь.
Я посмотрел все два видео за один присест и жду продолжения 🙂
В последнее время видел ссылки на эти видео в нескольких каналах, а тут еще и многоуважаемый подписчик в чатик занес.
Про групповую динамику я в целом знаю и понимаю. Вот эти всякие форминги, шторминги, норминги, перформинги.
Казалось бы, про это можно за 5 минут прочитать статейку, или телеграм-пост. Но такое пятиминутное чтение дает столь же поверхностное понимание, которое и глубины не имеет, и выветрится легко.
У Дмитрия же каждой стадии уделено целое видео. Да еще и с замечательным художественным примером про бригаду электромонтажников в тайге.
Пока вышло только два видео:
1. Про формирование команды https://www.youtube.com/watch?v=4BXv3qYlTYI
2. И про шторминг https://www.youtube.com/watch?v=ebJzCUrjqvQ
Смотрится очень увлекательно, как будто сериал с интересным сюжетом и живыми жизненными персонажами. Заодно много деталей про групповую динамику поглощаешь.
Я посмотрел все два видео за один присест и жду продолжения 🙂
YouTube
Как группа становится командой, часть 1: Формирование группы
00:00:00 - Введение
00:04:20 - Описание кейса
00:11:00 - Общий обзор процесса командообразования
00:18:23 - Возникновение рабочей группы
00:24:35 - Знакомство участников
00:27:26 - Организация и начало совместной работы
00:35:10 - Факторы, влияющие на поведение…
00:04:20 - Описание кейса
00:11:00 - Общий обзор процесса командообразования
00:18:23 - Возникновение рабочей группы
00:24:35 - Знакомство участников
00:27:26 - Организация и начало совместной работы
00:35:10 - Факторы, влияющие на поведение…
Forwarded from Data Engineering / Инженерия данных / Data Engineer / DWH
Автоматизация обеспечения качества кода на языке Python
В первой части статьи обсуждаются концепции качества кода и его важность, во второй — предложено пошаговое руководство по настройке линтинга, форматирования и проверки типов с помощью инструментов, таких как flake8 и Black, что помогает ускорить процессы разработки и избежать ошибок на ранних этапах.
https://habr.com/ru/companies/otus/articles/750214/
В первой части статьи обсуждаются концепции качества кода и его важность, во второй — предложено пошаговое руководство по настройке линтинга, форматирования и проверки типов с помощью инструментов, таких как flake8 и Black, что помогает ускорить процессы разработки и избежать ошибок на ранних этапах.
https://habr.com/ru/companies/otus/articles/750214/
Хабр
Автоматизация обеспечения качества кода на языке Python
Далее в статье я поясню, что я понимаю под термином «качество кода» и какую пользу оно приносит разработчикам. В первой половине статьи я раскрою общие концепции и рабочие процессы, применимые к...
Forwarded from эйай ньюз
This media is not supported in your browser
VIEW IN TELEGRAM
Мы наконец выкатили нашу 30B модель для генерации видео! И я очень рад, что являюсь одним из контрибьютеров в этот грандиозный проект.
Bye-bye SORA. Movie Gen – это новая SOTA в генерации видео по тексту!
Модель генерит 16-секундные видео в 1080p, 16FPS.
Общая длина контекста - 73к видео токенов (256 кадров).
Выкатываем ещё:
- 13B модель для генерации видео одновременно со звуком в 48kHz.
- И ещё тюны для редактирования видео и генерации персонализированных видосов с вашим лицом по заданному фото.
В статье мы описываем много новых штук по части архитектуры, рецептов тренировки больших видео-моделей, параллелизации, увеличения скорости инференса, оценки качества, курирования данных и других трюков. В статье очень много деталей!
Сайт
Блогпост
Подробная статья (92 стр)
Скоро ждите ещё дополнительный пост с разбором.
@ai_newz
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from RU Dataset | Датасеты
Недвижимость
Датасеты от Росреестра
Данные о кадастровой стоимости объектов недвижимости в разрезе территориальной принадлежности
Данные о ценах регистрируемых сделок (по отчуждению) с объектами недвижимости в разрезе территориальной принадлежности
Данные о размере арендной платы за объекты недвижимости в разрезе территориальной принадлежности (в отношении договоров аренды, подлежащих государственной регистрации в соответствии с действующим законодательством) в разрезе территориальной принадлежности
Ссылка (https://files.kadastr.ru/s/RXcEoq2gqfKJRRF)
Демография в России: объединенные панельные данные за 1990-2019 годы
Крупные города России: объединенные данные по основным социально-экономическим показателям за 1985-2019 гг.
Список кадастровых кварталов России на конец 2021 года
Публичная кадастровая карта России
Реформа ЖКХ.
Около 11 миллионов объявлений недвижимости в России за 2021 год
Около 540 тысяч объявлений недвижимости в России за 2018 - 2021 года.
API для доступа к объявлениям с avito.ru
Парсер объявлений недвижимости России
Данные от NextGis
@dataset_ru
Датасеты от Росреестра
Данные о кадастровой стоимости объектов недвижимости в разрезе территориальной принадлежности
Данные о ценах регистрируемых сделок (по отчуждению) с объектами недвижимости в разрезе территориальной принадлежности
Данные о размере арендной платы за объекты недвижимости в разрезе территориальной принадлежности (в отношении договоров аренды, подлежащих государственной регистрации в соответствии с действующим законодательством) в разрезе территориальной принадлежности
Ссылка (https://files.kadastr.ru/s/RXcEoq2gqfKJRRF)
Демография в России: объединенные панельные данные за 1990-2019 годы
Крупные города России: объединенные данные по основным социально-экономическим показателям за 1985-2019 гг.
Список кадастровых кварталов России на конец 2021 года
Публичная кадастровая карта России
Реформа ЖКХ.
Около 11 миллионов объявлений недвижимости в России за 2021 год
Около 540 тысяч объявлений недвижимости в России за 2018 - 2021 года.
API для доступа к объявлениям с avito.ru
Парсер объявлений недвижимости России
Данные от NextGis
@dataset_ru
Forwarded from DevFM
Ведение дел – мой опыт
Часто начинающие тим лиды имеют сложности с тайм-менеджментом. У них появляются новые зоны ответственности, новые задачи, интерапты, о которых они раньше и не слышали, больше общения с людьми. В общем, совершенно новый опыт.
Что уж говорить, и у опытных ребят бывают сложности с тайм-менеджментом, когда наваливается куча всякого.
И мы на 121-встречах обсуждаем эти проблемы, думаем как решить, потому что ситуации в целом типовые, а вот решения могут быть разные.
Одним из рецептов является последовательное и структурированное ведение задач. Результатом встреч с разными ребятами стала эта статья, где я описал метод, который уже давно использую для ведения задач, как рабочих, так и личных.
Полезно всем, у кого есть запрос на понятное и упорядоченное ведение своих дел.
Лайки, конечно же, приветствуются.
#devfm #edu #tools
Часто начинающие тим лиды имеют сложности с тайм-менеджментом. У них появляются новые зоны ответственности, новые задачи, интерапты, о которых они раньше и не слышали, больше общения с людьми. В общем, совершенно новый опыт.
Что уж говорить, и у опытных ребят бывают сложности с тайм-менеджментом, когда наваливается куча всякого.
И мы на 121-встречах обсуждаем эти проблемы, думаем как решить, потому что ситуации в целом типовые, а вот решения могут быть разные.
Одним из рецептов является последовательное и структурированное ведение задач. Результатом встреч с разными ребятами стала эта статья, где я описал метод, который уже давно использую для ведения задач, как рабочих, так и личных.
Полезно всем, у кого есть запрос на понятное и упорядоченное ведение своих дел.
Лайки, конечно же, приветствуются.
#devfm #edu #tools
Хабр
Ведение дел – мой опыт
Хочу поделиться с вами опытом ведения списка дел. Рассказывать буду на примере рабочих задач, но этот же метод я применяю и для повседневных дел. Все советы не привязаны к конкретному инструменту, и...