许可协议: cc-by-nc-4.0
支持语言:
- 俄语
- 英语
任务类型: 文档问答
技术标签:
- 文档问答
- 问答系统
- 自然语言处理
- 深度学习
- Transformer模型
- 多模态
- HuggingFace平台
- 俄语Bert模型
- 机器学习
- 深度问答
- 文档AI
- 神经网络
- PyTorch框架
- 大语言模型
- 文本生成推理
模型库: transformers
评估指标:
- 准确率
- F1值
- 召回率
- 精确匹配率
- 精确度
基础模型:
- ai-forever/ruBert-large

文档问答模型 - Kaleidoscope_large_v1
本模型是基于sberbank-ai/ruBert-large微调的文档问答专用模型,通过包含上下文、问题和答案三元组的自定义JSON数据集进行训练优化。
核心特性
- 核心功能:根据用户提问从文档中提取答案
- 基础架构:基于sberbank-ai/ruBert-large模型
- 训练数据:包含context/question/answer字段的自定义JSON数据集
- 预处理:采用问题与文档上下文的拼接输入,引导模型聚焦相关段落
训练配置
- 训练轮次:20个epoch
- 批量大小:单设备4样本
- 预热步数:总步数的10%
- 启用FP16混合精度训练(需CUDA支持)
- 硬件环境:单卡RTX 3070
模型说明
本模型使用Transformers库配合定制训练流程完成微调,关键训练要素包括:
- 定制数据集:加载包含上下文/问题/答案三元组的JSON文件
- 特征处理:采用滑动窗口策略对长文本进行分词处理
- 训练过程:结合混合精度训练与AdamW优化器提升训练效果
- 评估机制:基于验证集性能进行模型检查点保存,并采用早停策略
该模型特别适合构建交互式文档问答系统,可广泛应用于客服支持、文档检索和智能问答等场景。
虽然主要针对俄语文本优化,但模型同时支持英语输入处理。
注:英语功能未经充分测试
使用示例
import torch
from transformers import AutoTokenizer, AutoModelForQuestionAnswering
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
tokenizer = AutoTokenizer.from_pretrained("LaciaStudio/Kaleidoscope_large_v1")
model = AutoModelForQuestionAnswering.from_pretrained("LaciaStudio/Kaleidoscope_large_v1")
model.to(device)
file_path = input("请输入文档路径: ")
with open(file_path, "r", encoding="utf-8") as f:
context = f.read()
while True:
question = input("请输入问题(输入'exit'退出): ")
if question.lower() == "exit":
break
inputs = tokenizer(question, context, return_tensors="pt", truncation=True, max_length=384)
inputs = {k: v.to(device) for k, v in inputs.items()}
outputs = model(**inputs)
start_logits = outputs.start_logits
end_logits = outputs.end_logits
start_index = torch.argmax(start_logits)
end_index = torch.argmax(end_logits)
answer_tokens = inputs["input_ids"][0][start_index:end_index + 1]
answer = tokenizer.decode(answer_tokens, skip_special_tokens=True)
print("答案:", answer)
问答示例
俄语
上下文:
阿尔伯特·爱因斯坦提出了相对论理论。
问题:
谁提出了相对论理论?
答案:
阿尔伯特·爱因斯坦
英语
上下文:
我曾有辆红色轿车。
问题:
我原来开什么颜色的车?
答案:
红色轿车
由LaciaStudio | LaciaAI团队微调