lmxxf/financial-report-lora-qwen3-14b
010
金融研报指标提取 LoRA (Qwen3-14B)
从金融研报段落中提取被深度分析的核心指标,输出结构化 JSON。
用法
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
import torch, json
model_id = "Qwen/Qwen3-14B"
lora_id = "lmxxf/financial-report-lora-qwen3-14b"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_id,
quantization_config=BitsAndBytesConfig(load_in_8bit=True),
device_map="auto",
trust_remote_code=True,
)
model = PeftModel.from_pretrained(model, lora_id)
model.eval()
system = "你是一位金融研报指标提取专家。根据给定的章节标题和段落内容,提取被深度分析的核心指标,输出 JSON。先在 analysis 中分析段落结构,再给出 metrics 列表。指标数量不固定,根据段落实际内容决定。"
user = "【章节标题】盈利能力分析\n【段落内容】公司毛利率同比提升2.3个百分点至35.8%,受益于产品结构优化和原材料成本下降。"
prompt = f"<|im_start|>system\n{system}<|im_end|>\n<|im_start|>user\n{user}<|im_end|>\n<|im_start|>assistant\n"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.1, do_sample=True)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))输出格式
{
"analysis": "段落分析思路...",
"metrics": [
{"metric_name": "毛利率", "metric_type": "financial", "score": 0.93, "reason": "被深度分析的原因"}
]
}训练细节
训练代码和数据集:GitHub
Framework versions
- PEFT 0.18.1
- Transformers 4.x
- TRL 0.x
- bitsandbytes 0.x
