(第2节)轻松玩转书生·浦语大模型趣味 Demo(基础部分+进阶)

第二节简单的进行了一些demo的体验。

作业截图

1.使用 InternLM2-Chat-1.8B 模型生成 300 字的小故事
在这里插入图片描述
2.和书生·浦语对话
在这里插入图片描述
3.熟悉 huggingface 下载功能
在这里插入图片描述

4.完成 浦语·灵笔2 的 图文创作 及 视觉问答 部署

在这里插入图片描述
在这里插入图片描述
5.Lagent 工具调用 数据分析 Demo 部署
在这里插入图片描述

前两个任务笔记

因为指导笔记都写的听清楚的,一步一步按着来就好,就不赘述具体步骤了,也没涉及什么代码。其重要粘的代码如下:

1.download_mini.py

这个主要是下载模型,snapshot_download可以下载的模型应该是魔搭模型库里的模型都可以下载。

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')

除了snapshot_download,还有其他两个方法使用模型,参考模型库介绍

在这里插入图片描述

2. cli_demo.py

cli_demo就是实现了一个在命令行里交互的demo。

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)

stream_chat是流式生成,可参考模型库该模型的介绍:
在这里插入图片描述

进阶任务笔记

Lagent 运行 InternLM2-Chat-7B 模型

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

具体来说,这条命令的作用是创建一个名为internlm2-chat-7b的符号链接,位于/root/models/目录下,它指向/root/share/new_models/Shanghai_AI_Laboratory/目录下的同名文件或目录。

使用符号链接的好处是,你可以在不同的目录中引用同一个文件或目录,而不需要复制文件本身,这样可以节省存储空间,并且在更新源文件时,所有通过符号链接访问该文件的地方都会看到更新后的内容。

然后更改value='/root/models/internlm2-chat-7b’时,这个模型位置就是上面的软连接。
我们使用数据分析插件计算公式时,会给出python代码,不使用时就是如下图算式。
在这里插入图片描述
因为数据分析的prompt是这样滴:

INTERPRETER_CN = ('你现在已经能够在一个有状态的 Jupyter 笔记本环境中运行 Python 代码。'
                  '当你向 python 发送含有 Python 代码的消息时,它将在该环境中执行。'
                  '这个工具适用于多种场景,如数据分析或处理(包括数据操作、统计分析、图表绘制),'
                  '复杂的计算问题(解决数学和物理难题),编程示例(理解编程概念或特性),'
                  '文本处理和分析(比如文本解析和自然语言处理),'
                  '机器学习和数据科学(用于展示模型训练和数据可视化),'
                  '以及文件操作和数据导入(处理CSV、JSON等格式的文件)。')

来自lagent/agents/internlm2_agent.py文件
所以如果想更改prompt内容除了直接在页面内左侧框框改,也可以在文件里改。如果想要简单在demo基础上进行自己功能的更改可以添加或更改插件prompt即可。

熟悉 huggingface 下载功能

先安装huggingface_hub

pip install -U huggingface_hub

huggingface_hub本地下载模型

import os 
from huggingface_hub import hf_hub_download  # Load model directly 

hf_hub_download(repo_id="internlm/internlm2-7b", filename="config.json")

也可参照官网使用其他下载方法:https://huggingface.co/docs/hub/models-downloading

Gradio or Streamlit?

刚好这些任务里,非常巧的,两个可视化页面是用的Streamlit两个是Gradio,这两个也是目前快速生成 AI 应用的框架中应用的最为广泛的。截至我写这篇笔记(2024/06/07),Gradio在github 30.1k,Streamlit是32.6k,基本差别不大。因为还没用过Streamlit,只用过Gradio,所以不好评价谁好谁不好。
这里找了一些其他人对两者的比较:
快速生成 AI 应用的框架对比:Gradio、Streamlit 和 Dash
ps.但我个人用Gradio时感觉还是挺便利的,想实现比较复杂点的可以参考魔搭里的官方游戏demo学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值