Many-Shot In-Context Learning
LLM известны своим навыком In-Context Learning (ICL) — они могут выучить новую задачу без непосредственно обучения, просто по демонстрации примеров в промпте. Однако долгое время количество подаваемых примеров оставалось маленьким — 4-8, может, 25 максимум. Однако модели текущего поколения набирают обороты, и у той же Gemini 1.5 Pro в контекст влазит аж 1М токенов — хватит на сотни и даже тысячи примеров решений!
Поэтому авторы из DeepMind возвращаются к вопросу ICL и исследуют изменение качества при увеличении количества примеров. Результаты ожидаемые - почти всегда и почти везде качество растёт, тут ничего удивительного. Например, в задаче машинного перевода на редкие языки (с английского на курдский и тамильский) Gemini 1.5 Pro обходит гугл переводчик (в промпте при этом примерно 85-100k токенов пар-примеров с переводом). В разных бенчмарках по математике и рассуждениям тоже наблюдаются приросты — картинка будет в первом комментарии.
Один из вопросов с точки зрения практики - готовы ли вы платить +$0.5 за обращение к модели, чтобы поднять качество ответов на 5-15%? Уверен, найдутся домены, где это окупается.
«Ну так блин, для этого надо столько разметки вручную делать, это не всегда доступно» — можете заметить вы, и будете правы (разметка ответов и решений для помещения в промпт). Поэтому начинается интересная часть, делящаяся на два направления:
1) подавать просто текст проблем в промпт, без решений и ответов (называется Unsupervised ICL)
2) генерировать решения LLM'кой (и отбирать их по имеющемуся ответу) и брать их. Да, в таком случае некоторые неправильные решения могут приводить к верному ответу. Называется Reinforced ICL.
Эти два метода расширяют применимость ICL с большим количеством решений — в первом так вообще ничего не надо, кроме текстов проблем. И...это тоже увеличивает качество. RICL так вообще почти всегда показывает такое же качество (и даже лучше!), чем демонстрация написанных людьми решений. И даже UICL иногда работает — вероятно, потому, что модель лучше понимает и формирует внутри себя представление о том, с какими проблемами имеет дело.
Лично мне в статье не хватило сравнения с RAG подходом, когда отдельная модель сначала из всего корпуса проблем и/или решений выбирает самые подходящие, подаёт их в промпт, а затем уже LLM генерирует ответ. Тут не нужен большой контекст, и потенциально можно отфильтровать шум. Быть может этот метод будет давать качество ещё выше🤷♀️
Ждём модели с 100M контекста, чтобы кормить им описание всего, что только под руку попадётся — даже если за это придётся платить долор(
LLM известны своим навыком In-Context Learning (ICL) — они могут выучить новую задачу без непосредственно обучения, просто по демонстрации примеров в промпте. Однако долгое время количество подаваемых примеров оставалось маленьким — 4-8, может, 25 максимум. Однако модели текущего поколения набирают обороты, и у той же Gemini 1.5 Pro в контекст влазит аж 1М токенов — хватит на сотни и даже тысячи примеров решений!
Поэтому авторы из DeepMind возвращаются к вопросу ICL и исследуют изменение качества при увеличении количества примеров. Результаты ожидаемые - почти всегда и почти везде качество растёт, тут ничего удивительного. Например, в задаче машинного перевода на редкие языки (с английского на курдский и тамильский) Gemini 1.5 Pro обходит гугл переводчик (в промпте при этом примерно 85-100k токенов пар-примеров с переводом). В разных бенчмарках по математике и рассуждениям тоже наблюдаются приросты — картинка будет в первом комментарии.
Один из вопросов с точки зрения практики - готовы ли вы платить +$0.5 за обращение к модели, чтобы поднять качество ответов на 5-15%? Уверен, найдутся домены, где это окупается.
«Ну так блин, для этого надо столько разметки вручную делать, это не всегда доступно» — можете заметить вы, и будете правы (разметка ответов и решений для помещения в промпт). Поэтому начинается интересная часть, делящаяся на два направления:
1) подавать просто текст проблем в промпт, без решений и ответов (называется Unsupervised ICL)
2) генерировать решения LLM'кой (и отбирать их по имеющемуся ответу) и брать их. Да, в таком случае некоторые неправильные решения могут приводить к верному ответу. Называется Reinforced ICL.
Эти два метода расширяют применимость ICL с большим количеством решений — в первом так вообще ничего не надо, кроме текстов проблем. И...это тоже увеличивает качество. RICL так вообще почти всегда показывает такое же качество (и даже лучше!), чем демонстрация написанных людьми решений. И даже UICL иногда работает — вероятно, потому, что модель лучше понимает и формирует внутри себя представление о том, с какими проблемами имеет дело.
Лично мне в статье не хватило сравнения с RAG подходом, когда отдельная модель сначала из всего корпуса проблем и/или решений выбирает самые подходящие, подаёт их в промпт, а затем уже LLM генерирует ответ. Тут не нужен большой контекст, и потенциально можно отфильтровать шум. Быть может этот метод будет давать качество ещё выше
Ждём модели с 100M контекста, чтобы кормить им описание всего, что только под руку попадётся — даже если за это придётся платить долор(
Источник: Сиолошная
2024-04-18 08:53:38