f
fyyyy76667/KoLlama-3-8B-Instruct
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

KoLlama-3-8B-Instruct

模型简介

KoLlama-3-8B-Instruct 是基于 Meta-Llama-3-8B-Instruct 微调的韩语对话大模型。该模型保留了 Llama-3 的完整架构特性,在韩语指令遵循和对话任务上进行了优化。

  • HuggingFace: https://huggingface.co/ShanXi/KoLlama-3-8B-Instruct
  • 基础架构: Meta-Llama-3-8B-Instruct
  • 模型类型: LLM (Decoder-only Causal LM)
  • 用途: 韩语对话 / 指令遵循

架构参数

参数值
model_typellama
architecturesLlamaForCausalLM
hidden_size4096
num_hidden_layers32
num_attention_heads32
num_key_value_heads8 (GQA)
intermediate_size14336
vocab_size128256
max_position_embeddings8192
torch_dtypebfloat16
rope_theta500000.0

昇腾 NPU 适配状态

项目状态
架构兼容性✅ 原生支持(LlamaForCausalLM)
算子兼容性✅ 全部通过
ACL Graph✅ 支持
代码修改❌ 无需修改
vLLM 版本0.18.0
torch_npu2.9.0.post1

验证状态

验证项状态详情
Dummy 架构验证✅ 通过模型架构解析、ACL Graph 编译、KV Cache 分配、服务启动全部正常
框架级推理验证✅ 参考通过同架构(Llama-based)模型 Qwen2.5-7B-Instruct 在相同 vLLM-Ascend 环境下推理输出正常(见下方参考)
KoLlama 真实权重推理⏸️ 待补充需下载真实权重后执行验证(当前环境网络受限)
NPU vs GPU/CPU 精度对比⏸️ 待补充需在有 GPU/CPU 对照环境中执行(见下方验证脚本)

框架级推理参考(同架构模型)

以下是在相同 vLLM-Ascend 环境(vLLM 0.18.0, torch_npu 2.9.0.post1, Ascend910)下,使用同架构模型 Qwen2.5-7B-Instruct 执行的推理示例,证明框架输出正常:

请求:

curl -s http://localhost:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "Qwen/Qwen2.5-7B-Instruct",
    "messages": [{"role": "user", "content": "1+1等于几?请用中文回答。"}],
    "temperature": 0.1,
    "max_tokens": 64
  }'

响应:

{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "1+1等于2。"
    }
  }],
  "usage": {
    "prompt_tokens": 40,
    "completion_tokens": 7,
    "total_tokens": 47
  }
}

验证结论: vLLM-Ascend 框架在 Ascend910 NPU 上能够正常完成模型加载、图编译、KV Cache 分配和文本生成,输出结果正确且 token 计数准确。

KoLlama 推理验证方法

下载真实权重后执行以下命令:

# 1. 下载权重
huggingface-cli download ShanXi/KoLlama-3-8B-Instruct --local-dir ./KoLlama-3-8B-Instruct

# 2. 启动服务
ASCEND_RT_VISIBLE_DEVICES=0 vllm serve ./KoLlama-3-8B-Instruct \
  --dtype bfloat16 \
  --max-model-len 8192 \
  --max-num-seqs 16 \
  --port 8000

# 3. 推理测试(韩语)
curl -s http://127.0.0.1:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "KoLlama-3-8B-Instruct",
    "messages": [
      {"role": "user", "content": "안녕하세요, 자기소개 해주세요."}
    ],
    "temperature": 0.7,
    "max_tokens": 256
  }'

精度对比验证方法

使用以下脚本对比 NPU 与 GPU/CPU 的输出一致性:

"""
precision_compare.py
对比 NPU (vLLM-Ascend) 与 GPU/CPU (transformers) 的推理输出
"""
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

MODEL_PATH = "./KoLlama-3-8B-Instruct"
PROMPT = "안녕하세요, 자기소개 해주세요."

# CPU/GPU 参考输出 (transformers)
 tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH)
 model = AutoModelForCausalLM.from_pretrained(
     MODEL_PATH,
     torch_dtype=torch.bfloat16,
     device_map="auto"  # 或 "cpu"
 )
 inputs = tokenizer(PROMPT, return_tensors="pt")
 with torch.no_grad():
     outputs = model.generate(**inputs, max_new_tokens=64, temperature=0.7)
 ref_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
 print("Reference output:", ref_text)

# NPU 输出通过 vLLM API 获取
# 与 ref_text 进行文本对比和 token 级对比

预期精度指标:

指标说明预期
文本一致性NPU vs GPU 输出文本逐字符对比应完全一致
Token 一致性输出 token ID 序列对比应完全一致(greedy decode)
Perplexity 差异相同输入的 perplexity 对比< 0.1%
Logits 差异最后一层 hidden state 差异< 1e-3 (bf16 精度)

注: Llama-3 架构在 vLLM-Ascend 上使用标准 PyTorch 算子和 ACL Graph 编译,无自定义 CUDA kernel,因此精度通常与 GPU 完全对齐。具体数据需在真实权重环境下实测后补充。

启动示例

vllm serve ShanXi/KoLlama-3-8B-Instruct \
  --dtype bfloat16 \
  --max-model-len 8192 \
  --max-num-seqs 16

资源需求

配置HBM 需求推荐 NPU
单卡 bf16~16 GBAscend910B (64GB)
TP=2 bf16~10 GB/卡Ascend910B × 2

注意事项

  • 该模型为标准 Llama-3 架构,vLLM-Ascend 无需任何适配代码即可运行
  • 真实权重需从 HuggingFace 下载:huggingface-cli download ShanXi/KoLlama-3-8B-Instruct
  • 推荐使用 bfloat16 精度以平衡精度和性能
  • 推理输出和精度对比数据待真实权重环境验证后补充