搜尋結果

×

如何從 Hugging Face 使用和下載模型到本地端:完整指南

介紹如何從 Hugging Face 下載模型到本地端的完整指南,包括環境設置、模型選擇及使用教學。

Hugging Face 是一個專注於自然語言處理(NLP)和機器學習的平台,提供各種開源模型、數據集和工具,讓開發者能夠輕鬆使用和分享最新的 AI 技術。

設置環境

確保你的開發環境中安裝了 Git 和 Git LFS。

還沒裝可以參考Git LFS教學文>>

此文章也有發表在Medium上 >>

選擇模型

我們以這個Repo為例子: shenzhi-wang/Llama3–8B Chinese Chat

這個Model我上次在LangChain RAG 打造個人化 Llama3 Flask Chatbot 網站的Ollama中文模型使用推薦也有提過,真的非常好用,很推薦。

作法一

這做法比較不建議。

  1. 前往Files and versions

  2. 把想要的檔案Download下來

這個作法只建議給檔案很少的模型使用 Ex. 一個.GGUF,

如果你的Model有好幾個拆分檔案你會按到崩潰,如下圖所示。

作法二

  1. Clone repository到本地

  2. 用Git clone把Repo下載到本地

這個命令也是用來Clone模型,但是通過設置 GIT_LFS_SKIP_SMUDGE=1,它只會下載模型文件的指針而不是實際的大型文件。這樣做可以節省頻寬,當你確定需要使用特定文件時再完全下載。

    GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/shenzhi-wang/Llama3-8B-Chinese-Chat

  1. 可以把模型給 pull 下來了

這個命令 git lfs pull --include="*.safetensors" 是用來從 Git LFS(Large File Storage)服務中下載指定擴展名為 .safetensors 的大型文件

  • git lfs pull: 這是 Git LFS 的命令,用於從遠程存儲庫下載大型文件
  • --include="*.safetensors": 這個選項指定了你希望下載的文件擴展名模式。
    它表示你希望下載所有以 .safetensors 結尾的文件

Hugging Face 本地模型使用教學

可以選用的檔案>

  1. Model Card 查看

Model Card 裡面常常會有範例可以看,像我的 shenzhi-wang/Llama3–8B Chinese Chat 裡面就有 Usage 示範。

    from transformers import AutoTokenizer, AutoModelForCausalLM

    model_id = "shenzhi-wang/Llama3-8B-Chinese-Chat"

    tokenizer = AutoTokenizer.from_pretrained(model_id)
    model = AutoModelForCausalLM.from_pretrained(
        model_id, torch_dtype="auto", device_map="auto"
    )

    messages = [
        {"role": "user", "content": "写一首诗吧"},
    ]

    input_ids = tokenizer.apply_chat_template(
        messages, add_generation_prompt=True, return_tensors="pt"
    ).to(model.device)

    outputs = model.generate(
        input_ids,
        max_new_tokens=8192,
        do_sample=True,
        temperature=0.6,
        top_p=0.9,
    )
    response = outputs[0][input_ids.shape[-1]:]
    print(tokenizer.decode(response, skip_special_tokens=True))

裡面最重要的一行就是model_id
請你把model_id位置改成你下載在本地端的路徑

model_id = "xxx/YourLocation"

大功告成🥰

到這裡你就學會以下:

  • 把HuggingFace模型下載到本地
  • 如何使用下載到本地的Model

效果展示:

root@4be643ba6a94:/app# python3 hugging_chinese_dialog.py
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:00<00:00, 11.15it/s]
在星光下的夢想,
在風中的歌聲,
在月光下的思念,
在雨中的詩篇。

心中有海,無涯無際,
心中有山,高峰掩天。
心中有河,流淌不息,
心中有鳥,自由翱翔。

在黎明的曦光中醒來,
在夜晚的星光中沉睡。
在春天的花瓣中找到,
在秋天的落葉中尋找。

在冬天的雪花中尋找,
在夏天的陽光中尋找。
在生活的點點滴滴中,
在時間的河流中漂浮。

心中有夢,無限可能,
心中有希望,永不言敗。
在詩中的世界裡,
在文字的海洋裡。

在每個瞬間,感受生命,
在每個夢想,追求自由。
在每個詩句,找尋真理,
在每個情感,發出歌聲。

在這個世界,找一個角落,
在這個人生,寫下自己的詩篇。
在這個詩中,表達自己的心聲,
在這個世界,讓心靈自由飛翔。

    喜歡 好崴寶 Weibert Weiberson 的文章嗎?在這裡留下你的評論!本留言區支援 Markdown 語法