英文

NB GPT-J-6B Alpaca

这是一个在 Norwegian Alpaca 数据集上进行微调的 NB GPT-J-6B 挪威博克莫尔(Norwegian Bokmål)模型。

使用方式

from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig, pipeline

base_model = "NbAiLab/nb-gpt-j-6B-alpaca"
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.")
# Kjære Svein,
#
# Velkommen til vårt team! Vi er glade for å ha deg med oss og ser frem til å se hvordan du kan bidra til vår organisasjon.
#
# Vi er sikre på at du har mange ferdigheter og erfaringer som vi kan dra nytte av, og vi er sikre på at du vil passe godt inn i teamet vårt. 
#
# Hvis du har noen spørsmål eller trenger hjelp til å komme i gang, ikke nøl med å ta kontakt. 
#
# Vi ser frem til å bli kjent med deg!
#
# Vennlig hilsen,
# [Ditt navn]

数据

这个数据集是使用OpenAI的 gpt-3.5-turbo 模型将 (instruction, input, output) 元组从 alpaca_data_cleaned.json Alpaca dataset made at Stanford 的干净版本)翻译成挪威博克莫尔语言而来。我们使用一个完整的样本prompt而不是单个字符串进行翻译,这样翻译效果更连贯,费用约为60.0美元。

这个数据集不能用于创建与OpenAI有任何竞争的模型。

微调

我们使用了 NB's fork of mesh-transformer-jax 上提供的代码来微调 NB GPT-J-6B 模型,该代码提供了适应 Alpaca 数据集以微调任何 GPT-J-6B 模型的功能。我们在单个 TPUv3-8 上运行了3个时期的微调,序列长度为2048,微调时间为3小时,并在 NB GPT-J-6B 之上进行。

示例输出

Standford Alpaca:

Instruction: Kom med en kreativ unnskyldning for å si at jeg ikke trenger å gå på festen.
Response: I'm sorry, but I don't need to go to the party.

NB-Alpaca-LoRA-7b

Instruction: Kom med en kreativ unnskyldning for å si at jeg ikke trenger å gå på festen.
Response: Jeg beklager at jeg ikke kan gå på festen, men jeg tror at det er bedre at jeg ikke gjør det.

NB-GTP-J-6B-Alpaca:

Instruction: Kom med en kreativ unnskyldning for å si at jeg ikke trenger å gå på festen.
Response: Jeg beklager, men jeg har en avtale jeg ikke kan avlyse.

Standford Alpaca:

Instruction: Hvordan kan jeg starte en karriere som dataforsker? Skriv i listeform.
Response:
Starting a career as a data scientist requires a combination of education, experience, and skills. 

1. Obtain a Bachelor's or Master's degree in computer science, statistics, mathematics, or a related field. 
2. Gain practical experience through internships or part-time jobs. 
3. Learn programming languages such as Python, R, and SQL. 
4. Develop strong analytical and problem-solving skills. 
5. Build a portfolio of projects to showcase your work. 
6. Network with other data scientists to learn

NB-Alpaca-LoRA-7b

Instruction: Hvordan kan jeg starte en karriere som dataforsker? Skriv i listeform.
Response:
1. Søk etter en universitetsgrad i datavitenskap, matematikk, informatikk eller en relatert fag. 
2. Søk etter en jobb som dataforsker eller dataanalytiker. 
3. Utvikle dine ferdigheter i datavitenskap, matematikk, informatikk eller en relatert fag. 
4. Utvikle dine ferdigheter innen dataanalyse.

NB-GTP-J-6B-Alpaca:

Instruction: Hvordan kan jeg starte en karriere som dataforsker? Skriv i listeform.
Response:
1. Lær programmeringsspråk som Python og Java.
2. Skaff deg en grad i informatikk, datavitenskap eller relaterte felt.
3. Bli sertifisert innen datamaskinsyn, maskinlæring eller andre relaterte felt.
4. Bygg nettverk med andre dataforskere.
5. Delta på konferanser og kurs for å holde deg oppdatert på de siste utviklingene innen feltet.

您可以使用 eval notebook here 进行测试。

参考文献

硬件要求

在训练过程中,我们使用了Google Cloud TPUv3-8虚拟机。在评估过程中,您可以使用T4。