LocalAI项目从源码构建指南

LocalAI项目从源码构建指南

LocalAI LocalAI 项目地址: https://gitcode.com/gh_mirrors/loc/LocalAI

前言

LocalAI是一个强大的本地AI模型运行框架,它允许开发者在本地环境中高效运行各种AI模型。本文将详细介绍如何从源码构建LocalAI,包括不同平台和硬件加速方案的构建方法。

构建方式概述

LocalAI提供两种主要构建方式:

  1. 构建为单一可执行文件 - 轻量便携,但功能可能受限
  2. 构建为容器镜像 - 包含完整依赖,功能全面

构建准备

基础环境要求

无论选择哪种构建方式,都需要以下基础工具:

  • Golang 1.21或更高版本
  • Cmake和make构建工具
  • GCC编译器
  • GRPC相关依赖

平台特定依赖安装

macOS系统
brew install abseil cmake go grpc protobuf protoc-gen-go protoc-gen-go-grpc python wget
pip install --user grpcio-tools
Debian/Ubuntu系统
apt install cmake golang libgrpc-dev make protobuf-compiler-grpc python3-grpc-tools
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.34.2
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@1958fcbe2ca8bd93af633f11e97d44e567e945af

基础构建流程

  1. 获取源码
  2. 进入项目目录
  3. 执行构建命令
make build

构建完成后会生成local-ai可执行文件。

构建选项详解

主要构建变量

| 变量名 | 默认值 | 说明 | |-------|-------|------| | BUILD_TYPE | None | 指定加速类型:cublas, openblas, clblas, metal, hipblas, sycl_f16, sycl_f32 | | GO_TAGS | tts stablediffusion | 指定功能标签:stablediffusion, tts, tinydream | | CLBLAST_DIR | 空 | 指定CLBlast库路径 | | CUDA_LIBPATH | 空 | 指定CUDA库路径 | | BUILD_API_ONLY | false | 仅构建API,不构建后端 |

CPU指令集优化

对于不支持某些指令集的老旧CPU,可以禁用相关优化:

CMAKE_ARGS="-DGGML_F16C=OFF -DGGML_AVX512=OFF -DGGML_AVX2=OFF -DGGML_AVX=OFF -DGGML_FMA=OFF" make build

容器镜像构建

构建容器镜像需要Docker或Podman等容器引擎:

docker build -t localai .
docker run localai

镜像构建参数:

| 变量名 | 默认值 | 说明 | |-------|-------|------| | IMAGE_TYPE | extras | 构建类型:core(核心功能), extras(完整功能) |

平台特定构建指南

macOS构建示例

  1. 安装Xcode(从App Store)
  2. 安装构建工具
  3. 获取模型文件
  4. 运行LocalAI
# 获取phi-2模型
wget https://huggingface.co/TheBloke/phi-2-GGUF/resolve/main/phi-2.Q2_K.gguf -O models/phi-2.Q2_K

# 复制模板
cp -rf prompt-templates/ggml-gpt4all-j.tmpl models/phi-2.Q2_K.tmpl

# 运行LocalAI
./local-ai --models-path=./models/ --debug=true

macOS常见问题解决

  1. metal工具缺失:确保安装完整Xcode
  2. xcrun错误:重置开发工具路径
    sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    
  3. 性能问题:调整模型配置中的gpu-layers参数
  4. 编译错误:重新安装依赖并清理构建
    brew reinstall abseil cmake go grpc protobuf wget
    make clean
    make build
    

功能扩展构建

图像生成支持

需要OpenCV和Gomp:

make GO_TAGS=stablediffusion build
# 或
make GO_TAGS=tinydream build

文本转语音支持

需要piper-phonemize:

make GO_TAGS=tts build

硬件加速方案

OpenBLAS(软件加速)

make BUILD_TYPE=openblas build

CuBLAS(NVIDIA GPU)

需要CUDA工具包:

make BUILD_TYPE=cublas build

HipBLAS(AMD GPU)

需要ROCm环境:

make BUILD_TYPE=hipblas GPU_TARGETS=gfx1030

CLBLAS(AMD/Intel GPU)

需要OpenCL和CLBlast:

make BUILD_TYPE=clblas build

SYCL(Intel GPU)

需要Intel oneAPI Base Toolkit:

make BUILD_TYPE=sycl_f16 build  # float16
make BUILD_TYPE=sycl_f32 build  # float32

Metal(Apple Silicon)

自动检测Metal支持:

make build

高级构建示例

构建特定后端

make GRPC_BACKENDS=backend-assets/grpc/llama-cpp build

指定llama.cpp版本

CPPLLAMA_VERSION=<版本号或SHA> make build

结语

通过本文的详细指南,您应该能够根据自身需求和环境成功构建LocalAI。无论是追求轻量化的二进制构建,还是功能完整的容器镜像,亦或是针对特定硬件的加速方案,LocalAI都提供了灵活的构建选项。

LocalAI LocalAI 项目地址: https://gitcode.com/gh_mirrors/loc/LocalAI

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农芬焰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值