File size: 3,509 Bytes
cb20077
 
 
 
 
5b60f2e
3cd99f8
 
 
 
 
 
 
 
 
 
 
 
cb20077
 
 
540b4be
df4503a
cb20077
540b4be
cb20077
 
ad8fac1
 
 
 
 
 
 
 
 
2f658dd
ad8fac1
 
 
cb20077
67d8cc7
cb20077
6e7e23b
 
 
 
 
 
 
 
 
 
4b3db6c
67d8cc7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4b3db6c
 
 
 
 
67d8cc7
 
 
 
ccebf8d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cb20077
 
d4c79c0
 
cb20077
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
df55313
62b20e6
df55313
62b20e6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
---
license: apache-2.0
base_model: mhenrichsen/danskgpt-tiny
tags:
- generated_from_trainer
widget:
- example_title: Skak
  messages:
  - role: system
    content: Du er en hjælpsom assistent.
  - role: user
    content: Hvad er skak?
- example_title: Skaber
  messages:
  - role: system
    content: Du er en hjælpsom assistent.
  - role: user
    content: Hvem har lavet dig?
---


# DanskGPT-tiny-chat
<img src="danskgpt-tiny-chat.webp" width="500" height="500">

DanskGPT-tiny-chat er chat-varianten af [mhenrichsen/danskgpt-tiny](https://huggingface.co/mhenrichsen/danskgpt-tiny) trænet på private chat datasæt.


## Model beskrivelse

Modellen er beregnet til at være en lightweight version af DanskGPT, der kan køre på næsten alle enheder.

## Prompt template

Modellen er trænet med ChatML format (samme som OpenAI's modeller), og skal bruges på følgende måde:

```
<|im_start|>system\nDu er en hjælpsom assistent.<|im_end|>\n<|im_start|>user\nHvad er skak?<|im_end|>\n<|im_start|>assistant

```


## Inferens

### Ollama
Installér ollama:
https://ollama.ai/download

Kør:
```
ollama run mhenrichsen/danskgpt-tiny-chat
```


### vLLM
```
pip install vllm
```


```python
from vllm import LLM, SamplingParams

sampling_params = SamplingParams(temperature=0.8, top_p=0.95, max_tokens=1024)
llm = LLM(model="mhenrichsen/danskgpt-tiny-chat")

system_message = "Du er en hjælpsom assistent."
conversation_history = f"<|im_start|>system\n{system_message}<|im_end|>\n<|im_start|>user\n"
while True:
    prompt = input("Bruger: ")
    new_prompt = f"{conversation_history}{prompt}<|im_end|>\n<|im_start|>assistant\n"

    outputs = llm.generate(new_prompt, sampling_params)
    for output in outputs:
        prompt = output.prompt
        generated_text = output.outputs[0].text
        print(f"AI: {generated_text!r}")
        conversation_history = f"{prompt}{generated_text!r}<|im_end|>\n<|im_start|>user\n"

```

### Endpoint med openai
```
pip install openai
```


```
python -m vllm.entrypoints.openai.api_server --model mhenrichsen/danskgpt-tiny-chat
```
og brugt som erstatning for OpenAI's endpoints:

```python
from openai import OpenAI
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

chat_response = client.chat.completions.create(
    model="mhenrichsen/danskgpt-tiny-chat",
    messages=[
        {"role": "system", "content": "Du er en hjælpsom assistent. Giv mig et langt svar."},
        {"role": "user", "content": "Fortæl mig om Danmark."},
    ]
)
print("AI:", chat_response)
```


## Training results


| Training Loss | Epoch | Step | Validation Loss |
|:-------------:|:-----:|:----:|:---------------:|
| 1.3599        | 0.0   | 1    | 1.4118          |
| 0.7896        | 0.25  | 136  | 0.7813          |
| 0.7339        | 0.5   | 272  | 0.7490          |
| 0.7378        | 0.75  | 408  | 0.7285          |
| 0.7112        | 1.0   | 544  | 0.7146          |
| 0.6377        | 1.23  | 680  | 0.7135          |
| 0.6192        | 1.49  | 816  | 0.7133          |
| 0.5985        | 1.74  | 952  | 0.7073          |
| 0.6067        | 1.99  | 1088 | 0.7026          |
| 0.5139        | 2.22  | 1224 | 0.7167          |
| 0.5099        | 2.47  | 1360 | 0.7193          |
| 0.5217        | 2.72  | 1496 | 0.7168          |

## Brug for hjælp?
Har du spørgsmål eller brug for hjælp til LLM'er eller automatisering af tekstbaserede opgaver, så kontakt mig gerne.

/Mads