当前位置: 首页 > news >正文

书生浦语训练营2期-第二节课笔记作业

目录

一、前置准备

1.1 电脑操作系统:windows 11

1.2 前置服务安装(避免访问127.0.0.1被拒绝)

1.2.1 iis安装并重启

1.2.2 openssh安装

1.2.3 openssh服务更改为自动模式

1.2.4 书生·浦语平台 ssh配置

1.3  补充(前置服务ok仍被拒绝)

二、部署InternLM2-Chat-1.8B模型进行智能对话

2.1 配置基础环境

2.2 下载 InternLM2-Chat-1.8B 模型

2.3 运行结果

三、部署八戒-Chat-1.8B模型进行智能对话

3.1 配置基础环境

3.2 demo并运行

3.3 运行结果

四、使用 Lagent 运行 InternLM2-Chat-7B 模型

4.1 配置基础环境

4.2  使用 Lagent 运行 InternLM2-Chat-7B 模型为内核的智能体

4.3  运行结果

4.4 作业-huggingface_hub python 包下载InternLM2-Chat-7B 的 config.json 文件

 五、部署 浦语·灵笔2 模型

5.1 图文写作

5.2 图片理解

六、课程总结

6.1 课程收获

6.1.1 关于Lagent


一、前置准备

1.1 电脑操作系统:windows 11

1.2 前置服务安装(避免访问127.0.0.1被拒绝)

1.2.1 iis安装并重启

操作:控制面板----程序和功能----启用或关闭windows功能----Internet Information Services &  Internet   Information services可承载的Web核心

输入127.0.01,出现以下界面就是成功了

1.2.2 openssh安装

操作:添加可选功能----openssh

1.2.3 openssh服务更改为自动模式

操作:cmd----service.msc----openssh切换成自动方式

1.2.4 书生·浦语平台 ssh配置

(1)终端生成SSH密钥

ssh-keygen -t rsa

(2)ssh公钥复制到InternStudio

密钥放在C:\Users\Administrator/.ssh/id_rsa下,进入到目录下进行查看、复制

type id_rsa.pub

(3)点击首页的配置SSH Key,将公钥复制进去

(4)本地终端ssh连接

操作:平台点击ssh连接,复制登录命令至终端

1.3  补充(前置服务ok仍被拒绝)

1.3.1 确认是否设置隧道,端口号是ssh连接的端口号,如果要输密码就是ssh的密码,我这边跳过密码了。

ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn -p 38894

1.3.2 确认6006端口是否被占用,占用就杀掉进程

netstat ano | findstr : 6006

 

1.3.3 防火墙是否关闭

二、部署InternLM2-Chat-1.8B模型进行智能对话

2.1 配置基础环境

conda activate demo

pip install huggingface-hub==0.17.3
pip install transformers==4.34 
pip install psutil==5.9.8
pip install accelerate==0.24.1
pip install streamlit==1.32.2 
pip install matplotlib==3.8.3 
pip install modelscope==1.9.5
pip install sentencepiece==0.1.99

2.2 下载 InternLM2-Chat-1.8B 模型

(1)创建2个python脚本

mkdir -p /root/demo
touch /root/demo/cli_demo.py
touch /root/demo/download_mini.py
cd /root/demo

 (2)下载模型参数文件

import os
from modelscope.hub.snapshot_download import snapshot_download

# 创建保存模型目录
os.system("mkdir /root/models")

# save_dir是模型保存到本地的目录
save_dir="/root/models"

snapshot_download("Shanghai_AI_Laboratory/internlm2-chat-1_8b", 
                  cache_dir=save_dir, 
                  revision='v1.1.0')

 python /root/demo/download_mini.py

(3)下载模型(cli_demo.py)

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name_or_path = "/root/models/Shanghai_AI_Laboratory/internlm2-chat-1_8b"

tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True, device_map='cuda:0')
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map='cuda:0')
model = model.eval()

system_prompt = """You are an AI assistant whose name is InternLM (书生·浦语).
- InternLM (书生·浦语) is a conversational language model that is developed by Shanghai AI Laboratory (上海人工智能实验室). It is designed to be helpful, honest, and harmless.
- InternLM (书生·浦语) can understand and communicate fluently in the language chosen by the user such as English and 中文.
"""

messages = [(system_prompt, '')]

print("=============Welcome to InternLM chatbot, type 'exit' to exit.=============")

while True:
    input_text = input("\nUser  >>> ")
    input_text = input_text.replace(' ', '')
    if input_text == "exit":
        break

    length = 0
    for response, _ in model.stream_chat(tokenizer, input_text, messages):
        if response is not None:
            print(response[length:], flush=True, end="")
            length = len(response)

2.3 运行结果

conda activate demo
python /root/demo/cli_demo.py 
 


三、部署八戒-Chat-1.8B模型进行智能对话

3.1 配置基础环境

(1)进入环境并用Git获取demo

conda activate demo

cd /root/
git clone https://gitee.com/InternLM/Tutorial -b camp2
cd /root/Tutorial

3.2 demo并运行

(1)windows终端运行(38894替换成自己的端口)

ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn -p 38894

(2)平台运行

python /root/Tutorial/helloworld/bajie_download.py

streamlit run /root/Tutorial/helloworld/bajie_chat.py --server.address 127.0.0.1 --server.port 6006

3.3 运行结果


四、使用 Lagent 运行 InternLM2-Chat-7B 模型

4.1 配置基础环境

(1)进入conda环境

conda activate demo

 (2)下载Lagent相关代码并安装

git clone https://gitee.com/internlm/lagent.git
cd /root/demo/lagent
git checkout 581d9fb8987a5d9b72bb9ebd37a95efd47d479ac
pip install -e . 

4.2  使用 Lagent 运行 InternLM2-Chat-7B 模型为内核的智能体

(1)进入lagent文件夹,设置软链接快速访问方式

cd /root/demo/lagent

ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b /root/models/internlm2-chat-7b

(2)更改模型路径

修改进入lagent/examples/internlm2_agent_web_demo_hf.py第71行

value='/root/models/internlm2-chat-7b'

(3)运行(前提:已经设置隧道。出现拒绝访问参考 1.2、1.3 章节

streamlit run /root/demo/lagent/examples/internlm2_agent_web_demo_hf.py --server.address 127.0.0.1 --server.port 6006

 4.3  运行结果

4.4 作业-huggingface_hub python 包下载InternLM2-Chat-7B 的 config.json 文件

(1)安装huggingface_hub

pip install -U huggingface_hub

(2)创建下载脚本

(3)运行


 五、部署 浦语·灵笔2 模型

5.1 图文写作

(1)进入conda环境

conda activate demo

(2)补充环境包

pip install timm==0.4.12 sentencepiece==0.1.99 markdown2==2.4.10 xlsxwriter==3.1.2 gradio==4.13.0 modelscope==1.9.5

(3)下载 InternLM-XComposer 仓库 相关的代码资源

cd /root/demo
git clone https://gitee.com/internlm/InternLM-XComposer.git
cd /root/demo/InternLM-XComposer
git checkout f31220eddca2cf6246ee2ddf8e375a40457ff626

 (4)构造软链接

ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm-xcomposer2-7b /root/models/internlm-xcomposer2-7b
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm-xcomposer2-vl-7b /root/models/internlm-xcomposer2-vl-7b

 (5)启动 InternLM-XComposer

cd /root/demo/InternLM-XComposer
python /root/demo/InternLM-XComposer/examples/gradio_demo_composition.py  \
--code_path /root/models/internlm-xcomposer2-7b \
--private \
--num_gpus 1 \
--port 6006

(6)访问127.0.0.1:6006

 5.2 图片理解

(1)进入conda环境

(2)启动 InternLM-XComposer2-vl

cd /root/demo/InternLM-XComposer
python /root/demo/InternLM-XComposer/examples/gradio_demo_chat.py  \
--code_path /root/models/internlm-xcomposer2-vl-7b \
--private \
--num_gpus 1 \
--port 6006

 (3)访问127.0.0.1:6006


六、课程总结

6.1 课程收获

6.1.1 关于Lagent

一个轻量级的开源框架,帮助用户高效构建基于大型语言模型(LLM)的智能代理。它还提供了一些典型的工具来增强LLM的功能。

主要特点包括高效的推理引擎支持、对多种代理的支持、极简易的扩展能力以及支持多种LLM,如GPT-3.5/4、LLaMA 2和InternLM等。

Lagent的设计旨在提高扩展性和可用性,允许用户通过简单的继承和装饰来创建个性化的工具集,从而使模型到智能代理的转换只需一步操作。此外,Lagent的文档也经过了全面的升级,覆盖了完整的API文档。

Lagent支持通过简单的代码定义智能代理、动作以及与LLM的交互,使得构建智能代理变得更加直接和灵活。

当前,LLM Agent正处于实验和概念验证阶段。在实际使用中还面临着诸多挑战,如处理任务时的循环问题、记忆模块的策略问题以及因幻觉问题而错误使用工具的问题等。这些问题的解决需要LLM本身的进一步发展和Agent框架的优化。然而,围绕LLM Agent的生态正在逐渐丰富,探索Agent模型、框架以及应用的研究正在积极进行中,旨在提升Agent的能力,使其能更好地应对现实世界的复杂性。

相关文章:

书生浦语训练营2期-第二节课笔记作业

目录 一、前置准备 1.1 电脑操作系统:windows 11 1.2 前置服务安装(避免访问127.0.0.1被拒绝) 1.2.1 iis安装并重启 1.2.2 openssh安装 1.2.3 openssh服务更改为自动模式 1.2.4 书生浦语平台 ssh配置 1.3 补充(前置服务ok…...

【日常积累】指定ruby版本环境安装

背景说明 在redis的5.0版本之前,使用redis提供的redis-trib创建redis集群时还需要依赖ruby环境。当然有时候我们自已也需要安装指定ruby版本环境。下面是安装时的大致过程,以及过程中遇到的问题解决。我使用的环境是centos7,小版本差别应该不…...

SOC内部集成网络MAC外设+ PHY网络芯片方案:MII/RMII 接口与 MDIO 接口

一. 简介 本文来了解一下常用的一种网络硬件方案:SOC内部集成网络MAC外设 PHY网络芯片方案。 其中涉及的 MII接口,RMII接口(MII接口与RMII接口二选一),MDIO接口,RJ45。 二. MII/RMII 接口,M…...

简单了解HTTP和HTTPS

HTTP的安全问题? 我们都知道HTTP是不安全的,而HTTPS是安全的,那HTTP有哪些安全问题呢?(考虑传输过程以及响应方) 明文传输,有窃听风险:HTTP协议无法加密数据,所有通信数…...

系列学习前端之第 9 章:一文搞懂 Node.js 和 nvm,掌握 npm

1、说说 Node.js Node.js 本质上是一款应用软件(本质上与QQ、微信一样),它可以运行 JavaScript 代码,这样就使得 JavaScript 能够脱离浏览器运行。Node.js 是基于 Google 的 V8 引擎,V8引擎执行 Javascript 的速度非常…...

超强命令行解析工具Apache Commons CLI

概述 为什么要写这篇文章呢?因为在读flink cdc3.0源码的时候发现了这个工具包,感觉很牛,之前写过shell命令,shell是用getopts来处理命令行参数的,但是其实写起来很麻烦,长时间不写已经完全忘记了,现在才发现原来java也有这种工具类,所以先学习一下这个的使用,也许之后自己在写…...

JAVAEE——多线程进阶,锁策略

文章目录 锁策略乐观锁和悲观锁乐观锁悲观锁两者的比较 读写锁重量级锁和轻量级锁重量级锁轻量级锁 自旋锁公平锁和非公平锁公平锁非公平锁 可重入锁和不可重入锁可重入锁不可重入锁 锁策略 乐观锁和悲观锁 乐观锁 什么是乐观锁呢?我们可以认为乐观锁比较自信&am…...

富文本编辑器Quill全套教程

Quill简介 Quill是一款现代的富文本编辑器,它以其API驱动的设计和对文本格式的深度理解而著称。与传统的富文本编辑器不同,Quill专注于以字符为中心,构建了一个直观且易于使用的API,使得开发者能够轻松地对文本进行格式化和编辑。…...

Swift 代码注释的使用

Swift代码注释的使用 在 iOS 开发中,代码注释是一种很好的实践,可以帮助他人更容易理解你的代码。通常可以在代码中使用注释来解释代码的功能、目的、实现细节等。下面是一些常见的 iOS 代码注释示例: 1. 单行注释: // 这是一个…...

蓝桥杯—DS1302

目录 1.管脚 2.时序&官方提供的读写函数 3.如何使用读写函数 4.如何在数码管中显示在DS1302中读取出的数据? 1.管脚 2.时序&官方提供的读写函数 /* # DS1302代码片段说明1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。2. 参赛选手可以自行…...

nginx: 集群环境配置搭建

nginx 集群环境搭建 1 ) 概述 nginx 本身就应该选择性能强劲的机器同时为了满足更多流量的需求, 多台nginx 机器做集群来满足强大的需求故而,我们需要一个负载均衡器,以及多台nginx的机器 这里负载均衡器应该有主从和热备,目前先使用一台来描…...

Linux:进程终止和等待

一、进程终止 main函数的返回值也叫做进程的退出码,一般0表示成功,非零表示失败。我们也可以用不同的数字来表示不同失败的原因。 echo $?//打印最近一次进程执行的退出码 而作为程序猿,我们更需要知道的是错误码所代表的错误信息&#x…...

一、next-auth 身份验证凭据-使用电子邮件和密码注册登录

一、next-auth 身份验证凭据-使用电子邮件和密码注册登录 文章目录 一、next-auth 身份验证凭据-使用电子邮件和密码注册登录一、前言二、前置准备1、环境配置2、相关库安装(1)vercel 配置(2)Yarn 包管理配置 3、next项目初始化与…...

2.SpringBoot利用Thymeleaf实现页面的展示

什么是Thymeleaf? Thymeleaf是一个现代服务器端Java模板引擎,适用于Web和独立环境,能够处理HTML,XML,JavaScript,CSS甚至纯文本。 Thymeleaf的主要目标是提供一种优雅且高度可维护的模板创建方式。为实现这…...

devtool: ‘source-map‘ 和 devtool: ‘#source-map‘的区别

devtool: ‘source-map’ 和 devtool: ‘#source-map’ 之间的区别主要在于前面的#字符。 从Webpack 4开始,就废弃了在devtool选项前加#的用法。 devtool: ‘source-map’ 选项意味着Webpack在构建过程中会生成独立的完整的source map文件。对于测试环境很有用&…...

Flutter Boost 3

社区的 issue 没有收敛的趋势。 设计过于复杂,概念太多。这让一个新手看 FlutterBoost 的代码很吃力。 这些问题促使我们重新梳理设计,为了彻底解决这些顽固的问题,我们做一次大升级,我们把这次升级命名为 FlutterBoost 3.0&am…...

ElementUI响应式Layout布局xs,sm,md,lg,xl

响应式布局 参照了 Bootstrap 的 响应式设计&#xff0c;预设了五个响应尺寸&#xff1a;xs、sm、md、lg 和 xl。 <el-row :gutter"10"><el-col :xs"8" :sm"6" :md"4" :lg"3" :xl"1"><div class…...

机器学习——典型的卷积神经网络

机器学习——典型的卷积神经网络 卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;CNNs&#xff09;是一类在图像处理领域应用广泛的深度学习模型。它通过卷积操作和池化操作来提取图像的特征&#xff0c;并通过全连接层来进行分类或回归任务。在本文中&am…...

速通数据结构与算法第四站 双链表

系列文章目录 速通数据结构与算法系列 1 速通数据结构与算法第一站 复杂度 http://t.csdnimg.cn/sxEGF 2 速通数据结构与算法第二站 顺序表 http://t.csdnimg.cn/WVyDb 3 速通数据结构与算法第三站 单链表 http://t.csdnimg.cn/cDpcC 感谢佬们…...

51单片机学习笔记12 SPI接口 使用1302时钟

51单片机学习笔记12 SPI接口 使用1302时钟 一、DS1302简介1. 功能特性2. 涓流充电3. 接口介绍时钟数据和控制线&#xff1a;电源线&#xff1a;备用电池连接&#xff1a; 二、寄存器介绍1. 控制寄存器2. 时间寄存器3. 日历/时钟寄存器 三、BCD码介绍四、DS1302时序1. 读时序2. …...

Android16进阶之MediaPlayer.selectTrack调用流程与实战(二百五十)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐&#xff1a;《Android系统多媒体进阶实战》&#x1f680; Android Audio工程师专栏地址&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; Android多媒体专栏地址&a…...

论文检测「生死局」破局指南:Paperxie 四大降重方案,精准对抗知网 / 维普 AIGC 检测

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述https://www.paperxie.cn/weight?type1https://www.paperxie.cn/weight?type1 凌晨三点的电脑屏幕前&#xff0c;你盯着知网 AIGC 检测报告上刺眼的「99.8% 疑似度」&#xff0c;指尖冰凉 —— 刚写完的毕…...

高效PDF处理:用PDF Arranger实现极简文档管理

高效PDF处理&#xff1a;用PDF Arranger实现极简文档管理 【免费下载链接】pdfarranger Small python-gtk application, which helps the user to merge or split PDF documents and rotate, crop and rearrange their pages using an interactive and intuitive graphical int…...

2024 0xGame Web安全挑战:从SQLite注入到RCE实战解析

1. SQLite注入基础与实战技巧 SQLite作为轻量级数据库&#xff0c;在CTF题目中经常出现。与MySQL注入相比&#xff0c;SQLite少了information_schema等常用表&#xff0c;但核心注入逻辑相通。以2024 0xGame的ez_sql题为例&#xff0c;我们来看具体操作&#xff1a; 闭合方式差…...

热门 PyPI 包 LiteLLM 遭投毒,窃取凭据和认证令牌

聚焦源代码安全&#xff0c;网罗国内外最新资讯&#xff01; 编译&#xff1a;代码卫士专栏供应链安全数字化时代&#xff0c;软件无处不在。软件如同社会中的“虚拟人”&#xff0c;已经成为支撑社会正常运转的最基本元素之一&#xff0c;软件的安全性问题也正在成为当今社会的…...

阿里云域名动态解析避坑指南:从AccessKey到API调用的完整流程

阿里云域名动态解析实战手册&#xff1a;从权限配置到高可用方案设计 对于拥有个人博客、家庭NAS或远程开发环境的技术爱好者而言&#xff0c;动态公网IP始终是个令人头疼的问题。每当ISP重新分配IP地址时&#xff0c;原本稳定的服务连接就会突然中断。本文将分享如何利用阿里云…...

【递归算法】全排列 Ⅱ

题目链接 文章摘要&#xff1a; 本文解析了LeetCode上"全排列II"问题&#xff0c;要求在包含重复数字的数组中返回所有不重复的全排列。通过分析决策树&#xff0c;指出需在标准全排列解法基础上增加剪枝策略&#xff0c;避免重复结果。详细讲解了两种剪枝思路&#…...

家里装了 OpenClaw,在公司也能随时管理——Shield CLI 远程访问方案

家里装了 OpenClaw&#xff0c;在公司也能随时管理 OpenClaw 火到不用介绍了——GitHub 25 万 Star&#xff0c;一个能真正帮你干活的 AI Agent。很多人装在家里的 Windows 电脑上&#xff0c;配好了 API Key 和各种插件&#xff0c;用着很爽。但一到公司或者出门在外&#xff…...

Mellanox ZTR技术解析:如何通过RTTCC实现零配置高性能RoCE网络

1. 什么是Mellanox ZTR技术&#xff1f; 第一次听说Mellanox ZTR&#xff08;Zero Touch RoCE&#xff09;技术时&#xff0c;我的反应和大多数人一样&#xff1a;"这又是什么高大上的黑科技&#xff1f;"但当我真正在金融交易系统里部署它之后&#xff0c;才发现这可…...

Cadence原理图库‘幽灵版本’冲突全解析:从ORDBLL-1125报错看Cache机制与避坑指南

Cadence原理图库‘幽灵版本’冲突全解析&#xff1a;从ORDBLL-1125报错看Cache机制与避坑指南 在电子设计自动化&#xff08;EDA&#xff09;领域&#xff0c;Cadence作为行业标杆工具链&#xff0c;其原理图设计模块被广泛应用于各类复杂电路开发。然而&#xff0c;许多资深用…...