浦语提示词工程实践(LangGPT版,服务器上部署internlm2-chat-1_8b,踩坑很多才完成的详细教程,)

news2024/11/23 12:22:20

首先,在InternStudio平台上创建开发机。
在这里插入图片描述

创建成功后点击进入开发机打开WebIDE。进入后在WebIDE的左上角有三个logo,依次表示JupyterLab、Terminal和Code Server,我们使用Terminal就行。(JupyterLab可以直接看文件夹)

首先点击左上角图标,打开Terminal
在这里插入图片描述

运行如下脚本创建虚拟环境:

创建虚拟环境

conda create -n langgpt python=3.10 -y

运行下面的命令,激活虚拟环境:

conda activate langgpt

之后的操作都要在这个环境下进行。激活环境后,安装必要的Python包,依次运行下面的命令:

# 安装一些必要的库
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia -y

# 安装其他依赖
pip install transformers==4.43.3

pip install streamlit==1.37.0
pip install huggingface_hub==0.24.3
pip install openai==1.37.1
pip install lmdeploy==0.5.2

如果使用intern-studio开发机,可以直接在路径/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b下找到模型

如果不使用开发机,可以从huggingface上获取模型,地址为:https://huggingface.co/internlm/internlm2-chat-1_8b
可以使用如下脚本下载模型:

from huggingface_hub import login, snapshot_download
import os
 
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
 
login(token=“your_access_token")
models = ["internlm/internlm2-chat-1_8b"]
for model in models:
    try:
        snapshot_download(repo_id=model,local_dir="langgpt/internlm2-chat-1_8b")
    except Exception as e:
        print(e)
        Pass

本文使用intern-studio开发机

部署模型为OpenAI server
运行下面的命令安装必要的软件:

apt-get install tmux

在这里插入图片描述

由于服务需要持续运行,需要将进程维持在后台,所以这里使用tmux软件创建新的命令窗口。运行如下命令创建窗口:

tmux new -t langgpt

tmux new -t langgpt 是 Tmux(Terminal Multiplexer)命令行工具的一个命令,它的作用是在一个新的窗口中启动一个会话,并且该会话的名称为 langgpt。 具体来说: - tmux new 表示创建一个新的会话窗口。 - -t langgpt 表示给这个新的会话窗口指定一个名字 langgpt。 这个命令通常用于在终端中同时运行多个会话,可以通过不同的窗口来切换不同的任务或环境。例如,在开发过程中,你可能需要在同一个终端中同时运行编译器、编辑器和终端模拟器等多个应用,这时就可以使用 Tmux 来管理这些会话窗口。 当你执行 tmux new -t langgpt 命令后,Tmux 会创建一个新的窗口,并且将你放到这个新的窗口中,同时这个窗口的名称为 langgpt。你可以在这个窗口中执行任何命令,而不会影响其他的窗口。当你想要切换到其他的窗口时,可以使用 tmux switch-window 或者 tmux switch -t <窗口名> 命令来实现。

创建完成后,运行下面的命令进入新的命令窗口(首次创建自动进入不用再输入,之后进入的话需要运行下面的代码):

tmux a -t langgpt

tmux a -t langgpt 是 Tmux(Terminal Multiplexer)命令行工具的另一个命令,它的作用是附加(attach)到名为 langgpt 的会话中。 具体来说: - tmux a 表示附加到一个已存在的会话窗口。 - -t langgpt 表示附加到名为 langgpt 的会话窗口。 当你执行 tmux a -t langgpt 命令后,Tmux 会将你附加到名为 langgpt 的会话窗口中,这样你就可以继续在该会话窗口中的命令行中进行操作。如果你之前已经通过 tmux new -t langgpt 命令创建了这个会话窗口,那么使用 tmux a -t langgpt 命令就可以回到这个窗口,继续之前的工作。 需要注意的是,如果你尝试附加到一个不存在的会话窗口,或者当前已经附加到了一个会话窗口,那么 Tmux 会提示你无法附加或者你已经附加到了一个会话窗口。在这种情况下,你可以使用 tmux list-sessions 命令查看当前存在的会话窗口,然后选择一个合适的会话窗口进行附加。

运行下面的命令,激活刚创建的虚拟环境:

conda activate langgpt

使用LMDeploy进行部署,参考如下命令:

CUDA_VISIBLE_DEVICES=0 lmdeploy serve api_server /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --server-port 23333 --api-keys internlm

在这里插入图片描述

服务启动完成后,可以按Ctrl+B进入tmux的控制模式,然后按D退出这个窗口返回先前的窗口.

可以用下面的python代码测试:

from openai import OpenAI
 
client = OpenAI(
    api_key = "internlm",
    base_url = "http://0.0.0.0:23333/v1"
)
 
response = client.chat.completions.create(
    model=client.models.list().data[0].id,
    messages=[
        {"role": "system", "content": "请介绍一下你自己"}
    ]
)
 
print(response.choices[0].message.content)

在这里插入图片描述

图形化界面调用
InternLM部署完成后,可利用提供的chat_ui.py创建图形化界面,在实战营项目的tools项目中。
首先,从Github获取项目,运行如下命令:

git clone -b camp3 https://github.com/Alex28132/Tutorial.git

命令解释:下载camp3分支的代码

下载完成后,运行如下命令进入项目所在的路径:

cd Tutorial/tools 

进入正确路径后,运行如下脚本运行项目:

python -m streamlit run chat_ui.py 

在这里插入图片描述

注意,下面是在本地电脑里的powershell里运行,不是在上述的terminal中运行了:

ssh -p {ssh端口,从InternStudio获取} root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:8501 -o StrictHostKeyChecking=no

ssh:这是安全外壳协议的命令,用于启动一个安全会话。

-p 36356:指定连接到远程服务器的端口。默认的 SSH 端口是 22,但这里指定了 36356 作为连接端口。

root@ssh.intern-ai.org.cn:这是指定要连接的远程服务器的用户和地址。这里,用户是 root,服务器地址是 ssh.intern-ai.org.cn。

-L 7860:127.0.0.1:8501:这是本地端口转发选项。它告诉 SSH 将本地机器(客户端)的端口 7860 转发到远程服务器上的 127.0.0.1 地址的端口 8501。这意味着任何连接到本地机器端口 7860 的连接都会被转发到远程服务器上的端口 8501。

-o StrictHostKeyChecking=no:这是一个 SSH 配置选项,告诉 SSH 在连接到新的或更改过的服务器时不要进行严格的主机密钥检查。这通常用于自动化脚本,但不建议用于生产环境,因为它会降低安全性。

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

在这里插入图片描述

如果未配置开发机公钥,还需要输入密码,从InternStudio获取。上面这一步是将开发机上的8501(web界面占用的端口)映射到本地机器的端口,之后可以访问http://localhost:7860/

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

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

相关文章

webgl threejs 云渲染(服务器渲染、后端渲染)解决方案

云渲染和流式传输共享三维模型场景 1、本地无需高端GPU设备即可提供三维项目渲染 云渲染和云流化媒体都可以让3D模型共享变得简单便捷。配备强大GPU的远程服务器早就可以处理密集的处理工作&#xff0c;而专有应用程序&#xff0c;用户也可以从任何个人设备查看全保真模型并与…

统信桌面操作系统V20专业版安装指南

1.概述 统信桌面操作系统安装器用于完成系统安装的任务&#xff0c;本手册会介绍统信UOS的安装环境、配置要求、安装方法&#xff0c;以及系统初始化设置&#xff0c;希望用户根据本文档可以快速高效的完成系统安装。 1.1安装配置要求 您安装系统前需了解安装统信桌面操作系…

16. 指针类型和步长概念问题

1. 项目场景&#xff1a; ➣ Jack Qiao对米粒说&#xff1a;“今天有道友遇到一个问题&#xff0c;举个栗子数组 arr[5] { 0 };道友发现&arr[0] 1与&arr 1打印出来的地址竟然不同。”米粒测试后果然是这样。 2. 问题描述 ☑ 举个栗子&#xff1a;数组 arr[5] { 0…

设计模式-创建型-抽象工厂模式

1.概念 工厂方法模式只能生产一个产品系列&#xff0c;抽象工厂可以生产多个产品系列 2.作用 多个具体产品组成一个产品族&#xff08;产品系列&#xff09;&#xff0c;一个具体工厂负责生产一个产品族 3.应用场景 系统所需产品间由依赖关系&#xff0c;可以划分为同一产…

20241121 android中树结构列表(使用recyclerView实现)

1、adapter-item的布局 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"wrap_content&…

Kubernetes的pod控制器

文章目录 一&#xff0c;什么是pod控制器二&#xff0c;pod控制器类型&#xff08;重点&#xff09;1.ReplicaSet2.Deployment3.DaemonSet4.StatefulSet5.Job6.Cronjob 三&#xff0c;pod与控制器的关系1.Deployment2.SatefulSet2.1StatefulSet组成2.2headless的由来2.3有状态服…

网口输出的加速度传感器

一、功能概述 1.1 设备简介 本模块为了对电机、风机、水泵等旋转设备进行预测性运维而开发&#xff0c;只需一个模块&#xff0c; 就可以采集旋转设备的 3 路振动信号&#xff08;XYZ 轴&#xff09;和一路温度信号&#xff0c;防护等级 IP67 &#xff0c;能够 适应恶劣的工业…

RocketMQ: 部署结构与存储特点

RocketMQ 是什么 它是一个队列模型的消息中间件&#xff0c;具有高性能、高可靠、高实时、分布式特点 Producer、Consumer、队列都可以分布式Producer 向一些队列轮流发送消息 队列集合称为 TopicConsumer 如果做广播消费则一个 consumer 实例消费这个 Topic 对应的所有队列如果…

【Python系列】浅析 Python 中的字典更新与应用场景

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

正版Simsolid快速无网格划分工具软件

相信各位结构工程师、产品设计工程师、仿真分析师们对SimSolid都不陌生&#xff0c;Altair SimSolid 是一款革命性的仿真软件&#xff0c;旨在为结构分析提供快速而准确的解决方案。SimSolid的独特之处在于它可以直接在完整的设计几何体上进行复杂的仿真&#xff0c;无需传统的…

DevOps-Jenkins-新手入门级

1. Jenkins概述 1. Jenkins是一个开源持续集成的工具&#xff0c;是由JAVA开发而成 2. Jenkins是一个调度平台&#xff0c;本身不处理任何事情&#xff0c;调用插件来完成所有的工作 1.1 什么是代码部署 代码发布/部署>开发书写的程序代码---->部署测试/生产环境 web服务…

Lucene(2):Springboot整合全文检索引擎TermInSetQuery应用实例附源码

前言 本章代码已分享至Gitee: https://gitee.com/lengcz/springbootlucene01 接上文。Lucene(1):Springboot整合全文检索引擎Lucene常规入门附源码 如何在指定范围内查询。从lucene 7 开始&#xff0c;filter 被弃用&#xff0c;导致无法进行调节过滤。 TermInSetQuery 指定…

tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 这次主要是学习数据增强, 训练集 验证集 测试集的构建等等的基本方法, 数据集还是用的上一篇的猫狗识别;基础篇还剩下几个, 后面的难度会逐步提升;欢迎…

ssm面向品牌会员的在线商城小程序

摘要 随着Internet的发展&#xff0c;人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化&#xff0c;网络化和电子化。它将是直接管理面向品牌会员的在线商城小程序的最新形式。本小程序是以面向品牌会员的在线商城管理为目标&#xff0c;使用 java技术制…

国土安全部发布关键基础设施安全人工智能框架

美国国土安全部 (DHS) 发布建议&#xff0c;概述如何在关键基础设施中安全开发和部署人工智能 (AI)。 https://www.dhs.gov/news/2024/11/14/groundbreaking-framework-safe-and-secure-deployment-ai-critical-infrastructure 关键基础设施中人工智能的角色和职责框架 https:/…

五天SpringCloud计划——DAY2之单体架构和微服务架构的选择和转换原则

一、引言 选择合适的架构模式是一个至关重要的决策&#xff0c;尤其是在单体架构和微服务架构之间的选择&#xff0c;本文将带大家认识什么是单体架构&#xff0c;什么是微服务架构&#xff0c;以及两者如何去选择&#xff0c;如何去转换。 二、什么是单体架构 单体架构&a…

【网络协议】【TCP】精讲TCP数据包传递的地址解析(含三次握手四次挥手图文并茂精华版)

目录 前言 1.TCP定义 1.1 什么是面向连接? 1.2 什么是可靠的通信协议? 1.3 什么是面向字节流的? 2. 数据包传递的地址解析 3. 三次握手过程详解 3.1 第一次握手 3.2 第二次握手 3.3 第三次握手 4. 四次挥手 4.1 第一次挥手 4.2 第二次挥手 4.3 第三次挥手 4.…

Win11 24H2新BUG或影响30%CPU性能,修复方法在这里

原文转载修改自&#xff08;更多互联网新闻/搞机小知识&#xff09;&#xff1a; 一招提升Win11 24H2 CPU 30%性能&#xff0c;小BUG大影响 就在刚刚&#xff0c;小江在网上冲浪的时候突然发现了这么一则帖子&#xff0c;标题如下&#xff1a;基准测试&#xff08;特别是 Time…

人工智能的核心思想-神经网络

神经网络原理 引言 在理解ChatGPT之前&#xff0c;我们需要从神经网络开始&#xff0c;了解最简单的“鹦鹉学舌”是如何实现的。神经网络是人工智能领域的基础&#xff0c;它模仿了人脑神经元的结构和功能&#xff0c;通过学习和训练来解决复杂的任务。本文将详细介绍神经网络…

socket连接封装

效果&#xff1a; class websocketMessage {constructor(params) {this.params params; // 传入的参数this.socket null;this.lockReconnect false; // 重连的锁this.socketTimer null; // 心跳this.lockTimer null; // 重连this.timeout 3000; // 发送消息this.callbac…