🚀 日本小说奖励模型 - modernbert-ja-130m
该模型是基于sbintuitions/modernbert-ja-130m进行微调后创建的,用于评估日本小说质量的奖励模型。主要用于小说生成模型的强化学习等场景。通过回归预测用户对输入小说文本的评价,从而间接评估文本质量。但请注意,输出结果可能受到文本质量以外的各种偏差(如体裁、风格等)的影响。
🚀 快速开始
使用该模型前,请先安装transformers
和flash attention 2
等库。
📦 安装指南
请提前安装transformers
、flash attention 2
等依赖库。
💻 使用示例
基础用法
from transformers import pipeline
import torch
model_name = "Aratako/Japanese-Novel-Reward-modernbert-ja-130m"
classifier = pipeline("text-classification", model=model_name, tokenizer=model_name, max_length=8192, truncation=True, device_map="auto", torch_dtype=torch.float32)
text1 = """ 地球から四光年先にある惑星シルヴァは、常に緑色のオーロラが大気を覆い尽くしている。大気組成はわずかに人類が呼吸できる水準に達しており、国際恒星探査チームは着陸後すぐに小規模な調査基地を設営した。まだ未知の生物や環境リスクが多く、常時防護服を着用することが義務付けられていたが、そこには他の惑星にはない神秘的な輝きがあった。
しかし、シルヴァに到着して三週間が経過したある日、チームは周波数帯の異なる奇妙なシグナルを受信した。それは惑星の奥地から発せられているらしく、断続的に解析不可能な符号を繰り返している。始めは放電現象や地磁気の乱れと考えられたが、解析を続けるうちにそのパターンには高度な規則性があると判明した。シルヴァに原生生物がいるかは不明だったが、仮に知的生命体が存在するとすれば、このシグナルこそが最初の接触の証拠かもしれない。
未知のシグナルを探索するため、調査チームの半数は基地に残り、他の半数が地上車両で発信源を目指すことになった。たどり着くのは容易ではない。惑星の自転と軌道は不安定で、オーロラの発生源である極地帯を通らなければならないからだ。そこは強烈な電子嵐が吹き荒れ、通信が途切れるリスクも大きい。
出発してから三日目の夜、車両の通信装置に再びあの符号が流れ込んできた。しかも、これまでよりも鮮明で、かつ信号の強度が一定している。人類側の移動に合わせてシグナルが強まっているようにすら感じられた。まるで“何者か”がこちらを探り、導こうとしているかのようだった。
五日目の夕刻、車両は目的地と思われる地点に到着した。そこには巨大な結晶柱が何本も地面から突き出し、緑色のオーロラを反射してきらめいている。やがて強烈な放電光が走り、車両のモニターに無数の文字列が流れ出した。その一つひとつが、これまで受信してきた符号の断片と一致することが判明する。
「解読できないか?」
チームのエンジニアがすぐに端末に入力を開始する。すると、高度な数理アルゴリズムを経て、短い文章が浮かび上がった。
——ようこそ。我々はあなたたちを待っていた。——
一同は息をのんだ。この惑星に知的生命体が存在する可能性が高いと確信した瞬間だった。恐る恐る結晶柱へ近づくと、表面に薄く光る膜のようなものが走っているのが見えた。誰もが初めて見る未知のテクノロジーに戸惑いと興奮を隠せない。
「これは、メッセージの投影装置かもしれない。地球でいうホログラムのような……」
先ほどの一文に続き、さらに複雑な符号が走る。解読ソフトが再び動き、次々と浮かび上がる言葉に、人類は初めて“彼ら”の声を聞いた。
——この星はあらゆる音を、光として記録する。私たちはあなた方を歓迎する準備ができている。——
その瞬間、結晶柱の周囲にあった無数のオーロラが渦を巻き始め、調査チームは鮮やかな光の嵐に包まれた。リーダーの胸には、畏怖と同時に奇妙な安心感が広がっていた。やがて通信が基地へ復旧されると、結晶柱の内部に広がる未知の世界をすべて記録すべく、全人類が新たな一歩を踏み出す準備を始めるのだった。"""
text2 = """ ぼくは宇宙船に乗っていた。理由はよくわからない。とにかく、ここは狭い部屋がひとつあるだけで、窓は黒くて何も見えない。宇宙を旅しているはずだけれど、景色は真っ暗だ。食料もカプセルみたいな固いものばかりだ。あんまりおいしくない。
日常のほとんどは退屈だから、寝てばかりいる。ときどき目を覚ましてコントロールパネルを見るけど、赤や青のランプが意味もなく点滅しているだけで、何がどうなっているのかよくわからない。
船内のコンピュータと会話しようとしても、返事は「異常ナシ。航行中デス」としか言わない。何か異常があったらどうなるか、想像するのも面倒だから、そのまままた寝る。たまに重力の調整がうまくいかず、少しふわっとするけど、すぐに元に戻る。それだけだ。
ぼくは宇宙船で何をしているのか、本当によくわからない。たぶん地球に帰ることを目指しているんだろうけど、帰っても特別やることはないし、急ぐ理由も思いつかない。そういえば、いつ出発したのかも覚えていない。
ときどき通信が入ることがあるけれど、大抵は雑音だけだ。何を言っているかもわからないし、聞き返す気力もない。音声ログを再生しても「ザザ…」というノイズが続くだけで、最後に小さな声が聞こえるような気がするけど、結局意味が分からないから気にしない。
そんなわけで、今日はまた固いカプセル食をかじったあと、ぼくはベッドに倒れ込むようにして眠りについた。明日もまた同じ一日が続くと思うけれど、特に問題はない。どうせ闇しか見えない宇宙の中で、ぼくはただ一人だからだ。
宇宙って、こんなにつまらないものだったんだなと思いながら、ぼくは船内のランプが点滅するのをぼんやり眺める。それでも船はどこかへ向かって動いているらしい。目標があるのかどうかはよくわからない。"""
print(classifier([text1, text2]))
输出示例
[{'label': 'LABEL_0', 'score': 8.372932434082031}, {'label': 'LABEL_0', 'score': 6.732645034790039}]
由于训练数据的原因,输出结果预计在0到10的范围内,但也可能会出现超出该范围的异常值。
📚 详细文档
训练的超参数
训练的主要超参数如下:
属性 |
详情 |
学习率 (learning_rate ) |
5e-05 |
训练批次大小 (train_batch_size ) |
8 |
评估批次大小 (eval_batch_size ) |
8 |
随机种子 (seed ) |
42 |
梯度累积步数 (gradient_accumulation_steps ) |
2 |
总训练批次大小 (total_train_batch_size ) |
16 |
优化器 (optimizer ) |
adamw_torch |
学习率调度器类型 (lr_scheduler_type ) |
cosine_with_min_lr |
学习率调度器热身比例 (lr_scheduler_warmup_ratio ) |
0.1 |
训练轮数 (num_epochs ) |
5 |
最大长度 (max_length ) |
8192 |
训练结果
将数据划分为训练集、验证集和测试集,并采用验证损失最小的步骤对应的模型。
-
验证集数据的评估指标
- 损失 (
Loss
):1.3087
- 平均绝对误差 (
Mae
):0.8516
- 决定系数 (
R2
):0.3592
- 皮尔逊相关系数 (
Pearsonr
):0.6119
- 斯皮尔曼相关系数 (
Spearmanr
):0.6000
-
测试集数据的评估指标
- 损失 (
Loss
):1.2451
- 平均绝对误差 (
Mae
):0.8403
- 决定系数 (
R2
):0.3130
- 皮尔逊相关系数 (
Pearsonr
):0.5931
- 斯皮尔曼相关系数 (
Spearmanr
):0.5922
-
测试集数据的推理结果分布
- 散点图

- 误差分布

📄 许可证
本项目在MIT许可证下开源。
框架版本
- Transformers 4.49.0
- Pytorch 2.4.1+cu124
- Datasets 3.3.2
- Tokenizers 0.21.0