初始化项目,由ModelHub XC社区提供模型
Model: Mathieu-Thomas-JOSSET/joke-finetome-model-gguf-phi4-20260112-081758 Source: Original Platform
This commit is contained in:
36
.gitattributes
vendored
Normal file
36
.gitattributes
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
*.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
|
||||
phi-4.Q8_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
8
Modelfile
Normal file
8
Modelfile
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
FROM phi-4.Q8_0.gguf
|
||||
TEMPLATE """{{ if .System }}<|im_start|><|system|><|im_sep|>{{ .System }}<|im_end|>{{ end }}{{ if .Prompt }}<|im_start|><|user|><|im_sep|>{{ .Prompt }}<|im_end|>{{ end }}<|im_start|><|assistant|><|im_sep|>{{ .Response }}<|im_end|>"""
|
||||
PARAMETER stop "<|im_end|>"
|
||||
PARAMETER stop "<|im_start|>"
|
||||
PARAMETER stop "<|im_sep|>"
|
||||
PARAMETER temperature 1.5
|
||||
PARAMETER min_p 0.1
|
||||
54
README.md
Normal file
54
README.md
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
pipeline_tag: text-generation
|
||||
tags:
|
||||
- gguf
|
||||
- llama.cpp
|
||||
- unsloth
|
||||
- conversational
|
||||
base_model:
|
||||
- unsloth/Phi-4-unsloth-bnb-4bit
|
||||
datasets:
|
||||
- Mathieu-Thomas-JOSSET/michael_abab_conversations_infini_instruct.jsonl
|
||||
---
|
||||
# joke-finetome-model-gguf-phi4-20260112-081758 : GGUF
|
||||
|
||||
This model was finetuned and converted to GGUF format using [Unsloth](https://github.com/unslothai/unsloth).
|
||||
|
||||
**Example usage**:
|
||||
- For text only LLMs: `./llama.cpp/llama-cli -hf Mathieu-Thomas-JOSSET/joke-finetome-model-gguf-phi4-20260112-081758 --jinja`
|
||||
- For multimodal models: `./llama.cpp/llama-mtmd-cli -hf Mathieu-Thomas-JOSSET/joke-finetome-model-gguf-phi4-20260112-081758 --jinja`
|
||||
|
||||
## Available Model files:
|
||||
- `phi-4.Q8_0.gguf`
|
||||
|
||||
## Ollama
|
||||
An Ollama Modelfile is included for easy deployment.
|
||||
This was trained 2x faster with [Unsloth](https://github.com/unslothai/unsloth)
|
||||
[<img src="https://raw.githubusercontent.com/unslothai/unsloth/main/images/unsloth%20made%20with%20love.png" width="200"/>](https://github.com/unslothai/unsloth)
|
||||
|
||||
## Training artifacts
|
||||
|
||||
- Plot (interactive): [`reports/training_loss_step.html`](reports/training_loss_step.html)
|
||||
- Run manifest: [`reports/run_manifest.json`](reports/run_manifest.json)
|
||||
- Inference sample: [`reports/inference_sample.json`](reports/inference_sample.json)
|
||||
- Config snapshot: [`reports/config_snapshot.json`](reports/config_snapshot.json)
|
||||
|
||||
## Inference
|
||||
This repository contains a **GGUF** model intended to be used with **llama.cpp** and/or deployed on **Hugging Face Inference Endpoints (llama.cpp container)**.
|
||||
|
||||
Recommended Inference Endpoints knobs:
|
||||
- Max tokens / request: **1024**
|
||||
- Max concurrent requests: **2**
|
||||
|
||||
### Local llama.cpp (Phi-4 template)
|
||||
|
||||
```bash
|
||||
llama-cli -hf Mathieu-Thomas-JOSSET/joke-finetome-model-gguf-phi4-20260112-081758:q8_0 -cnv --chat-template phi4
|
||||
```
|
||||
|
||||
### Hugging Face Inference Endpoint (llama.cpp)
|
||||
|
||||
When creating an endpoint, select this repo and the GGUF file **<your_model>.gguf** (quant: **q8_0**).
|
||||
Recommended settings are stored in: `inference/endpoint_recipe.json`.
|
||||
|
||||
Python client example: `inference/hf_endpoint_client.py`
|
||||
33
config.json
Normal file
33
config.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"architectures": [
|
||||
"LlamaForCausalLM"
|
||||
],
|
||||
"attention_bias": false,
|
||||
"attention_dropout": 0.0,
|
||||
"bos_token_id": 100257,
|
||||
"torch_dtype": "bfloat16",
|
||||
"eos_token_id": 100265,
|
||||
"head_dim": 128,
|
||||
"hidden_act": "silu",
|
||||
"hidden_size": 5120,
|
||||
"initializer_range": 0.02,
|
||||
"intermediate_size": 17920,
|
||||
"max_position_embeddings": 16384,
|
||||
"mlp_bias": false,
|
||||
"model_type": "llama",
|
||||
"num_attention_heads": 40,
|
||||
"num_hidden_layers": 40,
|
||||
"num_key_value_heads": 10,
|
||||
"original_max_position_embeddings": 16384,
|
||||
"pad_token_id": 100351,
|
||||
"pretraining_tp": 1,
|
||||
"rms_norm_eps": 1e-05,
|
||||
"rope_scaling": null,
|
||||
"rope_theta": 250000,
|
||||
"tie_word_embeddings": false,
|
||||
"transformers_version": "4.56.2",
|
||||
"unsloth_fixed": true,
|
||||
"unsloth_version": "2026.1.2",
|
||||
"use_cache": true,
|
||||
"vocab_size": 100352
|
||||
}
|
||||
18
inference/endpoint_recipe.json
Normal file
18
inference/endpoint_recipe.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"engine": "llama.cpp",
|
||||
"recommended_endpoint_settings": {
|
||||
"max_tokens_per_request": 1024,
|
||||
"max_concurrent_requests": 2,
|
||||
"notes": "Memory scales roughly with (max_concurrent_requests * max_tokens_per_request)."
|
||||
},
|
||||
"recommended_generation_defaults": {
|
||||
"temperature": 1.2,
|
||||
"top_p": 0.95,
|
||||
"min_p": 0.05,
|
||||
"repeat_penalty": 1.08,
|
||||
"max_tokens": 2560
|
||||
},
|
||||
"chat_template": "phi4",
|
||||
"gguf_file": "",
|
||||
"gguf_quant": "q8_0"
|
||||
}
|
||||
23
inference/hf_endpoint_client.py
Normal file
23
inference/hf_endpoint_client.py
Normal file
@@ -0,0 +1,23 @@
|
||||
import os
|
||||
from huggingface_hub import InferenceClient
|
||||
|
||||
# Required env vars:
|
||||
# export HF_TOKEN="..."
|
||||
# export HF_ENDPOINT_BASE_URL="https://xxxx.endpoints.huggingface.cloud"
|
||||
|
||||
client = InferenceClient(
|
||||
base_url=os.environ["HF_ENDPOINT_BASE_URL"],
|
||||
api_key=os.environ["HF_TOKEN"],
|
||||
)
|
||||
|
||||
resp = client.chat.completions.create(
|
||||
messages=[
|
||||
{"role": "system", "content": "You are a helpful assistant."},
|
||||
{"role": "user", "content": "Write a short joke in the style of The Office."},
|
||||
],
|
||||
max_tokens=2560,
|
||||
temperature=1.2,
|
||||
top_p=0.95,
|
||||
)
|
||||
|
||||
print(resp.choices[0].message.content)
|
||||
12
inference/llama_cli_examples.md
Normal file
12
inference/llama_cli_examples.md
Normal file
@@ -0,0 +1,12 @@
|
||||
### Local inference (llama.cpp)
|
||||
|
||||
```bash
|
||||
llama-cli -hf {REPO_ID}:q8_0 -cnv --chat-template phi4
|
||||
```
|
||||
|
||||
### Server (OpenAI-compatible)
|
||||
|
||||
```bash
|
||||
llama-server -hf {REPO_ID}:q8_0
|
||||
# /v1/chat/completions will be available (OpenAI-compatible)
|
||||
```
|
||||
3
phi-4.Q8_0.gguf
Normal file
3
phi-4.Q8_0.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:70be651211a3ca863ad8bc6c9b2596bf131f434686a5d06808c79bad7e5743b8
|
||||
size 15580507200
|
||||
28
reports/config_snapshot.json
Normal file
28
reports/config_snapshot.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"MODEL_NAME": "unsloth/Phi-4-unsloth-bnb-4bit",
|
||||
"CHAT_TEMPLATE": "phi-4",
|
||||
"MAX_SEQ_LENGTH": 2048,
|
||||
"LOAD_IN_4BIT": true,
|
||||
"DATASET_NAME": "Mathieu-Thomas-JOSSET/michael_abab_conversations_infini_instruct.jsonl",
|
||||
"DATASET_SPLIT": "train",
|
||||
"PER_DEVICE_TRAIN_BATCH_SIZE": 2,
|
||||
"GRADIENT_ACCUMULATION_STEPS": 4,
|
||||
"WARMUP_STEPS": 10,
|
||||
"MAX_STEPS": 2000,
|
||||
"LEARNING_RATE": 9.95267419777795e-06,
|
||||
"LR_AUTO_ENABLED": true,
|
||||
"LR_AUTO_USE_N": "train",
|
||||
"LR_AUTO_N_REF": 1436,
|
||||
"LR_AUTO_BASE": 1e-05,
|
||||
"LR_AUTO_MULT": 0.5,
|
||||
"LR_AUTO_FINAL": 5e-06,
|
||||
"WEIGHT_DECAY": 0.009206070410847844,
|
||||
"LR_SCHEDULER_TYPE": "linear",
|
||||
"SEED": 3407,
|
||||
"PLOTLY_DARK_MODE": true,
|
||||
"PLOTLY_BASE_COLOR": "#00CC96",
|
||||
"PLOTLY_EMA_SPAN": 25,
|
||||
"HF_REPO_ID_MERGED_RESOLVED": "Mathieu-Thomas-JOSSET/joke-20260112-081758",
|
||||
"HF_REPO_ID_GGUF_RESOLVED": "Mathieu-Thomas-JOSSET/joke-finetome-model-gguf-phi4-20260112-081758",
|
||||
"HF_ARTIFACTS_DIR_IN_REPO": "reports"
|
||||
}
|
||||
10
reports/inference_sample.json
Normal file
10
reports/inference_sample.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"source": "dataset",
|
||||
"index": 232,
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "Dwight: \"Oh, man.\"\nMichael: \"How did we do it?\"\nDwight: \"I don’t … have no idea.\""
|
||||
}
|
||||
]
|
||||
}
|
||||
4429
reports/report.html
Normal file
4429
reports/report.html
Normal file
File diff suppressed because one or more lines are too long
57
reports/run_manifest.json
Normal file
57
reports/run_manifest.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"started_at": "2026-01-12T08:52:02+01:00",
|
||||
"repos": {
|
||||
"merged": "Mathieu-Thomas-JOSSET/joke-20260112-081758",
|
||||
"gguf": "Mathieu-Thomas-JOSSET/joke-finetome-model-gguf-phi4-20260112-081758"
|
||||
},
|
||||
"model_name": "unsloth/Phi-4-unsloth-bnb-4bit",
|
||||
"dataset": {
|
||||
"name": "Mathieu-Thomas-JOSSET/michael_abab_conversations_infini_instruct.jsonl",
|
||||
"split": "train"
|
||||
},
|
||||
"training": {
|
||||
"max_steps": 2000,
|
||||
"learning_rate": 9.95267419777795e-06,
|
||||
"per_device_train_batch_size": 2,
|
||||
"gradient_accumulation_steps": 4,
|
||||
"max_seq_length": 2048,
|
||||
"seed": 3407,
|
||||
"optimizer": "adamw_8bit",
|
||||
"lr_scheduler_type": "linear"
|
||||
},
|
||||
"auto_lr": {
|
||||
"enabled": true,
|
||||
"use_n": "train",
|
||||
"n_ref": 1436,
|
||||
"base": 1e-05,
|
||||
"mult": 0.5,
|
||||
"final": 5e-06
|
||||
},
|
||||
"metrics": {
|
||||
"train_runtime": 2220.807,
|
||||
"train_samples_per_second": 5.944,
|
||||
"train_steps_per_second": 0.743,
|
||||
"total_flos": 4.35104765343744e+16,
|
||||
"train_loss": 1.654274252106746,
|
||||
"epoch": 3.3342618384401113
|
||||
},
|
||||
"best": {
|
||||
"checkpoint": "/content/outputs/continue_r1_from_350_20260112_073729/checkpoint-100",
|
||||
"metric": 2.2380564212799072,
|
||||
"metric_name": "eval_loss"
|
||||
},
|
||||
"plotly": {
|
||||
"html": "reports/training_loss_step.html",
|
||||
"png": null
|
||||
},
|
||||
"inference_sample": {
|
||||
"source": "dataset",
|
||||
"index": 232,
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "Dwight: \"Oh, man.\"\nMichael: \"How did we do it?\"\nDwight: \"I don’t … have no idea.\""
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
14
reports/training_loss_step.html
Normal file
14
reports/training_loss_step.html
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user