無備案網(wǎng)站微信網(wǎng)絡營銷和電子商務區(qū)別
文章目錄
- L0——入門島
- 玩轉(zhuǎn)HF/魔搭/魔樂社區(qū)
- HF 平臺
- 1 注冊
- 2 InternLM模型下載
- 3 GitHub CodeSpace的使用
- 4 Hugging Face Spaces的使用
- 5 模型上傳
- 魔搭社區(qū)平臺
- 簡介
- 創(chuàng)建開發(fā)機
- 環(huán)境配置
- 下載指定多個文件
- 上傳模型
- 魔樂社區(qū)平臺
- 下載internlm2_5-chat-1_8b模型
- 上傳模型
- 始智AI平臺
- 下載llava-internlm2-7B模型
- 上傳模型
L0——入門島
玩轉(zhuǎn)HF/魔搭/魔樂社區(qū)
HF 平臺
1 注冊
Hugging Face 最初專注于開發(fā)聊天機器人服務。盡管他們的聊天機器人項目并未取得預期的成功,但他們在GitHub上開源的Transformers庫卻意外地在機器學習領域引起了巨大轟動。如今,Hugging Face已經(jīng)發(fā)展成為一個擁有超過100,000個預訓練模型和10,000個數(shù)據(jù)集的平臺,被譽為機器學習界的GitHub。
這里需要進入Hugging Face的官網(wǎng)進行注冊:
https://huggingface.co/
國內(nèi)鏡像站:
https://hf-mirror.com/
2 InternLM模型下載
在正式下載之前,我們先要介紹一下HF的Transformers庫,作為HF最核心的項目,它可以:
- 直接使用預訓練模型進行推理
- 提供了大量預訓練模型可供使用
- 使用預訓練模型進行遷移學習
因此在使用HF前,我們需要下載Transformers等一些常用依賴庫
這里我們以internlm2_5-1_8b舉例,查看Hugging Face上該模型的地址:
https://huggingface.co/internlm/internlm2_5-1_8b
https://hf-mirror.com/internlm/internlm2_5-1_8b
3 GitHub CodeSpace的使用
因為網(wǎng)絡和磁盤有限的原因,強烈不建議在 InternStudio 執(zhí)行機上運行,因此這里使用CodeSpace
https://github.com/codespaces 或
https://bgithub.xyz/codespaces
Github CodeSpace是Github推出的線上代碼平臺,提供了一系列templates,我們這里選擇Jupyter Notebook進行創(chuàng)建環(huán)境。創(chuàng)建好環(huán)境后,可以進入網(wǎng)頁版VSCode的界面,這就是CodeSpace提供給我們的在線編程環(huán)境。
在界面下方的終端(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
- 下載internlm2_5-7b-chat的配置文件
個人GitHub CodeSpace硬盤空間有限(32GB可用),而7B的模型相對較大,這里僅演示如何下載模型文件夾的特定文件。 考慮到CodeSpace平臺上默認的用戶權(quán)限不是root權(quán)限,這里為方便演示直接在工作區(qū)創(chuàng)建文件,即 /workspaces/codespaces-jupyter 目錄
以下載模型的配置文件為例,先新建一個hf_download_json.py 文件
touch hf_download_json.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"}
]# 創(chuàng)建一個目錄來存放下載的文件
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_json.py
可以看到,已經(jīng)從Hugging Face上下載了相應配置文件
- 下載internlm2_5-chat-1_8b并打印示例輸出
那么如果我們需想要下載一個完整的模型文件怎么辦呢?創(chuàng)建一個python文件用于下載internlm2_5-1_8B模型并運行。下載速度跟網(wǎng)速和模型參數(shù)量大小相關(guān)聯(lián),如果網(wǎng)速較慢的小伙伴可以只嘗試下載1.8b模型對應的config.json文件以及其他配置文件。
touch hf_download_1_8_demo.py
注意到在CodeSpace平臺上是沒有GPU資源的,因此我們Python代碼中只使用CPU進行推理,我們需要修改跟CUDA有關(guān)的API,在hf_download_1_8_demo.py文件中粘貼以下內(nèi)容:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLMtokenizer = 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
}# 以下內(nèi)容可選,如果解除注釋等待一段時間后可以看到模型輸出
output = model.generate(**inputs, **gen_kwargs)
output = tokenizer.decode(output[0].tolist(), skip_special_tokens=True)
print(output)
運行該文件
python hf_download_1_8_demo.py
等待幾分鐘后,會在控制臺返回模型生成的結(jié)果
這里以“A beautiful flower”開頭,模型對其進行“續(xù)寫”,InternLM的模型擁有強大的數(shù)學方面的能力。這邊它輸出的文本似乎是關(guān)于一個數(shù)學問題,具體是關(guān)于一個花園面積的計算。
4 Hugging Face Spaces的使用
Hugging Face Spaces 是一個允許我們輕松地托管、分享和發(fā)現(xiàn)基于機器學習模型的應用的平臺。Spaces 使得開發(fā)者可以快速將我們的模型部署為可交互的 web 應用,且無需擔心后端基礎設施或部署的復雜性。
可以從首頁進入
首先訪問以下鏈接,進入Spaces。在右上角點擊Create new Space進行創(chuàng)建:
https://huggingface.co/spaces 或
https://hf-mirror.com/spaces/
在創(chuàng)建頁面中,輸入項目名為intern_cobuild,并選擇Static應用進行創(chuàng)建。
創(chuàng)建成功后會自動跳轉(zhuǎn)到一個默認的HTML頁面。
創(chuàng)建好項目后,回到我們的CodeSpace,接著clone項目。
注意這里請?zhí)鎿Q你自己的username
cd /workspaces/codespaces-jupyter
# 請將<your_username>替換你自己的username
git clone https://huggingface.co/spaces/leishenggungun/intern_cobuild
cd /workspaces/codespaces-jupyter/intern_cobuild
找到該目錄文件夾下的index.html文件,修改我們的html代碼
<!doctype html>
<html>
<head><meta charset="utf-8" /><meta name="viewport" content="width=device-width" /><title>My static Space</title><style>html, body {margin: 0;padding: 0;height: 100%;}body {display: flex;justify-content: center;align-items: center;}iframe {width: 430px;height: 932px;border: none;}</style>
</head>
<body><iframe src="https://colearn.intern-ai.org.cn/cobuild" title="description"></iframe>
</body>
</html>
保存后就可以push到遠程倉庫上了,它會自動更新頁面。
git add .
git commit -m "update: colearn page"
git push
當push報錯時,需要進行如下處理:
在 hugginface 中進入到profile頁面,選擇 access token。
創(chuàng)建一個 write 類型的token。
彈出生成的token界面,需要復制后進行保存,因為之后再也看不到全部內(nèi)容。在上傳時輸入token,即可上傳成功。
再次進入Space界面,就可以看到我們實戰(zhàn)營的共建活動捏~
5 模型上傳
通過CLI上傳 Hugging Face同樣是跟Git相關(guān)聯(lián),通常大模型的模型文件都比較大,因此我們需要安裝git lfs,對大文件系統(tǒng)支持。
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs # CodeSpace里面可能會有aptkey沖突且沒有足夠權(quán)限
git lfs install # 直接在git環(huán)境下配置git LFS
pip install huggingface_hub
在CodeSpace里面,使用如下命令
git config --global credential.helper store
huggingface-cli login
命令進行登錄,這時需要輸入剛剛的token
創(chuàng)建項目
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
克隆好之后,刷新文件目錄可以看到克隆好的intern_study_L0_4文件夾。
我們可以把訓練好的模型保存進里面,這里考慮到網(wǎng)速問題,只上傳我們剛剛下載好的config.json,把它復制粘貼進這個文件夾里面.
cd intern_study_L0_4
cp ../internlm2_5-7b/config.json .
寫一個README.md文件,粘貼以下內(nèi)容:
touch README.md
# 書生浦語大模型實戰(zhàn)營camp4
- hugging face模型上傳測試
- 更多內(nèi)容請訪問 https://github.com/InternLM/Tutorial/tree/camp4
現(xiàn)在可以用git提交到遠程倉庫
git add .
git commit -m "add:intern_study_L0_4"
git push
現(xiàn)在可以在Hugging Face的個人profile里面看到這個model,也可以直接將下面的Url輸入到瀏覽器網(wǎng)址欄上
https://huggingface.co/leishenggungun/intern_study_L0_4
魔搭社區(qū)平臺
簡介
ModelScope 是一個“模型即服務”(MaaS)平臺,由阿里巴巴集團的達摩院推出和維護。它旨在匯集來自AI社區(qū)的最先進的機器學習模型,并簡化在實際應用中使用AI模型的流程。通過ModelScope,用戶可以輕松地探索、推理、微調(diào)和部署各種AI模型。
注冊登錄ModelScope平臺,進入導航欄模型庫,可以搜索internlm找到相關(guān)模型(但是這也包括非官方模型),在這里我們可以搜索 internlm2_5-chat-1_8b,下載1.8b的對話模型,也類似于hugging face 一樣擁有具體的詳情頁。
創(chuàng)建開發(fā)機
選擇 10% 的開發(fā)機,鏡像選擇為 Cuda-12.2。在輸入開發(fā)機名稱后,點擊創(chuàng)建開發(fā)機。
創(chuàng)建好開發(fā)機后,進入開發(fā)機。
接著在當前終端上可以輸入命令了,這里可以直接粘貼以下命令。最好一行一行粘貼等每個命令跑完之后再粘貼下一行。
環(huán)境配置
為ms_demo創(chuàng)建一個可用的conda虛擬環(huán)境,可以和其他環(huán)境區(qū)分開來。
# 激活環(huán)境
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
注意:為了保證能夠找到我們每次裝的依賴,每次新建一個終端之后都需要配置path 如果不改變終端,配置一次就夠了。
export PATH=$PATH:/root/env/maas/bin
export PYTHONPATH=/root/env/maas:$PYTHONPATH
接著創(chuàng)建我們的demo目錄
mkdir -p /root/ms_demo
下載指定多個文件
- internlm2_5-7b-chat
考慮到7B的模型文件比較大,這里我們先采用modelscope的cli工具(當然hugging face也有)來下載指定文件,在命令行輸入以下命令
modelscope download \--model 'Shanghai_AI_Laboratory/internlm2_5-7b-chat' \tokenizer.json config.json model.safetensors.index.json \--local_dir '/root/ms_demo'
這里的輸出可能會串行,不影響使用。
刷新一下文件目錄,就能看到在ms_demo中下載了指定的json文件。
- internlm2_5-1_8b-chat
modelscope download \--model 'Shanghai_AI_Laboratory/internlm2_5-1_8b-chat' \tokenizer.json config.json model.safetensors.index.json \--local_dir '/root/ms_demo'
上傳模型
魔搭社區(qū)類似HF,也有一套創(chuàng)建模型的界面。不同的是,它具有審核機制,當符合它的社區(qū)規(guī)范時才會被公開。那么當上傳正常的模型文件后,審核一般就會通過了。
上傳文件的方法可以直接通過平臺添加文件,也可以通過git下載模型后進行修改和上傳文件。
#Git模型下載
git clone https://www.modelscope.cn/<your_username>/<your_model>
在平臺上創(chuàng)建一個模型。url為:
https://www.modelscope.cn/models/xianzaijiweilai/internlm2_5-1_8b-chat
在通過git提交文件時,需要使用社區(qū)中的訪問令牌。
提交成功后如下
在社區(qū)頁面查看模型文件
魔樂社區(qū)平臺
魔樂社區(qū)(Modelers)是一個提供多樣化、開源模型的平臺,旨在促進開發(fā)者和研究人員在最先進的模型和流行應用上進行協(xié)作。
下載internlm2_5-chat-1_8b模型
在執(zhí)行機進行如下操作
cd /
mkdir ml_demo
cd ml_demo
然后在當前目錄下載該模型
# 確保安裝git-lfs 保證大文件的正常下載
apt-get install git-lfs
git lfs install
# clone 倉庫
git clone https://modelers.cn/Intern/internlm2_5-1_8b-chat.git
刷新一下文件夾,即可在ml_demo中找到下載好的模型文件,文件下載完成,lfs 大文件可能會下載失敗,需要重復多次,也可以單獨從頁面進行下載。
在魔樂社區(qū)中,還推薦了一個新的深度學習開發(fā)套件openMind Library,除了常用的Transforms的API,也可以探索如何使用openMind來加載模型。
# 確保按指南安裝好openmind后
from openmind import AutoModel
model = AutoModel.from_pretrained("Intern/internlm2_5-1_8b-chat", trust_remote_code="True")
openMind Library是一個深度學習開發(fā)套件,通過簡單易用的API支持模型預訓練、微調(diào)、推理等流程。 openMind Library通過一套接口兼容PyTorch和MindSpore等主流框架,同時原生支持昇騰NPU處理器。
上傳模型
在魔樂社區(qū)一般有兩種方法,第一種是安裝好openmid后使用openmind的API來上傳文件,另一個就是用git命令來推送文件,跟一般的git工作流相類似。
-
創(chuàng)建模型
-
下載模型
-
上傳模型文件
創(chuàng)建token及訪問令牌
令牌創(chuàng)建好后,需要自己保存下來。
之后上傳文件平臺
始智AI平臺
始智AI平臺(wisemodel)是一個中立開放的AI開源社區(qū), 是一個提供多樣化開源模型、數(shù)據(jù)集以及訓練和微調(diào)的一站式平臺。
下載llava-internlm2-7B模型
進入平臺 https://www.wisemodel.cn 進行注冊。
注冊好該平臺后,我們可以在創(chuàng)建好的InternStudio開發(fā)機下下載模型
cd /
mkdir wise_model
cd wise_model
設的賬戶名是username,那么可以用以下方式,下載公有倉庫的模型
git lfs install
git clone https://www.wisemodel.cn/用戶名/llava-internlm2-7b.git
需要注意的是,該平臺無論是下載還是上傳,都需要輸入token信息。
上傳模型
假設你的模型文件位于/work/my_model_dir本地目錄下:
cd my_test_model #進入同步模型倉庫的目錄
cp -rf /work/my_model_dir/* . #從/work/my_model_dir本地目錄把文件拷貝到模型倉庫
git add -A . #執(zhí)行更新git目錄
git commit -m "commit message" #合并文件并填寫更新說明
git push #將本地文件上傳更新