书生大模型实战营闯关1 - Linux基础知识

系列文章目录

入门岛之一,Linux基础知识



前言

2024.7.10日开始,我参加了由上海人工智能创新中心举行的,第三期书生大模型实战营,本文为学习过程的记录。如有理解错误的地方,欢迎指正。

一、InternStudio开发机

InternStudio是上海人工智能创新中心提供的在线的云端算力平台,地址是:https://studio.intern-ai.org.cn/,在完成本节的打卡前,需要创建一个开发机。

注册登录后,点击页面上的创建开发机,镜像选择cuda12.2-conda GPU选最低的10%(10%也会扣算力,要是有0%的GPU就好了,这几节都用不到显卡),其它配置自行配置或者默认即可,点击 立即创建 等一会就可以在开发机列表中看到创建好的开发机了。注意开发机不用的话一定要关闭,默认开了8个小时,如果没有用完关机,还会退给你算力点
创建配置
创建好的开发机

二、SSH及端口映射

1. SSH

ssh的全名是Secure Shell,是一种网络安全协议,通过加密和认证机制来实现安全的访问和文件传输等功能。
SSH由服务端和客户端组成(是C/S架构)。通过TCP连接来创建SSH通道,先通过一些算法生成一个会话密钥(对称的),然后通过会话密钥进行数据的加密和解密。

在平时的使用中,我们使用密钥来生成会话密钥,这样可以防止每次连接时都还要输入密码。而之所以使用SSH连接远程电脑是因为环境可以只配置一次,后续直接连接使用,不需要再从新的电脑上安装,配置等等操作。

点击开发机列表中右边的SSH连接,可以查看开发机的SSH密码连接方式,我们根据上面的简介使用本地的SSH连接工具进行连接,这里我使用的连接工具是MobaXterm,是一个针对个人免费的SSH连接工具。

连接成功的欢迎消息
当看到以上的提示信息时,我们就已经成功的连接到开发机了。

2. 配置密钥连接

如果不配置密钥连接的话,我们每次连接开发机都要求输入密码,非常的麻烦,所以我们来配置一个密钥连接。

步骤主要有两步,首先通过 ssh-keygen -t rsa 来生成一个你自己电脑的密钥,然后将这个密钥的公钥添加到开发机中,点击 SSH连接弹出的窗口上方有添加公钥的入口。

首先是在本机输入 ssh-keygen -t rsa 来生成一对密钥。注意一定是在本机输入,不要在开发机中生成。过程中会提示要将密钥生成到什么位置,默认是输入到当前用户的home目录下的.ssh下,会生成两个文件,一个是id_rsa 这是生成的密钥对的私钥,另一个是id_rsa.pub,它是密钥对的公钥。

通过执行cat命令(或者在windows下使用文本编辑器打开id_rsa.pub文件),将文件的内容复制一下,粘贴到开发机的配置里(上面有提到入口)。

保存后,再使用命令直接连接开发机,就不会提示输入密码了。

3. 端口映射

商品映射是一种网络技术,用于将外网的端口映射为某个内网的端口,实现内网与外网的通信。通过端口映射,我们在外网中也可以访问内网中的资源或者服务,实现跨网络的便捷通信。

在后面的学习过程中,我们可能会要使用到开发机中的一些web服务,为了可以在任意的网络中访问到这些web服务,我们就需要对开发机上的端口进行端口映射。
端口映射逻辑图
我们可以直接使用ssh命令的一些参数来创建端口映射,在连接的时候增加几个参数就可以实现
例如:

# 原始的ssh连接命令
ssh -p 37367 root@ssh.intern-ai.org.cn -o StrictHostKeyChecking=no

# 将开发机的7860端口映射到本地的7860端口
ssh -p 37367 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no

其中,C代表启用压缩N;代表只建立隧道,不执行命令;g代表允许远程主机连接到本地的端口(通常意味着绑定的IP为0.0.0.0);L为设置转发

在开发机列表中,点击自定义服务,会有指令的提示,忘记的时候可以点开对照着输入。

我们创建一个测试用的web服务

3.1 安装依赖

由于我们的web服务使用了gradio库来创建,所以需要安装这个库,在开发机连接成功后,输入
pip install gradio==4.29.0来安装

这里最好使用conda create -n xxxx python=3.11 & conda activate xxxx 来创建一个新的环境,防止多个项目对环境产生干扰

3.2 创建服务文件

创建一个名为hello_world.py 的python文件

import socket
import re
import gradio as gr
 
# 获取主机名
def get_hostname():
    hostname = socket.gethostname()
    match = re.search(r'-(\d+)$', hostname)
    name = match.group(1)
    
    return name
 
# 创建 Gradio 界面
with g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值