Linux进行模型微调前的环境准备

   在Linux机器上对模型进行微调前,首先需要准备环境,即安装相关的软件。因为linux是一个无界面操作系统,软件安装完成后,还需要有便捷的交互方式编写脚本,调试脚本。此篇博客将专门介绍如何快速安装所需依赖软件,以及如何用jupyter notebook进行便捷的交互式编程。

申请设备

  此篇博客申请的设备是AWS上的g5系列,如果你使用的是其他云厂商服务,选择带GPU的instance即可。博客里面选用的操作系统是Ubuntu22版本,属于Debian系列,架构是x86-64的架构。在申请设备的时候,为了方便从外面通过ssh连接instance,enable了public IP的分配。对模型微调需要很多磁盘空间存储下载的模型参数文件,所以,在申请instance的时候尽量将磁盘空间设置大一些,我自己设置的是256G。如果不清楚使用的instance的架构,可通过下面的命令查看,另外,还可以通过命令查看ubuntu的版本信息。

#查看架构
dpkg --print-architecture#查看ubuntu版本信息
lsb_release -a

aws上申请好instance后,需要提前安装好gcc,安装命令:

sudo apt-get update   && apt-get install gcc

检查gcc是否安装成功的命令: gcc -version

安装NVIDIA驱动

安装cuda driver的命令如下所示,非常简单。

#安装包管理,即生成相应的key,以后在安装Nvidia的相关包时,会进行安全相关的检查,保证安装的包是受到官网认证的包
distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-keyring_1.0-1_all.debsudo dpkg -i cuda-keyring_1.0-1_all.deb#安装cuda-driver
sudo apt-get update 
sudo apt-get -y install cuda-drivers

执行命令后,用 nvidia-smi 命令进行检查,通过命令可以看到GPU相关信息,包括版本,显存大小等,具体如下图所示:

安装conda

在进行模型微调或者微调评估时,除了用到常用的pytorch包外,还可能用到NumPy,Pandas等包,所以,这里选择安装Anaconda,而不是Miniconda。安装脚本如下所示:

#安装其他的一些依赖包
apt-get install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6#下载安装脚本
curl -O https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh#执行安装脚本,需要长按enter键review完协议,并输入yes,同意协议才会开始正式安装Anaconda
bash Path/Anaconda3-2020.05-Linux-x86_64.sh#安装完成后,激活
source <PATH_TO_CONDA>/bin/activate
conda init

安装结果如下图所示,可以看到,安装成功,此时在terminal里面输入conda,会显示一系列命令参数,说明正确安装了conda。

安装cuda toolkit

安装cuda toolkit的方法有很多,这里因为已经安装好了conda,所以通过conda命令来安装cuda toolkit。

安装命令:conda install cuda -c nvidia

卸载命令:conda remove cuda

在conda的激活环境中,查看python,pip,可以看到,都已经默认安装好了。另外,还可以通过pip list命令查看安装的所有python包,具体如下图所示:

如果要查看某个具体的包是否被安装,可以通过pip show命令。如下图所示,可以看到transformers库已经被默认安装上去了,pytorch库还没有安装。

如果不通过conda安装cuda,还可以从官网获取安装命令进行安装,具体如下图所示。选择自己使用的instance的操作系统类型,架构,系统版本等信息就可以得到最标准的安装命令。

安装pytorch等其他库

通过conda 安装pytorch的命令: conda install pytorch torchvision -c pytorch。当然,除了安装pytorch,还可以通过conda命令安装任意其他的包,安装命令:conda install package_name。

另外,也可以通过命令批量安装requirements.txt文件中的所有依赖。

安装命令:conda install --file requirements.txt

conda默认是从default的channel上安装包,但是default channel上的包可能不全,所以,建议使用conda-forge作为下载包的渠道。不同渠道下载的包,可能会有兼容性问题。如果遇到兼容性问题,建议在激活环境后,通过下面的命令进行全量包更新。相关命令如下所示:

#添加conda-forge channel并设置为最高优先级
conda config --add channels conda-forge#查看现在的channel状态和优先级
conda config --get channels#更新包命令
conda update --all

在安装pytorch的时候,需要注意一点,pytorch和cuda之间是有版本映射关系的,如果版本映射关系不正确,后面运行程序可能会出错。最标准的安装办法是:在官网输入相关信息,得到安装命令进行安装。具体如下图所示,选择要安装的pytorch版本,os,package,cuda版本,即可得到正确的安装命令。

Pytorch安装成功,可以运行脚本查看安装的Pytorch是否支持GPU。

创建交互式编程方式

activate后,在激活的环境下,执行jupyter notebook命令,执行该命令后,会默认生成下面的连接,端口是8888。如下图所示:

为了能在外面电脑的浏览器上打开notebook,需要在instance的security group的inbound规则中开放8888端口。另外,执行下面的命令,这段命令是用于建立SSH隧道(SSH tunnel),通过加密的方式在本地计算机和远程服务器之间建立连接。这通常用于远程访问远程服务器上运行的服务,比如Jupyter Notebook,通过浏览器访问本地计算机上的服务。其中pem文件是申请instance时创建的权限文件。

ssh -i /Users/taoli/Downloads/taoli-tokyo.pem -N -f -L 8888:localhost:8888 ubuntu@instance public ip

-L 8888:localhost:8888: 在本地端口8888上创建一个本地端口转发。这意味着本地计算机的端口8888将被转发到远程服务器的localhost:8888。

执行上面的命令后,就可以在外面的电脑浏览器上输入上图生成的连接,创建python脚本或者jupyter脚本,开始交互式编程和调试了。具体如下图所示:

以上就是对进行模型微调前环境准备的专门介绍。

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

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

相关文章

2023-12-25 LeetCode每日一题(不浪费原料的汉堡制作方案)

2023-12-25每日一题 一、题目编号 1276. 不浪费原料的汉堡制作方案二、题目链接 点击跳转到题目位置 三、题目描述 圣诞活动预热开始啦&#xff0c;汉堡店推出了全新的汉堡套餐。为了避免浪费原料&#xff0c;请你帮他们制定合适的制作计划。 给你两个整数 tomatoSlices …

全志R128 DSP开发工具安装教程

资料准备 要编译和仿真DSP&#xff0c;需要以下资料&#xff1a; DSP 核 SDK&#xff0c;SDK 需要包含DSP 编译源码。Cadence Xtensa 的 Windows IDE 工具 (Xplorer‑8.0.13 版本)&#xff0c; Windows 版本 DSP 的 package 包。Cadence Xtensa 的 License&#xff0c;用于服…

数据通信网络基础的网络参考模型华为ICT网络赛道

网络参考模型 目录 网络参考模型 2.1.应用与数据 2.2.网络参考模型与标准协议 2.2.1.OSI参考模型 2.2.2.TCP/IP参考模型 2.2.3.应用层 2.2.4.传输层 2.2.5.TCP和UDP 2.2.6.网络层 2.2.7.数据链路层 2.2.8.物理层 2.3.数据通信过程 2.1.应用与数据 应用的存在&#…

Flink学习-时间和窗口

在流数据处理应用中&#xff0c;一个很重要、也很常见的操作就是窗口计算。所谓的“窗口”&#xff0c;一 般就是划定的一段时间范围&#xff0c;也就是“时间窗”&#xff1b;对在这范围内的数据进行处理&#xff0c;就是所谓的 窗口计算。所以窗口和时间往往是分不开的。 时…

面试手撕算法高频专题:数组的双指针思想及应用(算法村第三关白银挑战)

所谓的双指针其实就是两个变量&#xff0c;不一定真的是指针。 快慢指针&#xff1a;一起向前走对撞指针、相向指针&#xff1a;从两头向中间走背向指针&#xff1a;从中间向两头走 移除值为val的元素 题目描述 27. 移除元素 - 力扣&#xff08;LeetCode&#xff09; 给你…

12.31_黑马数据结构与算法笔记Java

目录 345 设计跳表 Leetcode 1206 346 设计最小栈 Leetcode 155 347 设计端网址 Leetcode 355 348 设计推特 Leetcode 355 349 股票系列问题 Leetcode 121 350 股票系列问题 Leetcode 122 351 股票系列问题 Leetcode 714 352 股票系列问题 Leetcode 309 353 股票系列问…

【CISSP学习笔记】6. 安全开发

该知识领域涉及如下考点&#xff0c;具体内容分布于如下各个子章节&#xff1a; 理解安全并将其融入软件开发生命周期 (SDLC) 中在软件开发环境中识别和应用安全控制评估软件安全的有效性评估获得软件对安全的影响定义并应用安全编码准则和标准 6.1. 系统开发控制 6.1.1. 软…

以太网转RS485通讯类库封装

最近选用有人科技的以太网转RS485模块做项目&#xff0c;设备真漂亮&#xff0c;国货之光。调通了通讯的代码&#xff0c;发到网上供大家参考&#xff0c;多多交流。 以下分别是配套的头文件与源文件&#xff1a; /*******************************************************…

EOS开发Ubuntu安装EOSIO.CDT(Install the EOSIO.CDT)

EOS开发Ubuntu安装EOSIO.CDT&#xff08;Install the EOSIO.CDT&#xff09; EOSIO.CDT介绍&#xff1a;EOSIO合约开发工具包&#xff0c;简称CDT&#xff0c;是与合约编译相关的工具集合。而且后续教程主要使用 CDT 来编译合约和生成 ABI&#xff0c;不要忽略。 刚才我们安装好…

Octave处理高斯光束

文章目录 读取图像截取感兴趣区域强度图拟合 Octave是一种开源的数值计算软件&#xff0c;主要用于科学计算、数据分析和数值模拟等领域。既提供了一个用户友好的命令行界面&#xff0c;使用户能够通过输入简单的命令来进行各种数学运算和数据操作。也提供了功能完备的GUI窗口&…

关于LayUI表格重载数据问题

目的 搜索框搜索内容重载数据只显示搜索到的结果 遇到的问题 在layui官方文档里介绍的table属性有data项,但使用下列代码 table.reload(test, {data:data //data为json数据}); 时发现&#xff0c;会会重新调用table.render的url拿到原来的数据&#xff0c;并不会显示出来传…

看懂基本的电路原理图(入门)

文章目录 前言一、二极管二、电容三、接地一般符号四、晶体振荡器五、各种符号的含义六、查看原理图的顺序总结 前言 电子入门&#xff0c;怎么看原理图&#xff0c;各个图标都代表什么含义&#xff0c;今天好好来汇总一下。 就比如这个电路原理图来说&#xff0c;各个符号都…

文件监控-IT安全管理软件

文件监控和IT安全管理软件是用于保护企业数据和网络安全的工具。这些工具可以帮助企业监控文件的变化&#xff0c;防止未经授权的访问和修改&#xff0c;并确保数据的安全性和完整性。 一、具有哪些功能 文件监控软件可以实时监控文件系统的活动&#xff0c;包括文件的创建、修…

L1-076:降价提醒机器人

题目描述 小 T 想买一个玩具很久了&#xff0c;但价格有些高&#xff0c;他打算等便宜些再买。但天天盯着购物网站很麻烦&#xff0c;请你帮小 T 写一个降价提醒机器人&#xff0c;当玩具的当前价格比他设定的价格便宜时发出提醒。 输入格式&#xff1a; 输入第一行是两个正整数…

条款13:以对象管理资源

文章目录 没有管理的情况解决办法之unique_ptr智能指针解决办法之shared_ptr智能指针总结 没有管理的情况 资源是指一旦你使用完它&#xff0c;就需要返回系统的东西。 class Investment { ... }; // 投资类型层次结构的基类 Investment* createInvestment(); // 工厂函数&…

2022–2023学年2021级计算机科学与技术专业数据库原理 (A)卷

一、单项选择题&#xff08;每小题1.5分&#xff0c;共30分&#xff09; 1、构成E—R模型的三个基本要素是&#xff08; B &#xff09;。 A&#xff0e;实体、属性值、关系 B&#xff0e;实体、属性、联系 C&#xff0e;实体、实体集、联系 D&#xff0e;实体、实体…

html-css-js移动端导航栏底部固定+i18n国际化全局

需求&#xff1a;要做一个移动端的仿照小程序的导航栏页面操作&#xff0c;但是这边加上了i18n国家化&#xff0c;由于页面切换的时候会导致国际化失效&#xff0c;所以写了这篇文章 1.效果 切换页面的时候中英文也会跟着改变&#xff0c;不会导致切换后回到默认的语言 2.实现…

oracle 9i10g编程艺术-读书笔记1

根据书中提供的下载代码链接地址&#xff0c;从github上找到源代码下载地址。 https://github.com/apress下载好代码后&#xff0c;开始一段新的旅行。 设置 SQL*Plus 的 AUTOTRACE 设置 SQL*Plus 的 AUTOTRACE AUTOTRACE 是 SQL*Plus 中一个工具&#xff0c;可以显示所执行…

分布式数据库事务故障恢复的原理与实践

关系数据库中的事务故障恢复并不是一个新问题&#xff0c;自70年代关系数据库诞生之后就一直伴随着数据库技术的发展&#xff0c;并且在分布式数据库的场景下又遇到了一些新的问题。本文将会就事务故障恢复这个问题&#xff0c;分别讲述单机数据库、分布式数据库中遇到的问题和…

华为商城秒杀时加密验证 device_data 的算法研究

前言 之前华为商城放出 Mate60 手机时, 想给自己和家人抢购一两台&#xff0c;手动刷了好几天无果后&#xff0c;决定尝试编写程序&#xff0c;直接发送 POST 请求来抢。通过抓包和简单重放发送后&#xff0c;始终不成功。仔细研究&#xff0c;发现 Cookie 中有一个名为 devic…