MobiLlama简介
MobiLlama是由阿联酋穆罕默德·本·扎耶德人工智能大学(MBZUAI)开发的一个小型语言模型(SLM),主要面向资源受限的边缘计算设备。与大型语言模型(LLM)不同,MobiLlama采用"小而美"的设计理念,在保持良好性能的同时,大幅降低了计算资源需求,非常适合在移动设备、可穿戴设备等边缘设备上运行。
MobiLlama的主要特点包括:
- 开源透明:完全开源的0.5B参数模型
- 高效轻量:针对边缘设备优化,资源需求低
- 性能出色:在多项基准测试中超越同等规模模型
- 灵活易用:支持多种规模版本,可根据需求选择
模型下载
MobiLlama提供了多个版本的预训练模型供下载使用:
模型名称 | 下载链接 |
---|---|
MobiLlama-05B | HuggingFace |
MobiLlama-08B | HuggingFace |
MobiLlama-1B | HuggingFace |
MobiLlama-05B-Chat | HuggingFace |
MobiLlama-1B-Chat | HuggingFace |
快速使用
以下是使用MobiLlama进行文本生成的示例代码:
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("MBZUAI/MobiLlama-05B", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("MBZUAI/MobiLlama-05B", trust_remote_code=True)
model.to('cuda')
text = "I was walking towards the river when "
input_ids = tokenizer(text, return_tensors="pt").to('cuda').input_ids
outputs = model.generate(input_ids, max_length=1000, repetition_penalty=1.2, pad_token_id=tokenizer.eos_token_id)
print(tokenizer.batch_decode(outputs[:, input_ids.shape[1]:-1])[0].strip())
模型训练
MobiLlama的训练数据来自Amber数据集,包含约1.2万亿个token。完整的训练数据共360个chunk,总大小约8TB。
数据集组成:
子集 | Token数量(十亿) |
---|---|
Arxiv | 30.00 |
Book | 28.86 |
C4 | 197.67 |
Refined-Web | 665.01 |
StarCoder | 291.92 |
StackExchange | 21.75 |
Wikipedia | 23.90 |
总计 | 1259.13 |
性能评测
MobiLlama在多项基准测试中展现出优异的性能,特别是在0.5B和0.8B参数规模下,超越了许多同等规模的模型。
详细的评测结果可以在GitHub仓库中查看。
移动端部署
MobiLlama已支持在Android设备上运行。如需体验,可以下载并安装APK。
相关资源
MobiLlama作为一个开源的小型语言模型,为边缘计算和资源受限场景下的AI应用开辟了新的可能。我们期待看到更多基于MobiLlama的创新应用出现。如果您对MobiLlama有任何问题或建议,欢迎在GitHub仓库中提出issue或贡献代码。