懒人通道

官网提供了懒人包,使用的时候不需要关注整个打包流程,,下面是官方的cuda示例,当然官方提供可选项很多,Available: cublas, openblas, clblas, metal,hipblas, sycl_f16, sycl_f32

docker中gpu使用方法https://localai.io/features/gpu-acceleration/,如果你需要使用其他加速设备,就需要手动编译这个项目了,官方提供了各种系统的编译方法https://localai.io/basics/build/#Acceleration

Ps:对于只需要部分功能的人来说,懒人包占用60G的空间,让我们有点寒暄

介绍

下面在介绍编译之前,我们先了解下LocalAi的架构

LocalAI这个项目架构集成了各种语言(C++,Golang,Python等)通过编写一套GRPC实现不同模型加速服务接入。 LocalAI 的所有组件可在 模型兼容性表查看

Oh, and let’s not forget the real MVP here—llama.cpp. Without this extraordinary piece of software, LocalAI wouldn’t even exist. So, a big shoutout to the community for making this magic happen!



Ps: 好奇怪的画风^(^

GPU设备

LocalAi官方提供可选项很多,比如: cublas, openblas, clblas, metal,hipblas, sycl_f16, sycl_f32,这些设备的支持方法你可以在这个页面找到https://localai.io/basics/build/#Acceleration

环境配置

LocalAI由于提供了Dockerfile,一些环境配置可以参考DockerFile,需要注意的是,如果你在本地安装,C++编译器的版本请自行确认,不同系统有所不同

如果你选用了docker环境编译,那么你需要注意,本地的gpu设备载入配置,同样不同的gpu设备载入方式也不太相同,这里选用nvidia设备

1、提前安装好docker-nvidia桥接依赖,一些错误的解决方法https://github.com/NVIDIA/nvidia-docker/issues/1243

2、配置docker-compose文件

version: '3.6'

services:
localai_cuda:
image: quay.io/go-skynet/local-ai:master-cublas-cuda12
build:
context: .
dockerfile: Dockerfile
ports:
- 8080:8080
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
environment:
- BUILD_TYPE=cublas
- DEBUG=true
- MODELS_PATH=/models
- 'NVIDIA_VISIBLE_DEVICES=all'
- 'CUDA_VISIBLE_DEVICES=all'
- 'CUDA_DEVICE_POOL_GPU_OVERRIDE=1'
env_file:
- .env
volumes:
- ./models:/models:cached
- ./images/:/tmp/generated/images/
command: ["/usr/bin/local-ai" ]

3、在运行前,docker启动容器报错 Unknown runtime specified nvidia.这个错误出现,说明你没有配置runtime,参考https://www.cnblogs.com/luckforefforts/p/13642682.html

4、修改国内的ubuntu源,在Dockerfile合适的位置增加下面两行

RUN sed -i 's/http:\/\/archive.ubuntu.com/http:\/\/mirrors.tuna.tsinghua.edu.cn\/ubuntu/g' /etc/apt/sources.list

RUN apt-get clean

5、修改.env变量BUILD_TYPE值为cublas,说明见https://localai.io/basics/build/#Acceleration

6、执行编译 docker-compose up --build

localAI: 编译步骤说明的更多相关文章

  1. Linux-编译器gcc/g++编译步骤

    gcc和g++现在是gnu中最主要和最流行的c&c++编译器.g++是c++的命令,以.cpp为主:对于c语言后缀名一般为.c,这时候命令换做gcc即可.编译器是根据gcc还是g++来确定是按 ...

  2. Android 源码编译 步骤

    添加资源后编译步骤 1:lunch 112:mmm frameworks/base/core/res/生成Install: out/target/product/hammerhead/system/f ...

  3. zlib库VS2015编译步骤

    [点击这里下载zlib1.2.8源码](http://zlib.net/zlib128.zip) [点击这里下载zlib1.2.8编译动态库](http://zlib.net/zlib128-dll. ...

  4. 腾讯开源项目phxpaxos的编译步骤

    #paxos的一般编译流程在项目文档<中文详细编译手册>里面已经有介绍,这里重点介绍一下编译samples目录下的代码: #我的环境是ubuntu; #设置paxos根目录 phx_dir ...

  5. Android APK反编译步骤

    反编译步骤 1.通过Android Killer 打开apk,自动开始分析   2.分析结束后,在分析好的工程上右键->打开方式->打开文件位置     在文件夹ProjectSrc中有文 ...

  6. R58的编译步骤f1选项v1.1版本

    R58的编译步骤f1选项v1.1版本 2017/3/16 16:38 请严重注意: 编译全志R58的Android6.0.1的系统和其它系统有两个不同: 1.在执行pack打包之前,必须执行verit ...

  7. OpenSSL简单介绍及在Windows、Linux、Mac系统上的编译步骤

    OpenSSL介绍:OpenSSL是一个强大的安全套接字层password库,囊括基本的password算法.经常使用的密钥和证书封装管理功能及SSL协议.并提供丰富的应用程序供測试或其他目的使用. ...

  8. webrtc所有平台下载编译步骤详细说明

    webrtc所有平台下载编译步骤详细说明 1.安装depot tools Windows:国外下载:https://storage.googleapis.com/chrome-infra/depot_ ...

  9. linux 模块编译步骤(原)

    linux 模块编译步骤(原) 博主推荐:<Linux命令模板Licote(原)> 本文将直接了当的带你进入linux的模块编译.当然在介绍的过程当中,我也会添加一些必要的注释,以便初学者 ...

  10. Java native代码编译步骤简书

    Java native代码编译步骤简书 目的:防止java代码反编译获取密码算法 (1)编写实现类com.godlet.PasswordAuth.java (2)编译java代码javac Passw ...

随机推荐

  1. 链表中,LNode和* LinkList的理解

    typedef struct LNode { int data; struct LNode* next; }LNode, * LinkList; 这是标准链表创建法. 简单的说,其中LNode和 * ...

  2. Android Framework:如何让 App 拿到Power key 值

    Android app:如何让 App 拿到Power key 值 原文(有删改):https://blog.csdn.net/qq_37858386/article/details/10383566 ...

  3. 3568F-视频开发案例

  4. 3562-Linux系统使用手册

  5. Linux 命令指南

    做这个东西有两个用处,一是初赛会考,二是考场上用 windows 哪里数组越界你都不知道直接 RE 爆炸. sudo -s 输入后填写密码获得管理员权限. cd 打开文件或者目录,用法是 cd 目录名 ...

  6. mobaXterm 查看密码

    参考:MobaXterm中密码的查看方式 检查是否把密码保存到了注册表中 然后从https://github.com/HyperSine/how-does-MobaXterm-encrypt-pass ...

  7. HIVE从入门到精通------(1)hive的基本操作

    1.开启hive 1.首先在master的/usr/local/soft/下启动hadoop: master : start-all.sh start-all.sh 2.在另一个master(2)上监 ...

  8. null 和 undefined 的区别?

    null 表示一个对象被定义了,值为"空值":undefined 表示不存在这个值.(1)变量被声明了,但没有赋值时,就等于undefined. (2) 调用函数时,应该提供的参数 ...

  9. yolov5+deepsort+slowfast复现

    1.运行环境 ubuntu 18.04.1 Cuda 11.5 Python 3.8.15 torch 1.10.1+cu113 torchvision 0.11.2+cu113 2.安装PyTorc ...

  10. Apache基于IP和端口

    Apache基于IP 步骤1:添加并配置虚拟网卡 添加虚拟网卡:通常在虚拟机环境中,可以通过虚拟机软件(如VMware或VirtualBox)的网络设置来添加额外的网络适配器. 配置IP地址:编辑/e ...