iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0

前言

這章來整理一下目前看到的繁體中文LLM,以及怎麼選擇適合自己任務的local LLM。

找local Model最重要的是模型的推理能力,模型對於特定任務的回答能力,像是翻譯、摘要,或是對各種語言理解的能力,或是多輪對話表現能力。若是要做RAG,知識背景(如台灣的總統是誰)反而是其次,重要的是它在相關文章段落中回答出問題的能力。

這些能力值在模型Hugging Face介紹中通常會有一些現有評估資料集的比較表格可以提供參考,不過模型實際上運用在自己的任務當中的效果還是要經過自身實驗才準。

https://ithelp.ithome.com.tw/upload/images/20240909/20168115c2VU4dt71b.jpg
(圖源: 網路)

  • 2025/2補:不知道為啥這篇特別多人點,但東西內容又停留在2024/9,加上最近DeepSeek和Breeze2相繼出現,就......偷偷更新一下_(:3」∠ )_

選擇適合你的模型

在一開始找模型時,每個模型的介紹都很長,不知道要看什麼,可以從模型訓練/微調的 語言、資料、參數大小、上下文長度 (context length)、微調的base model是誰 來看。

  • 語言 - 通常是希望以繁體中文為主,若是使用不是以繁體中文微調的模型,像是llama3,有時候對話一下就會自動噴出英文來。
  • 資料 - 像是TAME計畫中,模型有用特殊的資料訓練,具備石化、電子製造、醫療、媒體內容和法律等專業知識,如果有這些領域上背景知識的需求,這個模型就更適合使用。
  • 參數大小 - 這依賴硬體設備可接受的範圍,可以參考Day6
  • context length - 上下文長度是指實際輸入和生成的tokens總數。如果一個模型的context length為 2048 tokens,輸入了一段1500 tokens的文本,那麼最多能生成548 tokens(1500 + 548 = 2048)。
  • base model - 使用哪一個模型去做微調的,這關係到原本模型的能力值,像是llama-3微調的模型基本上都會比llama-2的模型能力還要好。

local LLM 和 雲端服務的差異

由於先前的章節並沒有特別寫到過,因此在此補充兩者的差異。

  • 雲端服務 - 雲端服務的模型不會出現在user的電腦裡面,因此不需要自建基礎設施,user只需透過付費call API即可得到回應。資料會傳入對方的伺服器當中做運算,至於中間是否會被存檔或用於其他用途,取決於服務提供者的設定,通常會有相關公告或聲明。

  • 地端服務 (local LLM) - 模型可以在的伺服器或是電腦當中,一般人可以在自己電腦中體驗LLM的神奇。然而專業使用上卻要有一定的設備和知識,才能做環境與服務的建設,會有速度、準確性、安全性、多人使用等種種考量,這也是本系列會介紹的目標。


台灣 - 繁體中文local LLM

這邊不考慮GPT、Claude、FFM這種不能下載在你的電腦裡面的模型,順序就是想到啥就放啥,並沒有特別的排序。這些模型在台灣資料的微調下,擁有更多的台灣知識,繁體中文的回答也會比較好。

  1. Taiwan-LLM(台大)
    第一個開源台灣繁體中文大語言模型,基於「Meta/LLaMa系列」的微調模型,最新的Llama-3-Taiwan有8B和70B,Context Length是8k,另外也有做128k和DPO的版本。
    • Github / Taiwan-LLM HF / Demo / 解說

    • 其中最新的TAME = Llama-3-Taiwan(長春、和碩、長庚醫院、欣興電子、科技報橘、律果科技、台大),具備石化、電子製造、醫療、媒體內容和法律等在地專業知識。

    • 評估方式是使用: TCEval v2

實測效果:在2024/9鐵人賽寫這篇文章的時候覺得最好用的模型,Llama-3-Taiwan基於llama-3推理能力很不錯,非常遵守指令也更會講中文,只是有時會在特定任務中(像是摘要)無限跳針,AWQ量化模型效果體感也不錯。

  1. Breeze(MediaTek-Research)/ Bloom-zh(CKIP-joint)
    Breeeze系列微調自「mistralai/Mistral-7B-v0.1」,Context Length是8k,其中2025/2最新的Breeze2系列微調自llama-3.2,Context Length是128k;BLOOM-zh 系列是由中研院CKIP Lab、聯發創新基地、以及國家教育研究院共同合作開發的項目,該釋出模型僅針對非商業研究目的使用,模型微調自「BLOOMZ」,Sequence length是2048 tokens。

實測效果:當初剛出來的時候測試過,由於Bloom-zh系列參數量是1B和3B,速度上明顯比其他台灣模型快很多。如果任務並沒有複雜到需要更大型的語言模型,也許它是一個好選擇。
至於Llama-Breeze2-3B-Instruct用起來跟llama-3.2比較接近,偏好輸出較短的答案,整體而言在參數量大量減少的狀況下確實比Llama-3-Taiwan更聰明,同樣資料集下回答也更接近GPT。

特別補充,如果Breeze2要用vLLM部屬的話,tokenizer會有點問題,需要手動添加special token之後額外掛載tokenizer,或是看要把模型全部下載下來改也可以,解法請參考這篇大大的文

  1. TAIDE(國科會)
    基於「meta-llama/Llama-2-7b-hf」,Context Length是4k,有提供4bit的量化版本。其訓練資料都可以在官網上下載,在它剛開源時,已經與一些學校合作使用做出不同的有趣作品,像是中興大學的神農TAIDE台南大學的TAIDE臺英語機器人

實測效果:它非常偏好長篇大論的回答,其他模型都回答短短的,就它很喜歡回答很長XD
同樣是以Llama-2-7b微調,筆著覺得它有比當時的Taiwan-LLM-7B-v2.0-chat系列在回答QA問題上更聰明許多,如果再來一個llama-3.1或3.2微調版本,應該會更聰明。

  1. Bailong(群創)
    基於「meta-llama/Llama-2-7b-hf」,利用QLoRA和群創提出的zip-tie embedding初始化,Context Length是2048 tokens。

  2. lianghsun/Llama-3.2-Taiwan-3B-Instruct(Developed by: Huang Liang Hsun)
    在llama-3.2出了之後,看到有大大用繁體中文資料微調一個Llama-3.2-Taiwan-3B-Instruct。

實測效果:可能有用大量markdown資料或指令微調過,在沒有特別指定輸出格式時,回答問題喜歡用markdown格式回答。雖然是llama-3.2微調的,但是同樣的prompt,回答長度稍微比llama-3.2長一些。


非台灣 - 中文local LLM

非中文為主訓練的模型有大量的背景知識,但因為不是以中文為主,有可能即使下了語言#zh-TW指令,回答到一半還是不小心就把英文或簡體字噴了出來。

  1. Llama(Meta)
    由Meta(原 Facebook)開發的一系列大型語言模型,llama-3的Context length是8k,而llama-3.1的Context length是128k,參數量有8B和70B。最後到llama-3.2,同樣128k,參數量卻是1B和3B,進而開起了多模態和小型語言模型的時代!

實測效果:筆者最喜歡的模型還是llama系列,在單純QA的時候有時可能會噴英文,但在RAG的問答任務下都是乖乖繁體中文輸出,而且回答都是簡短風格,又快又好用。

  1. Mistral(Mistral AI)
    Mistral AI以Apache 2.0授權自由使用的模型,7B的模型Context length是8k,在各種測試中打敗當時的llama-2-13B。

  2. Yi(零一万物)
    Yi-1.5系列的參數量有6B、9B、34B,而Context length有4k、16k、32k。除此之外還有Yi-Coder與多模態模型Yi-VL,可以專門用在程式撰寫和影像辨識上。

  3. Qwen(阿里云)
    通义千问系列目前最新的Qwen2的Context length有131,072 tokens,參數量從1.5B到72B都有。除此之外還有Qwen2-Math、Qwen2-Audio、Qwen2-VL三種系列,包含音訊和影像在內的多模態應用。

  4. DeepSeek(DeepSeek)
    主要分成:用於一般綜合任務的V3系列,它是一個671B的超大MoE模型,Context length是128k;以及利用Chain of Thought資料、強化學習等技術做出專門用在推理任務的R1系列,其中他們將DeepSeek-R1的知識蒸餾給小型模型Qwen和llama,讓這些蒸餾後的小型模型有著超越非推理模型GPT-4o-0513的優秀表現。除此之外還有多模態模型VL2和Janus系列也都值得讓人研究。

實測效果:測試過DeepSeek-R1-Distill-Llama-8B,輸出的部分會由</think>分隔推理和回答,假設你全都使用繁體中文問問題,在推理的部分簡體字推理,但輸出會是繁體字,非常的酷,當然也很常全都回答簡體字,單看結果來說回答的不錯,只是看它的推理過程會覺得它的內心戲很多XD


模型體驗與競技場

模型比較很多人會下載oobabooga的text-generation-webui來做比較,不一定需要GPU,即使使用CPU的電腦也可以下載GGUF量化模型,體驗C++在你電腦上壓榨CPU全力運轉LLM的魅力,也是筆者在還沒熟悉LLM模型時常用的體驗工具。過了一陣子沒用,發現它現在還有出colab版本的可以玩,詳細內容可以見它的github。

https://ithelp.ithome.com.tw/upload/images/20240910/20168115SgQhcVerPd.jpg
(圖源: 筆者很久以前下載的舊版本text-generation-webui)

其實台大也有建一個繁體中文LLM競技場,不需要自身硬體設備即可使用網頁測試,不過最近打開來看好像壞掉了,不確定是否會再維修開啟它QQ
https://arena.twllm.com/

https://ithelp.ithome.com.tw/upload/images/20240909/20168115i8y1vP7xQk.png

https://ithelp.ithome.com.tw/upload/images/20240909/20168115XcZIlJbP1q.jpg
(圖源: 今年三月截圖的)

如果網站修好後,使用上唯一要注意的事情就是,打過的對話會變成資料集公開在HF上。


章節總結

繁體中文的開源模型已經有許多選擇,目前台灣微調的模型都還是以文字模型為主,不知道未來會不會朝向繁體中文多模態的方向前進XD >>>> 過了半年就一堆了,太快了、真的太快了(:3」∠ )

在前面的9天內,已經學習到LLM推理上、硬體設備相關的簡單知識、也學習到了如何選擇模型,下一章開始就是令人期待的推理加速的技術章節了。

不過因為我們的目標不是隨便在自己的電腦下載一個model跑就=部屬了,為了要做成OpenAI那種雲端API服務的純地端版本,在實作之前還有很長一段路要走!

https://ithelp.ithome.com.tw/upload/images/20240910/201681156OLuCKSXmr.jpg
(圖源: 自製)


上一篇
Day8 - AI、LLM與水電消耗
下一篇
Day10 - 不用再手動分配計算資源?分散式計算 Ray Serve 介紹
系列文
Local LLM infra & Inference 一部曲30
.

尚未有邦友留言

立即登入留言