From 6d94977a66d37221f236ba08020bf766789f923a Mon Sep 17 00:00:00 2001 From: Artyom Boyko Date: Mon, 21 Apr 2025 13:27:06 +0300 Subject: [PATCH 1/4] Renamed the folders containing the translation and made appropriate adjustments to the CI/CD files of the documentation build. --- .github/workflows/build_documentation.yml | 2 +- .github/workflows/build_pr_documentation.yml | 2 +- units/{ru-RU => ru}/_toctree.yml | 0 units/{ru-RU => ru}/bonus-unit1/conclusion.mdx | 0 units/{ru-RU => ru}/bonus-unit1/fine-tuning.mdx | 0 units/{ru-RU => ru}/bonus-unit1/introduction.mdx | 0 units/{ru-RU => ru}/bonus-unit1/what-is-function-calling.mdx | 0 units/{ru-RU => ru}/communication/live1.mdx | 0 units/{ru-RU => ru}/communication/next-units.mdx | 0 units/{ru-RU => ru}/unit0/discord101.mdx | 0 units/{ru-RU => ru}/unit0/introduction.mdx | 0 units/{ru-RU => ru}/unit0/onboarding.mdx | 0 units/{ru-RU => ru}/unit1/README.md | 0 units/{ru-RU => ru}/unit1/actions.mdx | 0 units/{ru-RU => ru}/unit1/agent-steps-and-structure.mdx | 0 units/{ru-RU => ru}/unit1/conclusion.mdx | 0 units/{ru-RU => ru}/unit1/dummy-agent-library.mdx | 0 units/{ru-RU => ru}/unit1/final-quiz.mdx | 0 units/{ru-RU => ru}/unit1/get-your-certificate.mdx | 0 units/{ru-RU => ru}/unit1/introduction.mdx | 0 units/{ru-RU => ru}/unit1/messages-and-special-tokens.mdx | 0 units/{ru-RU => ru}/unit1/observations.mdx | 0 units/{ru-RU => ru}/unit1/quiz1.mdx | 0 units/{ru-RU => ru}/unit1/quiz2.mdx | 0 units/{ru-RU => ru}/unit1/thoughts.mdx | 0 units/{ru-RU => ru}/unit1/tools.mdx | 0 units/{ru-RU => ru}/unit1/tutorial.mdx | 0 units/{ru-RU => ru}/unit1/what-are-agents.mdx | 0 units/{ru-RU => ru}/unit1/what-are-llms.mdx | 0 29 files changed, 2 insertions(+), 2 deletions(-) rename units/{ru-RU => ru}/_toctree.yml (100%) rename units/{ru-RU => ru}/bonus-unit1/conclusion.mdx (100%) rename units/{ru-RU => ru}/bonus-unit1/fine-tuning.mdx (100%) rename units/{ru-RU => ru}/bonus-unit1/introduction.mdx (100%) rename units/{ru-RU => ru}/bonus-unit1/what-is-function-calling.mdx (100%) rename units/{ru-RU => ru}/communication/live1.mdx (100%) rename units/{ru-RU => ru}/communication/next-units.mdx (100%) rename units/{ru-RU => ru}/unit0/discord101.mdx (100%) rename units/{ru-RU => ru}/unit0/introduction.mdx (100%) rename units/{ru-RU => ru}/unit0/onboarding.mdx (100%) rename units/{ru-RU => ru}/unit1/README.md (100%) rename units/{ru-RU => ru}/unit1/actions.mdx (100%) rename units/{ru-RU => ru}/unit1/agent-steps-and-structure.mdx (100%) rename units/{ru-RU => ru}/unit1/conclusion.mdx (100%) rename units/{ru-RU => ru}/unit1/dummy-agent-library.mdx (100%) rename units/{ru-RU => ru}/unit1/final-quiz.mdx (100%) rename units/{ru-RU => ru}/unit1/get-your-certificate.mdx (100%) rename units/{ru-RU => ru}/unit1/introduction.mdx (100%) rename units/{ru-RU => ru}/unit1/messages-and-special-tokens.mdx (100%) rename units/{ru-RU => ru}/unit1/observations.mdx (100%) rename units/{ru-RU => ru}/unit1/quiz1.mdx (100%) rename units/{ru-RU => ru}/unit1/quiz2.mdx (100%) rename units/{ru-RU => ru}/unit1/thoughts.mdx (100%) rename units/{ru-RU => ru}/unit1/tools.mdx (100%) rename units/{ru-RU => ru}/unit1/tutorial.mdx (100%) rename units/{ru-RU => ru}/unit1/what-are-agents.mdx (100%) rename units/{ru-RU => ru}/unit1/what-are-llms.mdx (100%) diff --git a/.github/workflows/build_documentation.yml b/.github/workflows/build_documentation.yml index beed36e8c..a96eeb331 100644 --- a/.github/workflows/build_documentation.yml +++ b/.github/workflows/build_documentation.yml @@ -14,6 +14,6 @@ jobs: package_name: agents-course path_to_docs: agents-course/units/ additional_args: --not_python_module - languages: en zh-CN ru-RU vi + languages: en zh-CN ru vi secrets: hf_token: ${{ secrets.HF_DOC_BUILD_PUSH }} diff --git a/.github/workflows/build_pr_documentation.yml b/.github/workflows/build_pr_documentation.yml index a96c3636a..e76d5f8c4 100644 --- a/.github/workflows/build_pr_documentation.yml +++ b/.github/workflows/build_pr_documentation.yml @@ -17,5 +17,5 @@ jobs: package_name: agents-course path_to_docs: agents-course/units/ additional_args: --not_python_module - languages: en zh-CN ru-RU vi + languages: en zh-CN ru vi diff --git a/units/ru-RU/_toctree.yml b/units/ru/_toctree.yml similarity index 100% rename from units/ru-RU/_toctree.yml rename to units/ru/_toctree.yml diff --git a/units/ru-RU/bonus-unit1/conclusion.mdx b/units/ru/bonus-unit1/conclusion.mdx similarity index 100% rename from units/ru-RU/bonus-unit1/conclusion.mdx rename to units/ru/bonus-unit1/conclusion.mdx diff --git a/units/ru-RU/bonus-unit1/fine-tuning.mdx b/units/ru/bonus-unit1/fine-tuning.mdx similarity index 100% rename from units/ru-RU/bonus-unit1/fine-tuning.mdx rename to units/ru/bonus-unit1/fine-tuning.mdx diff --git a/units/ru-RU/bonus-unit1/introduction.mdx b/units/ru/bonus-unit1/introduction.mdx similarity index 100% rename from units/ru-RU/bonus-unit1/introduction.mdx rename to units/ru/bonus-unit1/introduction.mdx diff --git a/units/ru-RU/bonus-unit1/what-is-function-calling.mdx b/units/ru/bonus-unit1/what-is-function-calling.mdx similarity index 100% rename from units/ru-RU/bonus-unit1/what-is-function-calling.mdx rename to units/ru/bonus-unit1/what-is-function-calling.mdx diff --git a/units/ru-RU/communication/live1.mdx b/units/ru/communication/live1.mdx similarity index 100% rename from units/ru-RU/communication/live1.mdx rename to units/ru/communication/live1.mdx diff --git a/units/ru-RU/communication/next-units.mdx b/units/ru/communication/next-units.mdx similarity index 100% rename from units/ru-RU/communication/next-units.mdx rename to units/ru/communication/next-units.mdx diff --git a/units/ru-RU/unit0/discord101.mdx b/units/ru/unit0/discord101.mdx similarity index 100% rename from units/ru-RU/unit0/discord101.mdx rename to units/ru/unit0/discord101.mdx diff --git a/units/ru-RU/unit0/introduction.mdx b/units/ru/unit0/introduction.mdx similarity index 100% rename from units/ru-RU/unit0/introduction.mdx rename to units/ru/unit0/introduction.mdx diff --git a/units/ru-RU/unit0/onboarding.mdx b/units/ru/unit0/onboarding.mdx similarity index 100% rename from units/ru-RU/unit0/onboarding.mdx rename to units/ru/unit0/onboarding.mdx diff --git a/units/ru-RU/unit1/README.md b/units/ru/unit1/README.md similarity index 100% rename from units/ru-RU/unit1/README.md rename to units/ru/unit1/README.md diff --git a/units/ru-RU/unit1/actions.mdx b/units/ru/unit1/actions.mdx similarity index 100% rename from units/ru-RU/unit1/actions.mdx rename to units/ru/unit1/actions.mdx diff --git a/units/ru-RU/unit1/agent-steps-and-structure.mdx b/units/ru/unit1/agent-steps-and-structure.mdx similarity index 100% rename from units/ru-RU/unit1/agent-steps-and-structure.mdx rename to units/ru/unit1/agent-steps-and-structure.mdx diff --git a/units/ru-RU/unit1/conclusion.mdx b/units/ru/unit1/conclusion.mdx similarity index 100% rename from units/ru-RU/unit1/conclusion.mdx rename to units/ru/unit1/conclusion.mdx diff --git a/units/ru-RU/unit1/dummy-agent-library.mdx b/units/ru/unit1/dummy-agent-library.mdx similarity index 100% rename from units/ru-RU/unit1/dummy-agent-library.mdx rename to units/ru/unit1/dummy-agent-library.mdx diff --git a/units/ru-RU/unit1/final-quiz.mdx b/units/ru/unit1/final-quiz.mdx similarity index 100% rename from units/ru-RU/unit1/final-quiz.mdx rename to units/ru/unit1/final-quiz.mdx diff --git a/units/ru-RU/unit1/get-your-certificate.mdx b/units/ru/unit1/get-your-certificate.mdx similarity index 100% rename from units/ru-RU/unit1/get-your-certificate.mdx rename to units/ru/unit1/get-your-certificate.mdx diff --git a/units/ru-RU/unit1/introduction.mdx b/units/ru/unit1/introduction.mdx similarity index 100% rename from units/ru-RU/unit1/introduction.mdx rename to units/ru/unit1/introduction.mdx diff --git a/units/ru-RU/unit1/messages-and-special-tokens.mdx b/units/ru/unit1/messages-and-special-tokens.mdx similarity index 100% rename from units/ru-RU/unit1/messages-and-special-tokens.mdx rename to units/ru/unit1/messages-and-special-tokens.mdx diff --git a/units/ru-RU/unit1/observations.mdx b/units/ru/unit1/observations.mdx similarity index 100% rename from units/ru-RU/unit1/observations.mdx rename to units/ru/unit1/observations.mdx diff --git a/units/ru-RU/unit1/quiz1.mdx b/units/ru/unit1/quiz1.mdx similarity index 100% rename from units/ru-RU/unit1/quiz1.mdx rename to units/ru/unit1/quiz1.mdx diff --git a/units/ru-RU/unit1/quiz2.mdx b/units/ru/unit1/quiz2.mdx similarity index 100% rename from units/ru-RU/unit1/quiz2.mdx rename to units/ru/unit1/quiz2.mdx diff --git a/units/ru-RU/unit1/thoughts.mdx b/units/ru/unit1/thoughts.mdx similarity index 100% rename from units/ru-RU/unit1/thoughts.mdx rename to units/ru/unit1/thoughts.mdx diff --git a/units/ru-RU/unit1/tools.mdx b/units/ru/unit1/tools.mdx similarity index 100% rename from units/ru-RU/unit1/tools.mdx rename to units/ru/unit1/tools.mdx diff --git a/units/ru-RU/unit1/tutorial.mdx b/units/ru/unit1/tutorial.mdx similarity index 100% rename from units/ru-RU/unit1/tutorial.mdx rename to units/ru/unit1/tutorial.mdx diff --git a/units/ru-RU/unit1/what-are-agents.mdx b/units/ru/unit1/what-are-agents.mdx similarity index 100% rename from units/ru-RU/unit1/what-are-agents.mdx rename to units/ru/unit1/what-are-agents.mdx diff --git a/units/ru-RU/unit1/what-are-llms.mdx b/units/ru/unit1/what-are-llms.mdx similarity index 100% rename from units/ru-RU/unit1/what-are-llms.mdx rename to units/ru/unit1/what-are-llms.mdx From 167169341ad248c5434a48b2d9fe93017bd58dda Mon Sep 17 00:00:00 2001 From: Artyom Boyko Date: Mon, 21 Apr 2025 14:29:16 +0300 Subject: [PATCH 2/4] I read again the already published unit 0. Made are minor edits to improve the readability of the material. --- units/ru/unit0/discord101.mdx | 4 ++-- units/ru/unit0/introduction.mdx | 35 ++++++++++++++++----------------- units/ru/unit0/onboarding.mdx | 18 ++++++++--------- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/units/ru/unit0/discord101.mdx b/units/ru/unit0/discord101.mdx index 319f9ebaa..b84886b1b 100644 --- a/units/ru/unit0/discord101.mdx +++ b/units/ru/unit0/discord101.mdx @@ -18,13 +18,13 @@ Мы создали 4 канала для курса по Агентам: - `agents-course-announcements`: для получения **последней информации о курсе**. -- `🎓-agents-course-general`: для **обсуждения общих вопросов и свободного общения**. +- `agents-course-general`: для **обсуждения общих вопросов и свободного общения**🎓. - `agents-course-questions`: чтобы **задавать вопросы и помочь своим однокурсникам**. - `agents-course-showcase`: для **демонстрации своих лучших агентов** . Кроме того, вам могут пригодится: -- `smolagents`: для **обсуждения и поддержки библиотеки**. +- `smolagents`: для **обсуждения и получения поддержки по библиотеке**. ## Советы по эффективному использованию Discord diff --git a/units/ru/unit0/introduction.mdx b/units/ru/unit0/introduction.mdx index 3edba87f9..22b49c4ae 100644 --- a/units/ru/unit0/introduction.mdx +++ b/units/ru/unit0/introduction.mdx @@ -8,24 +8,24 @@ -Добро пожаловать на самую захватывающую тему в ИИ на сегодняшний день: **Агенты**! +Добро пожаловать в самую захватывающую на сегодняшний день тему в AI: **Агенты**! Этот бесплатный курс проведет вас по пути **от новичка до эксперта** в понимании, использовании и создании ИИ агентов. -Этот первый блок поможет вам освоиться в материале: +Этот первый блок поможет вам освоиться в следующем материале: -- Ознакомьтесь с **учебным планом курса**. -- **Выберите путь**, по которому вы собираетесь идти (самооценка или процесс сертификации). -- **Получите дополнительную информацию о процессе сертификации и сроках**. -- Познакомьтесь с командой, создавшей этот курс. -- Создайте свою учетную запись **Hugging Face**. -- **Зарегистрируйтесь на нашем сервере Discord** и познакомьтесь со своими одноклассниками и с нами. +- Ознакомится с **учебным планом курса**. +- **Выбрать путь**, по которому вы собираетесь идти (самооценка или процесс сертификации). +- **Получить дополнительную информацию о процессе сертификации и сроках**. +- Познакомиться с командой, создавшей этот курс. +- Создать свою учетную запись **Hugging Face**. +- **Зарегистрироваться на нашем сервере Discord** и познакомится со своими однокурсниками и с нами. Давайте начнем! ## Что ожидать от этого курса? [[expect]] -В этом курсе вы узнаете: +В этом курсе вы: - 📖 Изучите AI агентов в **теории, дизайне и на практике.** - 🧑‍💻 Научитесь **использовать известные библиотеки ИИ-агентов**, такие как [smolagents](https://huggingface.co/docs/smolagents/en/index), [LangChain](https://www.langchain.com/), и [LlamaIndex](https://www.llamaindex.ai/). @@ -45,10 +45,10 @@ Курс состоит из: -- *Фундаментальные разделы*: здесь вы изучите **концепции агентов в теории**. -- *Практические занятия: здесь вы научитесь **использовать готовые библиотеки агентов ИИ** для обучения агентов в уникальных условиях. Эти практические секции будут представлять собой **пространства (Spaces) Hugging Face** с предварительно настроенной средой. -- *Задания на применение*: в них вы будете применять изученные концепции для решения реальной проблемы, которую вы выберете сами. -- *Соревнования*: вы сможете "отправить" своего агента на соревнование с другими агентами. Также будет [таблица результатов](https://huggingface.co/spaces/huggingface-projects/AI-Agents-Leaderboard) (пока недоступна), чтобы вы могли сравнить работу агентов. +- *Фундаментальных разделы*: здесь вы изучите **концепции агентов в теории**. +- *Практических занятия: здесь вы научитесь **использовать готовые библиотеки агентов ИИ** для обучения агентов в уникальных условиях. Эти практические секции будут представлять собой **пространства (Spaces) Hugging Face** с предварительно настроенной средой. +- *Заданий на применение*: в них вы будете применять изученные концепции для решения реальной проблемы, которую вы выберете сами. +- *Соревнований*: вы сможете "отправить" своего агента на соревновании с другими агентами. Также будет [таблица результатов](https://huggingface.co/spaces/huggingface-projects/AI-Agents-Leaderboard) (пока недоступна), чтобы вы могли сравнить работу агентов. Этот **курс - живой проект, развивающийся благодаря вашим отзывам и вкладу!** Не стесняйтесь [открывать проблемы (issues) и PR на GitHub](https://github.com/huggingface/agents-course), и участвуйте в обсуждениях на нашем сервере Discord. @@ -61,7 +61,7 @@ | Раздел | Тема | Описание | | :---- | :---- | :---- | | 0 | Вводная часть | Подготовим для вас инструменты и платформы, которые вы будете использовать. | -| 1 | Основы работы агента | Объясньясняем инструменты, мысли, действия, наблюдения и их форматы. Расскажем о LLM, сообщениях, специальных токенах и шаблонах чата. Продемонстрируем простой пример использования функций python в качестве инструментов. | +| 1 | Основы работы агента | Объясним инструменты, мысли, действия, наблюдения и их форматы. Расскажем о LLM, сообщениях, специальных токенах и шаблонах чата. Продемонстрируем простой пример использования функций python в качестве инструментов. | | 2 | Фреймворки | Разберемся, как реализованы основные принципы в популярных библиотеках: smolagents, LangGraph, LLamaIndex | | 3 | Примеры использования | Давайте создадим несколько реальных примеров использования ( мы открыты для PR 🤗 от опытных создателей агентов) | | 4 | Итоговое задание | Создадим агента для выбранного бенчмарка и докажем свое знание агентов в таблице лидеров среди студентов 🚀 | @@ -73,7 +73,7 @@ Чтобы пройти этот курс, вы должны иметь: - Базовые знания Python -- Базовые знания LLM (в Разделе 1 мы рассказываем о том, что это такое) +- Базовые знания LLM (в Разделе 1 мы расскажем о том, что это такое) ## Какие инструменты мне понадобятся? [[tools]] @@ -107,7 +107,7 @@ Поскольку есть крайний срок, мы предлагаем вам рекомендуемый темп: -Рекомендованный темп +Рекомендуемый темп ## Как извлечь максимальную пользу из курса? [[advice]] @@ -133,7 +133,7 @@ ### Бен Бертеншоу (Ben Burtenshaw) -Ben is a machine learning engineer at Hugging Face and has delivered multiple courses across various platforms. Ben's goal is to make the course accessible to everyone. +Бен - инженер машинного обучения в компании Hugging Face и провел множество курсов на различных платформах. Цель Бена - сделать курс доступным для всех. - [Следуйте за Беном на Hugging Face](https://huggingface.co/burtenshaw) - [Следуйте за Беном на X](https://x.com/ben_burtenshaw) @@ -167,7 +167,6 @@ Ben is a machine learning engineer at Hugging Face and has delivered multiple co Пожалуйста, задайте свой вопрос на нашем discord сервере #ai-agents-discussions. - Теперь, когда у вас есть вся необходимая информация, давайте приступим к работе ⛵ Время подняться на борт diff --git a/units/ru/unit0/onboarding.mdx b/units/ru/unit0/onboarding.mdx index 930dec3a3..0d7ca00b7 100644 --- a/units/ru/unit0/onboarding.mdx +++ b/units/ru/unit0/onboarding.mdx @@ -6,12 +6,12 @@ 1. **Создадим аккаунт Hugging Face**, если это еще не сделано. 2. **Зарегистрируемся в Discord и представимся** (не стесняйтесь 🤗) -3. ** Последуеем за курсом обучения агентов Hugging Face** на Hub +3. ** Подпишемся на обновления по курсу обучения агентов Hugging Face** на Hub 4. **Расскажим** о курсе ### Шаг 1: Создание учетной записи Hugging Face -(Если вы еще не сделали этого) создайте аккаунт Пространства (Spaces) Hugging Face здесь. +(Если вы еще не сделали этого) создайте аккаунт Hugging Face здесь. ### Шаг 2: Присоединяйтесь к нашему сообществу в Discord @@ -21,13 +21,13 @@ У нас есть несколько каналов, связанных с агентами ИИ: - `agents-course-announcements`: где публикуется **последняя информация о курсе**. -- `🎓-agents-course-general`: для **обсуждения общих вопросов и свободного общения**. +- `agents-course-general`: для **обсуждения общих вопросов и свободного общения**🎓. - `agents-course-questions`: чтобы **задавать вопросы и помочь своим однокурсникам**. - `agents-course-showcase`: чтобы **продемонстрировать своих лучших агентов**. -Кроме того, вам могут пригодится: +Кроме того, вам могут пригодится следующие каналы: -- `smolagents`: для **обсуждения и поддержки библиотеки**. +- `smolagents`: для **обсуждения и получения поддержки по библиотеке**. Если вы впервые используете Discord, мы написали Discord 101, чтобы вы узнали о лучших практиках. Проверьте [следующий раздел](discord101). @@ -35,15 +35,15 @@ Оставайтесь в курсе последних материалов курса, обновлений и объявлений, **подписавшись на организацию курса Hugging Face Agents**. -👉 Перейдите сюда и нажмите **follow**. +👉 Перейдите сюда и нажмите **follow (следовать)**. -Follow +Follow (следовать) ### Шаг 4: Распространите информацию о курсе Помогите нам сделать этот курс более заметным! Вы можете помочь нам двумя способами: -1. Выразите свою поддержку ⭐. репозиторию курса. +1. Выразите свою поддержку ⭐ репозиторию курса. Звезда для репозитория @@ -53,6 +53,6 @@ Вы можете скачать иллюстрацию, нажав 👉 [здесь](https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/communication/share.png?download=true) -Поздравляем! 🎉 **Вы завершили введеную часть**! Теперь вы готовы приступить к изучению ИИ-агентов. Получайте удовольствие! +Поздравляем! 🎉 **Вы завершили вводную часть**! Теперь вы готовы приступить к изучению AI агентов. Получайте удовольствие! Продолжайте учиться, оставайтесь потрясающими 🤗. From 9eb309a0588320b470b011fe80a668fd32a580b3 Mon Sep 17 00:00:00 2001 From: Artyom Boyko Date: Mon, 21 Apr 2025 16:11:13 +0300 Subject: [PATCH 3/4] Minor edits to improve readability in the table of contents, live session 1 and unit containing information about publishing new units. --- units/ru/_toctree.yml | 2 +- units/ru/communication/live1.mdx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/units/ru/_toctree.yml b/units/ru/_toctree.yml index ef30450c7..ed36ede75 100644 --- a/units/ru/_toctree.yml +++ b/units/ru/_toctree.yml @@ -54,7 +54,7 @@ title: Давайте дообучим вашу модель для вызова функций - local: bonus-unit1/conclusion title: Заключение -- title: Когда будут опубликованы следующие шаги? +- title: Когда будут опубликованы следующие разделы? sections: - local: communication/next-units title: Следующие разделы diff --git a/units/ru/communication/live1.mdx b/units/ru/communication/live1.mdx index db8fb54d9..abbdc4fb6 100644 --- a/units/ru/communication/live1.mdx +++ b/units/ru/communication/live1.mdx @@ -1,7 +1,7 @@ # Live 1: Как работает курс и первые ответы на вопросы -В этой первой прямой трансляции курса по Агентам мы рассказали о том, как **работает** курс (объем, разделы, задачи и многое другое), и ответили на ваши вопросы. +В этой первой прямой трансляции курса по Агентам мы рассказали о том, как **работает** курс (объем, разделы, задачи и многое другое) и ответили на ваши вопросы. -Чтобы узнать, когда запланирован следующая прямая трансляция, проверьте наш сервер **Discord**. Мы также отправим вам электронное письмо. Если вы не сможете принять участие, не волнуйтесь, мы **записываем все прямые трансляции**. +Чтобы узнать, когда запланирована следующая прямая трансляция, проверьте наш сервер **Discord**. Мы также отправим вам электронное письмо. Если вы не сможете принять участие, не волнуйтесь, мы **записываем все прямые трансляции**. From 3279f70fd1e388398e220e10f2a8fb8652e473f6 Mon Sep 17 00:00:00 2001 From: Artyom Boyko Date: Wed, 23 Apr 2025 12:12:56 +0300 Subject: [PATCH 4/4] Minor edits in Unit 1. --- units/ru/unit1/introduction.mdx | 12 ++++---- .../ru/unit1/messages-and-special-tokens.mdx | 10 +++---- units/ru/unit1/quiz2.mdx | 2 +- units/ru/unit1/tools.mdx | 24 +++++++-------- units/ru/unit1/what-are-agents.mdx | 26 ++++++++-------- units/ru/unit1/what-are-llms.mdx | 30 +++++++++---------- 6 files changed, 52 insertions(+), 52 deletions(-) diff --git a/units/ru/unit1/introduction.mdx b/units/ru/unit1/introduction.mdx index cf7ba09d2..6b5c5b957 100644 --- a/units/ru/unit1/introduction.mdx +++ b/units/ru/unit1/introduction.mdx @@ -2,14 +2,14 @@ Thumbnail -Добро пожаловать в первый раздел, где **вы заложите прочный фундамент основ ИИ-агентов**, включая: +Добро пожаловать в первый раздел, где **вы заложите прочный фундамент основ AI агентов**, включая: - **Понимание агентов** - Что такое агент и как он работает? - Как агенты принимают решения, используя рассуждения и планирование? - **Роль LLM (Large Language Models - больших языковых моделей) в агентах**. - - Как LLM служат «мозгом» агента. + - Как LLM служат "мозгом" агента. - Как LLM структурируют диалоги с помощью системы сообщений. - **Инструменты (Tools) и Действия (Actions)**. @@ -17,21 +17,21 @@ - Как создавать и интегрировать инструменты для своего агента. - **Процесс работы агента (Agent Workflow):** - - *Думать* → *Действовать* → *Наблюдать*. + - *Думать (Think)* → *Действовать (Act)* → *Наблюдать (Observe)*. Изучив эти темы, **вы создадите своего первого агента**, используя `smolagents`! Ваш агент по имени Альфред справится с простым заданием и продемонстрирует, как применять эти понятия на практике. -Вы даже узнаете, как **опубликовать своего агента в Hugging Face Spaces**, чтобы поделиться им с друзьями и коллегами. +Кроме того, вы узнаете, как **опубликовать своего агента в Hugging Face Spaces**, чтобы поделиться им с друзьями и коллегами. Наконец, в конце этого раздела вы пройдете тест. Пройдя его, вы **получите свой первый сертификат курса**: 🎓 Сертификат по основам работы с агентами. -Certificate Example +Образец сертификата Этот раздел - ваша **основная отправная точка**, закладывающая основу для понимания Агентов, прежде чем вы перейдете к более сложным темам. -Unit 1 planning +Раздел 1 планирование Это большой раздел, поэтому **не торопитесь** и не стесняйтесь время от времени возвращаться к нему. diff --git a/units/ru/unit1/messages-and-special-tokens.mdx b/units/ru/unit1/messages-and-special-tokens.mdx index ec920d166..72d334ed2 100644 --- a/units/ru/unit1/messages-and-special-tokens.mdx +++ b/units/ru/unit1/messages-and-special-tokens.mdx @@ -12,7 +12,7 @@
За моделями -
Здесь мы видим разницу между тем, что мы отображается в пользовательском интерфейсе, и подсказкой, поступающей в модель. +
Здесь мы видим разницу между тем, что отображается в пользовательском интерфейсе, и подсказкой, поступающей в модель.
@@ -84,7 +84,7 @@ conversation = [ <|im_start|> Ассистент Я буду рад помочь. Не могли бы вы сообщить номер вашего заказа? <|im_start|>пользователь -Это ORDER-123<|im_end|> +Это ЗАКАЗ-123<|im_end|> <|im_start|> Ассистент ``` @@ -100,7 +100,7 @@ conversation = [ Мне нужна помощь с моим заказом<|eot_id|><|start_header_id|>assistant<|end_header_id|> -Я буду рада помочь. Не могли бы вы сообщить номер вашего заказа?<|eot_id|><|start_header_id|>user<|end_header_id|> +Я буду рад помочь. Не могли бы вы сообщить номер вашего заказа?<|eot_id|><|start_header_id|>user<|end_header_id|> Это ЗАКАЗ-123<|eot_id|><|start_header_id|>assistant<|end_header_id|> ``` @@ -162,7 +162,7 @@ messages = [ ```python messages = [ {"role": "system", "content": "Вы полезный помощник, специализирующийся на технических вопросах."}, - {"role": "user", "content": "Can you explain what a chat template is?"}, + {"role": "user", "content": "Можешь объяснить, что такое шаблон чата?"}, {"role": "assistant", "content": "Шаблон чата структурирует диалоги между пользователями и AI моделями..."}, {"role": "user", "content": "Как я могу его использовать?"}, ] @@ -180,7 +180,7 @@ messages = [ <|im_start|>user Как я могу его использовать?<|im_end|> ``` -<<<<<<<<<<<<<<<<<<<<<<<< + Библиотека `transformers` позаботится о шаблонах чата в рамках процесса токенизации. Подробнее о том, как трансформеры используют шаблоны чата описанно здесь. Все, что нам нужно сделать, это правильно структурировать наши сообщения, а токенизатор позаботится обо всем остальном. Вы можете поэкспериментировать со следующим Hugging Face Space, чтобы увидеть, как один и тот же диалог будет оформлен для разных моделей с использованием соответствующих шаблонов чата: diff --git a/units/ru/unit1/quiz2.mdx b/units/ru/unit1/quiz2.mdx index 748aae8b0..7f74a2156 100644 --- a/units/ru/unit1/quiz2.mdx +++ b/units/ru/unit1/quiz2.mdx @@ -1,7 +1,7 @@ # Быстрая самопроверка (не оценивается) [[quiz2]] -Что?! Еще один тест? Мы знаем, мы знаем, ... 😅 Но эта короткий, не оцениваемый тест поможет вам **закрепить ключевые понятия, которые вы только что выучили**. +Что?! Еще один тест? Мы знаем, мы знаем, ... 😅 Но этот короткий, не оцениваемый тест поможет вам **закрепить ключевые понятия, которые вы только что выучили**. Этот тест охватывает Большие Языковые Модели (Large Language Model), системы сообщений и инструменты; важные компоненты для понимания и создания агентов ИИ. diff --git a/units/ru/unit1/tools.mdx b/units/ru/unit1/tools.mdx index bea0a299f..12ba60c44 100644 --- a/units/ru/unit1/tools.mdx +++ b/units/ru/unit1/tools.mdx @@ -20,7 +20,7 @@ | Веб-поиск | Позволяет агенту получать актуальную информацию из Интернета. | | Генерация изображений | Создает изображения на основе текстовых описаний. | | Извлечение | Извлекает информацию из внешнего источника. | -| | Интерфейс API | Взаимодействие с внешним API (GitHub, YouTube, Spotify и т. д.). | +| Интерфейс API | Взаимодействие с внешним API (GitHub, YouTube, Spotify и т. д.). | Это лишь примеры, поскольку на самом деле вы можете создать инструмент для любого случая использования! @@ -37,25 +37,25 @@ - Инструмент должен: - **иметь текстовое описание того, что делает функция**. - - *быть Вызываемым (Callable)* (чем-то, что выполняет действие). - - *иметь Аргументы* с типизацией. + - быть *Вызываемым (Callable)* (чем-то, что может выполнять действие по запросу). + - иметь *Аргументы* с типизацией. - (Необязательно) иметь Выходные данные с типизацией. ## Как работают инструменты? -Как мы видели, **LLM могут только получать текстовые данные на вход и генерировать текстовые данные на выход. У них нет возможности самостоятельно вызывать инструменты. Когда мы говорим о _предоставлении инструментов агенту_, мы имеем в виду, что мы **обучаем** LLM существованию инструментов и просим модель генерировать текст, который будет вызывать инструменты, когда это необходимо. Например, если мы предоставим инструмент для проверки погоды в определенном месте из Интернета, а затем спросим LLM о погоде в Париже, LLM распознает этот вопрос как релевантную возможность использовать инструмент "weather", которой мы его научили. LLM сгенерирует _текст_ в виде кода, чтобы вызвать этот инструмент. Ответственность **Агента** заключается в том, чтобы проанализировать вывод LLM, распознать, что требуется вызов инструмента, и вызвать его от имени LLM. Выходные данные от инструмента будут отправлены обратно в LLM, которая составит окончательный ответ для пользователя. +Как мы видели ранее, LLM могут только получать текстовые данные на вход и генерировать текстовые данные на выход. У них нет возможности самостоятельно вызывать инструменты. Когда мы говорим о _предоставлении инструментов агенту_, мы имеем в виду, что мы **обучаем** LLM существованию инструментов и просим модель генерировать текст, который будет вызывать инструменты, когда это необходимо. Например, если мы предоставим инструмент для проверки погоды в определенном месте из Интернета, а затем спросим LLM о погоде в Париже, LLM распознает этот вопрос как релевантную возможность использовать инструмент "weather", которой мы его научили. LLM сгенерирует _текст_ в виде кода, чтобы вызвать этот инструмент. Ответственность **Агента** заключается в том, чтобы проанализировать вывод LLM, распознать, что требуется вызов инструмента, и вызвать его от имени LLM. Выходные данные от инструмента будут отправлены обратно в LLM, которая составит окончательный ответ для пользователя. Выходные данные после вызова инструмента - это еще один тип сообщений в диалоге. Шаги вызова инструмента обычно не демонстрируются пользователю: агент извлекает диалог, вызывает инструмент(ы), получает выходные данные, добавляет их в новое сообщение диалога и снова отправляет обновленный диалог в LLM. С точки зрения пользователя это выглядит так, как будто LLM использовал инструмент, но на самом деле это сделал наш код приложения (**Агент**). Мы поговорим об этом процессе подробнее на следующих занятиях. -## Как мы даем инструменты LLM? +## Как мы передаем инструменты LLM? Полный ответ может показаться непомерно сложным, но мы, по сути, используем системную подсказку для предоставления текстовых описаний доступных модели инструментов: Системная подсказка для использования инструментов -Чтобы это сработало, мы должны быть очень точны и аккуратны в отношении: +Чтобы это сработало, мы должны быть очень точны и аккуратны в отношении описания: 1. **Что делает инструмент**. 2. **Каких именно входных данных он ожидает**. @@ -88,7 +88,7 @@ Tool Name: calculator, Description: Multiply two integers., Arguments: a: int, b > **Напоминание:** Это текстовое описание - *то, что мы хотим, чтобы LLM знала об инструменте*. -Когда мы передадим предыдущую строку как часть входных данных в LLM, модель распознает ее как инструмент, и будет знать, что ему нужно передавать в качестве входных данных и что ожидать от выходных данных. +Когда мы передадим предыдущую строку как часть входных данных в LLM, модель распознает ее как инструмент, и будет знать, что ему нужно передавать в качестве входных данных и что ожидать в качестве выходных данных. Если мы хотим предоставить дополнительные инструменты, мы должны быть последовательными и всегда использовать один и тот же формат. Этот процесс может быть хрупким, и мы можем случайно упустить некоторые детали. @@ -99,7 +99,7 @@ Tool Name: calculator, Description: Multiply two integers., Arguments: a: int, b Наш инструмент написан на Python, и его реализация уже предоставляет все, что нам нужно: - Описательное название того, что он делает: `calculator`. -- Более длинное описание, представленное в комментарии к docstring функции: `Multiply two integers.`. +- Более длинное описание, представленное в виде строки документации (docstring) функции: `Multiply two integers.`. - Входные данные и их тип: функция явно ожидает два `int`. - Тип выходных данных. @@ -162,7 +162,7 @@ class Tool: def to_string(self) -> str: """ - Возвращает строковое представление инструмента, + Возвращает строковое представление инструмента, включая его название, описание, аргументы и выходные данные. """ args_str = ", ".join([ @@ -230,7 +230,7 @@ def tool(func): ) arguments.append((param.name, annotation_name)) - # Определите аннотацию возврата + # Определите аннотацию возвращаемого результата return_annotation = signature.return_annotation if return_annotation is inspect._empty: outputs = "No return annotation" @@ -241,7 +241,7 @@ def tool(func): else str(return_annotation) ) - # Используйте строку документации функции в качестве описания (по умолчанию, если None) + # Используем строку документации функции в качестве описания (по умолчанию, если None) description = func.__doc__ or "Описание не представлено." # Имя функции становится именем Инструмента @@ -297,6 +297,6 @@ Tool Name: calculator, Description: Multiply two integers., Arguments: a: int, b - *Почему инструменты необходимы*: Они позволяют агентам преодолевать ограничения статического обучения модели, решать задачи в реальном времени и выполнять специализированные действия. -Теперь мы можем перейти к [Рабочему процессу Агента] (agent-steps-and-structure), где вы увидите, как Агент наблюдает, думает и действует. Это **собирает воедино все, что мы изучили до сих пор**, и закладывает основу для создания вашего собственного полнофункционального AI Агента. +Теперь мы можем перейти к [Рабочему процессу Агента](agent-steps-and-structure), где вы увидите, как Агент наблюдает, думает и действует. Это **собирает воедино все, что мы изучили до сих пор**, и закладывает основу для создания вашего собственного полнофункционального AI Агента. Но сначала - еще один короткий тест! diff --git a/units/ru/unit1/what-are-agents.mdx b/units/ru/unit1/what-are-agents.mdx index df88874f4..6ec3a0d66 100644 --- a/units/ru/unit1/what-are-agents.mdx +++ b/units/ru/unit1/what-are-agents.mdx @@ -2,7 +2,7 @@ Unit 1 planning -К концу этого раздела вы будете чувствовать себя комфортно с концепцией агентов и их различными применениями в ИИ. +К концу этого раздела вы освоитесь с понятием агентов и различными вариантами их применения в ИИ. Чтобы объяснить, что такое агент, давайте начнем с аналогии. @@ -10,11 +10,11 @@ Познакомьтесь с Альфредом. Альфред - **агент**. -This is Alfred +Это Альфред Представьте, что Альфред **получает команду**, например: «Альфред, я бы хотел кофе, пожалуйста». -I would like a coffee +Я бы хотел кофе Поскольку Альфред **понимает естественный язык**, он быстро понимает нашу просьбу. @@ -25,13 +25,13 @@ 3. Заварите кофе 4. Принесите кофе обратно -Reason and plan +Причина и план Когда у него есть план, он **должен действовать**. Чтобы выполнить свой план, **он может использовать инструменты из списка инструментов, о которых он знает**. В данном случае, чтобы приготовить кофе, он использует кофеварку. Он активирует кофеварку, чтобы сварить кофе. -Make coffee +Приготовление кофе Наконец Альфред приносит нам свежесваренный кофе. @@ -41,7 +41,7 @@ Мы называем его агентом, потому что он обладает _агентностью_, то есть способностью взаимодействовать с окружающей средой. -Agent process +Процесс Агента ## Давайте будем более формальны @@ -60,7 +60,7 @@ Эта часть представляет собой **все, что агент способен делать**. -Набор **возможных действий** зависит от того, чем **наделен агент**. Например, поскольку у человека нет крыльев, он не может выполнять **действие «летать», но может выполнять такие **действия**, как «ходить», «бегать», «прыгать», «хватать» и так далее. +Набор **возможных действий** зависит от того, чем **наделен агент**. Например, поскольку у человека нет крыльев, он не может выполнять **действие "летать", но может выполнять такие **действия**, как "ходить", "бегать", "прыгать", "хватать" и так далее. ## Какие модели ИИ мы используем для агентов? @@ -69,7 +69,7 @@ Известными примерами являются **GPT4** от **OpenAI**, **LLama** от **Meta**, **Gemini** от **Google** и т. д. Эти модели были обучены на огромном количестве текстов и способны к обобщению. Подробнее о LLM мы узнаем в [следующем разделе](what-are-llms). -Также можно использовать модели, принимающие другие входные данные, в качестве основной модели агента. Например, Vision Language Model (VLM), которая похожа на LLM, но также понимает изображения в качестве входных данных. Пока что мы сосредоточимся на LLM и обсудим другие варианты позже. +Также можно использовать модели, принимающие другие входные данные, в качестве основной модели агента. Например, модель языка зрения (Vision Language Model - VLM), которая похожа на LLM, но также понимает изображения в качестве входных данных. Пока что мы сосредоточимся на LLM и обсудим другие варианты позже. ## Как ИИ воздействует на окружающую среду? @@ -81,8 +81,8 @@ LLM - замечательные модели, но **они могут гене Ответ заключается в том, что разработчики HuggingChat, ChatGPT и подобных приложений реализовали дополнительный функционал (так называемые **инструменты (tools)**), которые LLM может использовать для создания изображений.
-Eiffel Brocolis -
The model used an Image Generation Tool to generate this image. +Эйфелева башня из брокколи +
Для создания этого изображения модель использовала инструмент генерации изображений.
@@ -92,7 +92,7 @@ LLM - замечательные модели, но **они могут гене Агент может выполнять любые задачи, которые мы реализуем с помощью **Инструментов** для выполнения **Действий**. -Например, если я напишу агента, который будет действовать как мой личный помощник (как Siri) на моем компьютере, и попрошу его «отправить электронное письмо моему менеджеру с просьбой отложить сегодняшнюю встречу», я могу дать ему код для отправки электронных писем. Это будет новый инструмент, который агент сможет использовать всякий раз, когда ему понадобится отправить письмо. Мы можем написать его на языке Python: +Например, если я напишу агента, который будет действовать как мой личный помощник (как Siri) на моем компьютере, и попрошу его "отправить электронное письмо моему менеджеру с просьбой отложить сегодняшнюю встречу", я могу дать ему код для отправки электронных писем. Это будет новый инструмент, который агент сможет использовать всякий раз, когда ему понадобится отправить письмо. Мы можем написать его на языке Python: ```python def send_message_to(recipient, message): @@ -100,7 +100,7 @@ def send_message_to(recipient, message): ... ``` -LLM, как мы увидим, будет генерировать код для запуска инструмента, когда это необходимо, и таким образом выполнять поставленную задачу. +LLM, как мы увидим, будет генерировать этот код для запуска инструмента, когда это необходимо, и таким образом выполнять поставленную задачу. ```python send_message_to("Менеджер", "Мы можем отложить сегодняшнюю встречу?") @@ -135,7 +135,7 @@ send_message_to("Менеджер", "Мы можем отложить сегод --- -Вкратце, агент - это система, которая использует ИИ модель (обычно LLM) в качестве основного механизма рассуждений, чтобы: +Вкратце, агент - это система, которая использует ИИ модель (обычно LLM) в качестве основного механизма рассуждений, чтобы: - **Понимать естественный язык:** Интерпретировать и осмысленно отвечать на человеческие инструкции. diff --git a/units/ru/unit1/what-are-llms.mdx b/units/ru/unit1/what-are-llms.mdx index bd3bc440d..49a398d5b 100644 --- a/units/ru/unit1/what-are-llms.mdx +++ b/units/ru/unit1/what-are-llms.mdx @@ -6,7 +6,7 @@ Теперь мы узнаем, что такое LLM и как они наделяют агентов мощью. -В этом разделе представлено краткое техническое объяснение использования LLM. Если вы хотите погрузиться глубже, вы можете ознакомиться с нашим бесплатным курсом по Обработке Естественного Языка (Natural Language Processing).. +В этом разделе представлено краткое техническое объяснение использования LLM. Если вы хотите погрузиться глубже, вы можете ознакомиться с нашим бесплатным курсом по обработке естественного языка (Natural Language Processing).. ## ## Что такое Большая Языковая Модель? @@ -32,7 +32,7 @@ 2. **Декодеры**. Трансформер на основе декодера фокусируется **на генерации новых токенов для завершения последовательности, по одному токену за раз**. - - **Пример**: Llama из Meta + - **Пример**: Llama от Meta - **Примеры использования**: Генерация текста, чат-боты, генерация кода - **Типичный размер**: Миллиарды (в американском понимании, т.е. 10^9) параметров @@ -69,7 +69,7 @@ height="450" > -Каждая LLM имеет несколько **специальных токенов**, специфичных для данной модели. LLM использует эти токены для открытия и закрытия структурированных компонентов своей генерации. Например, чтобы указать начало или конец последовательности, сообщения или ответа. Кроме того, инструкции для ввода (input prompts), которые мы передаем модели, также структурированы с помощью специальных токенов. Наиболее важным из них является токен **Конец последовательности** (EOS). +Каждая LLM имеет несколько **специальных токенов**, специфичных для данной модели. LLM использует эти токены для открытия и закрытия структурированных компонентов своей генерации. Например, чтобы указать начало или конец последовательности, сообщения или ответа. Кроме того, инструкции для ввода (input prompts), которые мы передаем модели, также структурированы с помощью специальных токенов. Наиболее важным из них является токен **конца последовательности** (EOS). Формы специальных токенов у разных провайдеров моделей весьма разнообразны. @@ -78,10 +78,10 @@ - - - - + + + + @@ -89,31 +89,31 @@ - + - + - + - + - +
ModelProviderEOS TokenFunctionalityМодельПровайдерEOS токенФункциональность
GPT4 OpenAI <|endoftext|>End of message textКонец текста сообщения
Llama 3 Meta (Facebook AI Research) <|eot_id|>End of sequenceКонец последовательности
Deepseek-R1 DeepSeek <|end_of_sentence|>End of message textКонец текста сообщения
SmolLM2 Hugging Face <|im_end|>End of instruction or messageКонец инструкции или сообщения
Gemma Google <end_of_turn>End of conversation turnКонец реплики в диалоге
@@ -143,7 +143,7 @@ - Самой простой стратегией декодирования будет всегда брать токен с максимальным количеством баллов. -Вы можете самостоятельно взаимодействовать с процессом декодирования с помощью SmolLM2 в этом Пространстве (помните, что она декодирует до достижения токена **EOS**, которым является **<|im_end|>** для этой модели): +Вы можете самостоятельно взаимодействовать с процессом декодирования с помощью SmolLM2 в этом пространстве (помните, что она декодирует до достижения токена **EOS**, которым является **<|im_end|>** для этой модели):