Model Context Protocol (MCP) Course от Hugging Face
Достойный курс, ещё и бесплатный. Когда я читал whitepaper от Anthropic, казалось, что MCP - это просто некий хаб для функций (tools) с целью унификации API (aka function registry), чтобы в будущем упростить интеграцию инструментов друг с другом. Но все не совсем так. Протокол предполагает наличие, помимо самих функций (Tools), ещё и:
• Resources (Ресурсы): расширенный контекст о системе, доступный только для чтения, например, структура базы данных или список файлов
• Prompts: Готовые, сложные сценарии, использующие Tools и Resources
Кажется, что Tools и Prompts могли бы быть одной сущностью, но они намеренно разделены. Чтобы агент имел выбор: либо просто вызвать конкретный Tool для выполнения 1го действия, либо запустить более сложный Prompt, который под капотом может использовать несколько инструментов и ресурсов для достижения цели.
Понравился пример из курса, когда MCP используется для обеспечения конфиденциальности: например, данные клиента можно обрабатывать локально, на его же стороне, не передавая их на сервер.
P.S. Используя FastMCP, можно поднять такой сервер в несколько строк кода
Достойный курс, ещё и бесплатный. Когда я читал whitepaper от Anthropic, казалось, что MCP - это просто некий хаб для функций (tools) с целью унификации API (aka function registry), чтобы в будущем упростить интеграцию инструментов друг с другом. Но все не совсем так. Протокол предполагает наличие, помимо самих функций (Tools), ещё и:
• Resources (Ресурсы): расширенный контекст о системе, доступный только для чтения, например, структура базы данных или список файлов
• Prompts: Готовые, сложные сценарии, использующие Tools и Resources
Кажется, что Tools и Prompts могли бы быть одной сущностью, но они намеренно разделены. Чтобы агент имел выбор: либо просто вызвать конкретный Tool для выполнения 1го действия, либо запустить более сложный Prompt, который под капотом может использовать несколько инструментов и ресурсов для достижения цели.
Понравился пример из курса, когда MCP используется для обеспечения конфиденциальности: например, данные клиента можно обрабатывать локально, на его же стороне, не передавая их на сервер.
P.S. Используя FastMCP, можно поднять такой сервер в несколько строк кода
🔥8👍7❤4🙏1
LLM blending работает но дорого
Если бюджеты позволяют, для улучшения метрик можно комбинировать ответы от разных промптов или LLM, используя агрегацию с помощью другой LLM или majority voting. Как в старых добрых табличных задачках, осталось только до стэкинга дойти.
В статье Are More LLM Calls All You Need на MMLU PHYSICS blending улучшает точность на лёгких вопросах с 88% до 96% при 10 запросах, но на сложных задачах всё не так однозначно. На сложных задачах, где LLM с большей вероятностью выдаёт неверный ответ, при увеличении числа вызовов самый популярный (но ошибочный) ответ чаще побеждает в голосовании, что снижает общую точность. При этом обычный voting работает лучше, чем filter-voting, где итоговый ответ определяет отдельный вызов модели.
А в статье Beyond Majority Voting: LLM Aggregation by Leveraging Higher-Order Information предложены другие методы агрегирования (Optimal Weight, Inverse Surprising Popularity), которые учитывают корреляции и точность между моделями, как итог превосходят простое majority voting. По сути, для ответов моделей просто подбираются оптимальные веса для взвешивания. Это даёт прирост в +0.5% к точности лучшей модели (на датасетах UltraFeedback и ARMMAN, но наблюдается отрицательный эффект на MMLU). И +5% по сравнению с majority voting при 2х запросах и падением эффекта до +1% при 10и моделях. Сильное влияние оказывает некоррелированность ответов - если варианты слишком похожи, прироста почти нет
Если бюджеты позволяют, для улучшения метрик можно комбинировать ответы от разных промптов или LLM, используя агрегацию с помощью другой LLM или majority voting. Как в старых добрых табличных задачках, осталось только до стэкинга дойти.
В статье Are More LLM Calls All You Need на MMLU PHYSICS blending улучшает точность на лёгких вопросах с 88% до 96% при 10 запросах, но на сложных задачах всё не так однозначно. На сложных задачах, где LLM с большей вероятностью выдаёт неверный ответ, при увеличении числа вызовов самый популярный (но ошибочный) ответ чаще побеждает в голосовании, что снижает общую точность. При этом обычный voting работает лучше, чем filter-voting, где итоговый ответ определяет отдельный вызов модели.
А в статье Beyond Majority Voting: LLM Aggregation by Leveraging Higher-Order Information предложены другие методы агрегирования (Optimal Weight, Inverse Surprising Popularity), которые учитывают корреляции и точность между моделями, как итог превосходят простое majority voting. По сути, для ответов моделей просто подбираются оптимальные веса для взвешивания. Это даёт прирост в +0.5% к точности лучшей модели (на датасетах UltraFeedback и ARMMAN, но наблюдается отрицательный эффект на MMLU). И +5% по сравнению с majority voting при 2х запросах и падением эффекта до +1% при 10и моделях. Сильное влияние оказывает некоррелированность ответов - если варианты слишком похожи, прироста почти нет
🔥6❤🔥4👍4