YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
HakuChat-7B-Code
规格
| 项目 | 值 |
|---|---|
| 参数量 | 7.0051B |
| 架构 | Llama 式,30 层,d_model 1152,FFN 66176,18 头 / 6 KV 头 GQA |
| 上下文 | 4096 |
| 词表 | 32768,ByteLevel BPE |
| 精度 | bfloat16 |
| 训练 | 5B→7B 零初始化扩展 + 代码 LoRA SFT(906 步 / 2 epoch,r=8) |
| 数据 | codeparrot/codeparrot-clean 抽取的真实 Python 函数,2500 train / 300 val;40% 工具轨迹 + 身份 replay |
能力与评测
| 指标 | 7B 基座(扩展后未训练) | 本模型 |
|---|---|---|
| val 代码语法合法 | 0/12 | 11/15 |
| 5 个手写单测 | 0/5 | 1/5 |
| 补全任务输出代码 | — | 5/6 |
| 解释任务保持文字 | — | 3/3 |
| 多位数算术调用 calculator | — | 3/4 |
| 工具/身份/问候回归 | 2/3 | 5/5 |
| 身份在不同 system 提示下稳定 | — | 6/6 |
支持三类代码任务:
- docstring → 实现
- 函数体前缀 → 补全
- 代码 → 中文解释
以及工具协议(web.search / web.open / calculator / fs.list / fs.read / fs.write)。
使用
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "KSKOOO/HakuChat-7B-Code"
tok = AutoTokenizer.from_pretrained(repo, trust_remote_code=False)
model = AutoModelForCausalLM.from_pretrained(repo, dtype=torch.bfloat16, device_map="auto").eval()
system = "你是 HakuChat,一个由本地团队训练的、擅长编程的中文助手。写代码时先写「思考:」,再写「答案:」,代码放在 ```python 代码块中。"
user = '请根据下面的函数签名和文档字符串实现函数,只输出完整函数代码。\n\n```python\ndef is_prime(n):\n """判断 n 是否为素数,返回布尔值。"""\n```'
prompt = f"<|system|>{system}<|user|>{user}<|assistant|>"
ids = tok(prompt, return_tensors="pt").to(model.device)
out = model.generate(**ids, max_new_tokens=320, do_sample=False, eos_token_id=tok.eos_token_id, pad_token_id=tok.eos_token_id)
print(tok.decode(out[0, ids["input_ids"].shape[1]:], skip_special_tokens=True))
推理显存:bf16 权重约 14 GB,建议 18 GB 以上。
tokenizer_config.json 已内置 chat_template,vLLM / GPUStack / Ollama(导入 GGUF 时需自行写 TEMPLATE)等 OpenAI 兼容服务会按 <|system|>…<|user|>…<|assistant|> 正确拼接。更新权重后需要重新下载模型并重建部署,旧部署不会自动重读模板。
许可
Apache-2.0。
- Downloads last month
- 1,032
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support