DictaLM 2.0 项目介绍
DictaLM 2.0 是一个大型语言模型,旨在提高对希伯来语文本的理解和生成能力,拥有高达 70 亿个参数。该模型是专门为希伯来语设计的,通过扩展词汇量和改进的指令执行能力,进一步增强对希伯来语文本的支持。
模型背景
DictaLM 2.0 以 Mistral-7B-v0.1 模型为基础进行开发。通过增加 1000 个专门用于希伯来语的新词汇单元,将每词的压缩率从原来的 5.78 个词素降低到 2.76 个。此外,模型从超过 1900 亿自然语言文本中继续进行训练,其中包括 50% 的希伯来语和 50% 的英语文本。
模型特色
DictaLM 2.0 是一个全精度的基础模型,支持多种变体,包括未量化和量化版本,用户可以在 这里 查看和访问完整的模型集合。
模型的显著改进在于其词汇量和指令执行能力,这使得它能够更有效地处理和生成高质量的希伯来语文本。
示例代码使用
用户可以通过 Python 示范代码,使用 transformers
库加载和使用 DictaLM 2.0 模型。以下是一个简单的示例,其中模型加载到 GPU 进行低精度(bfloat16)计算及文本生成:
from transformers import pipeline
import torch
model = pipeline('text-generation', 'dicta-il/dictalm2.0', torch_dtype=torch.bfloat16, device_map='cuda')
prompt = """
עבר: הלכתי
עתיד: אלך
עבר: שמרתי
עתיד: אשמור
עבר: שמעתי
עתיד: אשמע
עבר: הבנתי
עתיד:
"""
print(model(prompt.strip(), do_sample=False, max_new_tokens=8, stop_sequence='\n'))
量化模型的使用
为了在资源有限的设备上使用,DictaLM 2.0 提供了预量化的 4 位模型,用户可使用 GPTQ
和 AWQ
方法进行加载。以下是动态量化的示例代码:
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model = AutoModelForCausalLM.from_pretrained('dicta-il/dictalm2.0', torch_dtype=torch.bfloat16, device_map='cuda', load_in_4bit=True)
tokenizer = AutoTokenizer.from_pretrained('dicta-il/dictalm2.0')
prompt = """
עבר: הלכתי
עתיד: אלך
עבר: שמרתי
עתיד: אשמור
עבר: שמעתי
עתיד: אשמע
עבר: הבנתי
עתיד:
"""
encoded = tokenizer(prompt.strip(), return_tensors='pt').to(model.device)
print(tokenizer.batch_decode(model.generate(**encoded, do_sample=False, max_new_tokens=4)))
注意事项
DictaLM 2.0 是一个预训练基础模型,因此不具备内置的内容审核机制,用户在使用过程中需要注意。
引用信息
如果对这一模型进行研究或使用,请引用以下文献:
@misc{shmidman2024adaptingllmshebrewunveiling,
title={Adapting LLMs to Hebrew: Unveiling DictaLM 2.0 with Enhanced Vocabulary and Instruction Capabilities},
author={Shaltiel Shmidman and Avi Shmidman and Amir DN Cohen and Moshe Koppel},
year={2024},
eprint={2407.07080},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2407.07080},
}
通过这样的创新和优化,DictaLM 2.0 旨在为希伯来语文本的处理提供更为全面和高效的工具。