iT邦幫忙

2024 iThome 鐵人賽

DAY 6
1
生成式 AI

從系統設計切入,探索 GenAI 在企業中的實踐系列 第 6

[Day6] LM Studio-一鍵架好你的地端 Chatbot

  • 分享至 

  • xImage
  •  

有了模型之後再來就是使用介面了。現在有很多快速提供介面的服務像 ChatOllama、OpenGPTs 和 HuggingChat 等等,不過為了快速體驗整個 GenAI 產品功能,並專注在功能面的發想和參數的設定,在這裡都選擇最簡易的方式,首先從地端 Chatbot 操作開始,我們選擇 LM Studio


硬體設備需求

由於模型是在自己的電腦上跑,所以對於硬體設備有一定的要求,在官網上提到的分別是以下:

  1. Apple Silicon Mac (M1/M2/M3) with macOS 13.6 or newer
  2. Windows / Linux PC with a processor that supports AVX2 (typically newer PCs)
  3. 16GB+ of RAM is recommended. For PCs, 6GB+ of VRAM is recommended
  4. NVIDIA/AMD GPUs supported

軟體安裝與模型下載

  1. 進入到主頁,依照自己的作業系統下載程式,安裝過程十分直覺,照著步驟點就可以了。
    https://ithelp.ithome.com.tw/upload/images/20240907/20151660W4YunpQIvf.jpg
  2. 進入程式後,首頁是模型下載頁面,也有最新的 Llama 3.1 模型,選好後點擊下載。
    https://ithelp.ithome.com.tw/upload/images/20240901/20151660XrkEca7TQe.png
  3. 模型都是從 HuggingFace 上下載的,在第二頁搜尋頁面也可以尋找其他模型。
    https://ithelp.ithome.com.tw/upload/images/20240901/20151660qEVTOBYTtR.png
  4. 所有下載的 models 都可以在最後一頁查看
    https://ithelp.ithome.com.tw/upload/images/20240901/201516606Uv1KpqL7a.png

模型與參數設定

接著來了解 Chatbot 的參數意義,之後在開發上都可以獨立設定或調整:

  1. 使用模型-點擊聊天頁面最上方紫色方框套用下載好的模型,右側 Eject Model 則是取消套用。
    https://ithelp.ithome.com.tw/upload/images/20240901/20151660Y6D7OWKrUW.png
  2. 提示詞 prompt 設定
    • System prompt-在右側 setting 欄位中,目的在設定模型的行為,如:指定角色、引導回應方向、要求輸出格式等。
    • Assistant promt-對話框左側點擊 user 切換,用來讓模型預先讀取特定的知識或背景資訊,讓回答可以更符合預期方向。
      https://ithelp.ithome.com.tw/upload/images/20240901/201516604IwtY9UkNp.png
    • User prompt-使用者與模型互動的主要方式,通常是問題或指令,也就是對話框輸入的內容。
  3. 進階設定(Advanced Configuration)
    • Context Length-這個參數決定了模型在生成回應時,可以參考的前文或上下文的長度。Context Length 越大,模型能讀取的資訊更多、在生成長對話或多輪對話時的連貫性也會越,但也需要更多的 RAM。
    • Temperature-控制模型生成文字時隨機性的參數。這個參數影響模型在選擇下一個單詞或 token 時的機率分佈。數值越低,生成的結果會更保守且可預測;越高則生成的結果會更具創造性和不可預測性。
    • Tokens to generate-設定每次輸出的 token 數量上限,可以控制生成內容的長度,避免生成過長或過短的回應。
    • CPU Threads-表示 CPU 可以同時執行的線程數量,允許同時處理多個任務,可以提高模型運行的處理效率,但同時也會消耗更多的系統資源。
  4. 推論參數(Inference Parameters)
    • Top K sampling-是生成下一個 token 的方法。模型會根據機率對所有可能的 token 進行排序,選出前 K 個最有可能的 token,再從這些候選 token 隨機選擇一個來生成下個詞語。
    • Repeat penality-控制生成文本重複度的參數。會對已經生成過的 token 施加懲罰,減少這些 token 再次被選中的可能性,避免模型在回應中重複相同的詞語或句子。
    • Min P sampling-另一種控制生成 token 的方法。在生成下個 token 時,模型只會選擇那些概率大於某個指定閾值 P 的 token。
    • Top P sampling-與 Top K Sampling 不同,它是透過機率來選擇 token。模型首先對所有可能的 token 計算機率,然後選擇一組 token,使這些 token 的總機率達到指定的閾值(如 0.9),再從這些候選 token 隨機選擇一個來生成下個詞語。
  5. GPU 設定(GPU settings)
    • GPU Acceleration(n_gpu_layers)-計算中有多少層神經網絡層會被分配到 GPU 上運行。層數越多,模型推理的速度也會越快,然而這也要取決於 GPU 有足夠的 VRAM 來處理這些層。
    • GPU Backend Type-圖形計算框架的選擇,選擇哪一個版本主要取決於你的硬件配置。
      • CUDA-如果使用的是 NVIDIA GPU,可以選擇 CUDA 版本。
        -Vulkan-如果使用的是其他品牌的 GPU,可以選擇 Vulkan 版本。
  6. Prompt Format-用來定義模型輸出的格式。
  7. 模型初始化設定(Model Initialization)
    • Keep entire model in RAM-是否將整個模型完全加載到系統的 RAM 中。
    • Prompt eval batch size-設定每次推理時可以處理的輸入筆數。可以提高推理過程中的吞吐量,加快多個輸入的同時推理速度。不過,也會佔用更多的VRAM 或 RAM。
    • Flash Attention-一種優化技術,用來加速 transformer 模型中的注意力機制運算
    • Rotary Position Embedding (RoPE)-用於表示生成式 AI 模型中輸入序列的位置信息。可以保留默認值,除非有特殊需求需要調整。
  8. Export Chat settings: 導出目前的模型設定。已導出的設定可以在 system prompt 上方的欄位中套用。

開始問答

都設定完之後就可以開始問答了,方框左側會顯示目前的資源用量,試了幾次之後會發現模型的回應效果沒有想像中的好,因為能下載的模型參數量小,如果要使用更精確的模型還是得透過 API 串接效能更好的 LLM 模型。


上一篇
[Day5] 如何挑選 LLM 模型?
下一篇
[Day7] HuggingFace 下載 LLM & License 開源授權商用須知
系列文
從系統設計切入,探索 GenAI 在企業中的實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言