基础模型: mistralai/Mistral-7B-Instruct-v0.2
许可证: apache-2.0
支持语言:
- 鞑靼语
标签:
- 鞑靼语模型
数据集:
- oscar-corpus/OSCAR-2301
鞑靼语模型 / 基础版7b / 2024-v1
模型描述
本模型是我们针对鞑靼语开发的跨词元大语言模型,基于MistralAI训练的Mistral-7B-Instruct-v0.2模型转换而来。跨词元大语言模型是通过针对特定语言的原生分词器进行微调,使其能够生成该语言内容的语言模型。
适用范围
本模型可直接用于鞑靼语的基础语言建模任务,也可进一步微调以执行更复杂的操作。该模型尚未经过指令或对话微调,因此在少样本场景下表现最佳。
使用指南
本模型可像HuggingFace框架中的任何大语言模型一样使用:
import transformers
MODEL_NAME = "Tweeties/tweety-tatar-base-7b-2024-v1"
generate = transformers.pipeline("text-generation", model=MODEL_NAME)
词语类比
ANALOGY_PROMPT = """请完成以下类比表格:
* {x1} : {y1}
* {x2} :"""
def score_analogy(x1, y1, x2, y2):
Y2_PROMPT = ANALOGY_PROMPT.replace('{x1}', x1).replace('{y1}', y1).replace('{x2}', x2)
answer = generate(Y2_PROMPT, use_cache=True, do_sample=False, max_new_tokens=10, return_full_text=False, pad_token_id=generate.tokenizer.eos_token_id, eos_token_id=generate.tokenizer.convert_tokens_to_ids(['<0x0A>','</s>']))[0]['generated_text'].strip()
return 1 if answer == y2 else 0
score_analogy('莫斯科', '俄罗斯', '安卡拉', '土耳其')
文本摘要
SUMMARIZE = "请为以下文本生成摘要:\n"
LONG_TEXT = "\n\n长文本:\n"
LONG_TEXT_DEMO = "人体是一个复杂有机体,需要特定平衡的营养物质。如果人类饮食主要由熟食构成,其身体会适应这种营养方式。但当同一个人突然转为生食饮食时,其身体可能无法适应这种变化,从而可能造成伤害。"
SHORT_TEXT = "\n\n短摘要:\n"
SHORT_TEXT_DEMO = "但习惯熟食的身体突然转为生食饮食可能产生有害后果。"
def generate_tatar_summary(tatar_text_to_summarize: str) -> str:
input_ids = torch.concat([
tokenizer.encode(SUMMARIZE, return_tensors='pt'),
tokenizer.encode(LONG_TEXT, add_special_tokens=False, return_tensors='pt'),
tokenizer.encode(LONG_TEXT_DEMO, add_special_tokens=False, return_tensors='pt'),
tokenizer.encode(SHORT_TEXT, add_special_tokens=False, return_tensors='pt'),
tokenizer.encode(SHORT_TEXT_DEMO, add_special_tokens=False, return_tensors='pt'),
tokenizer.encode("\n\n", add_special_tokens=False, return_tensors='pt')
], axis=1)
input_ids = torch.concat([
input_ids,
tokenizer.encode(SUMMARIZE, return_tensors='pt'),
tokenizer.encode(LONG_TEXT, add_special_tokens=False, return_tensors='pt'),
tokenizer.encode(tatar_text_to_summarize, add_special_tokens=False, return_tensors='pt'),
tokenizer.encode(SHORT_TEXT, add_special_tokens=False, return_tensors='pt'),
], axis=1)
model_inputs = {'input_ids':input_ids.to(cuda_device)}
model_outputs = model.generate(
**model_inputs,
max_new_tokens=80,
num_beams=8,
no_repeat_ngram_size=6,
early_stopping=False,
pad_token_id=tokenizer.eos_token_id,
eos_token_id=tokenizer.convert_tokens_to_ids(['<0x0A>','</s>']),
)
return (tokenizer.decode(model_outputs[0][input_ids.shape[1]:])).rstrip()
generate_tatar_summary("大爆炸(英语:Big Bang)是描述宇宙初始奇点状态的宇宙学模型。直到20世纪,人们还认为我们生活的宇宙是静态结构的。也就是说,宇宙没有起点和终点,它一直存在并将永远存在。这个观点在科学界持续了很长时间,直到天文学基础被颠覆,新理论出现。这个理论名为'大爆炸'理论。")
引用
若使用本模型,请引用我们的工作:
@article{tweeties2024,
title = {跨词元化与跨语言词汇迁移:低资源NLP中LLM的语言适应},
author = {François Remy and Pieter Delobelle and Hayastan Avetisyan and Alfiya Khabibullina and Miryam de Lhoneux and Thomas Demeester},
url = {https://arxiv.org/abs/2408.04303},
year = {2024},
note = {已被COLM 2024接收}
}