L0G4-玩转HF魔搭魔乐社区

news/2025/2/6 23:34:23/文章来源:https://www.cnblogs.com/zhengzirui/p/18701890

L0G4-玩转HF/魔搭/魔乐社区

1. Hugging Face平台

1.1 任务一 模型下载

1.1.1 创建github codespace

访问github codespace,并使用Jupyter Notebook模板。

image-20250205233946327

创建完成后,进入“Create frome a template”页面

image-20250205234102346

对已经创建的codespace选择“open in visual studio code”

image-20250205234142711

点击后会经过登录、验证等步骤,已经一段时间的加载后,就可以在本地的vscode中访问codespacel了。

image-20250205234332671

1.1.2 安装必须的依赖

# 安装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-20250205234806732

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

hugging face上该模型的文件列表

我们要下载的就是以下这两个文件

image-20250205235504479

这里我们采用huggingface_hub库中的hf_hub_download来下载。

首先新建一个hf_download_jsonn.py文件,并写入以下代码:

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}")

运行代码:

image-20250205235701383

文件下载成功:

image-20250205235734830

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

新建一个Python文件并运行:

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
'''
这里使用 AutoTokenizer 和 AutoModelForCausalLM 从 Hugging Face 上下载一个名为 internlm/internlm2_5-1_8b 的预训练模型及其分词器。
trust_remote_code=True 表示信任远程代码执行,允许加载模型的自定义代码。
torch_dtype=torch.float16 将模型加载为半精度浮点数(减少内存占用)。
model.eval() 将模型切换到评估模式,这通常是在生成文本时使用的。
'''
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()# tokenizer(["A beautiful flower"], return_tensors="pt") 会将输入文本(这里是 “A beautiful flower”)转换为模型可以理解的张量形式(PyTorch 张量)。
inputs = tokenizer(["A beautiful flower"], return_tensors="pt")
# 设置生成文本的参数
'''
max_length=128:生成文本的最大长度为 128 个 token。
top_p=0.8:nucleus sampling(核心采样),限制生成时选择概率累计达到 0.8 的词汇。即,模型只从概率较高的词中选择,帮助控制生成的多样性。
temperature=0.8:温度系数,控制生成的随机性。温度较低时生成的文本更有确定性,较高时则更随机。
do_sample=True:启用采样,而非使用贪心算法(即每次选择最大概率的词)。
repetition_penalty=1.0:防止生成重复的文本,较大的值可以减少重复。
'''
gen_kwargs = {"max_length": 128,"top_p": 0.8,"temperature": 0.8,"do_sample": True,"repetition_penalty": 1.0
}# model.generate() 是生成文本的核心函数。它将 inputs 和 gen_kwargs 传递给模型,生成指定条件下的文本。
output = model.generate(**inputs, **gen_kwargs) # 将字典的键值对自动解包并传递给 model.generate() 函数作为关键字参数
'''
output[0].tolist() 将模型生成的 token 序列转换为列表。
tokenizer.decode() 将 token 序列解码回原始文本。skip_special_tokens=True 表示跳过特殊字符(如 <s> 或 </s>)。
最后打印生成的文本。
'''
output = tokenizer.decode(output[0].tolist(), skip_special_tokens=True)
print(output)

这段代码的作用是:

  1. 从Hugging Face上下载一个语言模型(internlm/internlm2_5-1_8b)。
  2. 将输入文本(“A beautiful flower”)编码为模型的输入格式。
  3. 配置生成文本的参数(如最大长度、随机性等)。
  4. 使用模型生成与输入相关的文本。
  5. 解码并打印生成的文本。

github codespace的服务器下载速度相当可观,可以达到42MB/s

这里有个知识,当我们ssh到开发机上下载库时,默认使用的是开发机服务器的网络,而不是本地的网络。如果想让远程服务器(开发机)的网络流量通过本地机器出去,即让远程服务器“借用”你的本地网络,可以尝试ssh反向代理(目前在internlm开发机上没有成功)。

image-20250206001743195

模型输出结果如下:

image-20250206001917712

1.1.5 Hugging Face Spaces的使用

通过Hugging Face Spaces,开发者可以快速将模型部署为可交互的 web 应用,且无需担心后端基础设施或部署的复杂性。

hugging face spaces地址

image-20250206215604664

在右上角点击+New Space进行创建,然后输入space的信息,点击确定即可创建完成。

space项目地址

在下图位置找到git命令,将space项目克隆到本地仓库。

image-20250206222937116

在本地目录中找到该目录文件夹下的index.html文件,修改html代码。

然后保存(保存前要先获取access tokens,否则无法git push):

git add .
git commit -m "update: colearn page"
git push

保存后就可以push到远程仓库上了,它会自动更新页面。

命令运行结果:

image-20250206223257315

app更新如下:

image-20250206223319257

1.2 任务二 模型上传

1.2.1 安装git lfs和hugging face命令行工具

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
# sudo apt-get install git-lfs # CodeSpace里面可能会有aptkey冲突且没有足够权限
git lfs install # 直接在git环境下配置git LFS
pip install huggingface_hub

运行结果如下:

image-20250206220800176

image-20250206220821226

1.2.2 获取hugging face的Access Tokens

首先到hugging face个人信息设置,点击Access Tokens

image-20250206221044573

完成验证后,点击create new token,创建一个类型为“Write”的token,并请复制好token后要存储在合适的地方

image-20250206221147972

image-20250206221229233

1.2.3 用huggingface-cli登录

接着可以在CodeSpace里面,使用

git config --global credential.helper store
huggingface-cli login

注意,这里token会被保存到本地。

image-20250206221640559

1.2.4 用huggingface-cli创建项目并克隆项目仓库到本地

cd /workspaces/codespaces-jupyter#intern_study_L0_4就是model_name
huggingface-cli repo create intern_study_L0_4# 克隆到本地 your_huggingface_name 注意替换成你自己的
git clone https://huggingface.co/{your_huggingface_name}/intern_study_L0_4

命令行创建项目后,hugging face的个人主页中立刻就可以展示出来。

image-20250206221910135

按照创建项目的命令的输出提示,克隆项目到本地:

image-20250206222036414

克隆好之后,刷新文件目录可以看到克隆好的intern_study_L0_4文件夹。

intern_study_L0_4文件夹中创建项目文件如下:

image-20250206222230691

现在可以用git提交到远程仓库。

cd intern_study_L0_4
git add .
git commit -m "add:intern_study_L0_4"
git push

运行结果如下:

image-20250206222343221

1.2.5 在网页端查看model

model仓库地址

image-20250206222454284

image-20250206222503969

2. 魔搭社区平台

魔搭平台链接

2.1 环境配置

激活开发机中预装的pytorch2.1.2cu12.1环境,并安装一些包。

# 激活环境
conda activate /root/share/pre_envs/pytorch2.1.2cu12.1# 安装 modelscope
pip install modelscope -t /root/env/maas
pip install numpy==1.26.0  -t /root/env/maas
pip install packaging -t /root/env/maas

image-20250206225648239

注意:为了保证能够找到我们每次装的依赖,每次新建一个终端之后都需要导出path 如果不改变终端,导出一次就够了。

export PATH=$PATH:/root/env/maas/bin
export PYTHONPATH=/root/env/maas:$PYTHONPATH

接着创建我们的demo目录

mkdir -p /root/ms_demo

2.2 下载指定多个文件

使用modelscope的cli工具下载模型文件:

modelscope download \--model 'Shanghai_AI_Laboratory/internlm2_5-7b-chat' \tokenizer.json config.json model.safetensors.index.json \--local_dir '/root/ms_demo'

下载完成:

image-20250206230419678

2.3 上传模型

首先在平台上创建模型:

image-20250206230601332

填写模型基本信息:

image-20250206230712157

创建完成,模型地址

用git将模型克隆到本地

git clone https://www.modelscope.cn/sakuralggm/intern_study_L0_4.git

image-20250206230929445

克隆成功:

image-20250206231030981

将刚刚2.2中下载的模型文件复制到这个目录中。

image-20250206231228097

用git工作流将本地仓库的更改推送到远程仓库:

image-20250206231454006

注意git push时需要输出用户名和密码,密码在设置中找到git 访问令牌复制填写即可。

image-20250206231626374

上传结果如下(目前还是待审核状态):

image-20250206231712333

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024 年度总结:与自己对话

搬运自洛谷博客,原发表时间:2024-12-27(实际写成:12-31)\[\mathsf{那跑过去的昼夜\ \ 是孤独的修炼\qquad——\ 林俊杰《黑夜问白天》} \] 孤独而不孤独.又来到写年度总结的时刻了。这一年无疑比去年更具故事的戏剧性与心境的跌宕起伏了。 被各种事件聚在一起搅和,高一上…

breach1靶机渗透学习

靶机下载 https://www.vulnhub.com/ 找Breach-1.0,不过这个是老靶机了,可以看网上其他博客附带有靶机下载的网盘链接,靶机官网访问很慢而且网站好像出问题了排版很乱,不打也罢。 readme.txt: First in a multi-part series, Breach 1.0 is meant to be beginner to interm…

lxl数据结构讲义例题泛做

搬运自洛谷博客,原发表时间:2022-12-06 网课人在家摆烂太悲伤了,于是做一些数据结构题。 本博客和ds学习笔记的区别:后者收录小清新/有趣题。 目前拥有的讲义:感觉数据结构题评紫的巨大多,良莠不齐。 可能会有非常简单的题加入这里,勿喷。 完成度指数:0%表示一半以上核…

电路板地与外壳地之间接一个电阻和一个电容的作用.

原理 原理图如下:我们知道外壳基本都是金属属性,外壳会预留一个螺丝孔,预留的螺丝孔是为了跟电路板地连接在一起,电路设计如原理图所示,这样做有什么作用呢?作用如下:外壳地如果不稳定或者有静电之类的,如果与电路板地直接连接,就会打坏电路板芯片,加入电容,就能把低…

晶体管

PCB设计中晶体管的学习与应用 在电子电路设计中,晶体管作为一种重要的有源器件,扮演着放大、开关、稳压等多种角色。本文将带您了解晶体管的基础知识,以及如何在PCB设计中正确选择和应用晶体管。 晶体管基础 晶体管主要有两种类型:双极型晶体管(BJT)和场效应晶体管(FET)…

Tailwin CSS 基础下篇

Tailwin CSS 进阶上篇 方便自己查看,仅做摘录,非原创。 原文链接 听说你还不会 Tailwind CSS(基础上篇)Tailwind CSS 的基础使用:从宽度高度开始逐步展现 Tai - 掘金 (juejin.cn) 听说你还不会 Tailwind CSS(基础中篇)Tailwind CSS 的基础使用:包含伪类、伪元素、flex …

ctfshow密码学wp

打hgame打傻了来洗洗脑子( 1、密码学签到2、 jsfuck扔控制台3、 aaencode颜文字4、 ctfrsatoolsfrom Crypto.Util.number import * from gmpy2 import * p=447685307 q=2037 e=17 phi=(p-1)*(q-1) d=inverse(e,phi) print(d) 5、 交intimport gmpy2,libnum f…

异动拉升之量子图形矩阵

一.量子图形矩阵通过异动拉升算法检测出异动拉升的股票之后,需要图形化显示股票分时曲线,帮助观察股票异动之后的走势,量子图形矩阵的功能就是将异动拉升的股票,按照冠绝榜中的排序,从上到下依次展示在图形矩阵中,可以选择4,9,16个窗口,在窗口没有锁住的情况下,新出现…

MySQL主从复制 —— 作用、原理、数据一致性,异步复制、半同步复制、组复制

MySQL主从复制 作用、原理—主库线程、I/O线程、SQL线程;主从同步要求,主从延迟原因及解决方案;数据一致性,异步复制、半同步复制、组复制文章目录 一、作用 二、原理 三、同步数据一致性3.1 主从同步要求3.2 主从延迟原因、直接表现3.3 减少主从延迟的方案3.4 数据一致性…

2024人工智能AI+制造业应用落地研究报告汇总PDF洞察(附原数据表)

原文链接: https://tecdat.cn/?p=39068 本报告合集洞察深入剖析当前技术应用的现状,关键技术 创新方向,以及行业应用的具体情况,通过制造业具体场景的典型 案例揭示人工智能如何助力制造业研发设计、生产制造、运营管理 和产品服务的全流程智能化升级。在此基础上对制造业…

中国综合算力指数(2024年)报告汇总PDF洞察(附原数据表)

原文链接: https://tecdat.cn/?p=39061 在全球算力因数字化技术发展而竞争加剧,我国积极推进算力发展并将综合算力作为数字经济核心驱动力的背景下,该报告对我国综合算力进行研究。 中国算力大会发布的《中国综合算力指数(2024年)报告》显示,我国算力结构调整,智算规模…

基于Java语言的开源能管平台才是最适合国内的额的能源管理平台

在"双碳"战略背景下,能源管理已成为政府、企业实现可持续发展的必经之路。面对市场上各类能源管理平台,为何基于Java语言的开源解决方案才是最佳选择?本文将为您揭晓答案,并向您推荐我公司自研的真正具备行业竞争力的开源平台——智碳EMS。 一、智碳EMS:企业能源…