dzur658 / ping-device-id-LoRA-001-MLX

huggingface.co
Total runs: 0
24-hour runs: 0
7-day runs: 0
30-day runs: 0
Model's Last Updated: February 26 2026
text-generation

Introduction of ping-device-id-LoRA-001-MLX

Model Details of ping-device-id-LoRA-001-MLX

Ping Device Identifier LoRA

This is the LoRA Ping (to be released soon!) uses for identifying devices on a user's network. In order to get around Nmap not correctly identifying/fingerprinting devices this LoRA is employed to work with a non-technical user to identify devices. The model will receive scan data from Nmap, and ask clarifying questions (if necessary), and finally output what device the model believes the user has in their home. A full list of possible devices the model was trained on can be found here (coming soon!). This effectively allows for network mapping in the home enviornment without the user manually parsing Nmap results themselves! This LoRA was the best of the prototype run, and trained natively in MLX for 600 iters on the device-identification dataset (coming soon!).

Quickstart

First install MLX.

pip install mlx-lm

Then run the following to interact with the model

from mlx_lm import load, generate

system_prompt = """[SEE SYSTEM PROMPT BELOW]"""

model, tokenizer = load(
    "Qwen/Qwen3-1.7B",
    adapter_path="dzur658/ping-device-id-LoRA-001-MLX"  # Replace with your actual HF username/repo
)

prompt = """[SEE INPUTS SECTION]"""

messages = [
    {"role": "system", "content": system_prompt},
    {"role": "user", "content": prompt}
]

prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)

response = generate(
    model, 
    tokenizer, 
    prompt=prompt, 
    verbose=True, 
    temp=0.0,      # Greedy decoding is recommended for logic
    max_tokens=512
)
System Prompt
You are an expert network diagnostic assistant helping home users identify devices on their network.

Given Nmap scan data, your goal is to identify the SPECIFIC device model.

CORE PROTOCOL:
1. START with a <think> block to analyze the data.
2. DETERMINE if the device is specific (e.g. \"OnePlus 10 Pro\") or generic (e.g. \"OnePlus Technology\").
3. END with EXACTLY ONE of the following tags:

[OPTION 1: IDENTIFIED]
If you are 90% certain of the specific model:
<device>Exact Model Name</device>

[OPTION 2: AMBIGUOUS]
If you are NOT certain or need user confirmation:
<question>The clarifying question you want to ask the user</question>

CRITICAL RULES:\n- NEVER use <device> and <question> in the same response.
- NEVER output plain text outside of tags.
Expected Input Format

This is the first message this model should see. It provides some information from Nmap, and in Ping is generated using a Jinja2 template. The first "user" message is hidden from the GUI, but this is how we originally prompt the model to get it to go first (as it appears to the end user in Ping).


You have received the following device from Nmap.

Details
  • IP: {{ ip_address }}
  • MAC: {{ mac_address }}
  • MAC Vendor: {{ mac_vendor }}
  • Hostnames Associated with the device: {% for name in hostnames %}
    • {{ name }} {% endfor %}
  • Nmap Inferred Os Data:
{{ nmap_os_data }}
  • Ports identified by Nmap on the Device: {% for service in services %} - Service ID: {{ service.service_id }} - Port Number: {{ service.port_number }} - Protocol: {{ service.protocol }} - State: {{ service.state }} - Service Name: {{ service.name }} - Service Product (if applicable): {{ service.product }} - Service Version (if applicable): {{ service.version }} {% endfor %}

Model Outputs

As this model builds off Qwen/Qwen3-1.7B , it employs the same Chain of Thought (CoT) format as the base model. However, the CoT is modified by the LoRA to increase the model's intelligence as it relates to identifying consumer devices. See the associated dataset for more info regarding CoT modifications. Two more tags are employed by the model, and . Note: These are not special tokens, the tokenizer remains the same as the base model The model will give a response wrapped in question tags ( <question></question> ) when it decides to pose a question to the user for clarification. Once the model believes it has collected all relevant context it will give it's final guess for the device wrapped in tags ( <device></device> ).

Visualization

An example interaction may look like the following, assuming boilerplate prompt and system prompt have been passed correctly.


MODEL:

<think>CoT</think>
<question>Do you own...?</question>

USER: Yeah, I own a...

MODEL:

<think>CoT</think>
<device>OnePlus 10 Pro</device>

Training Results
  • Training Dataset Loss: 0.8049
  • Validation Dataset Loss: 0.9710
LoRA Configuration
{
    "model": "Qwen/Qwen3-1.7B",
    "num_layers": 8,
    "lora_parameters": {
        "rank": 32,
        "scale": 64,
        "dropout": 0.0,
        "keys": [
            "self_attn.q_proj",
            "self_attn.k_proj",
            "self_attn.v_proj",
            "self_attn.o_proj",
            "mlp.gate_proj",
            "mlp.up_proj",
            "mlp.down_proj"
        ]
    }
}
Other Versions of the LoRA
Device Identification Dataset

(Coming Soon!)

Ping Github

(Coming Soon!)

Future Work

Future work will center using RL (GRPO) to improve the model on identification, and recognizing the benefit of asking questions.

Citation

If you use this model please cite me 🙂:

@misc{ping2026,
  author = {Alex Dzurec},
  title = {Ping Device Identifier LoRA},
  year = {2026},
  publisher = {Hugging Face},
  journal = {Hugging Face Model Hub}
}

Runs of dzur658 ping-device-id-LoRA-001-MLX on huggingface.co

0
Total runs
0
24-hour runs
0
3-day runs
0
7-day runs
0
30-day runs

More Information About ping-device-id-LoRA-001-MLX huggingface.co Model

More ping-device-id-LoRA-001-MLX license Visit here:

https://choosealicense.com/licenses/apache-2.0

ping-device-id-LoRA-001-MLX huggingface.co

ping-device-id-LoRA-001-MLX huggingface.co is an AI model on huggingface.co that provides ping-device-id-LoRA-001-MLX's model effect (), which can be used instantly with this dzur658 ping-device-id-LoRA-001-MLX model. huggingface.co supports a free trial of the ping-device-id-LoRA-001-MLX model, and also provides paid use of the ping-device-id-LoRA-001-MLX. Support call ping-device-id-LoRA-001-MLX model through api, including Node.js, Python, http.

ping-device-id-LoRA-001-MLX huggingface.co Url

https://huggingface.co/dzur658/ping-device-id-LoRA-001-MLX

dzur658 ping-device-id-LoRA-001-MLX online free

ping-device-id-LoRA-001-MLX huggingface.co is an online trial and call api platform, which integrates ping-device-id-LoRA-001-MLX's modeling effects, including api services, and provides a free online trial of ping-device-id-LoRA-001-MLX, you can try ping-device-id-LoRA-001-MLX online for free by clicking the link below.

dzur658 ping-device-id-LoRA-001-MLX online free url in huggingface.co:

https://huggingface.co/dzur658/ping-device-id-LoRA-001-MLX

ping-device-id-LoRA-001-MLX install

ping-device-id-LoRA-001-MLX is an open source model from GitHub that offers a free installation service, and any user can find ping-device-id-LoRA-001-MLX on GitHub to install. At the same time, huggingface.co provides the effect of ping-device-id-LoRA-001-MLX install, users can directly use ping-device-id-LoRA-001-MLX installed effect in huggingface.co for debugging and trial. It also supports api for free installation.

ping-device-id-LoRA-001-MLX install url in huggingface.co:

https://huggingface.co/dzur658/ping-device-id-LoRA-001-MLX

Url of ping-device-id-LoRA-001-MLX

ping-device-id-LoRA-001-MLX huggingface.co Url

Provider of ping-device-id-LoRA-001-MLX huggingface.co

dzur658
ORGANIZATIONS

Other API from dzur658

huggingface.co

Total runs: 0
Run Growth: 0
Growth Rate: 0.00%
Updated:July 06 2025