Нет-нет и попадаются на глаза посты про рост контекстного окна 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: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}. Using default situational context instead.
И отрицательный баланс на счете — 30 баксов как с куста.
На 70 вопросах!!! 😰😱😱😱😱🤯😵💫😡🤬🤬🤬
WTF ???
Конечно, когда есть железо, лучше разворачивать модели локально и не тратиться на API.
Но читая новость про контекст в 10М токенов я понимаю почему производителям LLM это может быть выгодно 🔪. Представьте что будет если вы стучитесь по API и платите за число токенов, а такая большая модель еще и в CoT уйдет 🫣. Выглядит происходящее сейчас с API сродни бесплатной раздаче наркотиков, но ценники в итоге будут бить любые фантазии.
Улыбаемся, машем, копим, ищем эффективные решения, радуемся что часть моделей-таки выкладывают в опенсорс и огромное коммьюнити работает над тем как их сжимать / дистиллировать / запускать на не совсем космолетах.
PS тарификация API по числу токенов примерно у всех
>>Click here to continue<<
