llama.cpp ускорил prompt lookup drafting в 42 раза
Faster prompt lookup drafting in llama.cpp

Хайдер Тирмази оптимизировал prompt lookup decoding в llama.cpp, ускорив драфтинг до 42 раз и сократив память до 2.6 раз. В основе — устранение копирования вложенных std::unordered_map, замена внешней карты на ankerl::unordered_dense::segmented_map и внутренней на отсортированный вектор. При корпусе 541 МБ задержка драфтинга упала с 165.48 µs до 3.98 µs.
Я сделал драфтинг для prompt lookup decoding в llama.cpp до 42 раз быстрее, используя до 2.6 раз меньше памяти, благодаря набору простых оптимизаций производительности, в значительной степени основанных на работе Daniel Lemire и Martin Ankerl.
- jadidbourbaki
Кстати, если у кого-то есть опыт с open source сообществом в целом и с llama.cpp в частности, я был бы очень признателен за совет. Я столкнулся с небольшой межличностной проблемой, и очень надеюсь, что она разрешится без всякой неприязни. Вот контекст:
https://www.reddit.com/r/LocalLLaMA/comments/1wr5ylm/comment...
Есть какие-нибудь советы, что я могу сделать? Из-за этого я не могу создать PR или issue в репозитории llama.cpp. Однако я беспокоюсь, что если буду беспокоить мейнтейнеров по другим каналам, это может их ещё больше разозлить. Спасибо за помощь!
- jadidbourbaki
Забавное обновление: Daniel Lemire добавил ещё одну оптимизацию, чтобы сделать это ещё быстрее. https://github.com/jadidbourbaki/llama.cpp/pull/12
Я протестирую его изменение и добавлю в статью, указав его вклад в это улучшение.
- jadidbourbaki
В качестве обновления: Lemire просто разнёс это в пух и прах! Я протестировал его изменение сегодня. Вот мой комментарий к PR:
https://github.com/jadidbourbaki/llama.cpp/pull/12#issuecomm...