书生浦语实战营第二课 部署InterLM2

本期文章介绍如何在远程环境部署internlm2大模型,这个模型是上海人工智能实验室开发的。本文参考实战营教程,请查看:Tutorial/helloworld/hello_world.md at camp2 · InternLM/Tutorial (github.com)
欢迎大家参加书生浦语大模型的实战营,也感谢主办方提供算力资源让我进行实战

基础作业:创作三百字故事

  • 配置开发环境 conda11.7 安装一些必备包
    选择10%就可以
    在这里插入图片描述

  • 复制代码下载微调好的1.8b模型

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

在这里插入图片描述

从下载的日志来看,1.8B(18亿参数)的模型大约4G大小。

  • 复制代码,运行大模型
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM  # 从transformers库导入分词工具等用于处理预训练模型的工具

# 指定模型的存储路径
model_name_or_path = "/root/models/Shanghai_AI_Laboratory/internlm2-chat-1_8b"

# 加载预训练的分词器,设置trust_remote_code=True以允许加载远程代码,device_map指定使用第一个GPU
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True, device_map='cuda:0')
# 加载预训练的因果语言模型,设置trust_remote_code=True和torch_dtype=torch.bfloat16以使用较低精度的浮点数以节省内存,device_map指定使用第一个GPU
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map='cuda:0')
model = model.eval()  # 将模型设置为评估模式,关闭训练时的特定行为如Dropout

# 定义系统的初始提示信息,介绍AI助手InternRusllu(书生·浦语)及其功能
system_prompt = """You are an AI assistant whose name is InternRusllu(书生·浦语).
- InternLM (书生·浦语) is a conversational language model that is developed by Shanghai AI Lab (上海人工智能实验室). 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":  # 如果用户输入"exit",则退出循环
        break

    length = 0  # 初始化变量length,用于跟踪输出的长度
    # 使用模型的stream_chat方法(未在代码中定义,可能是自定义方法)来生成响应
    for response, _ in model.stream_chat(tokenizer, input_text, messages):
        if response is not None:  # 如果生成了响应
            print(response[length:], flush=True, end="")  # 打印新增的响应部分,flush确保即时输出
            length = len(response)  # 更新已输出响应的长度

  • 任务1:写一个三百字的小故事,我设计的prompt
我的输入:你好,我想写一个英雄成长的故事,主角从木讷不自信的状态,一步步成长,相信自己,最终拥有勇气和实力。以下为故事大纲。
在一个宁静的小镇上,主角李雷是一个非常内向和不自信的少年。他常常被人忽视,自己也习惯了默默无闻的生活。小镇突然受到未知威胁的侵袭,生活陷入混乱。李雷意识到,如果他不采取行动,他和他爱的人将会陷入危险之中。在一位神秘导师的指引下,李雷开始了自我发现之旅。他学习武艺,发掘内在潜能,逐渐变得更加自信和勇敢。李雷面临一系列挑战,包括解决小镇的纷争、战胜个人恐惧和打败敌人。每个挑战都使他变得更强。经过无数的试炼和磨练,李雷终于拥有了保护小镇的力量。他领导居民一起抵御威胁,赢得了最终的胜利。李雷不再是那个木讷不自信的少年。他成为了一个真正的英雄,不仅赢得了小镇居民的尊敬,也找到了自己的内心之声。这个故事强调了自我成长和勇气的重要性,以及在逆境中相信自己的力量。请在 这个大纲上添加更多的细节和剧情转折,让故事更加生动和有趣。你还可以探索主角的内心世界,他与其他角色的关系,以及他如何影响和改变他所在的小镇 

在这里插入图片描述

模型输出,这是第二轮对话,已经有较为完善的故事情节了。但是已经更改了主角的名字

进阶作业一:使用huggingface下载 InternLM2-Chat-7B 的 config.json 文件到本地

在huggingface上查看config.json位置:

使用如下代码下载

from huggingface_hub import hf_hub_download  
  
def download_config():  
# 模型的标识符,通常是 "用户名/模型名"  
model_id = "internlm/internlm2-chat-7b"  
  
# 需要下载的文件名  
filename = "config.json"  
  
# 使用 hf_hub_download 函数下载文件        
config_path = hf_hub_download(model_id, filename)        
  
print(f"Config file downloaded to: {config_path}")





  
  
if __name__ =="__main__":          
download_config()        

结果:
在这里插入图片描述

下载成功,但是弹出警告:huggingface_hub 的缓存系统默认使用符号链接(symlinks)来高效存储重复文件,但是本地机器在路径 .cache\huggingface\hub\models–internlm–internlm2-chat-7b中不支持它们。虽然缓存文件仍然会工作,但可能会以一种需要更多磁盘空间的降级版本进行。

作业二:lagent 启动

使用 git 命令下载 Lagent 相关的代码库:

git clone https://gitee.com/internlm/lagent.git
# git clone https://github.com/internlm/lagent.git
cd /root/demo/lagent
git checkout 581d9fb8987a5d9b72bb9ebd37a95efd47d479ac
pip install -e . # 源码安装

随后加载7b模型,然后使用streamlit构造网页
随后使用ssh构造本地连接
在这里插入图片描述
这里需要注意,输入密码没有任何提示,连接成功也没有提示,是正常的。保持在这个页面就算成功了
加载中的web页面,时间会较长
在这里插入图片描述
加载成功了,一开始没选中数据分析功能,做一道侄子的五年级数学题
在这里插入图片描述
答案不太对,选中插件以后,答案一样,逻辑还有待提高啊
试试做方程
在这里插入图片描述
做了一个改变,还是解方程不错的

多模态大模型 图文创作 视觉问答

部署和远程连接同上,类比水墨我构造油画的prompt。效果很不错哦,第一幅图就是伦勃朗的夜巡,高中时美术课上就学过的经典之作。
在这里插入图片描述
视觉问答
分析下我的头像,和我比较喜欢的图片
在这里插入图片描述
我自己用ai绘画做的图,让灵笔分析
在这里插入图片描述在这里插入图片描述

即兴创作的故事和我构造绘画prompt很像,可惜把向日葵看成麦田了

结语

祝大家像图画中的女孩一样,找到自己,茁壮成长。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值