![[Перевод] Как устроены LLM: разбираем на примере 3-уровневой абстракции](https://habrastorage.org/getpro/habr/upload_files/483/518/46c/48351846ce1a2f1b8c749cee9db5f077.png)
[Перевод] Как устроены LLM: разбираем на примере 3-уровневой абстракции
Чтобы оптимизировать производительность больших языковых моделей (LLM), необходимо понимать весь программный стек. Мне не удалось найти подробную статью, которая показывала бы этот стек как общую картину, поэтому я решил написать такую статью сам. Эта статья не является исчерпывающим обзором или набором наилучших практик. Здесь я в большей степени делюсь моими общими представлениями о том, как выглядит ландшафт современных LLM‑систем.Во‑первых, любая система проектируется с расчётом на достижение конкретных целей с учётом заданных ограничений. В LLM‑системах наиболее принципиальные цели связаны с увеличением пропускной способности и минимизацией задержек. Два этих показателя необходимо оптимизировать в рамках ограничений, задаваемых тремя принципиальными факторами: вычислительные (скорость аппаратных операций и поддерживаемые типы), память (ёмкость и иерархия) и коммуникация (ширина передачи данных в памяти и сети, задержка и иерархия). Эти концепции отлично рассмотрены в книге Scaling Book от Google, а именно в разделе Roofline. Читать далее