license: openrail
datasets:
- MasterThesisCBS/NorPaca
library_name: transformers
language:
- 'no'
- nb
pipeline_tag: conversational
tags:
- alpaca
widget:
- text: >-
Nedenfor er en instruksjon som beskriver en oppgave. Skriv et svar som
fullfører forespørselen på riktig måte.
### Instruksjon: Skriv en e-post der du ønsker velkommen til en ny
medarbeider ved navn Svein.
### Respons:
example_title: E-mail
- text: >-
Nedenfor er en instruksjon som beskriver en oppgave. Skriv et svar som
fullfører forespørselen på riktig måte.
### Instruksjon: Fortell meg noe om alpakkaer.
### Respons:
example_title: Alpacas
- text: >-
Nedenfor er en instruksjon som beskriver en oppgave. Skriv et svar som
fullfører forespørselen på riktig måte.
### Instruksjon: Kom med en kreativ unnskyldning for å si at jeg ikke
trenger å gå på festen.
### Respons:
example_title: Excuse
extra_gated_prompt: >-
You agree to not use the model to conduct experiments that cause harm to human
subjects.
extra_gated_fields:
Company: text
Country: text
Intended Use: text
NB GPT-J-6B NorPaca
This is a NB GPT-J-6B Norwegian Bokmål model fine-tuned on the NorPaca dataset.
Usage
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()
For generation, we can either use pipeline()
or the model's .generate()
method. Remember that the prompt needs a Norwegian template:
# 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.")
Data
The dataset is a translation to Norwegian Bokmål of alpaca_gpt4_data.json, a clean version of the Alpaca dataset made at Stanford, but generated with GPT4.
This dataset cannot be used to create models that compete in any way with OpenAI.
Finetuning
To fine-tune the NB GPT-J-6B model we used the code available on NB's fork of mesh-transformer-jax
, which provides code adapt an Alpaca dataset to finetune any GPT-J-6B model. We run finetuning for 3 epochs using sequence length of 2048 on a single TPUv3-8 for 3 hours on top of NB GPT-J-6B.
References
Hardware Requirements
For training we have used a Google Cloud TPUv3-8 VM. For eval, you can use a T4.