llama-cpp
Библиотека на C++ для локального inference больших языковых моделей (LLM) в формате GGUF. Позволяет запускать LLM на CPU.
Подключение к проекту
conanfile.py
from conan import ConanFile
class Application(ConanFile):
settings = "os", "compiler", "arch", "build_type"
generators = "PkgConfigDeps", "CMakeDeps"
requires = ("llama-cpp/<version>@aurora",)
.spec файл
%define __provides_exclude_from ^%{_datadir}/%{name}/lib/.*$
%define __requires_exclude ^(libgomp.*|libz.*|libllama.*|libggml.*|libcommon.*|libcurl.*|libssl.*|libcrypto.*)$
BuildRequires: conan
В секции %build:
CONAN_LIB_DIR="%{_builddir}/conan-libs/"
conan-install-if-modified --source-folder="%{_sourcedir}/.." --output-folder="$CONAN_LIB_DIR" -vwarning
PKG_CONFIG_PATH="$CONAN_LIB_DIR":$PKG_CONFIG_PATH
export PKG_CONFIG_PATH
CMakeLists.txt
include(FindPkgConfig)
pkg_check_modules(LLAMACPP REQUIRED IMPORTED_TARGET llama-cpp)
target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::LLAMACPP)
Пример использования
Заголовочные файлы:
llama.h- основной APIchat.h- работа с chat templates
#include "llama.h"
#include "chat.h"
#include <iostream>
int main() {
llama_model_params params = llama_model_default_params();
std::cout << "Default GPU: " << params.main_gpu << std::endl;
bool valid = common_chat_verify_template("chatml", false);
std::cout << "chatml valid: " << valid << std::endl;
return 0;
}