这是一个在 NorPaca 数据集上微调的 NB GPT-J-6B 挪威博克麦尔语模型。
from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig, pipeline base_model = "NbAiLab/nb-gpt-j-6B-norpaca" tokenizer = AutoTokenizer.from_pretrained(base_model) model = AutoModelForCausalLM.from_pretrained(base_model).cuda()
生成方面,我们可以使用 pipeline() 或模型的 .generate() 方法。请记住,提示需要一个挪威语模板:
# Generate responses def generate(instruction, input=None): if input: prompt = f"""Nedenfor er en instruksjon som beskriver en oppgave, sammen med et input som gir ytterligere kontekst. Skriv et svar som fullfører forespørselen på riktig måte. ### Instruksjon: {instruction} ### Input: {input} ### Respons:""" else: prompt = f""""Nedenfor er en instruksjon som beskriver en oppgave. Skriv et svar som fullfører forespørselen på riktig måte. ### Instruksjon: {instruction} ### Respons:""" inputs = tokenizer(prompt, return_tensors="pt") input_ids = inputs["input_ids"].cuda() generation_output = model.generate( input_ids=input_ids, generation_config=GenerationConfig(temperature=0.2, top_p=0.75, num_beams=4), return_dict_in_generate=True, output_scores=True, max_new_tokens=256 ) for seq in generation_output.sequences: output = tokenizer.decode(seq, skip_special_tokens=True) print(output.split("### Respons:")[-1].strip()) generate("Skriv en e-post der du ønsker velkommen til en ny medarbeider ved navn Svein.")
该数据集是 Alpaca dataset made at Stanford 的挪威博克麦尔语翻译版本,是使用GPT4生成的干净版本。
该数据集不能用于创建与OpenAI竞争的任何模型。
为了微调NB GPT-J-6B模型,我们使用了 NB's fork of mesh-transformer-jax 上提供的代码,该代码提供了将Alpaca数据集适应于任何GPT-J-6B模型的代码。我们在单个TPUv3-8上运行了3个时期的微调,使用了序列长度为2048,在NB GPT-J-6B之上运行了3小时。
在训练中,我们使用了Google Cloud TPUv3-8虚拟机。对于评估,您可以使用T4。