Byzer-LLM环境安装

1.Byzer-LLM简介 

 Byzer-LLM 是基于 Byzer 的一个扩展,让用户可以端到端的完成业务数据获取,处理,finetune大模型,多场景部署大模型等全流程。 该扩展的目标也是为了让企业更好的将业务数据注入到私有大模型(开源或者商业),并且可对外提供多场景部署形态,诸如 ETL, 流式计算,API 服务 等。

下面是使用 Byzer-LLM 完成大模型的一个工作流程图:

 2.Byzer-LLM安装

可以有两种安装方式,一种是无脑运行shell脚本,但是注意这个shell脚本要在 CentOS 8 / Ubuntu 20.04 / Ubuntu 22.04上运行,其他系统可能会出错。经历漫长的等待之后,就可以在自己的linux电脑中完成单机安装,包含一整套的Byzerllm环境(Byzer-lang引擎+Ray+conda环境+cuda驱动等),这种方式叫做裸机全自动化部署,这种方式需要自己手动下载Byzer-notebook。

还有一种方式是手动部署:自己下载Byzer引擎+自己创建conda运行环境+自己下载notebook+自己下载Byzerllm拓展(就是一个jar包)

2.1 裸机全自动化部署

注意:(只支持 CentOS 8 / Ubuntu 20.04 / Ubuntu 22.04)

在机器上执行如下指令:

git clone https://gitee.com/allwefantasy/byzer-llm

cd byzer-llm/setup-machine

接着切换到 Root用户下执行如下脚本:

ROLE=master./setup-machine.sh 

此时会完成 byzerllm 账号创建登工作。

接着 切换到 byzerllm 账号下,再次执行:

ROLE=master ./setup-machine.sh

 会完整的安装包括显卡驱动,cuda 工具集,一整套 Byzer-LLM 环境,之后就可以访问 http://localhost:9002 来使用 Byzer-LLM 了。用户如果想组件集群,对于从节点,可以使用如下命令,也是分别执行两次。

ROLE=worker ./setup-machine.sh

2.2 手动部署

使用 Byzer-LLM 需要做如下工作:

  1. 安装 Byzer-lang/Byzer Notebook
  2. 创建一个 byzerllm-desktop Python环境,并按要求安装依赖(这一步中包含安装Ray)
  3. 启动 Ray
  4. 安装 Byzer-LLM 扩展

注意:Byzer-LLM 需要在有 Nvidia 的 GPU 的机器上才能正常工作。推荐 Ubuntu 22.04, 同时确保安装了驱动。可以直接安装他的大礼包: CUDA Toolkit 12.2 Downloads | NVIDIA Developer

2.2.1 Byzer-lang/Byzer-notebook 安装

下载:

  1. Byzer-lang: https://download.byzer.org/byzer-lang/2.3.8/byzer-lang-all-in-one-linux-amd64-3.3.0-2.3.8.tar.gz
  2. Byzer-notebook: https://download.byzer.org/byzer-notebook/1.2.5/Byzer-Notebook-1.2.5.tar.gz

然后解压。

首先是启动 Byzer-lang 引擎,

进入 byzer-lang-all-in-one-linux-amd64-3.3.0-2.3.8 目录,执行如下命令即可启动 Byzer 引擎:

./bin/byzer.sh start
# 重启可以用下面的命令
# ./bin/byzer.sh restart

启动完成后就可以访问 9003 端口了。注意,启动byzer-lang的时候如果遇到由于java环境报错,那么需要java-home指定为byzer-lang目录中的jdk8,即使你的电脑之前有Java8环境。

注意:如果需要访问 file:// 或者对象存储的绝对路径,则需要修改 ${BYZER_HOME}/conf/byzer.properties.overwrite,添加如下配置(显示的罗列哪些schema可以用绝对路径): spark.mlsql.path.schemas=oss,s3a,s3,abfs,file

启动 Byzer Notebook 则需要提前准备一个 MySQL 数据库,建议 5.7 版本的,然后创建一个名称叫做 notebook 的数据库。

现在可以进入 Byzer-Notebook-1.2.5, 修改 conf/notebook.properties 文件,

根据数据库实际地址修改数据库配置部分:

notebook.database.type=mysql
notebook.database.ip=127.0.0.1
notebook.database.port=3306
notebook.database.name=notebook
notebook.database.username=root
notebook.database.password=root

 特别注意,下面的参数 notebook.user.home 务必需要修改。 该参数其实是指定的 Byzer 引擎存储用户文件数据所在的目录。你需要选一个实际可用的目录。默认的 /mlsql 因为在根目录下,往往Byzer引擎没有权限创建。这会导致在 Byzer-Notebook 上传文件到引擎失败等问题。

notebook.user.home=/mlsql

现在就可以启动 Notebook了:

./bin/notebook.sh start## 重启可以用
## ./bin/notebook.sh restart

此时就可以访问 9002 端口了,进入 Notebook 界面开始工作了。

2.2.2 Ray安装(推荐 Ubuntu 22.04 操作系统)

(1)使用 conda 创建一个 Python 3.10.10

conda create --name byzerllm-desktop python=3.10

 (2)现在可以切换到环境 byzerllm-desktop,安装 pip 依赖:https://github.com/allwefantasy/byzer-llm/blob/master/demo-requirements.txthttps://github.com/allwefantasy/byzer-llm/blob/master/demo-requirements.txt

继续保持在环境 byzerllm-desktop, 然后使用如下命令启动 Ray:

CUDA_VISIBLE_DEVICES=0,1 ray start --head \

--dashboard-host 192.168.3.224 \

--num-gpus=2 \

--object-store-memory 40949672960 \

--storage /my8t/byzerllm/ray_stroage \

--temp-dir /my8t/byzerllm/ray_temp

简要解释下,CUDA_VISIBLE_DEVICES 配置让 Ray 可以看到的 GPU,从0开始。

  1. --num-gpus 则配置 Ray 可以管理的 GPU 数,另外三个参数
  2. --object-store-memory, --storage, --temp-dir 可选。
  3. --dashboard-host 是 Ray 的dashboard地址

根据自身的显卡情况填写(显卡显存需要>=8g)。

注意,Byzer

ray启动命令:

ray start --include-dashboard true --dashboard-host 0.0.0.0 --head

之后可以在命令中看到日志:

 ray默认启动端口在本地8265端口,如果在本地看到如下界面证明ray启动成功。

3.Byzer-LLM拓展安装

Byzer-LLM 作为一个扩展,可以有两种方式安装。第一种在线安装, 在 Byzer-Notebook 的 Cell 中执行如下命令:

!plugin app add - "byzer-llm-3.3";

第二种方式是离线安装, 在这个 Index of /byzer-extensions/nightly-build/ 中下载 byzer-llm-3.3_2.12-0.1.0-SNAPSHOT.jar , 然后将其放到 Byzer 引擎 ${BYZER_HOME}/plugin 目录里,然后在 ${BYZER_HOME}/conf/byzer.properties.overwrite 中添加如下参数 streaming.plugin.clzznames=tech.mlsql.plugins.llm.LLMApp 。

推荐安装好notebook之后,在Notebook界面运行!plugin app add - "byzer-llm-3.3"

3、Byzer-LLM环境启动

需要按照顺序依次启动Byzer-lang、Ray、Byzer-notebook

3.1 启动Byzer-lang

在Byzer-lang目录中bin目录下执行

/bin/bash  byzer.sh start

之后浏览器访问9003端口,如果页面显示,即为byzer-lang启动成功。

3.2 启动Ray 

在安装时创建的byzer-desktop环境中执行

ray  start --head 

该命令是最简洁的命令,如果需要指定gpu、内存等可以在该命令后指定.

3.3 启动 notebook

启动notebook之前需要查看自己的Mysql5.7有没有启动。确保mysql5.7服务正常,再在byzer-notebook的bin目录下运行

/bin/bash notebook start 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/85083.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学生公寓一进四出智能电表的功能介绍

学生公寓一进四出智能电表石家庄光大远通电气有限公司模块时间控制功能:可设定每个宿舍自动断电和供电的时间;也可以设定某时间段内为小功率输出,设定时间后自动恢复正常供电。权限管理:管理者可对操作人员设定不同操作权限; 软件…

Android T 窗口层级其一 —— 容器类

窗口在App端是以PhoneWindow的形式存在,承载了一个Activity的View层级结构。这里我们探讨一下WMS端窗口的形式。 可以通过adb shell dumpsys activity containers 来看窗口显示的层级 窗口容器类 —— WindowContainer类 /*** Defines common functionality for c…

Linux下 时间戳的转化

Linux下一般用date 记录当前时间,尤其是我们需要保存测试log的时候,或者设计一个跑多长时间的脚本都需要时间戳。下面看一下平时最常用的几种写法 1 date “%Y-%m-%d %H:%M” 显示具体时间 2 修改时间 date -s 3 date %s :当前时间的时间戳 显示具体时…

去了字节跳动,才知道年薪40W的测试有这么多?

今年大环境不好,内卷的厉害,薪资待遇好的工作机会更是难得。最近脉脉职言区有一条讨论火了 哪家互联网公司薪资最‘厉害’? 下面的评论多为字节跳动,还炸出了很多年薪40W的测试工程师 我只想问一句,现在的测试都这么有…

Opencv-C++笔记 (16) : 几何变换 (图像的翻转(镜像),平移,旋转,仿射,透视变换)

文章目录 一、图像平移二、图像旋转2.1 求旋转矩阵2.2 求旋转后图像的尺寸2.3手工实现图像旋转2.4 opencv函数实现图像旋转 三、图像翻转3.1左右翻转3.2、上下翻转3.3 上下颠倒,左右相反 4、错切变换4.1 实现错切变换 5、仿射变换5.1 求解仿射变换5.2 OpenCV实现仿射…

Floyd算法

正如我们所知道的,Floyd算法用于求最短路径。Floyd算法可以说是Warshall算法的扩展,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3)。 Floyd算法的基本思想如下:从任意节点A到任意节点B的最短路径不外乎2种可能&#xff…

SpringCloud实用篇2——Nacos配置管理 Feign远程调用 Gateway服务网关

目录 1 Nacos配置管理1.1 统一配置管理1.1.1 在nacos中添加配置文件1.1.2 从微服务拉取配置 1.2 配置热更新1.2.1 方式一1.2.2 方式二(推荐) 1.3.配置共享 2 搭建Nacos集群2.1 集群结构图2.2 搭建集群2.2.1 初始化数据库2.2.2 下载nacos2.2.3 配置Nacos2…

JavaSE 【类和对象】(3)(重点:内部类)

一、内部类 将一个类定义在另一个类或者一个方法的内部, 前者称为内部类,后者称为外部类 。内部类也是封装的一种体现 在外部类中,内部类定义位置与外部类成员所处的位置相同,因此称为成员内部类。 public class OutClass { c…

分布式异步任务处理组件(八)

分布式异步任务组件网络通信线程模型设计-- 大概说一下功能场景: 从节点和主节点建立连接,负责和主节点的网络IO通信,通信动作包括投票,心跳,举证等,步骤为读取主节点的信息,写入IO队列中&…

15.3.2 【Linux】系统的配置文件:/etc/crontab,/etc/cron.d/*

这个“ crontab -e ”是针对使用者的 cron 来设计的,如果是“系统的例行性任务”时, 该怎么办呢?是否还是需要以 crontab -e 来管理你的例行性工作调度呢?当然不需要,你只要编辑/etc/crontab 这个文件就可以。有一点需…

Prometheus技术文档-基本使用-配置文件全解!!!!!

简介: Prometheus是一个开源的系统监控和告警系统,由Google的BorgMon监控系统发展而来。它主要用于监控和度量各种时间序列数据,比如系统性能、网络延迟、应用程序错误等。Prometheus通过采集监控数据并存储在时间序列数据库中,…

【SpringBoot】日志是什么+基于lombok的日志输出

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE进阶 在我们日常的程序开发中,日志是程序的重要组成部分,想象⼀下,如果程序报错了,不让你打开控制台看⽇志,那么你能找到报错的原因吗…

【华秋推荐】新能源汽车中的T-BOX系统,你了解多少?

近几年,新能源汽车产业进入了加速发展的阶段。我国的新能源汽车产业,经过多年的持续努力,技术水平显著提升、产业体系日趋完善、企业竞争力大幅增强,呈现市场规模、发展质量“双提升”的良好局面。同时,通过国家多年来…

TypeScript 中【class类】与 【 接口 Interfaces】的联合搭配使用解读

导读: 前面章节,我们讲到过 接口(Interface)可以用于对「对象的形状(Shape)」进行描述。 本章节主要介绍接口的另一个用途,对类的一部分行为进行抽象。 类配合实现接口 实现(impleme…

VR全景在建筑工程行业能起到哪些作用?

在建筑工程领域,数字化技术为行业的发展起到巨大的推动作用,虽然建筑施工行业主要是依赖于工人劳动力和施工设备,但是VR全景在该行业中方方面面都能应用,从设计建模到项目交付,帮助建筑师以及项目方更好的理解每个环节…

斗象科技-2023攻防演练必修高危漏洞集合下载(2个版本)

高危风险漏洞一直是企业网络安全防护的薄弱点,也成为HW 攻防演练期间 红队的重要突破口;每年HW 期间爆发了大量的高危风险漏洞成为红队突破网络 边界防护的一把利器,很多企业因为这些高危漏洞而导致整个防御体系被突破、 甚至靶标失守而遗憾出…

photoshop生成器引入到electron项目(electron与photoshop建立通信)

Photoshop引入了nodejs,在启动的时候,通过pipe调起nodejs运行时核心generator-builtin,通过KLVR机制与ps进行通信和交互,同时会加载用户编写的扩展。 这里记录一下引入时的踩坑过程 generator-core就是它的源码,elect…

Unity 编辑器资源导入处理函数 OnPreprocessAudio :深入解析与实用案例

Unity 编辑器资源导入处理函数 OnPreprocessAudio 用法 点击封面跳转下载页面 简介 在 Unity 中,资源导入是一个非常重要的环节,它决定了资源在项目中的使用方式和效果。Unity 提供了一系列的资源导入处理函数,其中之一就是 OnPreprocessAud…

Qt应用开发(基础篇)——拆分器窗口 QSplitter

一、前言 QSplitter继承于QFrame,QFrame继承于QWidget,是Qt的一个基础工具类。 框架类QFrame介绍 QSplitter拆分器,用户通过拖动子部件之间的边界来控制子部件的大小,在应用开发中数据分模块展示、图片展示等场景下使用。 二、QSp…

【金融量化】对企业进行估值的方法有哪些?

估值的方法有哪些? 如何对企业进行估值?有2个方法估算。 1 绝对估值法 它是一种定价模型,用于计算企业的内在价值。 比如说你可以根据公司近N年的现金流情况。借此去预测未来N年的现金流情况。所有的现金流数据都可以在年报上查询到。最后…