第四期书生大模型实战营——入门岛


入门岛关卡概览

  • 第1关 Linux基础知识

  • (必做)完成SSH连接与端口映射并运行hello_world.py

  • 将Linux基础命令在开发机上完成一遍

  • 使用VScode远程连接开发机并创建一个conda环境

  • 第2关 Python基础知识

  • (必做)通过Leetcode 383

  • (必做)VScode连接InternStudio debug笔记

  • pip安装到指定目录

  • 第3关 Git基础知识

  • 提交自我介绍

  • 构建个人项目

  • 第4关 玩转HF/魔搭/魔乐社区

  • (必做)使用HF/魔搭/魔乐社区下载模型(至少下载config.jsonmodel.safetensors.index.json文件)

  • (优秀作业必做)将下载好的文件上传到对应HF/魔搭/魔乐社区

  • (优秀作业必做)在HF平台上使用Spaces并把intern_cobuild部署成功


第1关 Linux基础知识

SSH及端口映射

什么是SSH

SSH全称Secure Shell,中文翻译为安全外壳,它是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。SSH 协议通过对网络数据进行加密和验证,在不安全的网络环境中提供了安全的网络服务。

SSH 是(C/S架构)由服务器客户端组成,为建立安全的 SSH 通道,双方需要先建立 TCP 连接,然后协商使用的版本号和各类算法,并生成相同的会话密钥用于后续的对称加密。在完成用户认证后,双方即可建立会话进行数据交互。

什么是端口映射

端口映射是一种网络技术,它可以将外网中的任意端口映射到内网中的相应端口,实现内网与外网之间的通信。通过端口映射,可以在外网访问内网中的服务或应用,实现跨越网络的便捷通信。
在这里插入图片描述
在主机上运行端口映射命令

ssh -p 37367 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no

个人PC会远程连接到开发机唯一暴露在外的37367端口,(这个在SSH的时候提到过每个人的开发机暴露的端口都不一样),并设置隧道选项。暴露端口是作为中转站进行流量的转发。
-C:启用压缩,减少传输数据量。
-N:不执行远程命令,只建立隧道。
-g:允许远程主机连接到本地转发的端口。
当在个人PC上执行这个SSH命令后,SSH客户端会在本地机器的7860端口上监听。
任何发送到本地7860端口的流量,都会被SSH隧道转发到远程服务器的127.0.0.1地址上的7860端口。
这意味着,即使开发机的这个端口没有直接暴露给外部网络,我们也可以通过这个隧道安全地访问远程服务器上的服务。

实战

1.使用VScode远程连接开发机

(1)创建开发机
在这里插入图片描述
在这里插入图片描述

(2) 配置SSH密钥
使用RSA算法生成密钥,命令为ssh-keygen -t rsa
注意,windows中使用PowerShell而不是cmd
ssh-keygen支持RSA和DSA两种认证密钥。
常用参数包括:
-t:指定密钥类型,如dsa、ecdsa、ed25519、rsa。
-b:指定密钥长度。
-C:添加注释。
-f:指定保存密钥的文件名。
-i:读取未加密的ssh-v2兼容的私钥/公钥文件。
在这里插入图片描述

使用Get-Content命令查看生成的密钥并复制:
在这里插入图片描述

添加SSH公钥:
在这里插入图片描述
在这里插入图片描述

添加公钥成功:
在这里插入图片描述
重启终端
(3)使用VScode进行SSH远程连接
复制SSH连接的登陆命令:
在这里插入图片描述
打开本地VScode,安装Remote-SSH插件:
在这里插入图片描述
点击侧边栏的远程连接图标,在SSH中点击“+”按钮,添加开发机SSH连接的登录命令并回车:
在这里插入图片描述

可使用默认的配置文件,若自定义配置文件,具体内容如下:

Host ssh.intern-ai.org.cn #主机ip也可以是域名
  HostName ssh.intern-ai.org.cn #主机名
  Port 43637 #主机的SSH端口
  User root #登录SSH使用的用户
  #忽略指纹验证,但是在一般的安全实践中,不建议随意禁用严格的主机密钥检查:
  StrictHostKeyChecking no #表示禁用严格的主机密钥检查。这意味着当连接到一个新的 SSH 服务器时,不会严格验证服务器的主机密钥,可能会带来一定的安全风险
  UserKnownHostsFile /dev/null #将用户已知的主机密钥文件设置为 /dev/null ,这实质上是忽略了对已知主机密钥的记录和使用。

点击连接该远程开发机:
在这里插入图片描述
connected表示开发机连接成功:
在这里插入图片描述
当下一次进行远程连接的时候,就不需要输入登录命令等信息了,只需要打开VScode的远程连接就可以看到第一次连接的开发机信息,下面的root代表我们第一连接开发机时使用的是/root工作目录。
查看/root/share/目录下的README文件:
在这里插入图片描述

2.创建一个conda环境

单击VScode页面底部状态栏中的“终端”图标(通常显示为两个图标一个X和一个!),可以快速打开VScode的终端面板。使用conda config --show查看conda的默认配置,发现该开发机提供的conda已使用国内清华镜像源,无需换源:
在这里插入图片描述
使用conda env list查看当前conda中的所有环境:
在这里插入图片描述
使用conda create -n L0 python=3.10创建一个新环境L0
创建虚拟环境的常用参数如下:
-n 或 --name:指定要创建的环境名称。
-c 或 --channel:指定额外的软件包通道。
–clone:从现有的环境克隆来创建新环境。
-p 或 --prefix:指定环境的安装路径(非默认位置)。-
在这里插入图片描述
创建后,可以在.conda目录下的envs目录下找到。
在这里插入图片描述

3.完成端口映射并运行hello_world.py

创建一个新的文件,命名为hello_world.py,并将代码内容复制粘贴到该文件中并保存:
在这里插入图片描述
hello_world.py代码如下:

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 gr.Blocks(gr.themes.Soft()) as demo:
    html_code = f"""
            <p align="center">
            <a href="https://intern-ai.org.cn/home">
                <img src="https://intern-ai.org.cn/assets/headerLogo-4ea34f23.svg" alt="Logo" width="20%" style="border-radius: 5px;">
            </a>
            </p>
            <h1 style="text-align: center;">☁️ Welcome {
     get_hostname()} user, welcome to the ShuSheng LLM Practical Camp Course!</h1>
            <h2 style="text-align: center;">😀 Let’s go on a journey through ShuSheng Island together.</h2>
            <p align="center">
                <a href="https://github.com/InternLM/Tutorial/blob/camp3">
                    <img src="https://oss.lingkongstudy.com.cn/blog/202410081252022.png" alt="Logo" width="50%" style="border-radius: 5px;">
                </a>
            </p>

            """
    gr.Markdown(html_code)

demo.launch()

激活环境L0pip install gradio==4.29.0安装hello_world.py的依赖:
在这里插入图片描述
运行该文件,并本地打开链接就可以看到Web UI的界面了:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值