eunjay's picture
docs: clarify MLX usage and tool-call validation
e4b7fec verified
|
Raw
History Blame Contribute Delete
3.45 kB
---
license: apache-2.0
language: en
library_name: mlx
base_model: Alibaba-NLP/WebSailor-3B
base_model_revision: b317a15261674d83d851f0a14761840583bb9dce
tags:
- mlx
- mlx-lm
- 8-bit
- web-agent
- web-search
pipeline_tag: text-generation
---
# WebSailor-3B-MLX-8bit-community
Unofficial community MLX conversion of [Alibaba-NLP/WebSailor-3B](https://huggingface.co/Alibaba-NLP/WebSailor-3B) for Apple Silicon.
This repository is not an official Alibaba-NLP or Hugging Face release and does not imply endorsement by the original authors.
## Conversion details
- Source model: `Alibaba-NLP/WebSailor-3B`
- Source revision: [`b317a15261674d83d851f0a14761840583bb9dce`](https://huggingface.co/Alibaba-NLP/WebSailor-3B/commit/b317a15261674d83d851f0a14761840583bb9dce)
- Output format: MLX Safetensors
- Quantization: 8-bit affine, group size 64
- Effective quantization reported by `mlx-lm`: 8.501 bits/weight
- Conversion tool: `mlx-lm 0.31.2` with `mlx 0.31.1`
- Original license: Apache-2.0; see [`LICENSE`](./LICENSE)
Install MLX-LM with:
```bash
pip install -U mlx-lm
```
The conversion command was:
```bash
HF_HUB_DISABLE_XET=1 mlx_lm.convert \
--hf-path Alibaba-NLP/WebSailor-3B \
--mlx-path ./WebSailor-3B-MLX-8bit \
--quantize \
--q-bits 8 \
--q-group-size 64
```
## Local usage
MLX-LM can resolve the Hugging Face repository ID directly:
```bash
pip install -U mlx-lm
mlx_lm.generate \
--model eunjay/WebSailor-3B-MLX-8bit-community \
--prompt "Reply with one short sentence." \
--max-tokens 64
```
For a local checkout, replace the repository ID with `./WebSailor-3B-MLX-8bit`.
The model weights alone do not browse the web; web-search or browser tool calls require an external tool/backend and an agent loop.
## Tool calling and web-search scope
The original WebSailor-3B agent harness uses both `search` and `visit` tools through WebAgent. This MLX conversion was validated only with a one-shot `search` tool-call smoke test; the full WebSailor/WebAgent `search` + `visit` harness was not run against this conversion.
For the smoke test, an explicit JSON-format instruction was supplied so the model emitted a parser-compatible call:
```text
If you need the search tool, output exactly one valid JSON object between <tool_call> and </tool_call>. Use double-quoted keys and this shape: {"name":"search","arguments":{"query":["query text"]}}. Never output YAML labels such as name: or arguments:.
```
The local OpenAI-compatible MLX server parsed that single call successfully. The search service itself remains external and must execute the requested query. This result is not validation of the complete WebSailor search agent or its `visit` flow.
## Compatibility note
Hugging Face may display Pi, Hermes, or OpenClaw connection examples automatically for compatible serving endpoints. Those examples indicate endpoint connectivity, not validation of WebSailor's search-agent behavior. Tool-call markers and parsers can vary across MLX-LM versions, so treat the result above as a **one-shot smoke test** and verify the full agent harness before production use.
## Attribution
Please retain the original model attribution and Apache-2.0 license when redistributing this conversion. This repository contains converted weights and supporting tokenizer/configuration files; it is not a replacement for the [original model card](https://huggingface.co/Alibaba-NLP/WebSailor-3B) or project code.