Llama 3 Taiwan 70B Instruct
Llama-3-Taiwan-70B是基于Llama-3架构、使用繁体中文和英文大数据微调的700亿参数模型,在多项繁体中文NLP基准测试中展现了顶尖性能。
下载量 1,279
发布时间 : 5/31/2024
模型简介
专为繁体中文和英文用户优化的大语言模型,具备卓越的语言理解与生成能力、逻辑推理能力和多轮对话能力。
模型特点
强大的语言理解与生成能力
在多项繁体中文NLP基准测试中展现了顶尖性能。
支持8K上下文长度
能够处理更长的文本输入和输出。
多轮对话能力
能够进行连贯的多轮对话。
逻辑推理能力
具备较强的逻辑推理和问题解决能力。
模型能力
文本生成
多轮对话
逻辑推理
检索增强生成(RAG)
结构化输出
使用案例
对话系统
多轮对话
用户与AI助手进行多轮对话,助手提供有用、详细且礼貌的回答。
能够进行连贯的多轮对话。
信息检索与生成
检索增强生成(RAG)
结合检索信息生成更准确的回答。
提高回答的准确性和相关性。
结构化输出
结构化输出
生成结构化数据输出。
能够生成符合特定格式的输出。
🚀 Llama-3-Taiwan-70B
Llama-3-Taiwan-70B是一款基於Llama-3架構,在大量繁體中文和英文數據上微調的700億參數模型。它在各種繁體中文自然語言處理基準測試中表現出色,具備強大的語言理解、生成、推理和多輪對話能力。
🚀 快速開始
- 免費API:在NVIDIA NIM上使用免費API
- 演示網站:在twllm.com上交互式試用Llama-3-Taiwan。
- 聊天機器人競技場:參與精彩的聊天機器人競技場,與其他聊天機器人一較高下!
✨ 主要特性
- 參數規模:700億參數。
- 支持語言:繁體中文(zh-tw)、英文(en)。
- 微調數據:在高質量的繁體中文和英文語料庫上微調,涵蓋一般知識以及法律、製造、醫療和電子領域的行業知識。
- 上下文長度:8K上下文長度(另有128k版本)。
- 開源許可:基於Llama-3許可證發布的開源模型。
📦 安裝指南
Hugging Face Transformers庫
import torch
from transformers import pipeline, StoppingCriteria
# Define a custom stopping criteria class
class EosListStoppingCriteria(StoppingCriteria):
def __init__(self, eos_sequence=[128256]):
self.eos_sequence = eos_sequence
def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:
last_ids = input_ids[:, -len(self.eos_sequence):].tolist()
return self.eos_sequence in last_ids
# Initialize the model with automatic device mapping
llm = pipeline("text-generation", model="yentinglin/Llama-3-Taiwan-70B-Instruct", device_map="auto")
tokenizer = llm.tokenizer
# Define a conversation example
chat = [
{"role": "system", "content": "You are an AI assistant called Twllm, created by TAME (TAiwan Mixture of Expert) project."},
{"role": "user", "content": "你好,請問你可以完成什麼任務?"},
{"role": "assistant", "content": "你好,我可以幫助您解決各種問題、提供資訊並協助完成多種任務。例如:回答技術問題、提供建議、翻譯文字、尋找資料或協助您安排行程等。請告訴我如何能幫助您。"},
{"role": "user", "content": "太棒了!"}
]
flatten_chat_for_generation = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
"""
<|im_start|>user
You are an AI assistant called Twllm, created by TAME (TAiwan Mixture of Expert) project.<|im_end|>
<|im_start|>user
你好,請問你可以完成什麼任務?<|im_end|>
<|im_start|>assistant
你好,我可以幫助您解決各種問題、提供資訊和協助您完成許多不同的任務。例如:回答技術問題、提供建議、翻譯文字、尋找資料或協助您安排行程等。請告訴我如何能幫助您。<|im_end|>
<|im_start|>user
太棒了!<|im_end|>
<|im_start|>assistant
"""
# Generate a response using the custom stopping criteria
output = llm(flatten_chat_for_generation, return_full_text=False, max_new_tokens=128, top_p=0.9, temperature=0.7, stopping_criteria=[EosListStoppingCriteria([tokenizer.eos_token_id])])
print(output[0]['generated_text'])
"謝謝!很高興能夠為您服務。如果有任何其他需要協助的地方,請隨時與我聯繫。我會盡最大努力為您提供所需的支援。"
vLLM
啟動服務器:
export NUM_GPUS=4
export PORT=8000
docker run \
-e HF_TOKEN=$HF_TOKEN \
--gpus '"device=0,1,2,3"' \
-v ~/.cache/huggingface:/root/.cache/huggingface \
-p "${PORT}:8000" \
--ipc=host \
vllm/vllm-openai:v0.4.0.post1 \
--model "yentinglin/Llama-3-Taiwan-70B-Instruct" \
-tp "${NUM_GPUS}"
示例客戶端代碼:
# pip install "openai>=1.0.0"
from openai import OpenAI
# Set OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
chat_response = client.chat.completions.create(
model="yentinglin/Llama-3-Taiwan-70B-Instruct",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Tell me a joke."},
]
)
print("Chat response:", chat_response)
💻 使用示例
多輪對話
System: You are an AI assistant called Twllm, created by TAME (TAiwan Mixture of Expert) project.
User: 嗨,你好!
Assistant: 你好!我今天可以如何協助你?
User: 就想聊天而已....
Assistant: 當然,我很樂意和你聊天!有什麼特別想談論的嗎?
RAG(檢索增強生成)
System: You are an AI assistant called Twllm, created by TAME (TAiwan Mixture of Expert) project.
User: 明天台大天氣如何?
Assistant: 根據天氣預報,明天台大天氣為陣雨。低溫 24°C。10 到 15 公里/小時 的 東 風 。降雨機率為 40%。
格式化輸出, 語言理解, 實體識別, 函數調用
System: You are an AI assistant called Twllm, created by TAME (TAiwan Mixture of Expert) project.
User: 您是電影評論分析師,負責情緒分析。
分析每個被評論的句子,評估句子中每個字和標點符號的重要性,
並且將結果使用 tuple 的結構列出。
tuple 值的範圍介於 -1 (負向) 到 1 (正向) 之間,
然後,將評論分類為正向 (1) 或負向 (-1)。
這些需要被評論的句子,包含在 <review> 標籤中間。
輸出範例:
[(<單字或標點符號>, <float importance>), ...]
<int classification>
<review> 根據外媒報導,宏都拉斯在去年3月與台灣斷交,並轉往與中國建交之後,卻遲遲等不到中國的金援,談好要進口宏都拉斯的白蝦也拖延許久,甚至還將白蝦價格殺價至過往與台灣交易的半價,再加上墨西哥同時也中斷了與宏國的白蝦貿易,對當地蝦農可說是雪上加霜。 <review>
Assistant: [('根據', 0.2), ('外媒', 0.1), ('報導', -0.1), (',', 0.05), ('宏都拉斯', -0.3), ('在去年3月與台灣斷交, ', -0.5), ('並轉往與中國建交之後, ', -0.4), ('卻遲遲等不到中國的金援, ', -1),
('談好要進口宏都拉斯的白蝦也拖延許久, ', -1),
(',甚至還將白蝦價格殺價至過往與台灣交易的半價,再加上墨西哥同時也中斷了與宏國的白蝦貿易,對當地蝦農可說是雪上加霜。 ',-1)]
-1
📚 詳細文檔
訓練細節
- 訓練框架:NVIDIA NeMo、NVIDIA NeMo Megatron
- 推理框架:NVIDIA TensorRT-LLM
- 基礎模型:Llama-3 70B
- 硬件:台北-1上的NVIDIA DGX H100
- 上下文長度:8K tokens(另有128k版本)
- 批次大小:每步2M tokens
評估
查看Open TW LLM Leaderboard以獲取完整和最新的列表。
模型 | TMLU | 台灣在地化測試 | Legal Eval | TW MT-Bench | 長文本支援 | 函數呼叫 | TMMLU+ |
---|---|---|---|---|---|---|---|
學科知識 | 台灣法律考題 | 中文多輪對答 | |||||
yentinglin/Llama-3-Taiwan-70B-Instruct | 74.76% | 80.95% | 68.42% | 7.54 | 128k版本 | ✅ | 67.53% |
yentinglin/Llama-3-Taiwan-70B-Instruct-DPO | 74.60% | 81.75% | 70.33% | - | - | ✅ | - |
yentinglin/Llama-3-Taiwan-70B-Instruct-128k | 73.01% | 80.16% | 63.64% | - | - | ✅ | - |
yentinglin/Llama-3-Taiwan-8B-Instruct | 59.50% | 61.11% | 53.11% | 7.21 | 128k版本 | ✅ | 52.28% |
yentinglin/Llama-3-Taiwan-8B-Instruct-DPO | 59.88% | 59.52% | 52.63% | - | - | ✅ | - |
yentinglin/Llama-3-Taiwan-8B-Instruct-128k | - | - | - | - | - | ✅ | - |
Claude-3-Opus | 73.59% (5-shot) | 69.84% | 60.29% | - | 200k | ✅ | - |
GPT4-o | 65.56% (0-shot), 69.88% (5-shot) | 76.98% | 53.59% | - | 128k | ✅ | - |
GPT4-turbo | 70.42% (5-shot) | - | - | - | 128k | ✅ | 60.34%^ |
Gemini-Pro | 61.40% (5-shot) | - | - | - | 1000k | ✅ | 49.92%^ |
GPT-3.5-turbo-1106 | 49.37% (5-shot) | - | - | 7.1 | 128k | ✅ | 41.76%^ |
Qwen1.5-110B-Chat | 75.69% | 66.67% | 49.28% | - | 32k | ✅ | 65.81% |
Yi-34B-Chat | 73.59% | 71.43% | 55.02% | 6.9 | 200k | ✅ | 64.10% |
Meta-Llama-3-70B-Instruct | 70.95% | 65.08% | 52.63% | - | 8k | ✅ | 62.75% |
Mixtral-8x22B-Instruct-v0.1 | 55.57% | 52.38% | 44.98% | - | 64k | ✅ | 52.16% |
Breexe-8x7B-Instruct-v0_1 | - | - | - | 7.2 | 8k | ❓ | 48.92% |
c4ai-command-r-plus | 62.87% | 64.29% | 34.45% | - | 128k | ✅ | 49.75% |
Meta-Llama-3-8B-Instruct | 55.81% | 46.83% | 35.89% | - | 8k | ✅ | 43.38% |
Breeze-7B-Instruct-v1_0 | 55.57% | 52.38% | 39.23% | 6.0 | 32k | ❓ | 41.77% |
Llama3-TAIDE-LX-8B-Chat-Alpha1 | 47.30% | 50.79% | 37.80% | - | 8k | ❓ | 39.03% |
Phi-3-mini-4k-instruct | 40.97% | 37.30% | 27.27% | - | 4k | ❓ | 33.02% |
數字默認為0-shot。評估實現
^ 從原始數據集中獲取最接近的匹配數字。
《出師表》細節查找評估
「《出師表》細節查找」評估測試模型定位和回憶嵌入在大量文本中的重要信息的能力,使用諸葛亮的經典中文文本《出師表》。
要運行評估,請使用腳本。
TW MT-Bench得分
- 平均分:7.5375
- 最高分:10
- 最低分:1
- 中位數:9.0
- 標準差:3.0349783771882133
- 總得分數:160
- 模型回覆
- GPT-4評估
- 從
mtkresearch/TCEval
分叉並修復了錯誤的代碼
🔧 技術細節
本模型使用NVIDIA NeMo™ Framework,在基於NVIDIA DGX H100系統構建的NVIDIA台北-1上進行訓練。訓練和推理的具體框架和參數如下:
- 訓練框架:NVIDIA NeMo、NVIDIA NeMo Megatron
- 推理框架:NVIDIA TensorRT-LLM
- 基礎模型:Llama-3 70B
- 硬件:NVIDIA DGX H100 on Taipei-1
- 上下文長度:8K tokens(另有128k版本)
- 批次大小:每步2M tokens
📄 許可證
本模型基於Llama-3許可證發布。
貢獻者
- Yun-Nung (Vivian) Chen教授,在整個項目中提供指導和建議。
- Wei-Lin Chen,負責預訓練數據管道。
- Tzu-Han Lin,負責合成數據生成。
- Chang-Sheng Kao,負責提升合成數據質量。
- Kang-Chieh Chen,負責清理指令跟隨數據。
- Min-Yi Chen 和 Shao-Heng Hsu,負責收集化學工程數據和基準。
- Chung-Yao Ma、Jonathan Guo 和 Kai-Chun Chang,負責收集製造和電氣工程數據和基準,以及項目進度管理。
引用
@article{DBLP:journals/corr/abs-2311-17487,
author = {Yen{-}Ting Lin and
Yun{-}Nung Chen},
title = {Taiwan {LLM:} Bridging the Linguistic Divide with a Culturally Aligned
Language Model},
journal = {CoRR},
volume = {abs/2311.17487},
year = {2023},
url = {https://doi.org/10.48550/arXiv.2311.17487},
doi = {10.48550/ARXIV.2311.17487},
eprinttype = {arXiv},
eprint = {2311.17487},
timestamp = {Tue, 05 Dec 2023 14:40:42 +0100},
biburl = {https://dblp.org/rec/journals/corr/abs-2311-17487.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{DBLP:journals/corr/abs-2403-20180,
author = {Po{-}Heng Chen and
Sijia Cheng and
Wei{-}Lin Chen and
Yen{-}Ting Lin and
Yun{-}Nung Chen},
title = {Measuring Taiwanese Mandarin Language Understanding},
journal = {CoRR},
volume = {abs/2403.20180},
year = {2024},
url = {https://doi.org/10.48550/arXiv.2403.20180},
doi = {10.48550/ARXIV.2403.20180},
eprinttype = {arXiv},
eprint = {2403.20180},
timestamp = {Wed, 10 Apr 2024 17:37:45 +0200},
biburl = {https://dblp.org/rec/journals/corr/abs-2403-20180.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
免責聲明
本模型「如是」(as‑is)提供,不提供任何形式的保證。使用者須自行評估結果之正確性與適用性。開發者對於使用本模型所引發之任何直接或間接損失,不承擔任何法律責任。
嚴禁用於醫療診斷、法律諮詢、金融投資等高風險場景;若有相關需求,請尋求專業人員協助。
Phi 2 GGUF
其他
Phi-2是微软开发的一个小型但强大的语言模型,具有27亿参数,专注于高效推理和高质量文本生成。
大型语言模型 支持多种语言
P
TheBloke
41.5M
205
Roberta Large
MIT
基于掩码语言建模目标预训练的大型英语语言模型,采用改进的BERT训练方法
大型语言模型 英语
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基础模型的蒸馏版本,在保持相近性能的同时更轻量高效,适用于序列分类、标记分类等自然语言处理任务。
大型语言模型 英语
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一个多语言大语言模型,针对多语言对话用例进行了优化,在常见的行业基准测试中表现优异。
大型语言模型 英语
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型 支持多种语言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基于Transformer架构的英语预训练模型,通过掩码语言建模目标在海量文本上训练,支持文本特征提取和下游任务微调
大型语言模型 英语
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI发布的开放预训练Transformer语言模型套件,参数量从1.25亿到1750亿,旨在对标GPT-3系列性能,同时促进大规模语言模型的开放研究。
大型语言模型 英语
O
facebook
6.3M
198
1
基于transformers库的预训练模型,适用于多种NLP任务
大型语言模型
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多语言大语言模型系列,包含8B、70B和405B参数规模,支持8种语言和代码生成,优化了多语言对话场景。
大型语言模型
Transformers 支持多种语言

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基础版是由Google开发的文本到文本转换Transformer模型,参数规模2.2亿,支持多语言NLP任务。
大型语言模型 支持多种语言
T
google-t5
5.4M
702
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98
智启未来,您的人工智能解决方案智库
简体中文