Byzer-LLM环境安装

news2025/2/13 7:11:48

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.coloradmin.cn/o/863930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

9.2.1Socket(UDP)

一.传输层: 1.UDP:无连接,不可靠,面向数据报,全双工. 2.TCP:有连接,可靠,面向字节流,全双工. 注意:这里的可不可靠是相对的,并且和安不安全无关. 二.UDP数据报套接字编程: 1.socket文件:表示网卡的这类文件. 2.DatagramPacket:表示一个UDP数据报. 三.代码实现: 1.回显服务…

渠道失灵?新零售迎来数据大屏新“大脑”

前言 **“新零售”**是以消费者需求为中心的数据驱动的泛零售形态,其核心是“人”、 “货”、“场”三者的重新定义与关系重构,而重构背后最根本的驱动因素是数据。新零售时代,数字技术不断进步、消费不断升级,零售业需要借助数据中台,发掘数…

CH348 USB转8串口芯片资料下载(合集)

1、产品手册 CH348DS1.PDF - 南京沁恒微电子股份有限公司CH348技术手册,USB转8串口芯片,支持最高6M波特率与硬件流控,支持USB配置功能,提供RS485方向控制与GPIO等信号引脚,可实现PC等平台扩展多串口或多个串口设备升级…

Tomcat的动静分离以及多实例部署

一、动静分离 Nginx实现负载均衡的原理: Nginx实现负载均衡是通过反向代理实现Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发。 但不是把所有的web请求转发,而是将静态页面请求Ncinx服务器自己来处…

高压放大器怎么设计(高压放大器设计方案)

高压放大器是一种用于将低电压信号转换成高电压信号的电子设备,广泛应用于通信、雷达、医疗设备等领域。在设计高压放大器时,需要考虑多种因素,如输入输出信号的特性、电路结构的选择、电源和负载匹配等。本文将介绍高压放大器的设计方法和注…

1、Java简介+DOS命令+编译运行+一个简单的Java程序

Java类型: JavaSE 标准版:以前称为J2SE JavaEE 企业版:包括技术有:Servlet、Jsp,以前称为J2EE JavaME 微型版:以前称为J2ME Java应用: Android平台应用。 大数据平台开发:Hadoo…

关于电商API接口对接流程,简单讲解!

电商API接口对接流程一般包括以下几个步骤: 1. 确定需求:首先确定您的电商平台需要与哪些其他系统或服务进行对接,以及需要传递哪些数据。 2. 寻找合适的API:根据您的需求,在开放平台或者第三方API市场中选择适合的A…

滚珠螺杆在包装机械中的应用

近年来在传动元件领域出现了重大的技术突破,主要体现在采用了滚珠的滚动摩擦代替了传统的机械摩擦传动方式。传统的机械摩擦虽说结构简单,价格低廉,但摩擦系数很大,会造成传动阻力大和工作效率低等缺陷。 为了克服较大的运行阻碍力…

day5 STM32中断系统

中断的基本概念 在处理器中,中断是一个过程,即CPU正常执行程序的过程中,遇到外部或者内部的紧急时间需要处理,暂时终止当前程序的执行,转而去为处理紧急的时间,待处理完毕后再返回被打断的程序出继续往下执…

腾讯云服务器地域怎么选?可用区是什么?

腾讯云服务器地域有什么区别?怎么选择比较好?地域选择就近原则,距离地域越近网络延迟越低,速度越快。关于地域的选择还有很多因素,地域节点选择还要考虑到网络延迟速度方面、内网连接、是否需要备案、不同地域价格因素…

日期切换

组件&#xff1a;<template><div class"time-picker"><el-radio-group size"small" v-model"timeType" change"changePickerType"><el-radio-button label"hour" v-if"isShow">时</el…

通过控制ros节点的启停,软实现人工控制和紧急停止功能的图示

通过控制ros节点的启停&#xff0c;软实现人工控制和紧急停止功能的图示 实现原理简介&#xff1a; 人工控制的节点&#xff1a; 键盘节点 方向盘节点 自动控制的节点&#xff1a; movebase 导航 autoware 等 底盘节点&#xff1a; 差速底盘 阿克曼底盘 控制节点&#xff1…

tomcat多实例与动静分离

多实例&#xff1a; 在一台服务器上配置多台tomcat服务 配置 tomcat 环境变量 修改 tomcat2 中的 server.xml 文件&#xff0c;要求各 tomcat 实例配置不能有重复的端口号 vim /usr/local/tomcat/tomcat2/conf/server.xml<Server port"8006" shutdown"SHUT…

过去为什么在编写程序时需要在语句前面加上行号?

在过去的编程语言中&#xff0c;如FORTRAN和早期的BASIC&#xff0c;每条语句都占据一行&#xff0c;因此需要在语句前面加上行号。然而&#xff0c;行号并不仅仅表示行的序号&#xff0c;它实际上是一种数字标记&#xff0c;类似于C语言中的标签&#xff08;label&#xff09;…

VMware Workstation下载不同的版本

1&#xff1a;访问下载链接 https://customerconnect.vmware.com/cn/downloads/#all_products 2&#xff1a;拉倒下面去选择对应的下载内容 3&#xff1a;先选择大版本 4&#xff1a;大版本选择之后&#xff0c;就可以选择对应的小版本 各位再根据自己的选择进行下载就好了

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

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

2023一带一路东盟工商领袖峰会在曼谷成功举行,发明家周初材被授予中泰友好交流大使

今年是共建“一带一路”倡议提出十周年。十年来&#xff0c;共建“一带一路”倡议从理念到行动&#xff0c;从愿景到现实&#xff0c;开展更大范围、更高水平、更深层次的区域合作&#xff0c;致力于维护全球自由贸易体系和开放型世界经济&#xff0c;推动文明交流互鉴&#xf…

软件开发人员这样跟踪时间,简单又有效!

作为软件开发人员&#xff0c;会有大量的代码需要编写&#xff0c;有大量的错误需要解决&#xff0c;有大量的功能需要构建。问题是&#xff0c;错误计算的任务堆积如山&#xff0c;很难正确掌握时间。 令人震惊的现实是&#xff0c;近一半的开发人员每周花在软件项目上的时间…

网安周报|半数人工智能开源项目引用存在漏洞的软件包

1、半数人工智能开源项目引用存在漏洞的软件包 根据EndorLabs的数据&#xff0c;开源在AI技术堆栈中发挥着越来越重要的作用&#xff0c;但大多数项目(52%)引用了存在已知漏洞的易受攻击的依赖项。EndorLabs在最新的《软件依赖管理状态报告》声称&#xff0c;在发布仅五个月后&…

可以实现每月固定日期提醒的APP工具

在时间的快速飞逝中&#xff0c;有许多日期悄然而至&#xff0c;我们在繁忙的日常中非常容易忽视这些日子&#xff0c;曾几何时&#xff0c;因为忙碌而错过了重要的纪念日、生日或者约会呢&#xff1f;当错过这些重要的日子后&#xff0c;不少人为此懊恼不已。 然而&#xff0…