#кейсы #ML
Нет-нет и попадаются на глаза посты про рост контекстного окна LLM.
И восторженные про 10М токенов и критический ответ про то что не все эти токены будут иметь одинаковую важность для модели и RAG все равно будет жив.Что объединяет авторов таких постов ? Сейчас покажу.
На днях надо было собрать RAG для демонстрации — просто обновить свой прошлогодний семинар. Но раз каждый день в тг поток новостей про новые перехаи ллмок — решил посмотреть как продвинулись методы их оценки.
Потыкавшись по репозиториям Ильи и Константина нашел библиотеку со странным названием giskard ровно для «evaluation of AI systems» как гласит этикетка.
Ну ок, парни используют, 4,5 тыс звездочек на github — что может пойти не так?
Здесь небольшая вставочка — коль скоро RAG про поиск релевантного чанка (кусочка информации) и генерацию ответа на основе него (а чанк добавляется в контекст LLM) — то и метрик можно придумать массу (отдельно на то насколько релевантные чанки достаются, насколько сгенеренный ответ им соответствует и тд)
Однако, все эти подсчеты требуют знания правильных ответов (да еще и какого-то показательного набора вопросов) — даже для LLM as a Judge. Здесь и возникает вопрос а как именно пользователь будет искать, как формулировать вопрос, каких типов вопрос больше и можно ли их вообще типизировать и пр.
Вот с этим (нагенерить вопросно-ответные пары для офлайн-теста RAG-системы) giskard и помогает — достаточно сделать
from giskard.rag.question_generators import complex_questions, double_questions, distracting_questions, situational_questions, simple_questions
а затем
knowledge_base = KnowledgeBase.from_pandas(df)
testset = generate_testset(
knowledge_base,
question_generators=[simple_questions, complex_questions, double_questions, distracting_questions, situational_questions],
num_questions=200,
language='ru',
agent_description=«….»
)
Понятно, что как и в langchain, магии никакой нет, а хитроумные методы часто просто подобранные промпты.
Вот, например, скрипт для генерации SimpleQuestion .
Не смертельно большой же промпт?
Не чуя подвох 😆🫣 я запустил (gpt4o) на генерацию вопросов для тестового датасета.
И на 71 вопросе я получаю:
Нет-нет и попадаются на глаза посты про рост контекстного окна LLM.
И восторженные про 10М токенов и критический ответ про то что не все эти токены будут иметь одинаковую важность для модели и RAG все равно будет жив.Что объединяет авторов таких постов ? Сейчас покажу.
На днях надо было собрать RAG для демонстрации — просто обновить свой прошлогодний семинар. Но раз каждый день в тг поток новостей про новые перехаи ллмок — решил посмотреть как продвинулись методы их оценки.
Потыкавшись по репозиториям Ильи и Константина нашел библиотеку со странным названием giskard ровно для «evaluation of AI systems» как гласит этикетка.
Ну ок, парни используют, 4,5 тыс звездочек на github — что может пойти не так?
Здесь небольшая вставочка — коль скоро RAG про поиск релевантного чанка (кусочка информации) и генерацию ответа на основе него (а чанк добавляется в контекст LLM) — то и метрик можно придумать массу (отдельно на то насколько релевантные чанки достаются, насколько сгенеренный ответ им соответствует и тд)
Однако, все эти подсчеты требуют знания правильных ответов (да еще и какого-то показательного набора вопросов) — даже для LLM as a Judge. Здесь и возникает вопрос а как именно пользователь будет искать, как формулировать вопрос, каких типов вопрос больше и можно ли их вообще типизировать и пр.
Вот с этим (нагенерить вопросно-ответные пары для офлайн-теста RAG-системы) giskard и помогает — достаточно сделать
from giskard.rag.question_generators import complex_questions, double_questions, distracting_questions, situational_questions, simple_questions
а затем
knowledge_base = KnowledgeBase.from_pandas(df)
testset = generate_testset(
knowledge_base,
question_generators=[simple_questions, complex_questions, double_questions, distracting_questions, situational_questions],
num_questions=200,
language='ru',
agent_description=«….»
)
Понятно, что как и в langchain, магии никакой нет, а хитроумные методы часто просто подобранные промпты.
Вот, например, скрипт для генерации SimpleQuestion .
Не смертельно большой же промпт?
Не чуя подвох 😆🫣 я запустил (gpt4o) на генерацию вопросов для тестового датасета.
И на 71 вопросе я получаю:
2025-04-08 01:28:44,092 pid:37078 MainThread giskard.rag.question_generators.situational_questions WARNING Encountered error in situational context generation: litellm.RateLimitError: RateLimitError: OpenAIException - Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: