模型简介
模型特点
模型能力
使用案例
🚀 Komodo-7B-Base模型卡片
Komodo-7B-Base是一个大型语言模型,它在Llama-2-7B-Base的基础上通过增量预训练和词汇扩展开发而来。该模型可以处理印尼语、英语和11种印尼地区语言。
免责声明:这不是一个经过指令微调的模型,下游任务需要进一步微调。例如,人们通常会利用Alpaca数据集在Llama-2-7B-Base模型的基础上进行进一步微调。因此,该模型没有提示模板。
🚀 快速开始
由于这是一个受保护的模型,在使用模型之前,你需要登录到你的Hugging Face(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))
# Candi borobudur adalah candi yang terletak di Magelang, Jawa Tengah.
✨ 主要特性
- 多语言支持:能够处理英语、印尼语以及11种印尼地区语言,包括亚齐语、巴厘语、班查尔语、布吉斯语、马都拉语、米南加保语、爪哇语、达雅克恩加朱语、巽他语、多巴巴塔克语、楠榜语。
- 基于Llama-2:在Llama-2-7B-Base的基础上进行增量预训练和词汇扩展。
📦 安装指南
由于这是一个受保护的模型,在使用模型之前,你需要登录到你的Hugging Face(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)
💻 使用示例
基础用法
由于这是一个受保护的模型,你需要登录到你的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))
# Candi borobudur adalah candi yang terletak di Magelang, Jawa Tengah.
高级用法
暂无高级用法示例。
📚 详细文档
更多详细信息可查看我们的论文:https://arxiv.org/abs/2403.09362
模型详情

模型描述
- 开发者:Yellow.ai
- 模型类型:解码器
- 支持语言:英语、印尼语、亚齐语、巴厘语、班查尔语、布吉斯语、马都拉语、米南加保语、爪哇语、达雅克恩加朱语、巽他语、多巴巴塔克语、楠榜语
- 许可证:llama2
评估与结果
请注意,以下基准测试值基于我们的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 |
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 |

基础设施
训练详情 | Komodo-7B |
---|---|
AWS EC2 p4d.24xlarge | 1 实例 |
Nvidia A100 40GB GPU | 8 |
训练时长 | 300 小时 |
🔧 技术细节
模型架构和目标
Komodo-7B是一个使用Llama-2架构的解码器模型。
参数 | 详情 |
---|---|
层数 | 32 |
d_model | 4096 |
头维度 | 32 |
词汇量 | 35008 |
序列长度 | 4096 |
分词器详情
认识到语言多样性的重要性,我们专注于提高我们的语言模型在印尼语和地区语言方面的能力。为此,我们通过识别并纳入大约2000个印尼语常用词和1000个Llama-2模型中缺失的地区语言词汇,系统地扩展了分词器的词汇量。
增强词汇量的标准方法通常是开发一个新的分词器并将其与现有分词器集成。这种技术在Chinese-LLaMA和Open-Hathi等项目中取得了显著成果。这种策略的有效性归因于中文和印地语等语言与英语之间的显著语言差异。相比之下,印尼语使用与英语相同的拉丁字母,这带来了不同的挑战。
我们测试了传统方法以及一种新方法,即纳入印尼语词汇中排名前n的单词(而非标记)。我们发现,通过添加约3000个新词汇,新方法可以获得更好的生成得分。添加超过3000个单词并不会显著提高生成得分,但会增加嵌入矩阵的大小,导致训练时间延长。
训练数据
更多详细信息可查看我们的论文:https://arxiv.org/abs/2403.09362
训练过程
更多详细信息可查看我们的论文:https://arxiv.org/abs/2403.09362
预处理
更多详细信息可查看我们的论文:https://arxiv.org/abs/2403.09362
📄 许可证
本模型使用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}
}
模型卡片作者



