🚀 Komodo-7B-Base
Komodo-7B-Baseは、Llama-2-7B-Baseの上で増分事前学習と語彙拡張を行って開発された大規模言語モデルです。このモデルは、英語、インドネシア語、およびインドネシアの11の地域言語を扱うことができます。
🚀 クイックスタート
このモデルはゲート付きモデルであるため、モデルを使用する前にHFアカウントにログインする必要があります。以下にその方法を示します。HFトークンは、プロファイル(プロファイル -> 設定 -> アクセストークン)から取得できます。
import huggingface_hub
huggingface_hub.login("YOUR_HF_TOKEN")
ログインしたら、モデルとトークナイザーのダウンロードと読み込みを開始できます。Komodo-7B用にカスタムデコード関数を作成しているため、trust_remote_code=True
を渡す必要があります。このパラメータなしでもコードは動作しますが、デコードプロセスは期待通りに動作しません。
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
device = "cuda:0" if torch.cuda.is_available() else "cpu"
tokenizer = AutoTokenizer.from_pretrained("Yellow-AI-NLP/komodo-7b-base", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("Yellow-AI-NLP/komodo-7b-base", trust_remote_code=True)
model = model.to(device)
その後、モデルを使ってみることができます。
full_prompt = "Candi borobudur adalah"
tokens = tokenizer(full_prompt, return_tensors="pt").to(device)
output = model.generate(tokens["input_ids"], eos_token_id=tokenizer.eos_token_id)
print(tokenizer.decode(output[0], skip_special_tokens=True))
✨ 主な機能
- Llama-2-7B-Baseをベースに開発され、増分事前学習と語彙拡張が行われています。
- 英語、インドネシア語、およびインドネシアの11の地域言語をサポートしています。
📦 インストール
このモデルを使用するには、まずHugging Faceのアカウントにログインする必要があります。その後、上記のコード例を参考にモデルとトークナイザーをダウンロードしてロードすることができます。
💻 使用例
基本的な使用法
import huggingface_hub
huggingface_hub.login("YOUR_HF_TOKEN")
高度な使用法
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
device = "cuda:0" if torch.cuda.is_available() else "cpu"
tokenizer = AutoTokenizer.from_pretrained("Yellow-AI-NLP/komodo-7b-base", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("Yellow-AI-NLP/komodo-7b-base", trust_remote_code=True)
model = model.to(device)
full_prompt = "Candi borobudur adalah"
tokens = tokenizer(full_prompt, return_tensors="pt").to(device)
output = model.generate(tokens["input_ids"], eos_token_id=tokenizer.eos_token_id)
print(tokenizer.decode(output[0], skip_special_tokens=True))
📚 ドキュメント
モデルの詳細
- 開発元: Yellow.ai
- モデルタイプ: デコーダー
- 言語: 英語、インドネシア語、アチ語、バリ語、バンジャル語、ブギ語、マドゥラ語、ミナンカバウ語、ジャワ語、ダヤク・ンガジュ語、スンダ語、トバ・バタク語、ランポン語
- ライセンス: llama2
詳細は、こちらの論文を参照してください: https://arxiv.org/abs/2403.09362
技術仕様
モデルアーキテクチャと目的
Komodo-7Bは、Llama-2アーキテクチャを使用したデコーダーモデルです。
プロパティ |
詳細 |
レイヤー数 |
32 |
d_model |
4096 |
ヘッド次元 |
32 |
語彙数 |
35008 |
シーケンス長 |
4096 |
トークナイザーの詳細
言語の多様性の重要性を認識し、インドネシア語と地域言語の両方での言語モデルの能力向上に焦点を当てました。これを達成するために、Llama-2モデルに存在しないインドネシア語固有の約2,000語と地域言語の1,000語を特定し、トークナイザーの語彙を体系的に拡張しました。
語彙を拡張する標準的な方法は、新しいトークナイザーを開発し、既存のものと統合することです。この手法は、Chinese-LLaMAやOpen-Hathiなどのプロジェクトで印象的な結果をもたらしています。この戦略の有効性は、中国語やヒンディー語などの言語と英語との大きな言語的差異に起因しています。これに対し、インドネシア語は英語と同じラテン文字を使用しており、別の一連の課題を提示します。
従来の方法と、インドネシア語の語彙から上位n語(トークンではなく)を含める新しいアプローチの両方をテストしました。新しいアプローチでは、約3000語の新しい語彙を追加することで、より良い生成スコアを達成できることがわかりました。3000語以上を追加しても生成スコアは大幅に向上せず、埋め込み行列のサイズが増加し、トレーニング時間が長くなります。
詳細は、こちらの論文を参照してください: https://arxiv.org/abs/2403.09362
評価と結果
以下のベンチマーク値は、SFTモデルであるKomodo-7B-Instructに基づいていますが、ここではベースモデルであるKomodo-7B-baseのみをリリースしています。
組織 |
モデル名 |
Indo MMLU |
ID-EN |
XCOPA-ID |
意図分類 |
口語検出 |
NusaX-Senti |
ID-ヘイトスピーチ |
TydiQA-ID |
Indosum |
平均 |
OpenAI |
GPT-3.5-turbo-0301 |
51.3 |
64.5 |
70.0 |
82.0 |
64.1 |
47.2 |
68.0 |
85.3 |
41.0 |
63.7 |
OpenAI |
GPT-3.5-turbo-0613 |
52.7 |
66.8 |
88.2 |
84.0 |
75.1 |
63.3 |
63.7 |
86.4 |
40.0 |
68.9 |
OpenAI |
GPT-3.5-turbo-1106 |
53.3 |
69.7 |
89.3 |
84.0 |
64.2 |
59.8 |
56.6 |
88.0 |
42.0 |
67.4 |
OpenAI |
GPT-4-preview-1106 |
69.8 |
78.0 |
98.3 |
89.0 |
92.7 |
66.1 |
73.4 |
72.0 |
33.0 |
74.7 |
Meta |
Llama-2-7B-Chat |
30.4 |
45.6 |
41.5 |
57.0 |
31.4 |
2.9 |
41.3 |
11.7 |
34.0 |
32.9 |
Meta |
Llama-2-13B-Chat |
32.0 |
61.7 |
38.0 |
59.0 |
31.1 |
58.7 |
57.2 |
71.9 |
40.0 |
50.0 |
Google |
Gemma-7B-it |
37.4 |
73.6 |
57.7 |
77.1 |
18.8 |
44.2 |
54.8 |
73.3 |
44.0 |
53.4 |
Mistral |
Mixtral-8x7B-v0.1-Instruct |
45.2 |
57.8 |
88.7 |
86.0 |
41.1 |
52.8 |
68.8 |
90.3 |
14.0 |
60.5 |
AISingapore |
Sealion-7B-Instruct-NC |
23.9 |
26.9 |
41.3 |
37.0 |
41.8 |
30.7 |
57.3 |
65.3 |
26.0 |
38.9 |
Cohere |
Aya-101-13B |
47.7 |
47.3 |
84.0 |
64.0 |
18.9 |
74.6 |
72.7 |
81.3 |
39.0 |
58.8 |
MBZUAI |
Bactrian-X-Llama-7B |
23.6 |
43.2 |
45.3 |
42.0 |
50.3 |
44.5 |
42.4 |
65.0 |
15.0 |
41.3 |
Alibaba |
Qwen-1.5-7B-chat |
40.0 |
56.0 |
29.5 |
85.0 |
41.8 |
58.7 |
63.9 |
51.22 |
29.0 |
50.6 |
Yellow.ai |
Komodo-7B-Instruct |
43.2 |
90.5 |
79.6 |
84.0 |
73.6 |
79.3 |
56.2 |
90.3 |
43.0 |
71.1 |
詳細は、こちらの論文を参照してください: https://arxiv.org/abs/2403.09362
インフラストラクチャ
トレーニング詳細 |
Komodo-7B |
AWS EC2 p4d.24xlarge |
1インスタンス |
Nvidia A100 40GB GPU |
8 |
トレーニング期間 |
300時間 |
🔧 技術詳細
- モデルアーキテクチャ: Llama-2アーキテクチャを使用したデコーダーモデル
- トークナイザーの語彙拡張: インドネシア語固有の約2,000語と地域言語の1,000語を追加
📄 ライセンス
このモデルのライセンスはllama2です。
引用
@misc{owen2024komodo,
title={Komodo: A Linguistic Expedition into Indonesia's Regional Languages},
author={Louis Owen and Vishesh Tripathi and Abhay Kumar and Biddwan Ahmed},
year={2024},
eprint={2403.09362},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
モデルカード作成者
Louis Owen
Vishesh Tripathi
Abhay Kumar
Biddwan Ahmed