Код Middle Как устроены LLM обновлено
Применить BPE-слияния к слову
Условие
Реализуйте кодирование слова по обученным слияниям BPE: bpe_encode(word, merges).
- Начните со списка отдельных символов слова.
merges: список пар[a, b]в порядке приоритета (раньше в списке = важнее).- На каждом шаге среди соседних пар текущего списка найдите пару с наивысшим приоритетом и слейте все её вхождения слева направо без перекрытий.
- Повторяйте, пока ни одна соседняя пара не встречается в
merges.
Верните итоговый список токенов. Для пустого слова [].
Примеры
bpe_encode("lower", [["l", "o"], ["lo", "w"], ["e", "r"]]) // ["low", "er"]
bpe_encode("", [["a", "b"]]) // []
bpe_encode("a", [["a", "b"]]) // ["a"]
Как подойти
Подсказки: 2
- Словарь
пара -> рангдаст поиск лучшей пары за O(n). - После выбора пары пройдите список и склейте её вхождения.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.