ggml-org/ggml

GitHub: ggml-org/ggml

面向机器学习的轻量级张量库,专注通过量化和跨平台优化在普通硬件上高效运行大模型推理。

Stars: 14162 | Forks: 1502

# ggml [路线图](https://github.com/users/ggerganov/projects/7) / [宣言](https://github.com/ggerganov/llama.cpp/discussions/205) 用于机器学习的张量库 ***请注意,本项目正处于活跃开发阶段。 \ 目前部分开发工作正在 [llama.cpp](https://github.com/ggerganov/llama.cpp) 和 [whisper.cpp](https://github.com/ggerganov/whisper.cpp) 仓库中进行*** ## 功能特性 - 底层跨平台实现 - 整数量化支持 - 广泛的硬件支持 - 自动微分 - ADAM 和 L-BFGS 优化器 - 无第三方依赖 - 运行时零内存分配 ## 构建 ``` git clone https://github.com/ggml-org/ggml cd ggml # 在虚拟环境中安装 python 依赖 python3.10 -m venv .venv source .venv/bin/activate pip install -r requirements.txt # 构建 examples mkdir build && cd build cmake .. cmake --build . --config Release -j 8 ``` ## GPT 推理(示例) ``` # 运行 GPT-2 small 117M 模型 ../examples/gpt-2/download-ggml-model.sh 117M ./bin/gpt-2-backend -m models/gpt-2-117M/ggml-model.bin -p "This is an example" ``` 欲了解更多信息,请查看 [examples](examples) 文件夹中的相应程序。 ## 使用 CUDA ``` # 修改路径以指向您的 CUDA 编译器 cmake -DGGML_CUDA=ON -DCMAKE_CUDA_COMPILER=/usr/local/cuda-12.1/bin/nvcc .. ``` ## 使用 hipBLAS ``` cmake -DCMAKE_C_COMPILER="$(hipconfig -l)/clang" -DCMAKE_CXX_COMPILER="$(hipconfig -l)/clang++" -DGGML_HIP=ON ``` ## 使用 SYCL ``` # linux source /opt/intel/oneapi/setvars.sh cmake -G "Ninja" -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_SYCL=ON .. # windows "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" cmake -G "Ninja" -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DGGML_SYCL=ON .. ``` ## 为 Android 编译 从此下载[页面](https://developer.android.com/ndk/downloads)下载并解压 NDK。设置 NDK_ROOT_PATH 环境变量,或者在下面的命令中提供 CMAKE_ANDROID_NDK 的绝对路径。 ``` cmake .. \ -DCMAKE_SYSTEM_NAME=Android \ -DCMAKE_SYSTEM_VERSION=33 \ -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \ -DCMAKE_ANDROID_NDK=$NDK_ROOT_PATH -DCMAKE_ANDROID_STL_TYPE=c++_shared ``` ``` # 创建目录 adb shell 'mkdir /data/local/tmp/bin' adb shell 'mkdir /data/local/tmp/models' # 将编译好的 binaries 推送到该文件夹 adb push bin/* /data/local/tmp/bin/ # 推送 ggml 库 adb push src/libggml.so /data/local/tmp/ # 推送模型文件 adb push models/gpt-2-117M/ggml-model.bin /data/local/tmp/models/ adb shell cd /data/local/tmp export LD_LIBRARY_PATH=/data/local/tmp ./bin/gpt-2-backend -m models/ggml-model.bin -p "this is an example" ``` ## 资源 - [ggml 简介](https://huggingface.co/blog/introduction-to-ggml) - [GGUF 文件格式](https://github.com/ggerganov/ggml/blob/master/docs/gguf.md)
标签:AI基础设施, Android, Apex, Bash脚本, C++, CMake, CPU推理, CUDA, DLL 劫持, DSL, GPT-2, hipBLAS, llama.cpp, ROCm, SYCL, UML, Vectored Exception Handling, whisper.cpp, 优化器, 大语言模型, 底层库, 张量库, 数据擦除, 无依赖, 机器学习, 模型推理, 模型量化, 深度学习, 自动微分, 边缘计算, 逆向工具, 高性能计算