Llama.cpp: различия между версиями
In.wiki (комментарии | вклад) Метка: визуальный редактор отключён |
In.wiki (комментарии | вклад) |
||
Строка 21: | Строка 21: | ||
== Предыстория == | == Предыстория == | ||
В конце сентября 2022 года [[Георгий Герганов]] начал работу над библиотекой [[GGML (библиотека машинного обучения)|GGML]], библиотекой на языке [[C (язык программирования)|C]], реализующей [[Тензорная алгебра|тензорную алгебру]]. Герганов разрабатывал библиотеку с учётом строгого управления памятью и [[Многопоточность|многопоточности]]. Создание GGML было вдохновлено работой [[Беллар, Фабрис|Фабриса Беллара]] над [[LibNC]]<ref name="changelog-podcast-mar-2023">{{cite web |title=Bringing Whisper and LLaMA to the masses with Georgi Gerganov (Changelog Interviews #532) |url=https://changelog.com/podcast/532 |website=Changelog |access-date=28 July 2024 |language=en |date=22 March 2023}}</ref>. До llama.cpp Герганов работал над аналогичной библиотекой [[whisper.cpp]], которая реализовала [[Whisper]] — [[модель преобразования речи в текст]] от [[OpenAI]]<ref name="llamafileregister">{{cite web |last1=Connatser |first1=Matthew |title=Llamafile LLM driver project boosts performance on CPU cores |url=https://www.theregister.com/2024/04/03/llamafile_performance_gains/ |website=www.theregister.com |access-date=10 May 2024 |language=en}}</ref>. | В конце сентября 2022 года [[Георгий Герганов]] начал работу над библиотекой [[GGML (библиотека машинного обучения)|GGML]], библиотекой на языке [[C (язык программирования)|C]], реализующей [[Тензорная алгебра|тензорную алгебру]]. Герганов разрабатывал библиотеку с учётом строгого управления памятью и [[Многопоточность|многопоточности]]. Создание GGML было вдохновлено работой [[Беллар, Фабрис|Фабриса Беллара]] над [[LibNC]]<ref name="changelog-podcast-mar-2023">{{cite web |title=Bringing Whisper and LLaMA to the masses with Georgi Gerganov (Changelog Interviews #532) |url=https://changelog.com/podcast/532 |website=Changelog |access-date=28 July 2024 |language=en |date=22 March 2023}}</ref>. До llama.cpp Герганов работал над аналогичной библиотекой [[whisper.cpp]], которая реализовала [[Whisper]] — [[модель преобразования речи в текст]] от [[OpenAI]]<ref name="llamafileregister">{{cite web |last1=Connatser |first1=Matthew |title=Llamafile LLM driver project boosts performance on CPU cores |url=https://www.theregister.com/2024/04/03/llamafile_performance_gains/ |website=www.theregister.com |access-date=10 May 2024 |language=en}}</ref>. | ||
+ | |||
+ | == Разработка == | ||
+ | Разработка llama.cpp началась в марте 2023 года Георгием Гергановым как реализация кода инференса [[Llama]] на [[Чистый C|чистом C]]/[[Чистый C++|C++]] без [[Зависимости (программирование)|зависимостей]]. | ||
+ | |||
+ | Это резко повысило производительность на компьютерах без графического процессора или другого выделенного оборудования, что и было целью проекта.[3][10][11] | ||
+ | |||
+ | llama.cpp завоевала популярность у пользователей, не имеющих специализированного оборудования, поскольку могла работать только на CPU в том числе на устройствах [[Android]].[10][12][13] Изначально проект разрабатывался для CPU, но позже была добавлена поддержка инференса на GPU.[14] | ||
+ | |||
+ | По состоянию на ноябрь 2024 года проект имел более 67 000 [[Звёзды на GitHub|звёзд на GitHub]].[15] | ||
+ | |||
+ | В марте 2024 года [[Танни, Джастин Александра Робертс|Джастин Танни]] представила новые оптимизированные ядра умножения матриц для процессоров x86 и ARM, повысив производительность вычисления промптов для [[FP16]] и [[8-битное квантование моделей|8-битных квантованных типов данных]].[16] Эти улучшения были внесены в основную ветку разработки llama.cpp.[16] Танни также создала инструмент под названием llamafile, который объединяет модели и llama.cpp в один файл, работающий на нескольких операционных системах с помощью библиотеки [[Cosmopolitan Libc]], также созданной Танни, которая позволяет C/C++ быть более переносимым между операционными системами.[16] | ||
== Примечания == | == Примечания == | ||
[[Категория:Программное обеспечение для машинного обучения]] | [[Категория:Программное обеспечение для машинного обучения]] |
Версия от 03:22, 29 июля 2025
llama.cpp Библиотека для инференса LLM.
|
- Язык программирования:
- C++, C и C++, C
- Разработчик:
- Георгий Герганов и сообщество
- Дата появления:
- март 10, 2023[1]
со строчной буквы
llama.cpp — это библиотека с открытым исходным кодом, которая выполняет инференс с использованием различных больших языковых моделей, таких как Llama[3].
Она разрабатывается совместно с проектом GGML, тензорной библиотекой общего назначения[4].
Вместе с библиотекой поставляются утилиты командной строки[5], а также сервер с простым веб-интерфейсом[6][7].
Предыстория
В конце сентября 2022 года Георгий Герганов начал работу над библиотекой GGML, библиотекой на языке C, реализующей тензорную алгебру. Герганов разрабатывал библиотеку с учётом строгого управления памятью и многопоточности. Создание GGML было вдохновлено работой Фабриса Беллара над LibNC[8]. До llama.cpp Герганов работал над аналогичной библиотекой whisper.cpp, которая реализовала Whisper — модель преобразования речи в текст от OpenAI[9].
Разработка
Разработка llama.cpp началась в марте 2023 года Георгием Гергановым как реализация кода инференса Llama на чистом C/C++ без зависимостей.
Это резко повысило производительность на компьютерах без графического процессора или другого выделенного оборудования, что и было целью проекта.[3][10][11]
llama.cpp завоевала популярность у пользователей, не имеющих специализированного оборудования, поскольку могла работать только на CPU в том числе на устройствах Android.[10][12][13] Изначально проект разрабатывался для CPU, но позже была добавлена поддержка инференса на GPU.[14]
По состоянию на ноябрь 2024 года проект имел более 67 000 звёзд на GitHub.[15]
В марте 2024 года Джастин Танни представила новые оптимизированные ядра умножения матриц для процессоров x86 и ARM, повысив производительность вычисления промптов для FP16 и 8-битных квантованных типов данных.[16] Эти улучшения были внесены в основную ветку разработки llama.cpp.[16] Танни также создала инструмент под названием llamafile, который объединяет модели и llama.cpp в один файл, работающий на нескольких операционных системах с помощью библиотеки Cosmopolitan Libc, также созданной Танни, которая позволяет C/C++ быть более переносимым между операционными системами.[16]
Примечания
- ↑ Initial release · ggerganov/llama.cpp@26c0846 (англ.). GitHub. Дата обращения: 15 мая 2024.
- ↑ llama.cpp/LICENSE at master · ggerganov/llama.cpp (англ.). GitHub.
- ↑ Connatser, Matthew. How this open source LLM chatbot runner hit the gas on x86, Arm CPUs . theregister.com. Дата обращения: 15 апреля 2024.
- ↑ Gerganov, Georgi. ggerganov/ggml . GitHub (17 мая 2024).
- ↑ Mann, Tobias. Honey, I shrunk the LLM! A beginner's guide to quantization – and testing it . theregister (14 июля 2024).
- ↑ Mann, Tobias. Intro to speculative decoding: Cheat codes for faster LLMs (англ.). theregister (15 декабря 2024).
- ↑ Alden, Daroc. Portable LLMs with llamafile [LWN.net] . lwn.net. Дата обращения: 30 июля 2024.
- ↑ Bringing Whisper and LLaMA to the masses with Georgi Gerganov (Changelog Interviews #532) (англ.). Changelog (22 марта 2023). Дата обращения: 28 июля 2024.
- ↑ Connatser, Matthew. Llamafile LLM driver project boosts performance on CPU cores (англ.). www.theregister.com. Дата обращения: 10 мая 2024.