вызов.cpp
Оригинальный автор(ы) | Георгий Герганов |
---|---|
Разработчик(и) | Георгий Герганов и сообщество |
Первоначальный выпуск | 10 марта 2023 г [1] |
Репозиторий | github |
Написано в | С++ , С |
Тип | Библиотека , CLI и веб-сервер для больших языковых моделей. |
Лицензия | МОЯ лицензия [2] |
llama.cpp — это с открытым исходным кодом программная библиотека , написанная в основном на C++, которая выполняет логический вывод на различных моделях большого языка, таких как Llama . [3] Вместе с библиотекой CLI и веб-сервер. включен [4] [5] Он разрабатывается совместно с проектом GGML — тензорной библиотекой общего назначения. [6]
История
[ редактировать ]Ближе к концу сентября 2022 года Георгий Герганов приступил к работе над библиотекой GGML — библиотекой C, реализующей тензорную алгебру . Герганов разработал библиотеку с целью строгого управления памятью и многопоточности. Создание GGML было вдохновлено работой Фабриса Беллара над LibNC. [7]
Разработка llama.cpp началась в марте 2023 года Георгием Гергановым как реализация кода вывода Llama на чистом C/C++ без каких-либо зависимостей. Это улучшило производительность на компьютерах без графического процессора или другого специального оборудования. [3] [8] По состоянию на июль 2024 года у него 61 тысяча звезд на GitHub. [9] До создания llama.cpp Герганов работал над похожей библиотекой под названием «sheep.cpp». [10] который реализовал Whisper , модель преобразования речи в текст от OpenAI . llama.cpp завоевал популярность среди пользователей, у которых не было специального оборудования, поскольку он мог работать только на процессоре, в том числе на устройствах Android . [8] [11] [12]
llamafile, созданный Mozilla с использованием космополитического инструмента, созданного Джастин Танни , объединяет модели и llama.cpp в один файл, который работает в нескольких операционных системах. [11] [13] Танни и др. ал. представила новые оптимизированные ядра матричного умножения для процессоров x86 и ARM, улучшающие производительность быстрого вычисления для FP16 и 8-битных квантованных типов данных. [14] [15] [16] Эти улучшения были внесены в исходную версию llama.cpp. [4]
Архитектура
[ редактировать ]Первоначально llama.cpp мог работать только на процессорах, но теперь может работать и на графических процессорах, используя несколько различных серверных частей, включая Vulkan и SYCL . Эти серверные части составляют тензорную библиотеку GGML, которая используется клиентским кодом llama.cpp, специфичным для модели. [17] llama.cpp поддерживает предварительное квантование модели , а не квантование на лету. [18] llama.cpp использует несколько расширений ЦП для оптимизации: AVX , AVX2 и AVX-512 для X86-64 и Neon для ARM. Apple Silicon является важной целью проекта. [9] [16]
GGUF — формат файла
[ редактировать ]Расширение имени файла | .gguf |
---|---|
Магическое число | 0x47 0x47 0x55 0x46 |
Разработано | Георгий Герганов и сообщество |
Первоначальный выпуск | 22 августа 2023 г [19] |
Последний выпуск | v3 [20] |
Тип формата | машинного обучения Тензоры |
Формат файла GGUF — это двоичный формат, используемый llama.cpp, который хранит как тензоры, так и метаданные в одном файле. [21] Он был создан для лучшей поддержки обратной совместимости, поскольку llama.cpp расширил поддержку других архитектур моделей. [22]
Файлы GGUF обычно создаются путем преобразования моделей, разработанных с помощью другой библиотеки машинного обучения, такой как PyTorch , хотя тонкая настройка поддерживается изначально. [23]
Формат фокусируется на квантовании, снижении точности весов модели. Это может привести к уменьшению использования памяти и увеличению скорости за счет снижения точности модели. [24] [22]
Поддерживаемые типы данных
[ редактировать ]GGUF поддерживает распространенные форматы данных с плавающей запятой float32 , float16 и bfloat16 , а также 1,5-битные и 2-8-битные квантованные целочисленные типы.
Поддерживаемые модели
[ редактировать ]Ссылки
[ редактировать ]- ^ «Первоначальный выпуск · ggerganov/llama.cpp@26c0846» . Гитхаб . Проверено 15 мая 2024 г.
- ^ «llama.cpp/LICENSE at master · ggerganov/llama.cpp» . Гитхаб .
- ^ Перейти обратно: а б Коннацер, Мэтью. «Как этот чат-бот LLM с открытым исходным кодом нажал на газ на процессорах x86, Arm» . theregister.com . Проверено 15 апреля 2024 г.
- ^ Перейти обратно: а б Худ, Стивен. «Лламафайл: четыре месяца прогресса на пути к демократизации ИИ» . Инновации Мозиллы . Проверено 28 июля 2024 г.
- ^ Олден, Дэрок. «Портативные LLM с llamafile [LWN.net]» . lwn.net . Проверено 30 июля 2024 г.
- ^ Герганов, Георгий (17 мая 2024 г.). "герганов/ггмл" .
- ^ «Внедрение Whisper и LLaMA в массы с Георгием Гергановым (Changelog Interviews #532)» . Журнал изменений . Журнал изменений. 22 марта 2023 г. Проверено 28 июля 2024 г.
- ^ Перейти обратно: а б Эдвардс, Бендж (13 марта 2023 г.). «Теперь вы можете запустить модель искусственного интеллекта уровня GPT-3 на своем ноутбуке, телефоне и Raspberry Pi» . arstechnica.com . Проверено 15 апреля 2024 г.
- ^ Перейти обратно: а б "ggerganov/llama.cpp" . Гитхаб .
- ^ "ggerganov/whisper.cpp" . Гитхаб .
- ^ Перейти обратно: а б Худ, Стивен. «llamafile: предоставление LLM людям и вашему компьютеру» . Инновации Мозиллы . Проверено 28 июля 2024 г.
- ^ «Демократизация ИИ с помощью языковых моделей с открытым исходным кодом» . lwn.net . Проверено 28 июля 2024 г.
- ^ Папп, Дональд (3 декабря 2023 г.). «Mozilla позволяет людям превращать LLM-программы искусственного интеллекта в однофайловые исполняемые файлы» . Хакадей . Проверено 27 июля 2024 г.
- ^ Коннацер, Мэтью. «Проект драйвера Llamafile LLM повышает производительность ядер ЦП» . www.theregister.com . Проверено 10 мая 2024 г.
- ^ Танни, Жюстин. «LLaMA теперь работает быстрее на процессорах» . Жюстин. лол . Проверено 24 июля 2024 г.
- ^ Перейти обратно: а б Ларабель, Майкл. «В Llamafile 0.7 реализована поддержка AVX-512: в 10 раз быстрее время обработки запросов для AMD Zen 4» . www.phoronix.com .
- ^ Паундер, Лес (25 марта 2023 г.). «Как создать собственный сервер чат-бота с искусственным интеллектом с помощью Raspberry Pi 4» . tomshardware.com . Проверено 16 апреля 2024 г.
- ^ Валковяк, Бартош; Валковяк, Томаш (2024). «Реализация языковых моделей в инфраструктуре, предназначенной для обработки естественного языка» (PDF) . Международный журнал электроники и телекоммуникаций . 70 (1): 153–159. дои : 10.24425/ijet.2024.149525 . Проверено 8 мая 2024 г.
- ^ «GGUF от ggerganov · Pull Request #2398 · ggerganov/llama.cpp» . Гитхаб .
- ^ "ggml/docs/gguf.md в мастере · ggerganov/ggml" . Гитхаб .
- ^ «ГГУФ» . Huggingface.co . Проверено 9 мая 2024 г.
- ^ Перейти обратно: а б Муччи, Тим (3 июля 2024 г.). «GGUF против GGML» . www.ibm.com . Проверено 26 июля 2024 г.
- ^ Бойкис, Вики (28 февраля 2024 г.). «ГГУФ, долгий путь» . Вики Бойкис . Проверено 26 июля 2024 г.
- ^ Лабонн, Максим (29 ноября 2023 г.). «Квантизация моделей Llama с помощью GGUF и llama.cpp» . Середина . На пути к науке о данных . Проверено 9 мая 2024 г.