赛题简介

  • 在寿险、产险、健康险等保险的理赔流程和客户服务环节中,存在大量扫描文档,例如医疗票据、费用清单、病例等。
  • 对这些扫描文档进行文字检测与识别,并且提取出结构化信息,可以用于极速理赔、个人健康管理等业务场景。
  • 本次赛题将提供扫描文件数据集,参赛队利用OCR技术自动识别影像资料后,再通过AI智能判断所识别文字的内在逻辑,回答关于图片的自然语言问题。
  • 问题的答案是可以从图片中提取的任何文本/标记。

数据简介

  • 本次大赛提供的数据集使用的扫描文件类型包括票据、说明、报告等20 多种。混合了印刷、打字和手写的内容。
  • 训练集有5000余张左右原始扫描文件及对应的 4万余个自然语言问答标注。提供的数据均已做了标注及脱敏。
  • 训练集数据包括:
    • image:包含所有原始扫描文件图像
    • train.csv:问答训练库,包含序号(index)、问题 ID(quesiton_id)、图片名称(filename)、问题(question_text)、答案(answer_text),共 5 列
    • readme:数据说明文档
  • 测试集数据规模为1000张左右原始扫描文件及对应的7000个自然语言问题,数据内容样例同训练集。
  • 测试集包含以下3个文件:
    • image:包含所有原始扫描文件图像
    • test1.csv:问答测试库,包含序号(index)、问题 ID(quesiton_id)、图片路径(filename)、问题(question_text),共 4 列
    • readme:数据说明文档

数据样例

  • 样例一:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-US6gK1Ha-1635752613390)(http://bj.bcebos.com/v1/ai-studio-match/file/c26e38134345459bbd55f3f64e6f3773fcc57a53bbc5445b930137165ee1d07d?authorization=bce-auth-v1%2F0ef6765c1e494918bc0d4c3ca3e5c6d1%2F2021-04-16T09%3A43%3A32Z%2F-1%2F%2F29d94e2d4dd5fd4d5c3355ee414e3cb581e1588f97092839941d54b3ca196813)]

    • 提问:西药费的金额是多少? 回答:140.16 提问:140.16元购买了什么药品? 回答:{甲}缘沙坦胶囊{基}
  • 样例二:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RhPp9OfZ-1635752613409)(http://bj.bcebos.com/v1/ai-studio-match/file/b5b6a91920d74830ade920f877117303d8c53f26578d489ba0c6d5b86d51a301?authorization=bce-auth-v1%2F0ef6765c1e494918bc0d4c3ca3e5c6d1%2F2021-04-16T09%3A44%3A50Z%2F-1%2F%2F540ae90effb952d2a4cb4eb2a83bdb1fec818fe7c136d0cf03064f9c53469fdd)]

    • 提问:这是一份关于什么药品的说明? 回答:十三味疏肝胶囊 提问:药品的有效期是多久? 回答:1.5年

基线总体架构

  • 基线项目使用的是两阶段的处理方式:
    • PaddleOCR:图像 OCR> 文本信息
    • PaddleNLP:文本信息 + 问题 抽取式阅读理解> 答案

安装依赖包

!pip install paddleocr==2.0.4 paddlenlp==2.0.0rc18

解压官方数据集

  • 如果需要自行处理数据,可以使用下方的命令进行解压
# !tar -xf data/data83016/dataset.tar -C data

数据集预处理

  • 使用 PaddleOCR 识别图片中的文本信息,将其作为抽取式阅读理解的文章
  • 并将数据格式转换为 SQuAD 格式,方便后续 PaddleNLP 读取使用
  • 处理完成的数据集以存放于 AIStudio 数据集中,可以直接挂载使用
  • 如果需要重新生成数据集的话,可以运行下面的命令,处理需耗时一个半小时左右,请耐心等待
# !python gen_dataset.py

模型训练

!mkdir /home/aistudio/checkpoint

import paddle
import paddlenlp as ppnlp

from functools import partial
from paddlenlp.data import Stack, Dict, Pad
from utils import prepare_train_features, prepare_validation_features, evaluate


############参数配置###############
# 模型名称
MODEL_NAME = "ernie-1.0"

# 最大文本长度
max_seq_length = 512
# 文本滑动窗口步幅
doc_stride = 128

# 训练过程中的最大学习率
learning_rate = 3e-5 
# 训练轮次
epochs = 1
# 数据批次大小
batch_size = 8
# 学习率预热比例
warmup_proportion = 0.1
# 权重衰减系数,类似模型正则项策略,避免模型过拟合
weight_decay = 0.01


#############模型################
# 加载模型
model = ppnlp.transformers.ErnieForQuestionAnswering.from_pretrained(MODEL_NAME)

# 加载 tokenizer
tokenizer = ppnlp.transformers.ErnieTokenizer.from_pretrained(MODEL_NAME)


#############数据###############
# 加载数据集
train_ds = ppnlp.datasets.load_dataset('dureader_robust', data_files='data/data83268/train.json')
dev_ds = ppnlp.datasets.load_dataset('dureader_robust', data_files='data/data83268/dev.json')

# 数据滑窗处理
train_trans_func = partial(prepare_train_features, 
                           max_seq_length=max_seq_length, 
                           doc_stride=doc_stride,
                           tokenizer=tokenizer)

train_ds.map(train_trans_func, batched=True)

dev_trans_func = partial(prepare_validation_features, 
                           max_seq_length=max_seq_length, 
                           doc_stride=doc_stride,
                           tokenizer=tokenizer)
                           
dev_ds.map(dev_trans_func, batched=True)

# 数据读取器配置
train_batch_sampler = paddle.io.DistributedBatchSampler(
        train_ds, batch_size=batch_size, shuffle=True)

train_batchify_fn = lambda samples, fn=Dict({
    "input_ids": Pad(axis=0, pad_val=tokenizer.pad_token_id),
    "token_type_ids": Pad(axis=0, pad_val=tokenizer.pad_token_type_id),
    "start_positions": Stack(dtype="int64"),
    "end_positions": Stack(dtype="int64")
}): fn(samples)

train_data_loader = paddle.io.DataLoader(
    dataset=train_ds,
    batch_sampler=train_batch_sampler,
    collate_fn=train_batchify_fn,
    return_list=True)

dev_batch_sampler = paddle.io.BatchSampler(
    dev_ds, batch_size=batch_size, shuffle=False)

dev_batchify_fn = lambda samples, fn=Dict({
    "input_ids": Pad(axis=0, pad_val=tokenizer.pad_token_id),
    "token_type_ids": Pad(axis=0, pad_val=tokenizer.pad_token_type_id)
}): fn(samples)

dev_data_loader = paddle.io.DataLoader(
    dataset=dev_ds,
    batch_sampler=dev_batch_sampler,
    collate_fn=dev_batchify_fn,
    return_list=True)


#############优化器配置#############
# 学习率策略
num_training_steps = len(train_data_loader) * epochs
lr_scheduler = ppnlp.transformers.LinearDecayWithWarmup(learning_rate, num_training_steps, warmup_proportion)

# Generate parameter names needed to perform weight decay.
# All bias and LayerNorm parameters are excluded.
decay_params = [
    p.name for n, p in model.named_parameters()
    if not any(nd in n for nd in ["bias", "norm"])
]

# 设置优化器
optimizer = paddle.optimizer.AdamW(
    learning_rate=lr_scheduler,
    parameters=model.parameters(),
    weight_decay=weight_decay,
    apply_decay_param_fun=lambda x: x in decay_params)


#############损失函数################
class CrossEntropyLossForSQuAD(paddle.nn.Layer):
    def __init__(self):
        super(CrossEntropyLossForSQuAD, self).__init__()

    def forward(self, y, label):
        start_logits, end_logits = y   # both shape are [batch_size, seq_len]
        start_position, end_position = label
        start_position = paddle.unsqueeze(start_position, axis=-1)
        end_position = paddle.unsqueeze(end_position, axis=-1)
        start_loss = paddle.nn.functional.softmax_with_cross_entropy(
            logits=start_logits, label=start_position, soft_label=False)
        start_loss = paddle.mean(start_loss)
        end_loss = paddle.nn.functional.softmax_with_cross_entropy(
            logits=end_logits, label=end_position, soft_label=False)
        end_loss = paddle.mean(end_loss)

        loss = (start_loss + end_loss) / 2
        return loss


#############模型训练################
# 实例化 loss
criterion = CrossEntropyLossForSQuAD()
global_step = 0

# 训练
for epoch in range(1, epochs + 1):
    for step, batch in enumerate(train_data_loader, start=1):
        global_step += 1
        input_ids, segment_ids, start_positions, end_positions = batch
        logits = model(input_ids=input_ids, token_type_ids=segment_ids)
        loss = criterion(logits, (start_positions, end_positions))

        if global_step % 100 == 0 :
            print("global step %d, epoch: %d, batch: %d, loss: %.5f" % (global_step, epoch, step, loss))
        loss.backward()
        optimizer.step()
        lr_scheduler.step()
        optimizer.clear_grad()

    evaluate(model=model, data_loader=dev_data_loader) 

# 保存
model.save_pretrained('/home/aistudio/checkpoint')
ep()
        optimizer.clear_grad()

    evaluate(model=model, data_loader=dev_data_loader) 

# 保存
model.save_pretrained('/home/aistudio/checkpoint')
tokenizer.save_pretrained('/home/aistudio/checkpoint')
[2021-04-22 20:48:38,873] [    INFO] - Already cached /home/aistudio/.paddlenlp/models/ernie-1.0/ernie_v1_chn_base.pdparams
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/layers.py:1303: UserWarning: Skip loading for classifier.weight. classifier.weight is not found in the provided dict.
  warnings.warn(("Skip loading for {}. ".format(key) + str(err)))
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/layers.py:1303: UserWarning: Skip loading for classifier.bias. classifier.bias is not found in the provided dict.
  warnings.warn(("Skip loading for {}. ".format(key) + str(err)))
[2021-04-22 20:48:42,972] [    INFO] - Found /home/aistudio/.paddlenlp/models/ernie-1.0/vocab.txt


global step 100, epoch: 1, batch: 100, loss: 5.33133
global step 200, epoch: 1, batch: 200, loss: 2.81528
global step 300, epoch: 1, batch: 300, loss: 1.96900
global step 400, epoch: 1, batch: 400, loss: 1.99122
global step 500, epoch: 1, batch: 500, loss: 2.26535
global step 600, epoch: 1, batch: 600, loss: 1.91357
global step 700, epoch: 1, batch: 700, loss: 1.60655
global step 800, epoch: 1, batch: 800, loss: 1.76000
global step 900, epoch: 1, batch: 900, loss: 1.13124
global step 1000, epoch: 1, batch: 1000, loss: 1.72126
global step 1100, epoch: 1, batch: 1100, loss: 1.89857
global step 1200, epoch: 1, batch: 1200, loss: 1.47760
global step 1300, epoch: 1, batch: 1300, loss: 1.70778
global step 1400, epoch: 1, batch: 1400, loss: 1.30835
global step 1500, epoch: 1, batch: 1500, loss: 2.72890
global step 1600, epoch: 1, batch: 1600, loss: 1.84454
global step 1700, epoch: 1, batch: 1700, loss: 3.09311
global step 1800, epoch: 1, batch: 1800, loss: 1.83173
global step 1900, epoch: 1, batch: 1900, loss: 1.07240
global step 2000, epoch: 1, batch: 2000, loss: 1.33060
global step 2100, epoch: 1, batch: 2100, loss: 1.04376
global step 2200, epoch: 1, batch: 2200, loss: 1.63946
global step 2300, epoch: 1, batch: 2300, loss: 2.03573
global step 2400, epoch: 1, batch: 2400, loss: 1.47289
global step 2500, epoch: 1, batch: 2500, loss: 1.08369
global step 2600, epoch: 1, batch: 2600, loss: 1.38365
global step 2700, epoch: 1, batch: 2700, loss: 1.71040
global step 2800, epoch: 1, batch: 2800, loss: 1.26852
global step 2900, epoch: 1, batch: 2900, loss: 2.52206
global step 3000, epoch: 1, batch: 3000, loss: 1.91332
global step 3100, epoch: 1, batch: 3100, loss: 1.47257
global step 3200, epoch: 1, batch: 3200, loss: 1.06718
global step 3300, epoch: 1, batch: 3300, loss: 1.79864
global step 3400, epoch: 1, batch: 3400, loss: 1.58367
global step 3500, epoch: 1, batch: 3500, loss: 0.83910
global step 3600, epoch: 1, batch: 3600, loss: 1.63214
global step 3700, epoch: 1, batch: 3700, loss: 3.27789
global step 3800, epoch: 1, batch: 3800, loss: 1.13076
global step 3900, epoch: 1, batch: 3900, loss: 1.18562
global step 4000, epoch: 1, batch: 4000, loss: 0.91027
global step 4100, epoch: 1, batch: 4100, loss: 0.81818
global step 4200, epoch: 1, batch: 4200, loss: 1.16851
global step 4300, epoch: 1, batch: 4300, loss: 1.64349
global step 4400, epoch: 1, batch: 4400, loss: 1.51092
global step 4500, epoch: 1, batch: 4500, loss: 2.32444
global step 4600, epoch: 1, batch: 4600, loss: 1.04382
global step 4700, epoch: 1, batch: 4700, loss: 1.18952
global step 4800, epoch: 1, batch: 4800, loss: 1.08606
global step 4900, epoch: 1, batch: 4900, loss: 1.37461
global step 5000, epoch: 1, batch: 5000, loss: 1.14658
global step 5100, epoch: 1, batch: 5100, loss: 1.24930
global step 5200, epoch: 1, batch: 5200, loss: 0.97293
global step 5300, epoch: 1, batch: 5300, loss: 1.39240
global step 5400, epoch: 1, batch: 5400, loss: 1.52307
global step 5500, epoch: 1, batch: 5500, loss: 1.01953
global step 5600, epoch: 1, batch: 5600, loss: 1.54944
global step 5700, epoch: 1, batch: 5700, loss: 1.86738
global step 5800, epoch: 1, batch: 5800, loss: 1.54679
global step 5900, epoch: 1, batch: 5900, loss: 2.57512
global step 6000, epoch: 1, batch: 6000, loss: 1.68195
global step 6100, epoch: 1, batch: 6100, loss: 2.33640
global step 6200, epoch: 1, batch: 6200, loss: 1.33415
global step 6300, epoch: 1, batch: 6300, loss: 1.53034
global step 6400, epoch: 1, batch: 6400, loss: 2.18684
global step 6500, epoch: 1, batch: 6500, loss: 1.03164
global step 6600, epoch: 1, batch: 6600, loss: 1.31069
global step 6700, epoch: 1, batch: 6700, loss: 1.56807
global step 6800, epoch: 1, batch: 6800, loss: 0.98548
global step 6900, epoch: 1, batch: 6900, loss: 0.99514
global step 7000, epoch: 1, batch: 7000, loss: 0.98318
global step 7100, epoch: 1, batch: 7100, loss: 1.00131
global step 7200, epoch: 1, batch: 7200, loss: 0.95227
global step 7300, epoch: 1, batch: 7300, loss: 1.08113
global step 7400, epoch: 1, batch: 7400, loss: 0.82864
global step 7500, epoch: 1, batch: 7500, loss: 2.03780
global step 7600, epoch: 1, batch: 7600, loss: 1.08267
global step 7700, epoch: 1, batch: 7700, loss: 1.19368
global step 7800, epoch: 1, batch: 7800, loss: 1.13193
global step 7900, epoch: 1, batch: 7900, loss: 0.86742
global step 8000, epoch: 1, batch: 8000, loss: 1.33992
global step 8100, epoch: 1, batch: 8100, loss: 2.19699
global step 8200, epoch: 1, batch: 8200, loss: 0.98966
global step 8300, epoch: 1, batch: 8300, loss: 0.91852
global step 8400, epoch: 1, batch: 8400, loss: 0.98416
global step 8500, epoch: 1, batch: 8500, loss: 0.93930
global step 8600, epoch: 1, batch: 8600, loss: 1.14956
global step 8700, epoch: 1, batch: 8700, loss: 0.98243
global step 8800, epoch: 1, batch: 8800, loss: 1.07073
global step 8900, epoch: 1, batch: 8900, loss: 0.87538
global step 9000, epoch: 1, batch: 9000, loss: 1.29235
global step 9100, epoch: 1, batch: 9100, loss: 1.42117
global step 9200, epoch: 1, batch: 9200, loss: 2.06677
global step 9300, epoch: 1, batch: 9300, loss: 1.20705
global step 9400, epoch: 1, batch: 9400, loss: 1.14359
global step 9500, epoch: 1, batch: 9500, loss: 0.92873
global step 9600, epoch: 1, batch: 9600, loss: 1.21142
global step 9700, epoch: 1, batch: 9700, loss: 1.35645
global step 9800, epoch: 1, batch: 9800, loss: 1.16116
global step 9900, epoch: 1, batch: 9900, loss: 1.08292
global step 10000, epoch: 1, batch: 10000, loss: 1.59773
global step 10100, epoch: 1, batch: 10100, loss: 1.01784
global step 10200, epoch: 1, batch: 10200, loss: 0.67115
global step 10300, epoch: 1, batch: 10300, loss: 1.47989
global step 10400, epoch: 1, batch: 10400, loss: 1.01132
global step 10500, epoch: 1, batch: 10500, loss: 0.97569
global step 10600, epoch: 1, batch: 10600, loss: 1.14948
global step 10700, epoch: 1, batch: 10700, loss: 2.03889
global step 10800, epoch: 1, batch: 10800, loss: 1.08176
global step 10900, epoch: 1, batch: 10900, loss: 0.78584
global step 11000, epoch: 1, batch: 11000, loss: 2.09304
global step 11100, epoch: 1, batch: 11100, loss: 2.07693
global step 11200, epoch: 1, batch: 11200, loss: 1.08243
global step 11300, epoch: 1, batch: 11300, loss: 1.74269
global step 11400, epoch: 1, batch: 11400, loss: 2.41344
global step 11500, epoch: 1, batch: 11500, loss: 0.73077
global step 11600, epoch: 1, batch: 11600, loss: 0.81114
global step 11700, epoch: 1, batch: 11700, loss: 1.29751
global step 11800, epoch: 1, batch: 11800, loss: 1.33166
global step 11900, epoch: 1, batch: 11900, loss: 0.89963
global step 12000, epoch: 1, batch: 12000, loss: 0.94474
global step 12100, epoch: 1, batch: 12100, loss: 1.06279
global step 12200, epoch: 1, batch: 12200, loss: 1.91975
global step 12300, epoch: 1, batch: 12300, loss: 1.00609
global step 12400, epoch: 1, batch: 12400, loss: 1.47376
global step 12500, epoch: 1, batch: 12500, loss: 1.03436
global step 12600, epoch: 1, batch: 12600, loss: 1.01267
global step 12700, epoch: 1, batch: 12700, loss: 1.22741
global step 12800, epoch: 1, batch: 12800, loss: 1.01167
global step 12900, epoch: 1, batch: 12900, loss: 2.15446
global step 13000, epoch: 1, batch: 13000, loss: 0.77935
global step 13100, epoch: 1, batch: 13100, loss: 1.25362
global step 13200, epoch: 1, batch: 13200, loss: 1.98043
global step 13300, epoch: 1, batch: 13300, loss: 1.87204
global step 13400, epoch: 1, batch: 13400, loss: 1.13598
global step 13500, epoch: 1, batch: 13500, loss: 1.03505
global step 13600, epoch: 1, batch: 13600, loss: 0.94357
global step 13700, epoch: 1, batch: 13700, loss: 0.98602
global step 13800, epoch: 1, batch: 13800, loss: 0.88241
global step 13900, epoch: 1, batch: 13900, loss: 1.53893
global step 14000, epoch: 1, batch: 14000, loss: 1.36677
global step 14100, epoch: 1, batch: 14100, loss: 1.08053
global step 14200, epoch: 1, batch: 14200, loss: 1.37873
global step 14300, epoch: 1, batch: 14300, loss: 0.66778
global step 14400, epoch: 1, batch: 14400, loss: 2.18860
global step 14500, epoch: 1, batch: 14500, loss: 1.57532
global step 14600, epoch: 1, batch: 14600, loss: 0.99812
global step 14700, epoch: 1, batch: 14700, loss: 0.86738
global step 14800, epoch: 1, batch: 14800, loss: 1.23389
global step 14900, epoch: 1, batch: 14900, loss: 1.15881
global step 15000, epoch: 1, batch: 15000, loss: 1.03445
global step 15100, epoch: 1, batch: 15100, loss: 0.88822
global step 15200, epoch: 1, batch: 15200, loss: 1.13733
global step 15300, epoch: 1, batch: 15300, loss: 1.28856
global step 15400, epoch: 1, batch: 15400, loss: 1.17445
global step 15500, epoch: 1, batch: 15500, loss: 1.28670
global step 15600, epoch: 1, batch: 15600, loss: 2.49681
global step 15700, epoch: 1, batch: 15700, loss: 1.19437
global step 15800, epoch: 1, batch: 15800, loss: 1.06376
global step 15900, epoch: 1, batch: 15900, loss: 0.98734
global step 16000, epoch: 1, batch: 16000, loss: 1.17667
global step 16100, epoch: 1, batch: 16100, loss: 1.28779
global step 16200, epoch: 1, batch: 16200, loss: 1.05283
global step 16300, epoch: 1, batch: 16300, loss: 1.62172
global step 16400, epoch: 1, batch: 16400, loss: 0.92708
global step 16500, epoch: 1, batch: 16500, loss: 0.95624
global step 16600, epoch: 1, batch: 16600, loss: 1.29848
global step 16700, epoch: 1, batch: 16700, loss: 1.27211
global step 16800, epoch: 1, batch: 16800, loss: 1.17851
global step 16900, epoch: 1, batch: 16900, loss: 1.28291
global step 17000, epoch: 1, batch: 17000, loss: 1.08720
global step 17100, epoch: 1, batch: 17100, loss: 1.08356
global step 17200, epoch: 1, batch: 17200, loss: 1.00867
Processing example: 1000
time per 1000: 11.201786994934082
Processing example: 2000
time per 1000: 11.235816478729248
Processing example: 3000
time per 1000: 10.834845066070557
Processing example: 4000
time per 1000: 11.04150128364563
Processing example: 5000
time per 1000: 11.004519701004028
Processing example: 6000
time per 1000: 11.003149509429932
Processing example: 7000
time per 1000: 11.149619340896606
{
  "exact": 56.03663613655287,
  "f1": 72.53400335174827,
  "total": 1201,
  "HasAns_exact": 56.03663613655287,
  "HasAns_f1": 72.53400335174827,
  "HasAns_total": 1201
}

问题: 本次医保范围支付多少钱?
原文: 54020292北京市医疗网珍收费票据医保已世结發部监NO财16139-54-02实时结算:★医疗机构类型:交易流水号:2411000107180415993045社会保障卡号40096415918041502915城镇工男医保类型:单价数量单位业务流水号:性别:15380等级项目/规格姓名:金额有自作数量/单位鸡7500单价中成药贸6.2Y项目规格无自付:复方甲氧那明胶/48粒23.75001/瓶12.E200西药费收都联153.8000付甲酸左氧沙星/0.116.2G00无苏黄止咳囊/Q.45g2粒76.90002/津有效遣夫不北京市财政局印制·20172收费专用道172.32自付一17232000172.32起村金额17.750.G0衣饮医保范内金狮1332.51封顶金额0.00门诊大额支付0.0自付二0.累计医供内范金额190.07退体补充支付0.00年门诊大额票计支付0.白费个人支付金额陵军补财支付0.00190.070.09本饮支付后·个人账户余额单位补充险[原公疗]支付个人账户支付0.00基金支情2合计(大写收款人收款单位(章)
答案: 172.32

问题: 9260是什么的编号?
原文: 54020292北京市医疗网珍收费票据医保已世结發部监NO财16139-54-02实时结算:★医疗机构类型:交易流水号:2411000107180415993045社会保障卡号40096415918041502915城镇工男医保类型:单价数量单位业务流水号:性别:15380等级项目/规格姓名:金额有自作数量/单位鸡7500单价中成药贸6.2Y项目规格无自付:复方甲氧那明胶/48粒23.75001/瓶12.E200西药费收都联153.8000付甲酸左氧沙星/0.116.2G00无苏黄止咳囊/Q.45g2粒76.90002/津有效遣夫不北京市财政局印制·20172收费专用道172.32自付一17232000172.32起村金额17.750.G0衣饮医保范内金狮1332.51封顶金额0.00门诊大额支付0.0自付二0.累计医供内范金额190.07退体补充支付0.00年门诊大额票计支付0.白费个人支付金额陵军补财支付0.00190.070.09本饮支付后·个人账户余额单位补充险[原公疗]支付个人账户支付0.00基金支情2合计(大写收款人收款单位(章)
答案: 收款单位

问题: 图7是表达什么的?
原文: 东莞证券DONGGUANSECURITIES盛达资源(000603)深度报告45720062003.5520042002.53200222001.5112000.52002008-01-022013-11-022015-01-022015-08-022016-03-022016-10-022017-05-022017-12-022018-07-022019-02-022008-08-022010-12-022012-02-022012-09-022013-04-022014-06-022019-09-022009-10-022010-05-022011-07-022009-03-022020-04-022222SS30202Q90010S20C20美国:所有联储银行:资产:总资产美国:国债收益率:10年美国:联邦基金利率(日)美国:所有联储银行:资产:持有证券:美国国债资料来源:wind,东莞证券研究所资料来源:wind,东莞证券研究所图7:美国国债总额迅速增加(十亿美元)图8:美元流动性危机解除280005.0025.00260004.50240004.0020.00220003.503.002000015.002.50180002.001600010.00140001.501.00120005.00100000.5080000.002012-02-022013-11-022015-01-022016-03-022011-07-022013-04-022014-06-022015-08-022016-10-022017-05-022017-12-022008-01-022010-12-022012-09-022009-10-022010-05-022018-07-022008-08-022009-03-022019-02-022019-09-022012-09-022018-07-022008-01-022009-03-022009-10-022010-05-022010-12-022011-07-022012-02-022013-04-022013-11-022014-06-022015-08-022016-03-022017-05-022017-12-022019-02-022019-09-022020-04-022015-01-022016-10-022008-08-022020-04-02美国:国债总额-LIBOR:美元:3个月-美国:国债收益率:3个月M2同比增速(季调,右轴资料来源:wind,东莞证券研究所资料来源:wind,东莞证券研究所4.2.2美元处于下行通道,驱动黄金价格上行美国在疫情未受控情况下,强行重启经济,新冠新增感染人数仍在高位,市场对美国经济修复是否通畅存有忧虑。西欧及日本疫情率先于美国得到控制,美元相对欧元、英锈走弱。美国实施规模空前的财政刺激,导致政府负债迅速攀升,美元信用度下降美元指数下行将驱动以美元计价的黄金价格走高。图9:美国新冠新增感染人数仍在高位(人/日)图10:欧、日、美新冠新增感染人数(人/日)17请务必阅读末页声明。
答案: 美国国债总额迅速增加(十亿美元)

问题: 图8是说明什么的?
原文: 东莞证券DONGGUANSECURITIES盛达资源(000603)深度报告45720062003.5520042002.53200222001.5112000.52002008-01-022013-11-022015-01-022015-08-022016-03-022016-10-022017-05-022017-12-022018-07-022019-02-022008-08-022010-12-022012-02-022012-09-022013-04-022014-06-022019-09-022009-10-022010-05-022011-07-022009-03-022020-04-022222SS30202Q90010S20C20美国:所有联储银行:资产:总资产美国:国债收益率:10年美国:联邦基金利率(日)美国:所有联储银行:资产:持有证券:美国国债资料来源:wind,东莞证券研究所资料来源:wind,东莞证券研究所图7:美国国债总额迅速增加(十亿美元)图8:美元流动性危机解除280005.0025.00260004.50240004.0020.00220003.503.002000015.002.50180002.001600010.00140001.501.00120005.00100000.5080000.002012-02-022013-11-022015-01-022016-03-022011-07-022013-04-022014-06-022015-08-022016-10-022017-05-022017-12-022008-01-022010-12-022012-09-022009-10-022010-05-022018-07-022008-08-022009-03-022019-02-022019-09-022012-09-022018-07-022008-01-022009-03-022009-10-022010-05-022010-12-022011-07-022012-02-022013-04-022013-11-022014-06-022015-08-022016-03-022017-05-022017-12-022019-02-022019-09-022020-04-022015-01-022016-10-022008-08-022020-04-02美国:国债总额-LIBOR:美元:3个月-美国:国债收益率:3个月M2同比增速(季调,右轴资料来源:wind,东莞证券研究所资料来源:wind,东莞证券研究所4.2.2美元处于下行通道,驱动黄金价格上行美国在疫情未受控情况下,强行重启经济,新冠新增感染人数仍在高位,市场对美国经济修复是否通畅存有忧虑。西欧及日本疫情率先于美国得到控制,美元相对欧元、英锈走弱。美国实施规模空前的财政刺激,导致政府负债迅速攀升,美元信用度下降美元指数下行将驱动以美元计价的黄金价格走高。图9:美国新冠新增感染人数仍在高位(人/日)图10:欧、日、美新冠新增感染人数(人/日)17请务必阅读末页声明。
答案: 美元流动性危机解除

问题: 文中上面的四张图的资料来源都是哪里?
原文: 东莞证券DONGGUANSECURITIES盛达资源(000603)深度报告45720062003.5520042002.53200222001.5112000.52002008-01-022013-11-022015-01-022015-08-022016-03-022016-10-022017-05-022017-12-022018-07-022019-02-022008-08-022010-12-022012-02-022012-09-022013-04-022014-06-022019-09-022009-10-022010-05-022011-07-022009-03-022020-04-022222SS30202Q90010S20C20美国:所有联储银行:资产:总资产美国:国债收益率:10年美国:联邦基金利率(日)美国:所有联储银行:资产:持有证券:美国国债资料来源:wind,东莞证券研究所资料来源:wind,东莞证券研究所图7:美国国债总额迅速增加(十亿美元)图8:美元流动性危机解除280005.0025.00260004.50240004.0020.00220003.503.002000015.002.50180002.001600010.00140001.501.00120005.00100000.5080000.002012-02-022013-11-022015-01-022016-03-022011-07-022013-04-022014-06-022015-08-022016-10-022017-05-022017-12-022008-01-022010-12-022012-09-022009-10-022010-05-022018-07-022008-08-022009-03-022019-02-022019-09-022012-09-022018-07-022008-01-022009-03-022009-10-022010-05-022010-12-022011-07-022012-02-022013-04-022013-11-022014-06-022015-08-022016-03-022017-05-022017-12-022019-02-022019-09-022020-04-022015-01-022016-10-022008-08-022020-04-02美国:国债总额-LIBOR:美元:3个月-美国:国债收益率:3个月M2同比增速(季调,右轴资料来源:wind,东莞证券研究所资料来源:wind,东莞证券研究所4.2.2美元处于下行通道,驱动黄金价格上行美国在疫情未受控情况下,强行重启经济,新冠新增感染人数仍在高位,市场对美国经济修复是否通畅存有忧虑。西欧及日本疫情率先于美国得到控制,美元相对欧元、英锈走弱。美国实施规模空前的财政刺激,导致政府负债迅速攀升,美元信用度下降美元指数下行将驱动以美元计价的黄金价格走高。图9:美国新冠新增感染人数仍在高位(人/日)图10:欧、日、美新冠新增感染人数(人/日)17请务必阅读末页声明。
答案: wind,东莞证券研究所

优化提示

  • 优化训练流程代码(难度低)
  • 调节模型训练的超参数(难度低)
  • 更换其他语义模型进行训练(难度低)
  • 可尝试更优的数据处理和转换的方式(难度中)
  • 自行搭建更加符合任务的模型网络(难度高)
Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐