英文

NB GPT-J-6B NorPaca

这是一个在 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。