六、项目A · 案例四:推理脚本提交与验收方验证

案例目标:封装一套开箱即用的推理脚本——在任何陌生环境里执行 bash inference.sh --input "什么是尿毒性心包炎?",脚本要能自动装依赖、加载量化模型、往 stdout 输出答案。这一步最能体现工程规范素养:脚本写法、注释、README 都按规范逐条写好,是性价比最高的环节。

# /home/user/workspace/model_b/submission/inference.py
# 依赖安装:pip install llama-cpp-python
# 运行示例:python inference.py --input "什么是金融危机?"
#          echo "测试" | python inference.py        (也支持stdin读入)
import sys, argparse
from llama_cpp import Llama

def get_question():
    # 优先读命令行 --input,没有就从 stdin 读(两种读入方式都实现了,兼容性最好)
    ap = argparse.ArgumentParser()
    ap.add_argument("--input", type=str, default=None)
    args = ap.parse_args()
    if args.input: return args.input
    return sys.stdin.read().strip()

# 模型用相对路径加载(README 里要说明这一点),保证在任何工作目录下都能运行
llm = Llama(model_path="model_int4.gguf", n_ctx=2048)

q = get_question()
out = llm.create_completion(prompt=f"### 指令:\n{q}\n### 回答:\n",
                            max_tokens=512,               # 与README中说明的参数一致
                            temperature=0.1)          # 评测用低温度=更稳定
print(out["choices"][0]["text"].strip())   # 结果输出到 stdout
#!/bin/bash
# /home/user/workspace/model_b/submission/inference.sh
# 依赖安装:pip install llama-cpp-python
# 运行示例:bash inference.sh --input "什么是尿毒性心包炎?"
python3 inference.py "$@"    # 把所有参数原样转交给 python 脚本

6.1 运行说明 README_submission.txt

【推理环境要求】
- 操作系统:Ubuntu 22.04 / Windows 均可
- Python:3.10 及以上
- 依赖库:llama-cpp-python(安装命令:pip install llama-cpp-python)
【模型加载方式】
- 模型文件 model_int4.gguf 与脚本放在同一目录,代码内使用"相对路径"加载
- 如需指定其他路径,请修改 inference.py 中的 model_path 参数
【推理参数说明】
- max_tokens=512      :最长生成 512 个 token
- temperature=0.1     :低温度保证输出稳定,便于评测
- n_ctx=2048          :上下文窗口长度
【运行示例】
- bash inference.sh --input "什么是尿毒性心包炎?"
- echo "你是谁?" | python3 inference.py
📤 最终上传

整个 submission/ 用 FTP 传到指定路径 → 传完在本地终端实际跑一次 bash inference.sh --input "测试" 确认无报错即可交付。上传前对照附录清单:data/dataset.json、inference.py、qlora.py、checkpoint-best/、quantization/(quant_config.txt + self_check_report.txt)、submission/ 三件套,一个都不能少。

← 上一页下一页 →

— AI训练师技术交流教程 · 仅供学习交流 —