回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【书生大模型实战营】入门岛第4关_L0G4000_玩转HF/魔搭/魔乐社区 中等

头像 JOVI 2024.11.15 24 0

闯关关卡

入门岛

 关卡编号关卡名称关卡资料
第4关L0G4000玩转HF/魔搭/魔乐社区

任务

https://github.com/InternLM/Tutorial/blob/camp4/docs/L0/maas/task.md

文档

https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/maas

视频

https://www.bilibili.com/video/BV1XxStYYEH1/

闯关任务

任务

描述

时间

模型下载使用Hugging Face平台、魔搭社区平台(可选)和魔乐社区平台(可选)下载文档中提到的模型(至少需要下载config.json文件、model.safetensors.index.json文件),请在必要的步骤以及结果当中截图。20mins
模型上传(可选)将我们下载好的config.json文件(也自行添加其他模型相关文件)上传到对应HF平台和魔搭社区平台,并截图。10mins
Space上传(可选)在HF平台上使用Spaces并把intern_cobuild部署成功,关键步骤截图。10mins

2.1 HF 平台

2.1.1 注册Hugging Face 平台 (需要魔法上网)

 

2.1.2 InternLM模型下载

 

2.1.3 GitHub CodeSpace的使用

因为网络和磁盘有限的原因,强烈不建议在 InternStudio 运行,因此这里使用CodeSpace

https://github.com/codespaces

image.png

Github CodeSpace是Github推出的线上代码平台,提供了一系列templates,我们这里选择Jupyter Notebook进行创建环境。创建好环境后,可以进入网页版VSCode的界面,这就是CodeSpace提供给我们的在线编程环境。

 

在界面下方的终端(terminal)安装以下依赖,便于模型运行。

# 安装transformers

pip install transformers==4.38

pip install sentencepiece==0.1.99

pip install einops==0.8.0

pip install protobuf==5.27.2

pip install accelerate==0.33.0

image.png

 

2.1.3.1 下载internlm2_5-7b-chat的配置文件

考虑到个人GitHub CodeSpace硬盘空间有限(32GB可用),而7B的模型相对较大,这里我们先演示如何下载模型文件夹的特定文件。 考虑到CodeSpace平台上默认的用户权限不是root权限,这里为方便演示直接在工作区创建文件,即 /workspaces/codespaces-jupyter 目录

 

以下载模型的配置文件为例,先新建一个hf_download_josn.py 文件

touch hf_download_josn.py

image.png

在这个文件中,粘贴以下代码

代码
import os
from huggingface_hub import hf_hub_download

# 指定模型标识符
repo_id = "internlm/internlm2_5-7b"

# 指定要下载的文件列表
files_to_download = [
    {"filename": "config.json"},
    {"filename": "model.safetensors.index.json"}
]

# 创建一个目录来存放下载的文件
local_dir = f"{repo_id.split('/')[1]}"
os.makedirs(local_dir, exist_ok=True)

# 遍历文件列表并下载每个文件
for file_info in files_to_download:
    file_path = hf_hub_download(
        repo_id=repo_id,
        filename=file_info["filename"],
        local_dir=local_dir
    )
    print(f"{file_info['filename']} file downloaded to: {file_path}")

运行该文件(注意文件目录请在该文件所在目录下运行该文件)

python hf_download_josn.py

 

可以看到,已经从Hugging Face上下载了相应配置文件

image.png

 

2.1.3.2 下载internlm2_5-chat-1_8b并打印示例输出

那么如果我们需想要下载一个完整的模型文件怎么办呢?创建一个python文件用于下载internlm2_5-1_8B模型并运行。下载速度跟网速和模型参数量大小相关联,如果网速较慢的小伙伴可以只尝试下载1.8b模型对应的config.json文件以及其他配置文件。

touch hf_download_1_8_demo.py

 

注意到在CodeSpace平台上是没有GPU资源的,因此我们Python代码中只使用CPU进行推理,我们需要修改跟CUDA有关的API,在hf_download_1_8_demo.py文件中粘贴以下内容:

代码
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("internlm/internlm2_5-1_8b", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("internlm/internlm2_5-1_8b", torch_dtype=torch.float16, trust_remote_code=True)
model = model.eval()

inputs = tokenizer(["A beautiful flower"], return_tensors="pt")
gen_kwargs = {
    "max_length": 128,
    "top_p": 0.8,
    "temperature": 0.8,
    "do_sample": True,
    "repetition_penalty": 1.0
}

# 以下内容可选,如果解除注释等待一段时间后可以看到模型输出
# output = model.generate(**inputs, **gen_kwargs)
# output = tokenizer.decode(output[0].tolist(), skip_special_tokens=True)
# print(output)

等待几分钟后,会在控制台返回模型生成的结果(解除注释后)

image.png

这里以“A beautiful flower”开头,模型对其进行“续写”,InternLM的模型拥有强大的数学方面的能力。这边它输出的文本似乎是关于一个数学问题,具体是关于一个花朵的花瓣数量。

2.1.4 Hugging Face Spaces的使用(需要魔法上网)

 

2.1.5 模型上传(需要魔法上网)

 

2.2 魔搭社区平台(可选任务)

ModelScope 是一个“模型即服务”(MaaS)平台,由阿里巴巴集团的达摩院推出和维护。它旨在汇集来自AI社区的最先进的机器学习模型,并简化在实际应用中使用AI模型的流程。通过ModelScope,用户可以轻松地探索、推理、微调和部署各种AI模型。

 

注册登录ModelScope平台,进入导航栏模型库,可以搜索internlm找到相关模型(但是这也包括非官方模型),在这里我们可以搜索 internlm2_5-chat-1_8b,下载1.8b的对话模型,也类似于hugging face 一样拥有具体的详情页。

 

2.2.1 创建开发机

 

2.2.2 环境配置

 

2.2.3 下载指定多个文件

 

2.2.4 上传模型

 

2.3 魔乐社区平台(可选任务)

魔乐社区(Modelers)是一个提供多样化、开源模型的平台,旨在促进开发者和研究人员在最先进的模型和流行应用上进行协作。

 

2.3.1 下载internlm2_5-chat-1_8b模型

 

2.3.2 上传模型

 

评论

user-avatar