commit 44e35e2aedcd7efaf1311af3473826a0fe28deb1 Author: ModelHub XC Date: Mon May 11 02:55:29 2026 +0800 初始化项目,由ModelHub XC社区提供模型 Model: mhenrichsen/danskgpt-tiny-chat Source: Original Platform diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..a6344aa --- /dev/null +++ b/.gitattributes @@ -0,0 +1,35 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.safetensors filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md new file mode 100644 index 0000000..853eaae --- /dev/null +++ b/README.md @@ -0,0 +1,127 @@ +--- +license: apache-2.0 +base_model: mhenrichsen/danskgpt-tiny +tags: +- generated_from_trainer +widget: +- text: "<|im_start|>system\nDu er en hjælpsom assistent.<|im_end|>\n<|im_start|>user\nHvad er skak?<|im_end|>\n<|im_start|>assistant" + example_title: "Skak" +- text: "<|im_start|>system\nDu er en hjælpsom assistent.<|im_end|>\n<|im_start|>user\nHvem har lavet dig?<|im_end|>\n<|im_start|>assistant" + example_title: "Skaber" + +--- + + +# DanskGPT-tiny-chat + + +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 diff --git a/added_tokens.json b/added_tokens.json new file mode 100644 index 0000000..e36863d --- /dev/null +++ b/added_tokens.json @@ -0,0 +1,4 @@ +{ + "<|im_end|>": 32000, + "<|im_start|>": 32001 +} diff --git a/config.json b/config.json new file mode 100644 index 0000000..37014b6 --- /dev/null +++ b/config.json @@ -0,0 +1,28 @@ +{ + "_name_or_path": "mhenrichsen/danskgpt-tiny", + "architectures": [ + "LlamaForCausalLM" + ], + "attention_bias": false, + "attention_dropout": 0.0, + "bos_token_id": 1, + "eos_token_id": 32000, + "hidden_act": "silu", + "hidden_size": 2048, + "initializer_range": 0.02, + "intermediate_size": 5632, + "max_position_embeddings": 2048, + "model_type": "llama", + "num_attention_heads": 32, + "num_hidden_layers": 22, + "num_key_value_heads": 4, + "pretraining_tp": 1, + "rms_norm_eps": 1e-05, + "rope_scaling": null, + "rope_theta": 10000.0, + "tie_word_embeddings": false, + "torch_dtype": "bfloat16", + "transformers_version": "4.37.0.dev0", + "use_cache": false, + "vocab_size": 32002 +} diff --git a/danskgpt-tiny-chat.webp b/danskgpt-tiny-chat.webp new file mode 100644 index 0000000..89f565a Binary files /dev/null and b/danskgpt-tiny-chat.webp differ diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..c652ed5 --- /dev/null +++ b/generation_config.json @@ -0,0 +1,7 @@ +{ + "bos_token_id": 1, + "eos_token_id": 2, + "max_length": 2048, + "pad_token_id": 0, + "transformers_version": "4.37.0.dev0" +} diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..1761331 --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a8e895ddc2c627898cdb2409b2f95cbfabe9ba494729cddf3765f6066664879 +size 2200136248 diff --git a/pytorch_model.bin b/pytorch_model.bin new file mode 100644 index 0000000..2203488 --- /dev/null +++ b/pytorch_model.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fc2b5e0d65c3aa53dd58c384a423ea64d2aa79263d9610b7004533c6a9efa99 +size 2200140157 diff --git a/special_tokens_map.json b/special_tokens_map.json new file mode 100644 index 0000000..d555d77 --- /dev/null +++ b/special_tokens_map.json @@ -0,0 +1,30 @@ +{ + "bos_token": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "eos_token": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "pad_token": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "unk_token": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + } +} diff --git a/tokenizer.model b/tokenizer.model new file mode 100644 index 0000000..6c00c74 --- /dev/null +++ b/tokenizer.model @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e556afd44213b6bd1be2b850ebbbd98f5481437a8021afaf58ee7fb1818d347 +size 499723 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..aefe2b4 --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,61 @@ +{ + "add_bos_token": true, + "add_eos_token": false, + "added_tokens_decoder": { + "0": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "1": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "2": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "32000": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "32001": { + "content": "<|im_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + } + }, + "bos_token": "", + "chat_template": "{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% else %}{% set loop_messages = messages %}{% set system_message = 'Du er en hjælpsom assistent.' %}{% endif %}{% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{% for message in loop_messages %}{% if loop.index0 == 0 %}{{'<|im_start|>system\n' + system_message + '<|im_end|>\n'}}{% endif %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}", + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "legacy": false, + "model_max_length": 1000000000000000019884624838656, + "pad_token": "", + "padding_side": "right", + "sp_model_kwargs": {}, + "spaces_between_special_tokens": false, + "tokenizer_class": "LlamaTokenizer", + "trust_remote_code": false, + "unk_token": "", + "use_default_system_prompt": false, + "use_fast": true +}