Instructions to use xuanwulab/HaS_4.0_0.6B_q4f16-MLC with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLC-LLM
How to use xuanwulab/HaS_4.0_0.6B_q4f16-MLC with MLC-LLM:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
Update README.md
Browse files
README.md
CHANGED
|
@@ -11,7 +11,7 @@ tags:
|
|
| 11 |
base_model:
|
| 12 |
- Qwen/Qwen3-0.6B-Base
|
| 13 |
---
|
| 14 |
-
# HaS_4.0_0.
|
| 15 |
|
| 16 |
## 一、HaS介绍
|
| 17 |
|
|
@@ -37,45 +37,49 @@ HaS(Hide And/Annotate Seek)是一款专为与大型语言模型(LLM)交
|
|
| 37 |
|
| 38 |
如图所示,我们认为,这种结构化语义标签之所以能被大模型高效理解,其核心原因在于模型在预训练阶段接触了海量的代码数据。这些代码中普遍存在与该标签格式高度同构的语法结构,例如面向对象编程中的同类ID索引和模块化的层级命名空间。正是这种结构上的相似性,使得大模型能够迁移从代码中学到的模式识别能力,仅需少量样本(few-shot)甚至无需样本(zero-shot),即可快速掌握并运用此标签体系进行推理。采用标签脱敏前后的一个例子如下:
|
| 39 |
|
| 40 |
-
脱敏前的Prompt:
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
>
|
| 76 |
-
|
| 77 |
-
>
|
| 78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
|
| 80 |
与Presidio、Freysa等其他匿名化方案对比,结构化语义标签不仅保留了层次语义信息以及指代关系,同时还符合相关法规对数据真实性及质量的要求。
|
| 81 |
|
|
@@ -85,13 +89,63 @@ HaS(Hide And/Annotate Seek)是一款专为与大型语言模型(LLM)交
|
|
| 85 |
|
| 86 |
如图3所示,两种实体处理方案均存在根本性缺陷。基于实体类型标签(如<ORGANIZATION>)的方法,因无法区分原文中的多个同类实体个体,直接导致了指代关系的丢失和模型的应答失败。而假名替换方案,则存在三个问题:首先,生成虚假信息违背了合规性原则;其次,替换操作有损语义的准确性,进而影响回答质量;最后,非结构化的假名也使后续的程序化解析与工具化的处理带来了困难。
|
| 87 |
|
| 88 |
-
## 三、
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 89 |
|
| 90 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 91 |
|
| 92 |
-
##
|
| 93 |
|
| 94 |
-
|
| 95 |
提示词模板:
|
| 96 |
```
|
| 97 |
messages = [
|
|
@@ -111,7 +165,7 @@ messages = [
|
|
| 111 |
```
|
| 112 |
注:Specified types里的实体类型支持任意指定
|
| 113 |
|
| 114 |
-
|
| 115 |
提示词模板:
|
| 116 |
```
|
| 117 |
messages = [
|
|
@@ -140,7 +194,7 @@ messages = [
|
|
| 140 |
注:提示词模板中assistant的内容取自第一轮ner的输出结果
|
| 141 |
|
| 142 |
|
| 143 |
-
|
| 144 |
提示词模板:
|
| 145 |
```
|
| 146 |
messages = [
|
|
@@ -169,7 +223,7 @@ messages = [
|
|
| 169 |
|
| 170 |
注:提示词模板中assistant的内容取自第一轮ner的输出结果,existing mapping pairs取自历史对话积累的映射对
|
| 171 |
|
| 172 |
-
|
| 173 |
提示词模板:
|
| 174 |
```
|
| 175 |
messages = [
|
|
@@ -190,7 +244,7 @@ messages = [
|
|
| 190 |
注:提示词模板中anonymized的内容取自hide的输出结果
|
| 191 |
|
| 192 |
|
| 193 |
-
|
| 194 |
提示词模板:
|
| 195 |
```
|
| 196 |
messages = [
|
|
@@ -210,7 +264,7 @@ messages = [
|
|
| 210 |
```
|
| 211 |
注:提示词模板中Composite mapping取自pair输出中提取的连续标签
|
| 212 |
|
| 213 |
-
|
| 214 |
提示词模板:
|
| 215 |
```
|
| 216 |
messages = [
|
|
|
|
| 11 |
base_model:
|
| 12 |
- Qwen/Qwen3-0.6B-Base
|
| 13 |
---
|
| 14 |
+
# HaS_4.0_0.6B_q4f16
|
| 15 |
|
| 16 |
## 一、HaS介绍
|
| 17 |
|
|
|
|
| 37 |
|
| 38 |
如图所示,我们认为,这种结构化语义标签之所以能被大模型高效理解,其核心原因在于模型在预训练阶段接触了海量的代码数据。这些代码中普遍存在与该标签格式高度同构的语法结构,例如面向对象编程中的同类ID索引和模块化的层级命名空间。正是这种结构上的相似性,使得大模型能够迁移从代码中学到的模式识别能力,仅需少量样本(few-shot)甚至无需样本(zero-shot),即可快速掌握并运用此标签体系进行推理。采用标签脱敏前后的一个例子如下:
|
| 39 |
|
| 40 |
+
**脱敏前的Prompt**:
|
| 41 |
+
```
|
| 42 |
+
CloudGenius的联系人是谁?
|
| 43 |
+
**合同编号:** SAAS-2024-Q3-8801
|
| 44 |
+
**甲方 (服务提供方):** 云创智能有限公司(以下简称云创智能或CloudGenius)
|
| 45 |
+
注册地址: 北京市朝阳区望京科技园A座18层
|
| 46 |
+
联系人: 李红(Li Hong)
|
| 47 |
+
电话: 010-8888-9999
|
| 48 |
+
**乙方 (客户):** 繁星贸易集团(Star Trading Group,以下简称繁星或STG)
|
| 49 |
+
注册地址: 上海市黄浦区南京东路100号
|
| 50 |
+
联系人: 张英建(Zhang Yingjian)
|
| 51 |
+
邮箱: zhang.director@star-trading.com
|
| 52 |
+
**1. 服务内容**
|
| 53 |
+
云创智能向STG提供名为智销云(SmartSales Cloud)的客户关系管理(CRM)软件服务。服务等级协议(Service Level Agreement, SLA)保证99.95%的在线时间。云创智能将确保该CRM系统的稳定运行。
|
| 54 |
+
**2. 协议期限**
|
| 55 |
+
本协议自2024年8月1日起生效,至2026年7月31日终止,为期两年。任何一方如需提前终止,需提前90天书面通知对方。CloudGenius和繁星贸易均应遵守此条款。
|
| 56 |
+
**3. 费用与支付**
|
| 57 |
+
STG同意支付订阅费用,总计人民币贰佰万元整 (¥2,000,000.00/RMB 2 million)。费用需分两次支付:协议生效后15个工作日内支付50%,即100万元;第二年服务开始前支付剩余50%。支付账户为云创智能在中国工商银行(ICBC)开设的账户,账号为6222020200012345678。
|
| 58 |
+
**4. 保密条款**
|
| 59 |
+
CloudGenius和STG同意,对在履行本协议过程中获悉的对方商业秘密和技术信息予以保密。此保密义务在本协议终止后持续有效,直至该信息进入公共领域。
|
| 60 |
+
```
|
| 61 |
+
|
| 62 |
+
**脱敏后的Prompt**:
|
| 63 |
+
```
|
| 64 |
+
<组织[001].企业.英文名>的联系人是谁?
|
| 65 |
+
**合同编号:** <编号[001].合同编号.代码>
|
| 66 |
+
**甲方 (服务提供方):** <组织[001].企业.完整名称>(以下简称<组织[001].企业.简称>或<组织[001].企业.英文名>)
|
| 67 |
+
注册地址: <地点[001].办公地址.完整地址>
|
| 68 |
+
联系人: <人物[001].个人.姓名>(<人物[001].个人.拼音名>)
|
| 69 |
+
电话: <电话[001].固定电话.号码>
|
| 70 |
+
**乙方 (客户):** <组织[002].企业.完整名称>(<组织[002].企业.英文名>,以下简称<组织[002].企业.简称>或<组织[002].企业.英文缩写>)
|
| 71 |
+
注册地址: <地点[002].办公地址.完整地址>
|
| 72 |
+
联系人: <人物[002].个人.姓名>(<人物[002].个人.拼音名>)
|
| 73 |
+
邮箱: <邮箱[001].个人邮箱.地址>
|
| 74 |
+
**1. 服务内容**
|
| 75 |
+
<组织[001].企业.简称>向<组织[002].企业.英文缩写>提供名为<产品/服务[001].软件.中文名>(<产品/服务[001].软件.英文名>)的<产品/服务[002].软件服务.完整描述>。<产品/服务[003].协议.中文名>(<产品/服务[003].协议.英文名>, <产品/服务[003].协议.英文缩写>)保证<百分比[001].服务指标.数值>的在线时间。<组织[001].企业.简称>将确保该<产品/服务[002].软件服务.简称>的稳定运行。
|
| 76 |
+
**2. 协议期限**
|
| 77 |
+
本协议自<日期/时间[001].具体日期.年月日>起生效,至<日期/时间[002].具体日期.年月日>终止,为期两年。任何一方如需提前终止,需提前<日期/时间[003].时间段.天数>书面通知对方。<组织[001].企业.英文名>和繁星贸易均应遵守此条款。
|
| 78 |
+
**3. 费用与支付**
|
| 79 |
+
<组织[002].企业.英文缩写>同意支付订阅费用,总计人民币<金额[001].合同金额.中文大写> (<金额[001].合同金额.数字符号>/<金额[001].合同金额.英文表述>)。费用需分两次支付:协议生效后<日期/时间[004].时间段.工作日数>内支付<百分比[002].支付比例.数值>,即<金额[002].支付金额.中文数字>;第二年服务开始前支付剩余<百分比[002].支付比例.数值>。支付账户为<组织[001].企业.简称>在<组织[003].金融机构.完整名称>(<组织[003].金融机构.英文缩写>)开设的账户,账号为<编号[002].银行账号.号码>。
|
| 80 |
+
**4. 保密条款**
|
| 81 |
+
<组织[001].企业.英文名>和<组织[002].企业.英文缩写>同意,对在履行本协议过程中获悉的对方商业秘密和技术信息予以保密。此保密义务在本协议终止后持续有效,直至该信息进入公共领域。
|
| 82 |
+
```
|
| 83 |
|
| 84 |
与Presidio、Freysa等其他匿名化方案对比,结构化语义标签不仅保留了层次语义信息以及指代关系,同时还符合相关法规对数据真实性及质量的要求。
|
| 85 |
|
|
|
|
| 89 |
|
| 90 |
如图3所示,两种实体处理方案均存在根本性缺陷。基于实体类型标签(如<ORGANIZATION>)的方法,因无法区分原文中的多个同类实体个体,直接导致了指代关系的丢失和模型的应答失败。而假名替换方案,则存在三个问题:首先,生成虚假信息违背了合规性原则;其次,替换操作有损语义的准确性,进而影响回答质量;最后,非结构化的假名也使后续的程序化解析与工具化的处理带来了困难。
|
| 91 |
|
| 92 |
+
## 三、快速开始
|
| 93 |
+
|
| 94 |
+
方法一(便捷化):Chrome、Edge应用市场搜索并安装“HaS脱敏”插件预览版,并在DeepSeek,ChatGPT网页版直接使用
|
| 95 |
+
|
| 96 |
+
Chrome商店下载链接:https://chromewebstore.google.com/detail/jcidapaidjphnanhemceclpdilbfefgf
|
| 97 |
+
Edge商店下载链接:https://microsoftedge.microsoft.com/addons/detail/lcpldflknbjbckoeniofmdegkcnbdnjm
|
| 98 |
+
|
| 99 |
+
方法二(定制化):下载模型权重,自己部署HaS模型,配搭工具,编排 Agentic Workflow
|
| 100 |
+
|
| 101 |
+
推荐使用llama.cpp推理框架,在模型文件所在目录运行以下命令启动服务:
|
| 102 |
+
|
| 103 |
+
```
|
| 104 |
+
llama-server -m has_4.0_0.6B.gguf
|
| 105 |
+
```
|
| 106 |
+
|
| 107 |
+
- 默认监听地址为 `http://127.0.0.1:8080/v1`
|
| 108 |
+
- 若你的模型文件名不同,请替换 `-m` 后的 GGUF 文件路径
|
| 109 |
+
|
| 110 |
+
确保服务已启动后,进入项目根目录,直接运行下列脚本进行体验。所有脚本都使用 `BASE_URL = http://127.0.0.1:8080/v1` 调用 OpenAI 兼容接口。
|
| 111 |
+
|
| 112 |
+
1)使用ner能力进行敏感实体识别
|
| 113 |
+
- 运行:`python scripts/ner.py`
|
| 114 |
+
|
| 115 |
+
2)使用hide能力进行标签化脱敏(不带历史脱敏记录)
|
| 116 |
+
- 运行:`python scripts/hide_without.py`
|
| 117 |
+
|
| 118 |
+
3)使用hide能力进行标签化脱敏(带历史脱敏记录)
|
| 119 |
+
- 运行:`python scripts/hide_with.py`
|
| 120 |
+
|
| 121 |
+
4)使用pair能力提取标签映射
|
| 122 |
+
- 运行:`python scripts/pair.py`
|
| 123 |
+
|
| 124 |
+
5)使用split能力进行复合标签拆解
|
| 125 |
+
- 运行:`python scripts/split.py`
|
| 126 |
+
|
| 127 |
+
6)使用seek能力进行标签还原
|
| 128 |
+
- 运行:`python scripts/seek.py`
|
| 129 |
+
|
| 130 |
+
## 四、速度评估
|
| 131 |
+
|
| 132 |
+
**测试平台**:Apple M4 Pro (48GB内存)。
|
| 133 |
+
**性能单位**:Tokens/秒。
|
| 134 |
+
**数据说明**:所有性能数据均已取整,粗体表示该项最佳表现。
|
| 135 |
|
| 136 |
+
| 特性/性能指标 | llama.cpp | mlx_lm | mlc_llm |
|
| 137 |
+
| ---- | ---- | ---- | ---- |
|
| 138 |
+
| 核心特点 | C++实现,性能极致,社区活跃 | 苹果官方框架,专为Apple Silicon优化 | 编译驱动,跨平台部署|
|
| 139 |
+
| FP16模型大小 | 1.2GB | 1.2GB | 1.2GB |
|
| 140 |
+
| Prefill速度 | **4904** | 4272 | 1818 |
|
| 141 |
+
| Decode速度 | 128 | **156** | 118 |
|
| 142 |
+
| Q4模型大小 | 0.4GB | 0.4GB | 0.4GB |
|
| 143 |
+
| Prefill速度 | **4828** | 3183 | 2236 |
|
| 144 |
+
| Decode速度 | 238 | **345** | 172 |
|
| 145 |
|
| 146 |
+
## 五、提示词模板
|
| 147 |
|
| 148 |
+
**1)使用ner能力进行敏感实体识别**
|
| 149 |
提示词模板:
|
| 150 |
```
|
| 151 |
messages = [
|
|
|
|
| 165 |
```
|
| 166 |
注:Specified types里的实体类型支持任意指定
|
| 167 |
|
| 168 |
+
**2)使用hide能力进行标签化脱敏(不带历史脱敏记录)**
|
| 169 |
提示词模板:
|
| 170 |
```
|
| 171 |
messages = [
|
|
|
|
| 194 |
注:提示词模板中assistant的内容取自第一轮ner的输出结果
|
| 195 |
|
| 196 |
|
| 197 |
+
**3)使用hide能力进行标签化脱敏(带历史脱敏记录)**
|
| 198 |
提示词模板:
|
| 199 |
```
|
| 200 |
messages = [
|
|
|
|
| 223 |
|
| 224 |
注:提示词模板中assistant的内容取自第一轮ner的输出结果,existing mapping pairs取自历史对话积累的映射对
|
| 225 |
|
| 226 |
+
**4)使用pair能力提取标签映射**
|
| 227 |
提示词模板:
|
| 228 |
```
|
| 229 |
messages = [
|
|
|
|
| 244 |
注:提示词模板中anonymized的内容取自hide的输出结果
|
| 245 |
|
| 246 |
|
| 247 |
+
**5)使用split能力进行复合标签拆解**
|
| 248 |
提示词模板:
|
| 249 |
```
|
| 250 |
messages = [
|
|
|
|
| 264 |
```
|
| 265 |
注:提示词模板中Composite mapping取自pair输出中提取的连续标签
|
| 266 |
|
| 267 |
+
**6)使用seek能力进行标签还原**
|
| 268 |
提示词模板:
|
| 269 |
```
|
| 270 |
messages = [
|