From 223aa190f7387c1d3a6adefcdae503a28b2032a6 Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Tue, 8 Sep 2026 05:18:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=EF=BC=8C=E7=94=B1ModelHub=20XC=E7=A4=BE=E5=8C=BA=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Model: arun11karthik/cellsense-fim-0.5b Source: Original Platform --- .gitattributes | 37 +++++ README.md | 308 +++++++++++++++++++++++++++++++++++++++++ benchmarks.png | Bin 0 -> 86328 bytes chat_template.jinja | 54 ++++++++ config.json | 57 ++++++++ generation_config.json | 7 + icon.png | 3 + model.safetensors | 3 + tokenizer.json | 3 + tokenizer_config.json | 29 ++++ 10 files changed, 501 insertions(+) create mode 100644 .gitattributes create mode 100644 README.md create mode 100644 benchmarks.png create mode 100644 chat_template.jinja create mode 100644 config.json create mode 100644 generation_config.json create mode 100644 icon.png create mode 100644 model.safetensors create mode 100644 tokenizer.json create mode 100644 tokenizer_config.json diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..88a0957 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,37 @@ +*.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 +tokenizer.json filter=lfs diff=lfs merge=lfs -text +icon.png filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md new file mode 100644 index 0000000..f62e6ae --- /dev/null +++ b/README.md @@ -0,0 +1,308 @@ +--- +license: apache-2.0 +library_name: transformers +pipeline_tag: text-generation +base_model: +- Qwen/Qwen2.5-Coder-0.5B +language: +- code +tags: +- cellsense +- fim +- fill-in-the-middle +- code-completion +- jupyter +- notebook +- code +- qwen2 +model-index: +- name: cellsense-fim-0.5b + results: + - task: + type: text-generation + name: Fill-in-the-Middle Code Completion + dataset: + name: CellSense Jupyter FIM (private) + type: cellsense-fim-large + split: test + metrics: + - type: edit_similarity + value: 0.641 + name: Edit Similarity + - type: bleu + value: 43.09 + name: BLEU + - type: codebleu + value: 0.346 + name: CodeBLEU + - type: token_accuracy + value: 0.868 + name: Token Accuracy + - type: bits_per_byte + value: 0.254 + name: Bits per Byte +--- + +

+ CellSense +

+ +# CellSense-FIM 0.5B + + +[![Hugging Face Space](https://img.shields.io/badge/Hugging%20Face-CellSense--FIM-FFD21E?logo=huggingface&logoColor=black)](https://huggingface.co/spaces/arun11karthik/cellsense-fim) +[![GitHub](https://img.shields.io/badge/GitHub-CellSense-181717?logo=github)](https://github.com/arunkarthik11/cellsense) +[![PyPI](https://img.shields.io/pypi/v/PACKAGE?logo=pypi&label=pip%20install)](https://pypi.org/project/jupyterlab-cellsense/) + +**CellSense-FIM 0.5B** is the smallest member of the CellSense-FIM model family — a set of +**long-context, fill-in-the-middle (FIM) code-completion models built specifically for Jupyter +notebooks.** It is fine-tuned from [`Qwen/Qwen2.5-Coder-0.5B`](https://huggingface.co/Qwen/Qwen2.5-Coder-0.5B) +on the (private) **CellSense FIM** dataset and supports a **32K-token context window**. + +Unlike general code models that treat a notebook as a flat file, CellSense-FIM models are trained +on a more detailed context, that actually matters when you complete a cell: + +- **🗂️ Repository-aware** — the model is trained with surrounding files from the same repository in + context, so completions respect helpers, constants, and conventions defined elsewhere in the project. +- **🔗 Local-import-aware** — when your notebook imports from a sibling module, the relevant source and signatures are + pulled into context, so the model completes calls to *your* code with the right signatures, not a + plausible guess. +- **🎯 Task-aware** — the files you have been reading and editing are almost always the most relevant to + what you are working on right now. The context conditions on this context, so completions reflect where + your attention has actually been — not just what happens to be open in the active tab. + +The models are best paired with the **CellSense Jupyter Lab Plugin**, which assembles repository, local-import, +and task context into the exact format the model was trained on — so the model consumes it natively with +no prompt engineering on your part. + +## Model family + +| Model | Base | Params | Context | +|-------|------|:------:|:-------:| +| **CellSense-FIM 0.5B** (this model) | Qwen2.5-Coder-0.5B | 0.5B | 32K | +| CellSense-FIM 1.5B | Qwen2.5-Coder-1.5B | 1.5B | 32K | +| CellSense-FIM 3B | Qwen2.5-Coder-3B | 3B | 32K | +| CellSense-FIM 7B | Qwen2.5-Coder-7B | 7B | 32K | + +## Evaluation + +Evaluated on the held-out `test` split of the CellSense FIM dataset. CellSense-FIM is compared against its base model +(`Qwen2.5-Coder-0.5B`) and a same-size general model (`Qwen3-0.6B`). + +![FIM completion-quality benchmarks](./benchmarks.png) + +Fine-tuning on notebook-native FIM context yields large gains on the metrics that track *real completion +quality* — **edit similarity (0.11 → 0.64)** and **BLEU (4.7 → 43.1)** — while keeping token accuracy +strong. At 0.5B, CodeBLEU stays close to the base model; the larger family members improve it outright. + +### Likelihood metric — Bits per Byte (lower is better) + +| Model | Bits per Byte ↓ | +|-------|:---------------:| +| Qwen2.5-Coder-0.5B (base) | 0.305 | +| Qwen3-0.6B (base) | 1.082 | +| **CellSense-FIM 0.5B (ours)** | **0.254** | + +## Usage + +### Prompt format (FIM) + +The model uses the Qwen2.5-Coder FIM sentinels. For a single-file completion: + +``` +<|fim_prefix|>{code before the cursor}<|fim_suffix|>{code after the cursor}<|fim_middle|> +``` + +For repository / local-import-aware completion, prepend the relevant files before the FIM block: + +``` +<|repo_name|>{repo}<|file_sep|>{path/to/helper.py} +{contents of helper.py} +<|file_sep|>{path/to/notebook_cell} +<|fim_prefix|>{prefix}<|fim_suffix|>{suffix}<|fim_middle|> +``` + +> 💡 In practice you don't assemble this by hand — the **CellSense JupyterLab plugin** builds the +> repository-, import-, and task-aware context and emits exactly this format (see +> [Serving with vLLM + CellSense](#serving-with-vllm--cellsense) below). + +### Transformers + +```python +from transformers import AutoModelForCausalLM, AutoTokenizer + +model_id = "arun11karthik/cellsense-fim-0.5b" +tokenizer = AutoTokenizer.from_pretrained(model_id) +model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto") + +prefix = "import pandas as pd\ndf = pd.read_csv('data.csv')\n" +suffix = "\ndf.head()\n" +prompt = f"<|fim_prefix|>{prefix}<|fim_suffix|>{suffix}<|fim_middle|>" + +inputs = tokenizer(prompt, return_tensors="pt").to(model.device) +out = model.generate(**inputs, max_new_tokens=128, do_sample=False) +print(tokenizer.decode(out[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)) +``` + +## Serving with vLLM + CellSense + +The intended way to use this model is to serve it with vLLM and point the +[**CellSense JupyterLab plugin**](https://github.com/arunkarthik11/CellSense) at the server over its +OpenAI-compatible API. CellSense handles all of the repository-, import-, and task-aware context +assembly and the FIM prompt formatting for you. + +### 1. Serve the model with vLLM + +vLLM exposes an OpenAI-compatible endpoint, which is exactly what CellSense's `openai_compatible` +provider expects: + +```bash +pip install vllm + +vllm serve arun11karthik/cellsense-fim-0.5b \ + --served-model-name cellsense-fim-0.5b \ + --max-model-len 32768 \ + --port 8000 +``` + +This serves the API at `http://localhost:8000/v1`. + +### 2. Point CellSense at the vLLM server + +In the CellSense settings panel (left sidebar in JupyterLab), open **Basic Settings** and configure the +**OpenAI Compatible** provider: + +| Setting | Value | +|---------|-------| +| **Provider** | `OpenAI Compatible` | +| **Base URL** | `http://localhost:8000/v1` | +| **API Key** | any non-empty string (vLLM ignores it, e.g. `EMPTY`) | +| **Model** | `cellsense-fim-0.5b` (must match `--served-model-name`) | +| **Model Family** | `qwen2.5-coder` | + +Click **Save & Apply**, then start typing in a notebook cell — ghost-text completions from your +local model appear inline. Press **Tab** to accept. + +> 🌐 The same setup works for a **remote** vLLM server: serve the model on your GPU box, expose port +> `8000`, and set CellSense's **Base URL** to `http://:8000/v1`. + +### Raw API check (optional) + +To confirm the endpoint works before wiring up CellSense, query it directly with the FIM prompt: + +```bash +curl http://localhost:8000/v1/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "cellsense-fim-0.5b", + "prompt": "<|fim_prefix|>import pandas as pd\ndf = pd.read_csv(\"data.csv\")\n<|fim_suffix|>\ndf.head()\n<|fim_middle|>", + "max_tokens": 128, + "temperature": 0.0 + }' +``` + +## Ollama + +For fully local, no-GPU-required inference, GGUF builds are published at +[**`arun11karthik/cellsense-fim-0.5b-GGUF`**](https://huggingface.co/arun11karthik/cellsense-fim-0.5b-GGUF). +Ollama can pull and run these directly from the Hugging Face Hub — no manual download or `Modelfile` +required. This is the recommended path for running CellSense entirely on your own machine: with Ollama, +**no code or context ever leaves your computer.** + +### Available quantizations + +| Quantization | Size (approx.) | Notes | Pull with | +|--------------|:--------------:|-------|-----------| +| `Q5_K_M` | ~420 MB | Good quality / size trade-off | `ollama run hf.co/arun11karthik/cellsense-fim-0.5b-GGUF:Q5_K_M` | +| `Q8_0` | ~531 MB | Near-lossless 8-bit quantization | `ollama run hf.co/arun11karthik/cellsense-fim-0.5b-GGUF:Q8_0` | +| `BF16` | ~994 MB | Full bfloat16 precision — highest quality (recommended) | `ollama run hf.co/arun11karthik/cellsense-fim-0.5b-GGUF:BF16` | + +### 1. Install Ollama and pull the model + +Install [Ollama](https://ollama.com), then pull a quantization (this also registers the model so +CellSense can use it): + +```bash +ollama pull hf.co/arun11karthik/cellsense-fim-0.5b-GGUF:Q5_K_M +``` + +By default Ollama serves its API at `http://localhost:11434`. The model name as it appears in +`ollama list` — `hf.co/arun11karthik/cellsense-fim-0.5b-GGUF:Q5_K_M` — is what you'll enter into +CellSense below. + +### 2. Install the CellSense JupyterLab plugin + +```bash +pip install jupyterlab-cellsense +jupyter lab +``` + +See the [CellSense repository](https://github.com/arunkarthik11/CellSense) for full installation +options. + +### 3. Point CellSense at your local Ollama model + +Open the CellSense panel from the left sidebar in JupyterLab, go to **Basic Settings**, and configure +the **Ollama** provider: + +| Setting | Value | +|---------|-------| +| **Provider** | `Ollama` | +| **Base URL** | `http://localhost:11434` | +| **Model Family** | `cellsense` | +| **Model** | `hf.co/arun11karthik/cellsense-fim-0.5b-GGUF:Q5_K_M` (must match the tag in `ollama list`) | + +> ✅ **Set Model Family to `cellsense`.** CellSense now ships first-class support for the CellSense-FIM +> models, so the plugin builds prompts in exactly the repository-, import-, and task-aware FIM format +> these models were trained on — no extra configuration needed. + +Click **Save & Apply**, then start typing in a notebook cell — ghost-text completions from your local +model appear inline. Press **Tab** to accept. + +### Raw API check (optional) + +To confirm Ollama is serving the model with the correct FIM format before wiring up CellSense, query it +directly: + +```bash +curl http://localhost:11434/api/generate -d '{ + "model": "hf.co/arun11karthik/cellsense-fim-0.5b-GGUF:Q5_K_M", + "prompt": "<|fim_prefix|>import pandas as pd\ndf = pd.read_csv(\"data.csv\")\n<|fim_suffix|>\ndf.head()\n<|fim_middle|>", + "stream": false, + "options": { "temperature": 0.0, "num_predict": 128 } +}' +``` + +## Training + +- **Base model:** `Qwen/Qwen2.5-Coder-0.5B` +- **Dataset:** the private **CellSense FIM** dataset — repository-, local-import-, and task-aware FIM examples mined from Jupyter notebooks +- **Objective:** fill-in-the-middle (FIM) code completion +- **Context length:** 32,768 tokens +- **Checkpoint:** best-validation checkpoint + +## Training data & privacy + +CellSense-FIM was fine-tuned on a private corpus of fill-in-the-middle examples mined from Jupyter +notebooks. The dataset is **kept private as a precaution**: PII masking was applied across the corpus +and **more rigororusly verified on the sampled subset used for training**, but full masking across the entire +source corpus has only been preliminarily checked and is **not guaranteed**. + +As with any model trained on scraped code, this model may reproduce content from its training data, +including any imperfectly masked sensitive strings. +If you observe any leakage, please report it via the project's issue tracker (see the GitHub link above). + +## License + +The finetuned weights are released under the GNU 3.0 License, whereas the base model was released under the Apache 2.0 license. + +## Citation + +```bibtex +@misc{cellsense-fim, + title = {CellSense-FIM: Notebook-Native Fill-in-the-Middle Code Completion}, + author = {Arun Karthik}, + year = {2026}, + howpublished = {\url{https://huggingface.co/arun11karthik/cellsense-fim-0.5b}} +} +``` diff --git a/benchmarks.png b/benchmarks.png new file mode 100644 index 0000000000000000000000000000000000000000..3973ebbd1db86ce78d6566d89820bbf38c7ef462 GIT binary patch literal 86328 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 literal 0 HcmV?d00001 diff --git a/chat_template.jinja b/chat_template.jinja new file mode 100644 index 0000000..28028c0 --- /dev/null +++ b/chat_template.jinja @@ -0,0 +1,54 @@ +{%- if tools %} + {{- '<|im_start|>system\n' }} + {%- if messages[0]['role'] == 'system' %} + {{- messages[0]['content'] }} + {%- else %} + {{- 'You are a helpful assistant.' }} + {%- endif %} + {{- "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within XML tags:\n" }} + {%- for tool in tools %} + {{- "\n" }} + {{- tool | tojson }} + {%- endfor %} + {{- "\n\n\nFor each function call, return a json object with function name and arguments within XML tags:\n\n{\"name\": , \"arguments\": }\n<|im_end|>\n" }} +{%- else %} + {%- if messages[0]['role'] == 'system' %} + {{- '<|im_start|>system\n' + messages[0]['content'] + '<|im_end|>\n' }} + {%- else %} + {{- '<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n' }} + {%- endif %} +{%- endif %} +{%- for message in messages %} + {%- if (message.role == "user") or (message.role == "system" and not loop.first) or (message.role == "assistant" and not message.tool_calls) %} + {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }} + {%- elif message.role == "assistant" %} + {{- '<|im_start|>' + message.role }} + {%- if message.content %} + {{- '\n' + message.content }} + {%- endif %} + {%- for tool_call in message.tool_calls %} + {%- if tool_call.function is defined %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {{- '\n\n{"name": "' }} + {{- tool_call.name }} + {{- '", "arguments": ' }} + {{- tool_call.arguments | tojson }} + {{- '}\n' }} + {%- endfor %} + {{- '<|im_end|>\n' }} + {%- elif message.role == "tool" %} + {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %} + {{- '<|im_start|>user' }} + {%- endif %} + {{- '\n\n' }} + {{- message.content }} + {{- '\n' }} + {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %} + {{- '<|im_end|>\n' }} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant\n' }} +{%- endif %} diff --git a/config.json b/config.json new file mode 100644 index 0000000..6bdf0f9 --- /dev/null +++ b/config.json @@ -0,0 +1,57 @@ +{ + "architectures": [ + "Qwen2ForCausalLM" + ], + "attention_dropout": 0.0, + "bos_token_id": 151643, + "dtype": "bfloat16", + "eos_token_id": 151643, + "hidden_act": "silu", + "hidden_size": 896, + "initializer_range": 0.02, + "intermediate_size": 4864, + "layer_types": [ + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention" + ], + "max_position_embeddings": 32768, + "max_window_layers": 24, + "model_type": "qwen2", + "num_attention_heads": 14, + "num_hidden_layers": 24, + "num_key_value_heads": 2, + "pad_token_id": null, + "rms_norm_eps": 1e-06, + "rope_parameters": { + "rope_theta": 1000000.0, + "rope_type": "default" + }, + "sliding_window": null, + "tie_word_embeddings": true, + "transformers_version": "5.5.0", + "use_cache": false, + "use_sliding_window": false, + "vocab_size": 151936 +} diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..dcf09cc --- /dev/null +++ b/generation_config.json @@ -0,0 +1,7 @@ +{ + "bos_token_id": 151643, + "do_sample": false, + "eos_token_id": 151643, + "max_new_tokens": 2048, + "transformers_version": "5.5.0" +} diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..3eb012a --- /dev/null +++ b/icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d76b72e1f3a1c165377900dbd23fa3ff15f31797cfff0c827839b03f032f3ed4 +size 116278 diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..f92eff0 --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9ff52f838035d9323fb1c0b0ceb3bc008bce5d9516e7cdf3b5059de23347e25 +size 988097824 diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..34510ff --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fd169731d2cbde95e10bf356d66d5997fd885dd8dbb6fb4684da3f23b2585d8 +size 11421892 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..ddbf3e9 --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,29 @@ +{ + "add_prefix_space": false, + "backend": "tokenizers", + "bos_token": null, + "clean_up_tokenization_spaces": false, + "eos_token": "<|endoftext|>", + "errors": "replace", + "extra_special_tokens": [ + "<|im_start|>", + "<|im_end|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "is_local": false, + "model_max_length": 32768, + "pad_token": "<|endoftext|>", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null +}