背景:因为项目需要,要使用多模态大模型进行落地应用,经过调研发现,书生·万象多模态大模型(InternVL)是国内最优秀开源多模态大模型之一,正好书生也提供了训练营这个非常好的学习机会,还给免费算力,那就抓紧开始吧。别忘了扫描海报上的二维码报名哦!
InternVL 介绍:https://github.com/InternLML
书生大模型实战营闯关 第一关:Linux 基础知识
1. InternStudio
InternStudio 旨在为开发者提供一个先进、高效、易于使用的云端机器学习平台。基于强大的 InternLM 算法库,InternStudio 不仅与 🤗 HuggingFace 开源生态完美兼容,还提供了多种便捷工具和资源,以助力开发者在大语言模型领域的探索和创新。
官网地址:https://studio.intern-ai.org.cn/
注册并登录后就进入控制台,可以创建开发机
选择默认参数,很快就可以创建成功。
选择进入开发机有三种不同视图可以选择:VScode、JupyterLab、Terminal。可以选择自己习惯的模式进行开发,这里就不赘述了。
2. SSH连接开发机
SSH全称Secure Shell,中文翻译为安全外壳,它是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。SSH 协议通过对网络数据进行加密和验证,在不安全的网络环境中提供了安全的网络服务。
SSH (C/S架构)由服务器和客户端组成,为建立安全的 SSH 通道,双方需要先建立 TCP 连接,然后协商使用的版本号和各类算法,并生成相同的会话密钥用于后续的对称加密。在完成用户认证后,双方即可建立会话进行数据交互。
InternStudio提供了SSH方式连接开发机。点击SSH连接,就弹出SSH连接登录命令和密码,当然也可以添加公钥建立本地与开发机的安全连接。
在这里我们使用VScode SSH连接开发机。选择远程连接,输入登录命令和密码,打开要浏览的文件夹就可以进行文件浏览了。
开发机的目录结构和注意事项:
3. 端口映射
端口映射是一种网络技术,它可以将外网中的任意端口映射到内网中的相应端口,实现内网与外网之间的通信。通过端口映射,可以在外网访问内网中的服务或应用,实现跨越网络的便捷通信。
进行端口映射的必要性:因为模型web的部署实践可能遇到web ui加载不全的问题。开发机Web IDE中运行web_demo时,直接访问开发机内 http/https 服务可能会遇到代理问题,外网链接的ui资源没有被加载完全。
所以为了解决这个问题,我们需要对运行web_demo的连接进行端口映射,将外网连接映射到我们本地主机,使用本地连接访问,解决代理问题。
回到开发机,选择自定义服务
弹出这个界面
端口映射的两种方法:
(1)可以通过powershell,在终端输入命令和密码进行端口映射。通过添加公钥还可以免输入密码。
(2)使用vscode等工具自动端口映射
我们使用第二种方法。前面我们已经通过VScode连接了开发机,现在我们创建一个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()
在运行代码之前,需要先使用pip install gradio==4.29.0命令安装以下依赖包。
然后在Web IDE终端中运行hello_world.py的话,通过浏览器是没有办法正常访问的,需要进行端口映射。
在vscode终端选项卡中运行hello_world.py后,
可以看到VScode已经自动进行了端口映射
在本机的浏览器中,输入127.0.0.1:7860就可以顺利访问啦
还有其他可选知识比较基础,大家估计都已经做过了,在此略过了。有兴趣学习的可以扫一下文章开头我的专属海报二维码,有兴趣的一起进营学习啦!