mirror of
https://github.com/RYDE-WORK/lnp_ml.git
synced 2026-07-22 05:49:55 +08:00
feat(moe): MoE + MolT5 LLM 融合层、消融流水线
This commit is contained in:
parent
cd4534f05a
commit
cd9166d63c
@ -139,6 +139,12 @@ def process_dataframe(df: pd.DataFrame) -> pd.DataFrame:
|
||||
for col in TARGET_BIODIST:
|
||||
if col in df.columns:
|
||||
df[col] = pd.to_numeric(df[col], errors="coerce").fillna(0.0)
|
||||
if all(col in df.columns for col in TARGET_BIODIST):
|
||||
bd = df[TARGET_BIODIST].values.astype(float)
|
||||
s = bd.sum(axis=1, keepdims=True)
|
||||
nz = s.squeeze(-1) > 0
|
||||
bd[nz] = bd[nz] / s[nz]
|
||||
df[TARGET_BIODIST] = bd
|
||||
|
||||
return df
|
||||
|
||||
|
||||
@ -94,6 +94,12 @@ class MultiTaskHead(nn.Module):
|
||||
# toxic: 二分类
|
||||
self.toxic_head = ClassificationHead(in_dim, num_classes=2, hidden_dim=hidden_dim, dropout=dropout)
|
||||
|
||||
# 不确定性加权(Kendall 2018):每个任务一个可学习 log σ²,初始 0
|
||||
self.log_vars = nn.ParameterDict({
|
||||
t: nn.Parameter(torch.zeros(()))
|
||||
for t in ["size", "delivery", "pdi", "ee", "toxic", "biodist"]
|
||||
})
|
||||
|
||||
def forward(self, x: torch.Tensor) -> Dict[str, torch.Tensor]:
|
||||
"""
|
||||
Args:
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import torch
|
||||
import torch.nn as nn
|
||||
import torch.nn.functional as F
|
||||
from typing import Dict, Literal, Tuple, Union
|
||||
from typing import Dict, List, Literal, Optional, Tuple, Union
|
||||
|
||||
|
||||
PoolingStrategy = Literal["concat", "avg", "max", "attention"]
|
||||
@ -109,3 +109,44 @@ class FusionLayer(nn.Module):
|
||||
if return_attn_weights:
|
||||
return out, attn_weights.squeeze(1) # [B, n_tokens]
|
||||
return out
|
||||
|
||||
|
||||
class ResidualConcatFusion(nn.Module):
|
||||
"""对真实 token 做 attention pooling,再用零初始化门把 MoE/LLM 旁路以残差方式加入。
|
||||
|
||||
g_moe / g_llm 初始为 0 → +moe/+llm 起点严格等于 baseline;
|
||||
旁路只有确实有用时才会被训练打开,从机制上保证“加了不会更差”。
|
||||
"""
|
||||
|
||||
def __init__(self, d_model: int, strategy: PoolingStrategy = "attention") -> None:
|
||||
super().__init__()
|
||||
if strategy == "concat":
|
||||
raise ValueError("ResidualConcatFusion 不支持 concat(token 数随开关变化)")
|
||||
self.d_model = d_model
|
||||
self.pool = FusionLayer(d_model=d_model, n_tokens=1, strategy=strategy)
|
||||
self.fusion_dim = self.pool.fusion_dim
|
||||
# 零初始化门控(可学习标量),旁路初始不参与
|
||||
self.g_moe = nn.Parameter(torch.zeros(()))
|
||||
self.g_llm = nn.Parameter(torch.zeros(()))
|
||||
|
||||
def forward(
|
||||
self,
|
||||
chem: torch.Tensor,
|
||||
tab: torch.Tensor,
|
||||
f_moe: Optional[torch.Tensor] = None,
|
||||
f_llm: Optional[torch.Tensor] = None,
|
||||
return_attn_weights: bool = False,
|
||||
) -> Union[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]]:
|
||||
# 只对真实 token(chem + tab)做注意力池化,旁路不参与 softmax 竞争
|
||||
seq = torch.cat([chem, tab], dim=1) # [B, n_chem + n_cond, d_model]
|
||||
pooled = self.pool(seq, return_attn_weights=return_attn_weights)
|
||||
if return_attn_weights:
|
||||
pooled, attn = pooled
|
||||
|
||||
out = pooled
|
||||
if f_moe is not None:
|
||||
out = out + self.g_moe * f_moe # 残差 + 零初始化门
|
||||
if f_llm is not None:
|
||||
out = out + self.g_llm * f_llm
|
||||
|
||||
return (out, attn) if return_attn_weights else out
|
||||
104
lnp_ml/modeling/layers/llm_prompt.py
Normal file
104
lnp_ml/modeling/layers/llm_prompt.py
Normal file
@ -0,0 +1,104 @@
|
||||
"""LLM 分子特征分支:用 MolT5 直接编码 SMILES 文本。"""
|
||||
|
||||
import os
|
||||
from typing import Dict, List, Optional
|
||||
|
||||
import torch
|
||||
import torch.nn as nn
|
||||
|
||||
|
||||
# 权重默认路径,可用环境变量 MOLT5_PATH 覆盖
|
||||
DEFAULT_MOLT5_PATH = os.environ.get("MOLT5_PATH", "models/molt5-base")
|
||||
|
||||
|
||||
class LLMPromptEncoder(nn.Module):
|
||||
"""用 MolT5 编码 SMILES 文本,输出分子特征 F_llm [B, d_model]。
|
||||
|
||||
- 冻结 encoder 时:对每个 SMILES 缓存其句向量,避免重复前向,降方差、提速。
|
||||
- use_lora=True 时:encoder 可训练(LoRA),不缓存。
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
d_model: int,
|
||||
n_chem_tokens: int = 4,
|
||||
n_cond_tokens: int = 4,
|
||||
model_name_or_path: str = DEFAULT_MOLT5_PATH,
|
||||
freeze: bool = True,
|
||||
use_lora: bool = False,
|
||||
lora_r: int = 8,
|
||||
lora_alpha: int = 16,
|
||||
lora_dropout: float = 0.05,
|
||||
max_length: int = 128,
|
||||
) -> None:
|
||||
super().__init__()
|
||||
from transformers import AutoTokenizer, T5EncoderModel
|
||||
|
||||
self.use_lora = use_lora
|
||||
self.max_length = max_length
|
||||
self.tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
|
||||
self.encoder = T5EncoderModel.from_pretrained(model_name_or_path)
|
||||
self.hidden_size = self.encoder.config.d_model
|
||||
|
||||
if use_lora:
|
||||
self._apply_lora(lora_r, lora_alpha, lora_dropout)
|
||||
elif freeze:
|
||||
for p in self.encoder.parameters():
|
||||
p.requires_grad = False
|
||||
self._frozen = freeze and not use_lora
|
||||
|
||||
self.proj_down = nn.Sequential(
|
||||
nn.Linear(self.hidden_size, d_model), nn.LayerNorm(d_model)
|
||||
)
|
||||
# 冻结特征缓存:smiles -> [H](CPU)
|
||||
self._cache: Dict[str, torch.Tensor] = {}
|
||||
|
||||
def _apply_lora(self, r: int, alpha: int, dropout: float) -> None:
|
||||
from peft import LoraConfig, get_peft_model
|
||||
|
||||
for p in self.encoder.parameters():
|
||||
p.requires_grad = False
|
||||
cfg = LoraConfig(
|
||||
r=r, lora_alpha=alpha, lora_dropout=dropout,
|
||||
target_modules=["q", "k", "v", "o"], bias="none",
|
||||
)
|
||||
self.encoder = get_peft_model(self.encoder, cfg)
|
||||
|
||||
def _mean_pool(self, last_hidden: torch.Tensor, mask: torch.Tensor) -> torch.Tensor:
|
||||
m = mask.unsqueeze(-1).float() # [B, L, 1]
|
||||
return (last_hidden * m).sum(1) / m.sum(1).clamp(min=1e-6)
|
||||
|
||||
@torch.no_grad()
|
||||
def _encode_frozen(self, smiles: List[str], device: torch.device) -> torch.Tensor:
|
||||
missing = [s for s in smiles if s not in self._cache]
|
||||
if missing:
|
||||
uniq = list(dict.fromkeys(missing))
|
||||
for i in range(0, len(uniq), 256):
|
||||
chunk = uniq[i:i + 256]
|
||||
enc = self.tokenizer(
|
||||
chunk, padding=True, truncation=True,
|
||||
max_length=self.max_length, return_tensors="pt",
|
||||
).to(device)
|
||||
out = self.encoder(**enc).last_hidden_state
|
||||
pooled = self._mean_pool(out, enc["attention_mask"])
|
||||
for s, v in zip(chunk, pooled):
|
||||
self._cache[s] = v.cpu()
|
||||
return torch.stack([self._cache[s] for s in smiles]).to(device)
|
||||
|
||||
def _encode_trainable(self, smiles: List[str], device: torch.device) -> torch.Tensor:
|
||||
enc = self.tokenizer(
|
||||
list(smiles), padding=True, truncation=True,
|
||||
max_length=self.max_length, return_tensors="pt",
|
||||
).to(device)
|
||||
out = self.encoder(**enc).last_hidden_state
|
||||
return self._mean_pool(out, enc["attention_mask"])
|
||||
|
||||
def forward(self, smiles: List[str], tab: Optional[torch.Tensor] = None) -> torch.Tensor:
|
||||
"""Args: smiles [B] SMILES 字符串列表。Returns: [B, d_model]。"""
|
||||
device = self.proj_down[0].weight.device
|
||||
feat = self._encode_frozen(smiles, device) if self._frozen \
|
||||
else self._encode_trainable(smiles, device)
|
||||
return self.proj_down(feat)
|
||||
|
||||
def clear_cache(self) -> None:
|
||||
self._cache.clear()
|
||||
123
lnp_ml/modeling/layers/set_transformer.py
Normal file
123
lnp_ml/modeling/layers/set_transformer.py
Normal file
@ -0,0 +1,123 @@
|
||||
"""Set Transformer 集合编码器。
|
||||
输入/输出形状均为 [B, n_tokens, d_model],
|
||||
n_tokens 可变(支持 3 或 4)。
|
||||
"""
|
||||
|
||||
import torch
|
||||
import torch.nn as nn
|
||||
|
||||
|
||||
class MAB(nn.Module):
|
||||
"""多头注意力块:MAB(Q, K) = LN(H + FFN(H)),H = LN(Q + MultiHeadAttn(Q, K, K))。"""
|
||||
|
||||
def __init__(self, d_model: int, num_heads: int, dropout: float = 0.1, ln: bool = True) -> None:
|
||||
super().__init__()
|
||||
assert d_model % num_heads == 0, "d_model 必须能被 num_heads 整除"
|
||||
self.attn = nn.MultiheadAttention(
|
||||
d_model, num_heads, dropout=dropout, batch_first=True
|
||||
)
|
||||
self.norm1 = nn.LayerNorm(d_model) if ln else nn.Identity()
|
||||
self.norm2 = nn.LayerNorm(d_model) if ln else nn.Identity()
|
||||
self.ffn = nn.Sequential(
|
||||
nn.Linear(d_model, d_model * 4),
|
||||
nn.GELU(),
|
||||
nn.Dropout(dropout),
|
||||
nn.Linear(d_model * 4, d_model),
|
||||
nn.Dropout(dropout),
|
||||
)
|
||||
|
||||
def forward(self, q: torch.Tensor, k: torch.Tensor) -> torch.Tensor:
|
||||
"""
|
||||
Args:
|
||||
q: [B, n_q, d_model]
|
||||
k: [B, n_k, d_model]
|
||||
|
||||
Returns:
|
||||
[B, n_q, d_model]
|
||||
"""
|
||||
attn_out, _ = self.attn(q, k, k)
|
||||
h = self.norm1(q + attn_out)
|
||||
return self.norm2(h + self.ffn(h))
|
||||
|
||||
|
||||
class SAB(nn.Module):
|
||||
"""集合自注意力块:SAB(X) = MAB(X, X)。"""
|
||||
|
||||
def __init__(self, d_model: int, num_heads: int, dropout: float = 0.1, ln: bool = True) -> None:
|
||||
super().__init__()
|
||||
self.mab = MAB(d_model, num_heads, dropout, ln)
|
||||
|
||||
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
||||
"""[B, n, d_model] -> [B, n, d_model]"""
|
||||
return self.mab(x, x)
|
||||
|
||||
|
||||
class ISAB(nn.Module):
|
||||
"""诱导点集合注意力块:用 m 个可学习诱导点降低大集合的注意力复杂度。"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
d_model: int,
|
||||
num_heads: int,
|
||||
num_inducing: int = 16,
|
||||
dropout: float = 0.1,
|
||||
ln: bool = True,
|
||||
) -> None:
|
||||
super().__init__()
|
||||
# 可学习诱导点
|
||||
self.inducing = nn.Parameter(torch.empty(1, num_inducing, d_model))
|
||||
nn.init.xavier_uniform_(self.inducing)
|
||||
self.mab_in = MAB(d_model, num_heads, dropout, ln)
|
||||
self.mab_out = MAB(d_model, num_heads, dropout, ln)
|
||||
|
||||
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
||||
"""[B, n, d_model] -> [B, n, d_model]"""
|
||||
inducing = self.inducing.expand(x.size(0), -1, -1) # [B, m, d_model]
|
||||
h = self.mab_in(inducing, x) # [B, m, d_model]
|
||||
return self.mab_out(x, h) # [B, n, d_model]
|
||||
|
||||
|
||||
class SetTransformer(nn.Module):
|
||||
"""对化学 token 集合做 N 层集合自注意力,形状保持 [B, n_tokens, d_model]。"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
d_model: int,
|
||||
num_heads: int = 8,
|
||||
n_layers: int = 4,
|
||||
dropout: float = 0.1,
|
||||
block: str = "sab",
|
||||
num_inducing: int = 16,
|
||||
ln: bool = True,
|
||||
) -> None:
|
||||
"""
|
||||
Args:
|
||||
d_model: token 维度
|
||||
num_heads: 注意力头数,d_head = d_model / num_heads
|
||||
n_layers: 集合注意力层数
|
||||
dropout: dropout 比例
|
||||
block: 注意力块类型,"sab"(全自注意力)或 "isab"(诱导点)
|
||||
num_inducing: ISAB 的诱导点数量(block="isab" 时生效)
|
||||
ln: 是否使用 LayerNorm
|
||||
"""
|
||||
super().__init__()
|
||||
self.block_type = block
|
||||
|
||||
self.layers = nn.ModuleList()
|
||||
for _ in range(n_layers):
|
||||
if block == "isab":
|
||||
self.layers.append(ISAB(d_model, num_heads, num_inducing, dropout, ln))
|
||||
else:
|
||||
self.layers.append(SAB(d_model, num_heads, dropout, ln))
|
||||
|
||||
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
||||
"""
|
||||
Args:
|
||||
x: [B, n_tokens, d_model] 化学 token 集合
|
||||
|
||||
Returns:
|
||||
[B, n_tokens, d_model] 集合编码后的 token
|
||||
"""
|
||||
for layer in self.layers:
|
||||
x = layer(x)
|
||||
return x
|
||||
@ -5,14 +5,21 @@ import torch.nn as nn
|
||||
from typing import Dict, List, Optional, Literal
|
||||
|
||||
from lnp_ml.modeling.encoders import CachedRDKitEncoder, CachedMPNNEncoder
|
||||
from lnp_ml.modeling.layers import TokenProjector, CrossModalAttention, FusionLayer, MoEBlock
|
||||
from lnp_ml.modeling.layers import (
|
||||
TokenProjector,
|
||||
SetTransformer,
|
||||
ResidualConcatFusion,
|
||||
MoEBlock,
|
||||
LLMPromptEncoder,
|
||||
)
|
||||
from lnp_ml.modeling.layers.llm_prompt import DEFAULT_MOLT5_PATH
|
||||
from lnp_ml.modeling.heads import MultiTaskHead
|
||||
|
||||
|
||||
PoolingStrategy = Literal["concat", "avg", "max", "attention"]
|
||||
PoolingStrategy = Literal["attention", "avg", "max"]
|
||||
|
||||
|
||||
# Token 维度配置(根据 ARCHITECTURE.md)
|
||||
# Token 维度配置
|
||||
DEFAULT_INPUT_DIMS = {
|
||||
# Channel A: 化学特征
|
||||
"mpnn": 600, # D-MPNN embedding
|
||||
@ -26,8 +33,21 @@ DEFAULT_INPUT_DIMS = {
|
||||
"exp": 32, # 实验条件 one-hot
|
||||
}
|
||||
|
||||
# Token 顺序(前 4 个为 Channel A,后 4 个为 Channel B)
|
||||
TOKEN_ORDER = ["mpnn", "morgan", "maccs", "desc", "comp", "phys", "help", "exp"]
|
||||
# 化学 / 配方 token 的键顺序
|
||||
CHEM_KEYS_WITH_MPNN = ["mpnn", "morgan", "maccs", "desc"]
|
||||
CHEM_KEYS_NO_MPNN = ["morgan", "maccs", "desc"]
|
||||
TAB_KEYS = ["comp", "phys", "help", "exp"]
|
||||
|
||||
# backbone 权重前缀(用于预训练加载与导出)
|
||||
BACKBONE_PREFIXES = (
|
||||
"token_projector.",
|
||||
"set_transformer.",
|
||||
"fusion.",
|
||||
"moe.",
|
||||
"llm_prompt.",
|
||||
)
|
||||
# 冻结的 MolT5 encoder 权重前缀,不纳入 backbone(由本地权重加载,不进 checkpoint)
|
||||
LLM_FROZEN_PREFIX = "llm_prompt.encoder."
|
||||
|
||||
|
||||
class LNPModel(nn.Module):
|
||||
@ -37,37 +57,47 @@ class LNPModel(nn.Module):
|
||||
架构流程:
|
||||
1. Encoders: SMILES -> 化学特征; tabular -> 配方/实验特征
|
||||
2. TokenProjector: 统一到 d_model
|
||||
3. Stack: [B, 8, d_model]
|
||||
4. CrossModalAttention: Channel A (化学) <-> Channel B (配方/实验)
|
||||
5. FusionLayer: [B, 8, d_model] -> [B, fusion_dim]
|
||||
6. MultiTaskHead: 多任务预测
|
||||
3. SetTransformer: 对化学 token 集合做置换等变编码 -> chem'
|
||||
4. MoE (可选): router 看 tab,expert 吃 chem' -> F_moe
|
||||
5. LLM (可选): chem'/tab 注入 MolT5 prompt -> F_llm
|
||||
6. ResidualConcatFusion: 拼接 chem'/tab/F_moe/F_llm -> attention pooling
|
||||
7. MultiTaskHead: 多任务预测
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
# 模型维度
|
||||
d_model: int = 256,
|
||||
# Cross attention
|
||||
# Set Transformer
|
||||
num_heads: int = 8,
|
||||
n_attn_layers: int = 4,
|
||||
set_transformer_block: str = "sab",
|
||||
# Fusion
|
||||
fusion_strategy: PoolingStrategy = "attention",
|
||||
# Head
|
||||
head_hidden_dim: int = 128,
|
||||
# Dropout
|
||||
dropout: float = 0.1,
|
||||
# MPNN encoder (可选,如果不用 MPNN 可以设为 None)
|
||||
# MPNN encoder
|
||||
mpnn_checkpoint: Optional[str] = None,
|
||||
mpnn_ensemble_paths: Optional[List[str]] = None,
|
||||
mpnn_device: str = "cpu",
|
||||
# 输入维度配置
|
||||
input_dims: Optional[Dict[str, int]] = None,
|
||||
# ============ MoE 相关(新增) ============
|
||||
# ============ MoE 相关 ============
|
||||
use_moe: bool = False,
|
||||
moe_n_experts: int = 4,
|
||||
moe_top_k: int = 2,
|
||||
moe_expert_hidden_mult: int = 2,
|
||||
moe_jitter_noise: float = 0.0,
|
||||
# ============ LLM 相关 ============
|
||||
use_llm: bool = False,
|
||||
llm_model_path: str = DEFAULT_MOLT5_PATH,
|
||||
llm_freeze: bool = True,
|
||||
llm_use_lora: bool = False,
|
||||
llm_lora_r: int = 8,
|
||||
llm_lora_alpha: int = 16,
|
||||
llm_lora_dropout: float = 0.05,
|
||||
) -> None:
|
||||
super().__init__()
|
||||
|
||||
@ -76,10 +106,7 @@ class LNPModel(nn.Module):
|
||||
self.use_mpnn = mpnn_checkpoint is not None or mpnn_ensemble_paths is not None
|
||||
|
||||
# ============ Encoders ============
|
||||
# RDKit encoder (always used)
|
||||
self.rdkit_encoder = CachedRDKitEncoder()
|
||||
|
||||
# MPNN encoder (optional)
|
||||
if self.use_mpnn:
|
||||
self.mpnn_encoder = CachedMPNNEncoder(
|
||||
checkpoint_path=mpnn_checkpoint,
|
||||
@ -90,27 +117,28 @@ class LNPModel(nn.Module):
|
||||
self.mpnn_encoder = None
|
||||
|
||||
# ============ Token Projector ============
|
||||
# 根据是否使用 MPNN 调整输入维度
|
||||
proj_input_dims = {k: v for k, v in self.input_dims.items()}
|
||||
if not self.use_mpnn:
|
||||
proj_input_dims.pop("mpnn", None)
|
||||
|
||||
self.token_projector = TokenProjector(
|
||||
input_dims=proj_input_dims,
|
||||
d_model=d_model,
|
||||
dropout=dropout,
|
||||
)
|
||||
|
||||
# ============ Cross Modal Attention ============
|
||||
n_tokens = 8 if self.use_mpnn else 7
|
||||
split_idx = 4 if self.use_mpnn else 3 # Channel A 的 token 数量
|
||||
# token 顺序与化学侧 token 数
|
||||
self.chem_keys = CHEM_KEYS_WITH_MPNN if self.use_mpnn else CHEM_KEYS_NO_MPNN
|
||||
self.tab_keys = TAB_KEYS
|
||||
self.token_order = self.chem_keys + self.tab_keys
|
||||
self.split_idx = len(self.chem_keys)
|
||||
|
||||
self.cross_attention = CrossModalAttention(
|
||||
# ============ Set Transformer ============
|
||||
self.set_transformer = SetTransformer(
|
||||
d_model=d_model,
|
||||
num_heads=num_heads,
|
||||
n_layers=n_attn_layers,
|
||||
split_idx=split_idx,
|
||||
dropout=dropout,
|
||||
block=set_transformer_block,
|
||||
)
|
||||
|
||||
# ============ MoE Block (可选) ============
|
||||
@ -119,24 +147,35 @@ class LNPModel(nn.Module):
|
||||
if use_moe:
|
||||
self.moe = MoEBlock(
|
||||
d_model=d_model,
|
||||
n_chem_tokens=split_idx,
|
||||
n_chem_tokens=self.split_idx,
|
||||
n_experts=moe_n_experts,
|
||||
top_k=moe_top_k,
|
||||
expert_hidden_mult=moe_expert_hidden_mult,
|
||||
dropout=dropout,
|
||||
jitter_noise=moe_jitter_noise,
|
||||
)
|
||||
n_fusion_tokens = n_tokens + 1 # 多一个 F_moe token
|
||||
else:
|
||||
self.moe = None
|
||||
n_fusion_tokens = n_tokens
|
||||
|
||||
# ============ Fusion Layer ============
|
||||
self.fusion = FusionLayer(
|
||||
d_model=d_model,
|
||||
n_tokens=n_fusion_tokens,
|
||||
strategy=fusion_strategy,
|
||||
)
|
||||
# ============ LLM Prompt (可选) ============
|
||||
self.use_llm = use_llm
|
||||
if use_llm:
|
||||
self.llm_prompt = LLMPromptEncoder(
|
||||
d_model=d_model,
|
||||
n_chem_tokens=self.split_idx,
|
||||
n_cond_tokens=len(self.tab_keys),
|
||||
model_name_or_path=llm_model_path,
|
||||
freeze=llm_freeze,
|
||||
use_lora=llm_use_lora,
|
||||
lora_r=llm_lora_r,
|
||||
lora_alpha=llm_lora_alpha,
|
||||
lora_dropout=llm_lora_dropout,
|
||||
)
|
||||
else:
|
||||
self.llm_prompt = None
|
||||
|
||||
# ============ Residual Concat + Fusion ============
|
||||
self.fusion = ResidualConcatFusion(d_model=d_model, strategy=fusion_strategy)
|
||||
|
||||
# ============ Multi-Task Head ============
|
||||
self.head = MultiTaskHead(
|
||||
@ -151,70 +190,51 @@ class LNPModel(nn.Module):
|
||||
tabular: Dict[str, torch.Tensor],
|
||||
) -> torch.Tensor:
|
||||
"""
|
||||
内部方法:编码 SMILES 和 tabular,返回 stacked tokens。
|
||||
编码 SMILES 和 tabular,返回 stacked tokens。
|
||||
|
||||
Returns:
|
||||
stacked: [B, n_tokens, d_model]
|
||||
stacked: [B, n_tokens, d_model],顺序为 chem 在前、tab 在后
|
||||
"""
|
||||
# 获取目标设备(从 tabular 数据推断)
|
||||
device = tabular["comp"].device
|
||||
|
||||
# 1. Encode SMILES
|
||||
rdkit_features = self.rdkit_encoder(smiles) # {"morgan", "maccs", "desc"}
|
||||
rdkit_features = self.rdkit_encoder(smiles)
|
||||
|
||||
# 2. 合并所有特征
|
||||
all_features: Dict[str, torch.Tensor] = {}
|
||||
|
||||
# MPNN 特征(如果启用)
|
||||
if self.use_mpnn:
|
||||
mpnn_features = self.mpnn_encoder(smiles)
|
||||
all_features["mpnn"] = mpnn_features["mpnn"].to(device)
|
||||
|
||||
# RDKit 特征(移到正确设备)
|
||||
all_features["morgan"] = rdkit_features["morgan"].to(device)
|
||||
all_features["maccs"] = rdkit_features["maccs"].to(device)
|
||||
all_features["desc"] = rdkit_features["desc"].to(device)
|
||||
|
||||
# Tabular 特征(已在正确设备上)
|
||||
all_features["comp"] = tabular["comp"]
|
||||
all_features["phys"] = tabular["phys"]
|
||||
all_features["help"] = tabular["help"]
|
||||
all_features["exp"] = tabular["exp"]
|
||||
|
||||
# 3. Token Projector: 统一维度
|
||||
projected = self.token_projector(all_features) # Dict[str, [B, d_model]]
|
||||
|
||||
# 4. Stack tokens: [B, n_tokens, d_model]
|
||||
if self.use_mpnn:
|
||||
token_order = ["mpnn", "morgan", "maccs", "desc", "comp", "phys", "help", "exp"]
|
||||
else:
|
||||
token_order = ["morgan", "maccs", "desc", "comp", "phys", "help", "exp"]
|
||||
|
||||
stacked = torch.stack([projected[k] for k in token_order], dim=1)
|
||||
projected = self.token_projector(all_features)
|
||||
stacked = torch.stack([projected[k] for k in self.token_order], dim=1)
|
||||
return stacked
|
||||
|
||||
def _attended_with_moe(self, stacked: torch.Tensor) -> torch.Tensor:
|
||||
"""
|
||||
Cross-attention + 可选 MoE 旁路 → fusion 输入序列。
|
||||
def _backbone_from_stacked(
|
||||
self, stacked: torch.Tensor, smiles: Optional[List[str]] = None
|
||||
) -> torch.Tensor:
|
||||
chem = stacked[:, : self.split_idx, :]
|
||||
tab = stacked[:, self.split_idx :, :]
|
||||
|
||||
- 不启用 MoE 时:返回 [B, n_tokens, d],与原行为一致。
|
||||
- 启用 MoE 时:在最后追加一个 F_moe token,返回 [B, n_tokens + 1, d]。
|
||||
chem = self.set_transformer(chem) # chem'
|
||||
|
||||
副作用:
|
||||
把本次 forward 的 MoE 副产物(aux loss / gates / probs)写到
|
||||
self._last_moe_extras,trainer 端通过 get_last_moe_extras() 读取。
|
||||
"""
|
||||
attended = self.cross_attention(stacked)
|
||||
f_moe = None
|
||||
if self.moe is not None:
|
||||
split = self.cross_attention.split_idx
|
||||
chem_prime = attended[:, :split, :]
|
||||
tab_prime = attended[:, split:, :]
|
||||
F_moe, extras = self.moe(chem_prime, tab_prime)
|
||||
f_moe, extras = self.moe(chem, tab)
|
||||
self._last_moe_extras = extras
|
||||
attended = torch.cat([attended, F_moe.unsqueeze(1)], dim=1)
|
||||
else:
|
||||
self._last_moe_extras = None
|
||||
return attended
|
||||
|
||||
f_llm = None
|
||||
if self.llm_prompt is not None and smiles is not None:
|
||||
f_llm = self.llm_prompt(smiles)
|
||||
|
||||
return self.fusion(chem, tab, f_moe=f_moe, f_llm=f_llm)
|
||||
|
||||
def forward_from_projected(
|
||||
self,
|
||||
@ -225,15 +245,13 @@ class LNPModel(nn.Module):
|
||||
从已投影的 stacked tokens 开始 forward,用于 Captum 归因。
|
||||
|
||||
Args:
|
||||
stacked: [B, n_tokens, d_model] TokenProjector 输出后 stack 的张量。
|
||||
task: 指定单任务名 ("size", "pdi", "ee", "delivery", "biodist", "toxic")。
|
||||
若为 None,返回 delivery head 的标量输出。
|
||||
stacked: [B, n_tokens, d_model]
|
||||
task: 单任务名;None 时返回 delivery head 输出。
|
||||
|
||||
Returns:
|
||||
[B, 1] 或 [B, num_classes] 对应任务的预测输出。
|
||||
对应任务的预测输出。
|
||||
"""
|
||||
attended = self._attended_with_moe(stacked)
|
||||
fused = self.fusion(attended)
|
||||
fused = self._backbone_from_stacked(stacked)
|
||||
|
||||
if task is None:
|
||||
task = "delivery"
|
||||
@ -259,19 +277,10 @@ class LNPModel(nn.Module):
|
||||
用原始特征替换 base_projected 中指定 token 的投影,然后 forward。
|
||||
|
||||
用于对单个 token 内部特征做 Captum 归因(如 desc 的 210 维)。
|
||||
|
||||
Args:
|
||||
raw_feature: [B, input_dim] 某个 token 的原始特征
|
||||
feature_key: token 名称,如 "desc"
|
||||
base_projected: [B, n_tokens, d_model] 其他 token 已投影好的张量
|
||||
task: 任务名
|
||||
|
||||
Returns:
|
||||
对应任务的预测输出
|
||||
"""
|
||||
projected = self.token_projector.projectors[feature_key](raw_feature)
|
||||
gate = torch.sigmoid(self.token_projector.weights[feature_key])
|
||||
projected = projected * gate # [B, d_model]
|
||||
projected = projected * gate
|
||||
|
||||
token_order = list(self.token_projector.keys)
|
||||
token_idx = token_order.index(feature_key)
|
||||
@ -286,38 +295,16 @@ class LNPModel(nn.Module):
|
||||
smiles: List[str],
|
||||
tabular: Dict[str, torch.Tensor],
|
||||
) -> torch.Tensor:
|
||||
"""
|
||||
Backbone forward:编码 -> 投影 -> 注意力 -> (可选 MoE) -> 融合,不经过任务头。
|
||||
|
||||
用于 pretrain 阶段或需要提取特征的场景。
|
||||
|
||||
Args:
|
||||
smiles: SMILES 字符串列表,长度为 B
|
||||
tabular: Dict[str, Tensor]
|
||||
|
||||
Returns:
|
||||
fused: [B, fusion_dim] 融合后的特征向量
|
||||
"""
|
||||
"""Backbone forward:编码 -> 投影 -> set transformer -> (MoE/LLM) -> 融合。"""
|
||||
stacked = self._encode_and_project(smiles, tabular)
|
||||
attended = self._attended_with_moe(stacked)
|
||||
fused = self.fusion(attended)
|
||||
return fused
|
||||
return self._backbone_from_stacked(stacked, smiles=smiles)
|
||||
|
||||
def forward_delivery(
|
||||
self,
|
||||
smiles: List[str],
|
||||
tabular: Dict[str, torch.Tensor],
|
||||
) -> torch.Tensor:
|
||||
"""
|
||||
仅预测 delivery(用于 pretrain)。
|
||||
|
||||
Args:
|
||||
smiles: SMILES 字符串列表,长度为 B
|
||||
tabular: Dict[str, Tensor]
|
||||
|
||||
Returns:
|
||||
delivery: [B, 1] 预测的 delivery 值
|
||||
"""
|
||||
"""仅预测 delivery(用于 pretrain)。返回 [B, 1]。"""
|
||||
fused = self.forward_backbone(smiles, tabular)
|
||||
return self.head.delivery_head(fused)
|
||||
|
||||
@ -329,52 +316,33 @@ class LNPModel(nn.Module):
|
||||
"""
|
||||
完整的多任务 forward。
|
||||
|
||||
Args:
|
||||
smiles: SMILES 字符串列表,长度为 B
|
||||
tabular: Dict[str, Tensor],包含:
|
||||
- "comp": [B, 5] 配方比例
|
||||
- "phys": [B, 12] 物理参数
|
||||
- "help": [B, 4] Helper lipid
|
||||
- "exp": [B, 32] 实验条件
|
||||
|
||||
Returns:
|
||||
Dict[str, Tensor]:
|
||||
- "size": [B, 1]
|
||||
- "pdi": [B, 4]
|
||||
- "ee": [B, 3]
|
||||
- "delivery": [B, 1]
|
||||
- "biodist": [B, 7]
|
||||
- "toxic": [B, 2]
|
||||
Dict[str, Tensor]: size [B,1], pdi [B,4], ee [B,3],
|
||||
delivery [B,1], biodist [B,7], toxic [B,2]
|
||||
"""
|
||||
fused = self.forward_backbone(smiles, tabular)
|
||||
outputs = self.head(fused)
|
||||
return outputs
|
||||
return self.head(fused)
|
||||
|
||||
def clear_cache(self) -> None:
|
||||
"""清空所有 encoder 的缓存"""
|
||||
self.rdkit_encoder.clear_cache()
|
||||
if self.mpnn_encoder is not None:
|
||||
self.mpnn_encoder.clear_cache()
|
||||
if self.llm_prompt is not None and hasattr(self.llm_prompt, "clear_cache"):
|
||||
self.llm_prompt.clear_cache()
|
||||
|
||||
def get_last_moe_extras(self) -> Optional[Dict[str, torch.Tensor]]:
|
||||
"""返回最近一次 forward 中 MoE 模块的副产物(aux loss、gates、probs)。
|
||||
|
||||
若未启用 MoE 或还未调用过 forward,返回 None。
|
||||
"""
|
||||
"""返回最近一次 forward 中 MoE 模块的副产物(aux loss、gates、probs)。"""
|
||||
return self._last_moe_extras
|
||||
|
||||
def get_backbone_state_dict(self) -> Dict[str, torch.Tensor]:
|
||||
"""
|
||||
获取 backbone 部分的 state_dict(不含任务头)。
|
||||
|
||||
包含: token_projector, cross_attention, fusion,以及(启用时)moe。
|
||||
获取 backbone 部分的 state_dict(不含任务头,且排除冻结的 MolT5 encoder)。
|
||||
"""
|
||||
backbone_prefixes = ("token_projector.", "cross_attention.", "fusion.", "moe.")
|
||||
backbone_keys = [
|
||||
name for name in self.state_dict().keys()
|
||||
if name.startswith(backbone_prefixes)
|
||||
]
|
||||
return {k: v for k, v in self.state_dict().items() if k in backbone_keys}
|
||||
return {
|
||||
k: v for k, v in self.state_dict().items()
|
||||
if k.startswith(BACKBONE_PREFIXES) and not k.startswith(LLM_FROZEN_PREFIX)
|
||||
}
|
||||
|
||||
def get_delivery_head_state_dict(self) -> Dict[str, torch.Tensor]:
|
||||
"""获取 delivery head 的 state_dict"""
|
||||
@ -392,16 +360,11 @@ class LNPModel(nn.Module):
|
||||
"""
|
||||
从预训练 checkpoint 加载 backbone 和(可选)delivery head 权重。
|
||||
|
||||
Args:
|
||||
pretrain_state_dict: 预训练模型的 state_dict
|
||||
load_delivery_head: 是否加载 delivery head 权重
|
||||
strict: 是否严格匹配(默认 False,允许缺失/多余的键)
|
||||
冻结的 MolT5 encoder 权重不在加载范围内。
|
||||
"""
|
||||
backbone_prefixes = ("token_projector.", "cross_attention.", "fusion.", "moe.")
|
||||
|
||||
keys_to_load = []
|
||||
for name in pretrain_state_dict.keys():
|
||||
if name.startswith(backbone_prefixes):
|
||||
if name.startswith(BACKBONE_PREFIXES) and not name.startswith(LLM_FROZEN_PREFIX):
|
||||
keys_to_load.append(name)
|
||||
elif load_delivery_head and name.startswith("head.delivery_head."):
|
||||
keys_to_load.append(name)
|
||||
@ -410,45 +373,49 @@ class LNPModel(nn.Module):
|
||||
k: v for k, v in pretrain_state_dict.items() if k in keys_to_load
|
||||
}
|
||||
|
||||
missing, unexpected = [], []
|
||||
unexpected = []
|
||||
model_state = self.state_dict()
|
||||
for k, v in filtered_state_dict.items():
|
||||
if k in model_state:
|
||||
if model_state[k].shape == v.shape:
|
||||
model_state[k] = v
|
||||
else:
|
||||
unexpected.append(
|
||||
f"{k} (shape mismatch: {model_state[k].shape} vs {v.shape})"
|
||||
)
|
||||
if k in model_state and model_state[k].shape == v.shape:
|
||||
model_state[k] = v
|
||||
else:
|
||||
unexpected.append(k)
|
||||
|
||||
|
||||
self.load_state_dict(model_state, strict=False)
|
||||
|
||||
if strict and (missing or unexpected):
|
||||
raise RuntimeError(f"Missing keys: {missing}, Unexpected keys: {unexpected}")
|
||||
if strict and unexpected:
|
||||
raise RuntimeError(f"Unexpected keys: {unexpected}")
|
||||
|
||||
|
||||
class LNPModelWithoutMPNN(LNPModel):
|
||||
"""不使用 MPNN 的简化版本"""
|
||||
"""不使用 MPNN 的简化版本(化学 token 为 3 个)"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
d_model: int = 256,
|
||||
num_heads: int = 8,
|
||||
n_attn_layers: int = 4,
|
||||
set_transformer_block: str = "sab",
|
||||
fusion_strategy: PoolingStrategy = "attention",
|
||||
head_hidden_dim: int = 128,
|
||||
dropout: float = 0.1,
|
||||
input_dims: Optional[Dict[str, int]] = None,
|
||||
# ============ MoE 相关(新增) ============
|
||||
# ============ MoE 相关 ============
|
||||
use_moe: bool = False,
|
||||
moe_n_experts: int = 4,
|
||||
moe_top_k: int = 2,
|
||||
moe_expert_hidden_mult: int = 2,
|
||||
moe_jitter_noise: float = 0.0,
|
||||
# ============ LLM 相关 ============
|
||||
use_llm: bool = False,
|
||||
llm_model_path: str = DEFAULT_MOLT5_PATH,
|
||||
llm_freeze: bool = True,
|
||||
llm_use_lora: bool = False,
|
||||
llm_lora_r: int = 8,
|
||||
llm_lora_alpha: int = 16,
|
||||
llm_lora_dropout: float = 0.05,
|
||||
) -> None:
|
||||
# 移除 mpnn 维度
|
||||
dims = input_dims or DEFAULT_INPUT_DIMS.copy()
|
||||
dims.pop("mpnn", None)
|
||||
|
||||
@ -456,6 +423,7 @@ class LNPModelWithoutMPNN(LNPModel):
|
||||
d_model=d_model,
|
||||
num_heads=num_heads,
|
||||
n_attn_layers=n_attn_layers,
|
||||
set_transformer_block=set_transformer_block,
|
||||
fusion_strategy=fusion_strategy,
|
||||
head_hidden_dim=head_hidden_dim,
|
||||
dropout=dropout,
|
||||
@ -467,5 +435,11 @@ class LNPModelWithoutMPNN(LNPModel):
|
||||
moe_top_k=moe_top_k,
|
||||
moe_expert_hidden_mult=moe_expert_hidden_mult,
|
||||
moe_jitter_noise=moe_jitter_noise,
|
||||
use_llm=use_llm,
|
||||
llm_model_path=llm_model_path,
|
||||
llm_freeze=llm_freeze,
|
||||
llm_use_lora=llm_use_lora,
|
||||
llm_lora_r=llm_lora_r,
|
||||
llm_lora_alpha=llm_lora_alpha,
|
||||
llm_lora_dropout=llm_lora_dropout,
|
||||
)
|
||||
|
||||
|
||||
@ -44,6 +44,8 @@ from lnp_ml.dataset import (
|
||||
from tqdm import tqdm
|
||||
|
||||
from lnp_ml.modeling.models import LNPModel, LNPModelWithoutMPNN
|
||||
from lnp_ml.modeling.layers.llm_prompt import DEFAULT_MOLT5_PATH
|
||||
from lnp_ml.utils.seed import set_global_seed
|
||||
from lnp_ml.modeling.encoders.rdkit_encoder import CachedRDKitEncoder
|
||||
from lnp_ml.modeling.trainer_balanced import (
|
||||
ClassWeights,
|
||||
@ -178,19 +180,25 @@ def create_model(
|
||||
dropout: float = 0.1,
|
||||
use_mpnn: bool = False,
|
||||
mpnn_device: str = "cpu",
|
||||
set_transformer_block: str = "sab",
|
||||
# MoE
|
||||
use_moe: bool = False,
|
||||
moe_n_experts: int = 4,
|
||||
moe_top_k: int = 2,
|
||||
moe_expert_hidden_mult: int = 2,
|
||||
moe_jitter_noise: float = 0.0,
|
||||
# LLM(打包成 dict 以减少多进程参数传递)
|
||||
llm_kwargs: Optional[Dict] = None,
|
||||
) -> Union[LNPModel, LNPModelWithoutMPNN]:
|
||||
"""创建模型"""
|
||||
moe_kwargs = dict(
|
||||
"""创建模型。llm_kwargs 含 use_llm / llm_model_path / llm_freeze / llm_use_lora / llm_lora_*。"""
|
||||
extra_kwargs = dict(
|
||||
set_transformer_block=set_transformer_block,
|
||||
use_moe=use_moe,
|
||||
moe_n_experts=moe_n_experts,
|
||||
moe_top_k=moe_top_k,
|
||||
moe_expert_hidden_mult=moe_expert_hidden_mult,
|
||||
moe_jitter_noise=moe_jitter_noise,
|
||||
**(llm_kwargs or {}),
|
||||
)
|
||||
|
||||
if use_mpnn:
|
||||
@ -204,7 +212,7 @@ def create_model(
|
||||
dropout=dropout,
|
||||
mpnn_ensemble_paths=ensemble_paths,
|
||||
mpnn_device=mpnn_device,
|
||||
**moe_kwargs,
|
||||
**extra_kwargs,
|
||||
)
|
||||
else:
|
||||
return LNPModelWithoutMPNN(
|
||||
@ -214,7 +222,7 @@ def create_model(
|
||||
fusion_strategy=fusion_strategy,
|
||||
head_hidden_dim=head_hidden_dim,
|
||||
dropout=dropout,
|
||||
**moe_kwargs,
|
||||
**extra_kwargs,
|
||||
)
|
||||
|
||||
|
||||
@ -381,6 +389,8 @@ def run_inner_optuna(
|
||||
moe_top_k: int = 2,
|
||||
moe_expert_hidden_mult: int = 2,
|
||||
moe_jitter_noise: float = 0.0,
|
||||
set_transformer_block: str = "sab",
|
||||
llm_kwargs: Optional[Dict] = None,
|
||||
) -> Tuple[Dict, int, optuna.Study]:
|
||||
"""
|
||||
在内层数据上运行 Optuna 超参搜索。
|
||||
@ -436,6 +446,16 @@ def run_inner_optuna(
|
||||
weight_decay = trial.suggest_float("weight_decay", 1e-5, 1e-1, log=True)
|
||||
backbone_lr_ratio = trial.suggest_float("backbone_lr_ratio", 0.01, 1.0, log=True)
|
||||
|
||||
# MoE / LLM
|
||||
use_llm = bool(llm_kwargs.get("use_llm", False))
|
||||
moe_ne_t = trial.suggest_categorical("moe_n_experts", [2, 4]) if use_moe else moe_n_experts
|
||||
moe_tk_t = trial.suggest_int("moe_top_k", 1, 2) if use_moe else moe_top_k
|
||||
moe_hm_t = trial.suggest_categorical("moe_expert_hidden_mult", [1, 2]) if use_moe else moe_expert_hidden_mult
|
||||
llm_kwargs_t = dict(llm_kwargs)
|
||||
if use_llm:
|
||||
llm_kwargs_t["llm_use_lora"] = True
|
||||
llm_kwargs_t["llm_lora_r"] = trial.suggest_categorical("llm_lora_r", [8, 16, 32])
|
||||
|
||||
# 内层 3-fold CV
|
||||
inner_cv = StratifiedKFold(
|
||||
n_splits=n_inner_folds, shuffle=True, random_state=seed
|
||||
@ -476,10 +496,12 @@ def run_inner_optuna(
|
||||
use_mpnn=use_mpnn,
|
||||
mpnn_device=device.type,
|
||||
use_moe=use_moe,
|
||||
moe_n_experts=moe_n_experts,
|
||||
moe_top_k=moe_top_k,
|
||||
moe_expert_hidden_mult=moe_expert_hidden_mult,
|
||||
moe_n_experts=moe_ne_t,
|
||||
moe_top_k=moe_tk_t,
|
||||
moe_expert_hidden_mult=moe_hm_t,
|
||||
moe_jitter_noise=moe_jitter_noise,
|
||||
set_transformer_block=set_transformer_block,
|
||||
llm_kwargs=llm_kwargs_t,
|
||||
)
|
||||
if rdkit_cache is not None:
|
||||
model.rdkit_encoder._cache = rdkit_cache
|
||||
@ -536,6 +558,7 @@ def run_inner_optuna(
|
||||
"n_attn_layers": fixed_n_attn_layers,
|
||||
"fusion_strategy": fixed_fusion_strategy,
|
||||
"head_hidden_dim": fixed_head_hidden_dim,
|
||||
"set_transformer_block": set_transformer_block,
|
||||
})
|
||||
epoch_mean = study.best_trial.user_attrs.get("epoch_mean", epochs_per_trial)
|
||||
|
||||
@ -571,6 +594,10 @@ def _run_single_outer_fold(
|
||||
moe_top_k: int = 2,
|
||||
moe_expert_hidden_mult: int = 2,
|
||||
moe_jitter_noise: float = 0.0,
|
||||
set_transformer_block: str = "sab",
|
||||
llm_kwargs: Optional[Dict] = None,
|
||||
precomputed_best_params: Optional[Dict] = None,
|
||||
precomputed_epoch_mean: Optional[int] = None,
|
||||
) -> Dict:
|
||||
"""
|
||||
执行单个外层 fold 的完整流程(内层调参 + 外层训练 + 评估)。
|
||||
@ -578,6 +605,7 @@ def _run_single_outer_fold(
|
||||
所有参数均为可序列化类型,以支持 spawn 多进程。
|
||||
"""
|
||||
device = torch.device(device_str)
|
||||
set_global_seed(seed + outer_fold)
|
||||
fold_dir = Path(fold_dir)
|
||||
fold_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
@ -598,50 +626,66 @@ def _run_single_outer_fold(
|
||||
"outer_test_idx": outer_test_idx.tolist(),
|
||||
}, f)
|
||||
|
||||
# 内层 Optuna 调参
|
||||
logger.info(f"\nRunning inner Optuna with {n_trials} trials...")
|
||||
study_path = fold_dir / "optuna_study.sqlite3"
|
||||
|
||||
best_params, epoch_mean, study = run_inner_optuna(
|
||||
full_dataset=full_dataset,
|
||||
inner_train_indices=outer_train_idx,
|
||||
strata=strata,
|
||||
device=device,
|
||||
n_trials=n_trials,
|
||||
epochs_per_trial=epochs_per_trial,
|
||||
patience=inner_patience,
|
||||
batch_size=batch_size,
|
||||
n_inner_folds=n_inner_folds,
|
||||
use_mpnn=use_mpnn,
|
||||
seed=seed + outer_fold,
|
||||
study_path=study_path,
|
||||
pretrain_state_dict=pretrain_state_dict,
|
||||
pretrain_config=pretrain_config,
|
||||
load_delivery_head=load_delivery_head,
|
||||
rdkit_cache=rdkit_cache,
|
||||
use_moe=use_moe,
|
||||
moe_n_experts=moe_n_experts,
|
||||
moe_top_k=moe_top_k,
|
||||
moe_expert_hidden_mult=moe_expert_hidden_mult,
|
||||
moe_jitter_noise=moe_jitter_noise,
|
||||
)
|
||||
# 内层 Optuna 调参(方式 B:已有超参则跳过,直接复用)
|
||||
if precomputed_best_params is not None and precomputed_epoch_mean is not None:
|
||||
logger.info("Reusing precomputed best_params (skip inner Optuna).")
|
||||
best_params = dict(precomputed_best_params)
|
||||
epoch_mean = int(precomputed_epoch_mean)
|
||||
else:
|
||||
logger.info(f"\nRunning inner Optuna with {n_trials} trials...")
|
||||
study_path = fold_dir / "optuna_study.sqlite3"
|
||||
best_params, epoch_mean, study = run_inner_optuna(
|
||||
full_dataset=full_dataset,
|
||||
inner_train_indices=outer_train_idx,
|
||||
strata=strata,
|
||||
device=device,
|
||||
n_trials=n_trials,
|
||||
epochs_per_trial=epochs_per_trial,
|
||||
patience=inner_patience,
|
||||
batch_size=batch_size,
|
||||
n_inner_folds=n_inner_folds,
|
||||
use_mpnn=use_mpnn,
|
||||
seed=seed + outer_fold,
|
||||
study_path=study_path,
|
||||
pretrain_state_dict=pretrain_state_dict,
|
||||
pretrain_config=pretrain_config,
|
||||
load_delivery_head=load_delivery_head,
|
||||
rdkit_cache=rdkit_cache,
|
||||
use_moe=use_moe,
|
||||
moe_n_experts=moe_n_experts,
|
||||
moe_top_k=moe_top_k,
|
||||
moe_expert_hidden_mult=moe_expert_hidden_mult,
|
||||
moe_jitter_noise=moe_jitter_noise,
|
||||
set_transformer_block=set_transformer_block,
|
||||
llm_kwargs=llm_kwargs,
|
||||
)
|
||||
|
||||
# 保存最佳参数
|
||||
with open(fold_dir / "best_params.json", "w") as f:
|
||||
json.dump(best_params, f, indent=2)
|
||||
|
||||
with open(fold_dir / "epoch_mean.json", "w") as f:
|
||||
json.dump({"epoch_mean": epoch_mean}, f)
|
||||
|
||||
# 外层训练(使用最优超参,固定 epoch 数,不 early-stop)
|
||||
logger.info(f"\nTraining outer fold with best params, epochs={epoch_mean}...")
|
||||
|
||||
train_subset = Subset(full_dataset, outer_train_idx.tolist())
|
||||
# 从 outer_train 再切 10% 作为"监控用 val"(只画曲线、看 gap,不参与选模型/早停)
|
||||
_rng = np.random.RandomState(seed + outer_fold)
|
||||
_perm = _rng.permutation(len(outer_train_idx))
|
||||
_n_val = max(1, int(0.1 * len(outer_train_idx)))
|
||||
fit_idx = outer_train_idx[_perm[_n_val:]]
|
||||
monitor_idx = outer_train_idx[_perm[:_n_val]]
|
||||
|
||||
train_subset = Subset(full_dataset, fit_idx.tolist())
|
||||
monitor_subset = Subset(full_dataset, monitor_idx.tolist())
|
||||
test_subset = Subset(full_dataset, outer_test_idx.tolist())
|
||||
|
||||
train_loader = DataLoader(
|
||||
train_subset, batch_size=batch_size, shuffle=True, collate_fn=collate_fn
|
||||
)
|
||||
monitor_loader = DataLoader(
|
||||
monitor_subset, batch_size=batch_size, shuffle=False, collate_fn=collate_fn
|
||||
)
|
||||
test_loader = DataLoader(
|
||||
test_subset, batch_size=batch_size, shuffle=False, collate_fn=collate_fn
|
||||
)
|
||||
@ -658,10 +702,13 @@ def _run_single_outer_fold(
|
||||
use_mpnn=use_mpnn,
|
||||
mpnn_device=device.type,
|
||||
use_moe=use_moe,
|
||||
moe_n_experts=moe_n_experts,
|
||||
moe_top_k=moe_top_k,
|
||||
moe_expert_hidden_mult=moe_expert_hidden_mult,
|
||||
moe_n_experts=best_params.get("moe_n_experts", moe_n_experts),
|
||||
moe_top_k=best_params.get("moe_top_k", moe_top_k),
|
||||
moe_expert_hidden_mult=best_params.get("moe_expert_hidden_mult", moe_expert_hidden_mult),
|
||||
moe_jitter_noise=moe_jitter_noise,
|
||||
set_transformer_block=best_params.get("set_transformer_block", "sab"),
|
||||
llm_kwargs={**llm_kwargs, **({"llm_use_lora": True, "llm_lora_r": best_params["llm_lora_r"]}
|
||||
if (llm_kwargs.get("use_llm", False) and "llm_lora_r" in best_params) else {})},
|
||||
)
|
||||
model.rdkit_encoder._cache = rdkit_cache
|
||||
|
||||
@ -676,7 +723,7 @@ def _run_single_outer_fold(
|
||||
train_result = train_fixed_epochs(
|
||||
model=model,
|
||||
train_loader=train_loader,
|
||||
val_loader=None,
|
||||
val_loader=monitor_loader,
|
||||
device=device,
|
||||
lr=best_params["lr"],
|
||||
weight_decay=best_params["weight_decay"],
|
||||
@ -684,6 +731,7 @@ def _run_single_outer_fold(
|
||||
class_weights=class_weights,
|
||||
use_cosine_annealing=True,
|
||||
backbone_lr_ratio=best_params.get("backbone_lr_ratio", 1.0),
|
||||
freeze_backbone_epochs=3,
|
||||
)
|
||||
|
||||
model.load_state_dict(train_result["final_state"])
|
||||
@ -695,6 +743,7 @@ def _run_single_outer_fold(
|
||||
"n_attn_layers": best_params["n_attn_layers"],
|
||||
"fusion_strategy": best_params["fusion_strategy"],
|
||||
"head_hidden_dim": best_params["head_hidden_dim"],
|
||||
"set_transformer_block": best_params.get("set_transformer_block", "sab"),
|
||||
"dropout": best_params["dropout"],
|
||||
"use_mpnn": use_mpnn,
|
||||
"use_moe": use_moe,
|
||||
@ -702,6 +751,7 @@ def _run_single_outer_fold(
|
||||
"moe_top_k": moe_top_k,
|
||||
"moe_expert_hidden_mult": moe_expert_hidden_mult,
|
||||
"moe_jitter_noise": moe_jitter_noise,
|
||||
**(llm_kwargs or {}),
|
||||
}
|
||||
|
||||
torch.save({
|
||||
@ -759,12 +809,24 @@ def main(
|
||||
load_delivery_head: bool = False,
|
||||
# MPNN
|
||||
use_mpnn: bool = False,
|
||||
# MoE(新增)
|
||||
n_repeats: int = 1,
|
||||
repeat_seed_step: int = 1000,
|
||||
# MoE(消融开关)
|
||||
use_moe: bool = False,
|
||||
moe_n_experts: int = 4,
|
||||
moe_top_k: int = 2,
|
||||
moe_expert_hidden_mult: int = 2,
|
||||
moe_jitter_noise: float = 0.0,
|
||||
# Set Transformer
|
||||
set_transformer_block: str = "sab",
|
||||
# LLM(消融开关)
|
||||
use_llm: bool = False,
|
||||
llm_model_path: str = DEFAULT_MOLT5_PATH,
|
||||
llm_freeze: bool = True,
|
||||
llm_use_lora: bool = False,
|
||||
llm_lora_r: int = 8,
|
||||
llm_lora_alpha: int = 16,
|
||||
llm_lora_dropout: float = 0.05,
|
||||
# 并行
|
||||
parallel: bool = False,
|
||||
# 设备
|
||||
@ -785,6 +847,17 @@ def main(
|
||||
|
||||
logger.info(f"Using device: {device}")
|
||||
device = torch.device(device)
|
||||
set_global_seed(seed)
|
||||
|
||||
llm_kwargs = dict(
|
||||
use_llm=use_llm,
|
||||
llm_model_path=llm_model_path,
|
||||
llm_freeze=llm_freeze,
|
||||
llm_use_lora=llm_use_lora,
|
||||
llm_lora_r=llm_lora_r,
|
||||
llm_lora_alpha=llm_lora_alpha,
|
||||
llm_lora_dropout=llm_lora_dropout,
|
||||
)
|
||||
|
||||
# 加载预训练权重(如果指定)
|
||||
pretrain_state_dict = None
|
||||
@ -858,6 +931,8 @@ def main(
|
||||
moe_top_k=moe_top_k,
|
||||
moe_expert_hidden_mult=moe_expert_hidden_mult,
|
||||
moe_jitter_noise=moe_jitter_noise,
|
||||
set_transformer_block=set_transformer_block,
|
||||
llm_kwargs=llm_kwargs,
|
||||
))
|
||||
|
||||
if parallel:
|
||||
@ -873,9 +948,22 @@ def main(
|
||||
else:
|
||||
logger.info(f"Running {n_outer_folds} outer folds SEQUENTIALLY")
|
||||
outer_results = []
|
||||
per_fold_params = {}
|
||||
for args in fold_args:
|
||||
result = _run_single_outer_fold(**args)
|
||||
outer_results.append(result)
|
||||
per_fold_params[result["fold"]] = (result["best_params"], result["epoch_mean"])
|
||||
|
||||
for rep in range(1, n_repeats):
|
||||
logger.info(f"\n===== Repeat {rep}/{n_repeats - 1} (reuse hyperparams) =====")
|
||||
for args in fold_args:
|
||||
bp, em = per_fold_params[args["outer_fold"]]
|
||||
rep_args = dict(args)
|
||||
rep_args["seed"] = seed + rep * repeat_seed_step
|
||||
rep_args["fold_dir"] = run_dir / f"repeat_{rep}" / f"outer_fold_{args['outer_fold']}"
|
||||
rep_args["precomputed_best_params"] = bp
|
||||
rep_args["precomputed_epoch_mean"] = em
|
||||
outer_results.append(_run_single_outer_fold(**rep_args))
|
||||
|
||||
# 汇总结果
|
||||
logger.info("\n" + "=" * 60)
|
||||
|
||||
@ -31,6 +31,8 @@ def find_mpnn_ensemble_paths(base_dir: Path = DEFAULT_MPNN_ENSEMBLE_DIR) -> List
|
||||
raise FileNotFoundError(f"No model.pt files found in {base_dir}")
|
||||
return [str(p) for p in model_paths]
|
||||
from lnp_ml.modeling.models import LNPModel, LNPModelWithoutMPNN
|
||||
from lnp_ml.modeling.layers.llm_prompt import DEFAULT_MOLT5_PATH
|
||||
from lnp_ml.utils.seed import set_global_seed
|
||||
|
||||
|
||||
app = typer.Typer()
|
||||
@ -156,7 +158,8 @@ def pretrain(
|
||||
训练历史和最佳验证损失
|
||||
"""
|
||||
model = model.to(device)
|
||||
optimizer = torch.optim.AdamW(model.parameters(), lr=lr, weight_decay=weight_decay)
|
||||
trainable_params = [p for p in model.parameters() if p.requires_grad]
|
||||
optimizer = torch.optim.AdamW(trainable_params, lr=lr, weight_decay=weight_decay)
|
||||
scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(
|
||||
optimizer, mode="min", factor=0.5, patience=5
|
||||
)
|
||||
@ -217,13 +220,28 @@ def main(
|
||||
d_model: int = 256,
|
||||
num_heads: int = 8,
|
||||
n_attn_layers: int = 4,
|
||||
set_transformer_block: str = "sab", # "sab" | "isab"
|
||||
fusion_strategy: str = "attention",
|
||||
head_hidden_dim: int = 128,
|
||||
dropout: float = 0.1,
|
||||
# MoE 参数(消融开关)
|
||||
use_moe: bool = False,
|
||||
moe_n_experts: int = 4,
|
||||
moe_top_k: int = 2,
|
||||
moe_expert_hidden_mult: int = 2,
|
||||
moe_jitter_noise: float = 0.0,
|
||||
# LLM 参数(消融开关)
|
||||
use_llm: bool = False,
|
||||
llm_model_path: str = DEFAULT_MOLT5_PATH,
|
||||
llm_freeze: bool = True,
|
||||
llm_use_lora: bool = False,
|
||||
llm_lora_r: int = 8,
|
||||
llm_lora_alpha: int = 16,
|
||||
llm_lora_dropout: float = 0.05,
|
||||
# MPNN 参数(可选)
|
||||
use_mpnn: bool = False, # 启用 MPNN,自动从默认路径加载 ensemble
|
||||
mpnn_checkpoint: Optional[str] = None,
|
||||
mpnn_ensemble_paths: Optional[str] = None, # 逗号分隔的路径列表
|
||||
mpnn_ensemble_paths: Optional[str] = None,
|
||||
mpnn_device: str = "cpu",
|
||||
# 训练参数
|
||||
batch_size: int = 64,
|
||||
@ -231,6 +249,8 @@ def main(
|
||||
weight_decay: float = 1e-5,
|
||||
epochs: int = 50,
|
||||
patience: int = 10,
|
||||
# 随机种子
|
||||
seed: int = 42,
|
||||
# 设备
|
||||
device: str = "cuda" if torch.cuda.is_available() else "cpu",
|
||||
):
|
||||
@ -245,7 +265,8 @@ def main(
|
||||
- models/pretrain_delivery.pt: 包含 backbone + delivery head 权重
|
||||
- models/pretrain_history.json: 训练历史
|
||||
"""
|
||||
logger.info(f"Using device: {device}")
|
||||
set_global_seed(seed)
|
||||
logger.info(f"Using device: {device} | seed: {seed}")
|
||||
device_obj = torch.device(device)
|
||||
|
||||
# 加载已处理的 parquet 文件
|
||||
@ -280,28 +301,39 @@ def main(
|
||||
enable_mpnn = mpnn_checkpoint is not None or ensemble_paths_list is not None
|
||||
|
||||
# 创建模型
|
||||
logger.info(f"Creating model (use_mpnn={enable_mpnn})...")
|
||||
logger.info(
|
||||
f"Creating model (use_mpnn={enable_mpnn}, use_moe={use_moe}, use_llm={use_llm})..."
|
||||
)
|
||||
common_kwargs = dict(
|
||||
d_model=d_model,
|
||||
num_heads=num_heads,
|
||||
n_attn_layers=n_attn_layers,
|
||||
set_transformer_block=set_transformer_block,
|
||||
fusion_strategy=fusion_strategy,
|
||||
head_hidden_dim=head_hidden_dim,
|
||||
dropout=dropout,
|
||||
use_moe=use_moe,
|
||||
moe_n_experts=moe_n_experts,
|
||||
moe_top_k=moe_top_k,
|
||||
moe_expert_hidden_mult=moe_expert_hidden_mult,
|
||||
moe_jitter_noise=moe_jitter_noise,
|
||||
use_llm=use_llm,
|
||||
llm_model_path=llm_model_path,
|
||||
llm_freeze=llm_freeze,
|
||||
llm_use_lora=llm_use_lora,
|
||||
llm_lora_r=llm_lora_r,
|
||||
llm_lora_alpha=llm_lora_alpha,
|
||||
llm_lora_dropout=llm_lora_dropout,
|
||||
)
|
||||
if enable_mpnn:
|
||||
model = LNPModel(
|
||||
d_model=d_model,
|
||||
num_heads=num_heads,
|
||||
n_attn_layers=n_attn_layers,
|
||||
fusion_strategy=fusion_strategy,
|
||||
head_hidden_dim=head_hidden_dim,
|
||||
dropout=dropout,
|
||||
mpnn_checkpoint=mpnn_checkpoint,
|
||||
mpnn_ensemble_paths=ensemble_paths_list,
|
||||
mpnn_device=mpnn_device,
|
||||
**common_kwargs,
|
||||
)
|
||||
else:
|
||||
model = LNPModelWithoutMPNN(
|
||||
d_model=d_model,
|
||||
num_heads=num_heads,
|
||||
n_attn_layers=n_attn_layers,
|
||||
fusion_strategy=fusion_strategy,
|
||||
head_hidden_dim=head_hidden_dim,
|
||||
dropout=dropout,
|
||||
)
|
||||
model = LNPModelWithoutMPNN(**common_kwargs)
|
||||
|
||||
n_params_total = sum(p.numel() for p in model.parameters())
|
||||
n_params_trainable = sum(p.numel() for p in model.parameters() if p.requires_grad)
|
||||
@ -336,10 +368,23 @@ def main(
|
||||
"d_model": d_model,
|
||||
"num_heads": num_heads,
|
||||
"n_attn_layers": n_attn_layers,
|
||||
"set_transformer_block": set_transformer_block,
|
||||
"fusion_strategy": fusion_strategy,
|
||||
"head_hidden_dim": head_hidden_dim,
|
||||
"dropout": dropout,
|
||||
"use_mpnn": enable_mpnn,
|
||||
"use_moe": use_moe,
|
||||
"moe_n_experts": moe_n_experts,
|
||||
"moe_top_k": moe_top_k,
|
||||
"moe_expert_hidden_mult": moe_expert_hidden_mult,
|
||||
"moe_jitter_noise": moe_jitter_noise,
|
||||
"use_llm": use_llm,
|
||||
"llm_model_path": llm_model_path,
|
||||
"llm_freeze": llm_freeze,
|
||||
"llm_use_lora": llm_use_lora,
|
||||
"llm_lora_r": llm_lora_r,
|
||||
"llm_lora_alpha": llm_lora_alpha,
|
||||
"llm_lora_dropout": llm_lora_dropout,
|
||||
},
|
||||
"best_val_loss": result["best_val_loss"],
|
||||
},
|
||||
@ -398,32 +443,40 @@ def test(
|
||||
|
||||
# 解析 MPNN 配置
|
||||
enable_mpnn = config.get("use_mpnn", False)
|
||||
common_kwargs = dict(
|
||||
d_model=config["d_model"],
|
||||
num_heads=config["num_heads"],
|
||||
n_attn_layers=config["n_attn_layers"],
|
||||
set_transformer_block=config.get("set_transformer_block", "sab"),
|
||||
fusion_strategy=config["fusion_strategy"],
|
||||
head_hidden_dim=config["head_hidden_dim"],
|
||||
dropout=config["dropout"],
|
||||
use_moe=config.get("use_moe", False),
|
||||
moe_n_experts=config.get("moe_n_experts", 4),
|
||||
moe_top_k=config.get("moe_top_k", 2),
|
||||
moe_expert_hidden_mult=config.get("moe_expert_hidden_mult", 2),
|
||||
moe_jitter_noise=config.get("moe_jitter_noise", 0.0),
|
||||
use_llm=config.get("use_llm", False),
|
||||
llm_model_path=config.get("llm_model_path", DEFAULT_MOLT5_PATH),
|
||||
llm_freeze=config.get("llm_freeze", True),
|
||||
llm_use_lora=config.get("llm_use_lora", False),
|
||||
llm_lora_r=config.get("llm_lora_r", 8),
|
||||
llm_lora_alpha=config.get("llm_lora_alpha", 16),
|
||||
llm_lora_dropout=config.get("llm_lora_dropout", 0.05),
|
||||
)
|
||||
if enable_mpnn or use_mpnn:
|
||||
logger.info(f"Auto-detecting MPNN ensemble from {DEFAULT_MPNN_ENSEMBLE_DIR}")
|
||||
ensemble_paths = find_mpnn_ensemble_paths()
|
||||
logger.info(f"Found {len(ensemble_paths)} MPNN models")
|
||||
|
||||
model = LNPModel(
|
||||
d_model=config["d_model"],
|
||||
num_heads=config["num_heads"],
|
||||
n_attn_layers=config["n_attn_layers"],
|
||||
fusion_strategy=config["fusion_strategy"],
|
||||
head_hidden_dim=config["head_hidden_dim"],
|
||||
dropout=config["dropout"],
|
||||
mpnn_ensemble_paths=ensemble_paths,
|
||||
mpnn_device=mpnn_device,
|
||||
**common_kwargs,
|
||||
)
|
||||
else:
|
||||
model = LNPModelWithoutMPNN(
|
||||
d_model=config["d_model"],
|
||||
num_heads=config["num_heads"],
|
||||
n_attn_layers=config["n_attn_layers"],
|
||||
fusion_strategy=config["fusion_strategy"],
|
||||
head_hidden_dim=config["head_hidden_dim"],
|
||||
dropout=config["dropout"],
|
||||
)
|
||||
model = LNPModelWithoutMPNN(**common_kwargs)
|
||||
|
||||
model.load_state_dict(checkpoint["model_state_dict"])
|
||||
model.load_state_dict(checkpoint["model_state_dict"], strict=False)
|
||||
model.to(device_obj)
|
||||
model.eval()
|
||||
|
||||
|
||||
@ -29,6 +29,7 @@ class LossWeightsBalanced:
|
||||
biodist: float = 1.0
|
||||
toxic: float = 1.0
|
||||
moe_lb: float = 0.01 # MoE load-balancing 系数(仅在 use_moe=True 时生效)
|
||||
moe_lb: float = 0.01 # MoE load-balancing 系数(仅在 use_moe=True 时生效)
|
||||
|
||||
|
||||
def compute_class_weights_from_loader(
|
||||
@ -112,6 +113,7 @@ def compute_multitask_loss_balanced(
|
||||
task_weights: Optional[LossWeightsBalanced] = None,
|
||||
class_weights: Optional[ClassWeights] = None,
|
||||
model: Optional[nn.Module] = None,
|
||||
model: Optional[nn.Module] = None,
|
||||
) -> Tuple[torch.Tensor, Dict[str, torch.Tensor]]:
|
||||
"""
|
||||
计算带类权重的多任务损失。
|
||||
@ -129,66 +131,59 @@ def compute_multitask_loss_balanced(
|
||||
task_weights = task_weights or LossWeightsBalanced()
|
||||
class_weights = class_weights or ClassWeights()
|
||||
|
||||
# 若模型 head 暴露 log_vars,则启用不确定性加权(自动平衡),否则回退到标量权重
|
||||
log_vars = None
|
||||
if model is not None and hasattr(model, "head") and hasattr(model.head, "log_vars"):
|
||||
log_vars = model.head.log_vars
|
||||
|
||||
losses = {}
|
||||
device = next(iter(outputs.values())).device
|
||||
total_loss = torch.tensor(0.0, device=device)
|
||||
|
||||
# size: MSE loss(回归任务,不需要类权重)
|
||||
def _add(name: str, raw_loss: torch.Tensor, scalar_w: float) -> None:
|
||||
nonlocal total_loss
|
||||
losses[name] = raw_loss
|
||||
if log_vars is not None and name in log_vars:
|
||||
s = log_vars[name]
|
||||
total_loss = total_loss + torch.exp(-s) * raw_loss + 0.5 * s
|
||||
else:
|
||||
total_loss = total_loss + scalar_w * raw_loss
|
||||
|
||||
# size: MSE
|
||||
if "size" in targets and mask["size"].any():
|
||||
m = mask["size"]
|
||||
pred = outputs["size"][m].squeeze(-1)
|
||||
tgt = targets["size"][m]
|
||||
losses["size"] = F.mse_loss(pred, tgt)
|
||||
total_loss = total_loss + task_weights.size * losses["size"]
|
||||
_add("size", F.mse_loss(outputs["size"][m].squeeze(-1), targets["size"][m]), task_weights.size)
|
||||
|
||||
# delivery: MSE loss(回归任务,不需要类权重)
|
||||
# delivery: MSE
|
||||
if "delivery" in targets and mask["delivery"].any():
|
||||
m = mask["delivery"]
|
||||
pred = outputs["delivery"][m].squeeze(-1)
|
||||
tgt = targets["delivery"][m]
|
||||
losses["delivery"] = F.mse_loss(pred, tgt)
|
||||
total_loss = total_loss + task_weights.delivery * losses["delivery"]
|
||||
_add("delivery", F.mse_loss(outputs["delivery"][m].squeeze(-1), targets["delivery"][m]), task_weights.delivery)
|
||||
|
||||
# pdi: CrossEntropy with class weights
|
||||
# pdi: 类加权 CE
|
||||
if "pdi" in targets and mask["pdi"].any():
|
||||
m = mask["pdi"]
|
||||
pred = outputs["pdi"][m]
|
||||
tgt = targets["pdi"][m]
|
||||
weight = class_weights.pdi.to(device) if class_weights.pdi is not None else None
|
||||
losses["pdi"] = F.cross_entropy(pred, tgt, weight=weight)
|
||||
total_loss = total_loss + task_weights.pdi * losses["pdi"]
|
||||
w = class_weights.pdi.to(device) if class_weights.pdi is not None else None
|
||||
_add("pdi", F.cross_entropy(outputs["pdi"][m], targets["pdi"][m], weight=w), task_weights.pdi)
|
||||
|
||||
# ee: CrossEntropy with class weights
|
||||
# ee: 类加权 CE
|
||||
if "ee" in targets and mask["ee"].any():
|
||||
m = mask["ee"]
|
||||
pred = outputs["ee"][m]
|
||||
tgt = targets["ee"][m]
|
||||
weight = class_weights.ee.to(device) if class_weights.ee is not None else None
|
||||
losses["ee"] = F.cross_entropy(pred, tgt, weight=weight)
|
||||
total_loss = total_loss + task_weights.ee * losses["ee"]
|
||||
w = class_weights.ee.to(device) if class_weights.ee is not None else None
|
||||
_add("ee", F.cross_entropy(outputs["ee"][m], targets["ee"][m], weight=w), task_weights.ee)
|
||||
|
||||
# toxic: CrossEntropy with class weights
|
||||
# toxic: 类加权 CE
|
||||
if "toxic" in targets and mask["toxic"].any():
|
||||
m = mask["toxic"]
|
||||
pred = outputs["toxic"][m]
|
||||
tgt = targets["toxic"][m]
|
||||
weight = class_weights.toxic.to(device) if class_weights.toxic is not None else None
|
||||
losses["toxic"] = F.cross_entropy(pred, tgt, weight=weight)
|
||||
total_loss = total_loss + task_weights.toxic * losses["toxic"]
|
||||
w = class_weights.toxic.to(device) if class_weights.toxic is not None else None
|
||||
_add("toxic", F.cross_entropy(outputs["toxic"][m], targets["toxic"][m], weight=w), task_weights.toxic)
|
||||
|
||||
# biodist: KL divergence(分布任务,不需要类权重)
|
||||
# biodist: KL
|
||||
if "biodist" in targets and mask["biodist"].any():
|
||||
m = mask["biodist"]
|
||||
pred = outputs["biodist"][m]
|
||||
tgt = targets["biodist"][m]
|
||||
losses["biodist"] = F.kl_div(
|
||||
pred.log().clamp(min=-100),
|
||||
tgt,
|
||||
reduction="batchmean",
|
||||
)
|
||||
total_loss = total_loss + task_weights.biodist * losses["biodist"]
|
||||
kl = F.kl_div(outputs["biodist"][m].log().clamp(min=-100), targets["biodist"][m], reduction="batchmean")
|
||||
_add("biodist", kl, task_weights.biodist)
|
||||
|
||||
# MoE load-balancing aux loss(可选)
|
||||
# MoE load-balancing aux loss(固定小权重,不纳入不确定性加权)
|
||||
if model is not None and hasattr(model, "get_last_moe_extras"):
|
||||
extras = model.get_last_moe_extras()
|
||||
if extras is not None and "lb_loss" in extras:
|
||||
@ -210,6 +205,7 @@ def train_epoch_balanced(
|
||||
model.train()
|
||||
total_loss = 0.0
|
||||
task_losses = {k: 0.0 for k in ["size", "pdi", "ee", "delivery", "biodist", "toxic", "moe_lb"]}
|
||||
task_losses = {k: 0.0 for k in ["size", "pdi", "ee", "delivery", "biodist", "toxic", "moe_lb"]}
|
||||
n_batches = 0
|
||||
|
||||
for batch in tqdm(loader, desc="Training", leave=False):
|
||||
@ -222,6 +218,7 @@ def train_epoch_balanced(
|
||||
outputs = model(smiles, tabular)
|
||||
loss, losses = compute_multitask_loss_balanced(
|
||||
outputs, targets, mask, task_weights, class_weights, model=model,
|
||||
outputs, targets, mask, task_weights, class_weights, model=model,
|
||||
)
|
||||
|
||||
loss.backward()
|
||||
@ -251,6 +248,7 @@ def validate_balanced(
|
||||
model.eval()
|
||||
total_loss = 0.0
|
||||
task_losses = {k: 0.0 for k in ["size", "pdi", "ee", "delivery", "biodist", "toxic", "moe_lb"]}
|
||||
task_losses = {k: 0.0 for k in ["size", "pdi", "ee", "delivery", "biodist", "toxic", "moe_lb"]}
|
||||
n_batches = 0
|
||||
|
||||
# 用于计算准确率
|
||||
@ -266,6 +264,7 @@ def validate_balanced(
|
||||
outputs = model(smiles, tabular)
|
||||
loss, losses = compute_multitask_loss_balanced(
|
||||
outputs, targets, mask, task_weights, class_weights, model=model,
|
||||
outputs, targets, mask, task_weights, class_weights, model=model,
|
||||
)
|
||||
|
||||
total_loss += loss.item()
|
||||
@ -295,7 +294,20 @@ def validate_balanced(
|
||||
return metrics
|
||||
|
||||
|
||||
BACKBONE_PREFIXES = ("token_projector.", "cross_attention.", "fusion.", "moe.")
|
||||
BACKBONE_PREFIXES = (
|
||||
"token_projector.",
|
||||
"set_transformer.",
|
||||
"fusion.",
|
||||
"moe.",
|
||||
"llm_prompt.",
|
||||
)
|
||||
|
||||
FROM_SCRATCH_PREFIXES = (
|
||||
"moe.",
|
||||
"llm_prompt.",
|
||||
"fusion.g_moe",
|
||||
"fusion.g_llm",
|
||||
)
|
||||
|
||||
|
||||
def build_optimizer(
|
||||
@ -307,18 +319,21 @@ def build_optimizer(
|
||||
"""
|
||||
构建 AdamW 优化器,支持分层学习率。
|
||||
|
||||
仅收集 requires_grad=True 的参数(冻结的 MolT5 encoder 被排除)。
|
||||
当 backbone_lr_ratio < 1.0 时,backbone 参数使用 lr * backbone_lr_ratio,
|
||||
其余参数(task heads 等)使用 lr。backbone_lr_ratio = 1.0 等价于统一学习率。
|
||||
"""
|
||||
trainable = [(n, p) for n, p in model.named_parameters() if p.requires_grad]
|
||||
|
||||
if backbone_lr_ratio >= 1.0:
|
||||
return torch.optim.AdamW(model.parameters(), lr=lr, weight_decay=weight_decay)
|
||||
return torch.optim.AdamW(
|
||||
[p for _, p in trainable], lr=lr, weight_decay=weight_decay
|
||||
)
|
||||
|
||||
backbone_params = []
|
||||
head_params = []
|
||||
for name, param in model.named_parameters():
|
||||
if not param.requires_grad:
|
||||
continue
|
||||
if name.startswith(BACKBONE_PREFIXES):
|
||||
for name, param in trainable:
|
||||
if name.startswith(BACKBONE_PREFIXES) and not name.startswith(FROM_SCRATCH_PREFIXES):
|
||||
backbone_params.append(param)
|
||||
else:
|
||||
head_params.append(param)
|
||||
@ -442,6 +457,7 @@ def train_fixed_epochs(
|
||||
use_swa: bool = False,
|
||||
swa_start_epoch: Optional[int] = None,
|
||||
backbone_lr_ratio: float = 1.0,
|
||||
freeze_backbone_epochs: int = 0,
|
||||
) -> Dict:
|
||||
"""
|
||||
固定 epoch 数的训练(不使用 early stopping)。
|
||||
@ -469,6 +485,15 @@ def train_fixed_epochs(
|
||||
model = model.to(device)
|
||||
optimizer = build_optimizer(model, lr, weight_decay, backbone_lr_ratio)
|
||||
|
||||
backbone_named = [
|
||||
(n, p) for n, p in model.named_parameters()
|
||||
if n.startswith(BACKBONE_PREFIXES) and not n.startswith(FROM_SCRATCH_PREFIXES)
|
||||
and p.requires_grad
|
||||
]
|
||||
if freeze_backbone_epochs > 0:
|
||||
for _, p in backbone_named:
|
||||
p.requires_grad_(False)
|
||||
|
||||
if use_cosine_annealing:
|
||||
scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=epochs)
|
||||
else:
|
||||
@ -486,6 +511,9 @@ def train_fixed_epochs(
|
||||
history = {"train": [], "val": []}
|
||||
|
||||
for epoch in range(epochs):
|
||||
if freeze_backbone_epochs > 0 and epoch == freeze_backbone_epochs:
|
||||
for _, p in backbone_named:
|
||||
p.requires_grad_(True)
|
||||
# Train
|
||||
train_metrics = train_epoch_balanced(
|
||||
model, train_loader, optimizer, device, task_weights, class_weights
|
||||
|
||||
19
lnp_ml/utils/seed.py
Normal file
19
lnp_ml/utils/seed.py
Normal file
@ -0,0 +1,19 @@
|
||||
"""全局随机种子工具。"""
|
||||
|
||||
import random
|
||||
|
||||
import numpy as np
|
||||
import torch
|
||||
|
||||
|
||||
def set_global_seed(seed: int) -> None:
|
||||
"""固定 random / numpy / torch 种子,提升可复现性。
|
||||
|
||||
不开启 cudnn deterministic,以免显著拖慢训练;如需严格复现可自行追加:
|
||||
torch.backends.cudnn.deterministic = True
|
||||
torch.backends.cudnn.benchmark = False
|
||||
"""
|
||||
random.seed(seed)
|
||||
np.random.seed(seed)
|
||||
torch.manual_seed(seed)
|
||||
torch.cuda.manual_seed_all(seed)
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.28242799368681437,
|
||||
"lr": 0.00037183641805732076,
|
||||
"weight_decay": 6.290644294586152e-05,
|
||||
"backbone_lr_ratio": 0.10677482709481352,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73, 75, 76, 77, 80, 81, 85, 86, 88, 89, 90, 92, 94, 95, 96, 98, 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, 111, 113, 114, 115, 116, 117, 118, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 139, 141, 144, 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 160, 163, 164, 167, 168, 169, 170, 171, 172, 175, 176, 178, 179, 180, 182, 183, 184, 185, 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 206, 208, 210, 211, 212, 213, 216, 217, 218, 219, 220, 222, 224, 225, 227, 228, 229, 230, 231, 232, 233, 234, 236, 237, 239, 241, 242, 244, 245, 247, 248, 249, 250, 252, 253, 255, 256, 257, 258, 259, 260, 261, 262, 265, 267, 268, 269, 270, 271, 272, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 285, 286, 287, 288, 291, 292, 294, 296, 297, 298, 299, 300, 301, 303, 304, 306, 307, 308, 309, 310, 311, 312, 313, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 332, 333, 335, 336, 337, 338, 339, 340, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 355, 356, 357, 358, 359, 360, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 374, 375, 377, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 393, 395, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 408, 409, 411, 412, 413, 414, 415, 417, 418, 419], "outer_test_idx": [7, 16, 20, 29, 51, 59, 60, 69, 70, 74, 78, 79, 82, 83, 84, 87, 91, 93, 97, 102, 110, 112, 119, 120, 121, 132, 137, 140, 142, 143, 152, 161, 162, 165, 166, 173, 174, 177, 181, 186, 187, 194, 205, 207, 209, 214, 215, 221, 223, 226, 235, 238, 240, 243, 246, 251, 254, 263, 264, 266, 273, 284, 289, 290, 293, 295, 302, 305, 314, 315, 331, 334, 341, 350, 353, 361, 373, 376, 378, 392, 394, 402, 410, 416]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.32790454280151365,
|
||||
"rmse": 0.572629498717551,
|
||||
"mae": 0.35871042688208893,
|
||||
"r2": -0.08876073797082196
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.7250728333301815,
|
||||
"rmse": 0.8515120864263651,
|
||||
"mae": 0.7098816664696768,
|
||||
"r2": 0.07838867510225656
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5476190476190477,
|
||||
"precision": 0.3435971685971686,
|
||||
"recall": 0.5359094457455114,
|
||||
"f1": 0.34977324263038545
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.7142857142857143,
|
||||
"precision": 0.6871101871101871,
|
||||
"recall": 0.707142857142857,
|
||||
"f1": 0.6756066411238826
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 58,
|
||||
"accuracy": 0.9655172413793104,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8242424242424242
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.4073394583325288,
|
||||
"js_divergence": 0.092887269703335
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.23085562232445592,
|
||||
"lr": 0.0005227270589225132,
|
||||
"weight_decay": 0.00461701039547356,
|
||||
"backbone_lr_ratio": 0.12087164274488635,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 3, 5, 6, 7, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 24, 26, 27, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 42, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 114, 115, 118, 119, 120, 121, 123, 124, 125, 126, 128, 129, 130, 131, 132, 136, 137, 140, 141, 142, 143, 144, 145, 146, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 194, 195, 196, 197, 198, 199, 201, 202, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 240, 242, 243, 244, 246, 247, 248, 250, 251, 252, 254, 255, 256, 258, 259, 260, 261, 262, 263, 264, 266, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 295, 296, 297, 300, 301, 302, 303, 304, 305, 306, 307, 308, 310, 311, 313, 314, 315, 316, 317, 318, 319, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 333, 334, 335, 337, 338, 339, 340, 341, 342, 343, 344, 345, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 361, 362, 364, 365, 366, 367, 368, 369, 373, 374, 375, 376, 378, 379, 380, 381, 382, 384, 387, 388, 389, 391, 392, 393, 394, 396, 397, 398, 399, 402, 403, 404, 405, 406, 408, 409, 410, 411, 412, 413, 414, 416, 417, 419], "outer_test_idx": [1, 2, 4, 8, 9, 14, 17, 22, 23, 25, 28, 34, 37, 41, 43, 45, 63, 64, 68, 85, 96, 104, 111, 113, 116, 117, 122, 127, 133, 134, 135, 138, 139, 147, 160, 163, 170, 180, 191, 192, 193, 200, 203, 208, 224, 227, 230, 239, 241, 245, 249, 253, 257, 265, 267, 272, 280, 294, 298, 299, 309, 312, 320, 326, 332, 336, 346, 347, 360, 363, 370, 371, 372, 377, 383, 385, 386, 390, 395, 400, 401, 407, 415, 418]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.233876145855699,
|
||||
"rmse": 0.4836074294876982,
|
||||
"mae": 0.3760785318556286,
|
||||
"r2": -2.874543407510119
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 61,
|
||||
"mse": 1.0238964615450643,
|
||||
"rmse": 1.0118776910007772,
|
||||
"mae": 0.6578027546466862,
|
||||
"r2": 0.2249841902125319
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5238095238095238,
|
||||
"precision": 0.34497354497354493,
|
||||
"recall": 0.3280423280423281,
|
||||
"f1": 0.3231922398589065
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5595238095238095,
|
||||
"precision": 0.5101731601731602,
|
||||
"recall": 0.5036154321868608,
|
||||
"f1": 0.48790324563862697
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9508196721311475,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9741379310344828,
|
||||
"f1": 0.8200589970501475
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 61,
|
||||
"kl_divergence": 0.48528378254405913,
|
||||
"js_divergence": 0.12258377401744426
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.18117503720006686,
|
||||
"lr": 8.135394049241399e-05,
|
||||
"weight_decay": 0.015076469897649124,
|
||||
"backbone_lr_ratio": 0.9586175198423679,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 36, 37, 38, 39, 40, 41, 43, 44, 45, 47, 48, 49, 50, 51, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 68, 69, 70, 72, 74, 76, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 91, 93, 94, 95, 96, 97, 100, 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 145, 147, 148, 149, 150, 151, 152, 153, 156, 157, 158, 159, 160, 161, 162, 163, 165, 166, 167, 168, 170, 171, 172, 173, 174, 175, 177, 179, 180, 181, 183, 184, 185, 186, 187, 188, 191, 192, 193, 194, 196, 197, 199, 200, 202, 203, 204, 205, 207, 208, 209, 210, 211, 212, 213, 214, 215, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242, 243, 245, 246, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 280, 281, 282, 283, 284, 285, 287, 289, 290, 293, 294, 295, 296, 297, 298, 299, 300, 302, 303, 305, 307, 308, 309, 310, 311, 312, 313, 314, 315, 317, 318, 320, 321, 322, 323, 324, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 358, 360, 361, 363, 364, 365, 366, 368, 369, 370, 371, 372, 373, 376, 377, 378, 379, 380, 381, 382, 383, 385, 386, 387, 388, 389, 390, 392, 394, 395, 398, 399, 400, 401, 402, 404, 405, 407, 408, 409, 410, 412, 413, 414, 415, 416, 417, 418], "outer_test_idx": [10, 12, 15, 31, 35, 42, 46, 52, 53, 54, 62, 66, 67, 71, 73, 75, 77, 81, 89, 90, 92, 98, 99, 105, 123, 124, 141, 144, 146, 154, 155, 164, 169, 176, 178, 182, 189, 190, 195, 198, 201, 206, 216, 217, 218, 219, 231, 234, 244, 247, 248, 258, 262, 270, 277, 278, 279, 286, 288, 291, 292, 301, 304, 306, 316, 319, 325, 328, 343, 357, 359, 362, 367, 374, 375, 384, 391, 393, 396, 397, 403, 406, 411, 419]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.07870736214858826,
|
||||
"rmse": 0.28054832408800495,
|
||||
"mae": 0.2252055633635748,
|
||||
"r2": 0.15667568332606574
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 60,
|
||||
"mse": 0.6624288051399898,
|
||||
"rmse": 0.8138972939750997,
|
||||
"mae": 0.5578871982870623,
|
||||
"r2": 0.118192445613993
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5714285714285714,
|
||||
"precision": 0.43453195231581004,
|
||||
"recall": 0.7014848950332823,
|
||||
"f1": 0.4452380952380952
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6666666666666666,
|
||||
"precision": 0.6140109890109889,
|
||||
"recall": 0.6785714285714285,
|
||||
"f1": 0.6262626262626263
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9344262295081968,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9655172413793103,
|
||||
"f1": 0.7821428571428571
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.3967825471495568,
|
||||
"js_divergence": 0.1057568924841401
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.1799936812783694,
|
||||
"lr": 0.00033865324369584493,
|
||||
"weight_decay": 0.01440133094015265,
|
||||
"backbone_lr_ratio": 0.3278334190266755,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 51, 52, 53, 54, 55, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 102, 104, 105, 106, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 127, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 189, 190, 191, 192, 193, 194, 195, 198, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 221, 223, 224, 226, 227, 228, 230, 231, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 257, 258, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 284, 286, 288, 289, 290, 291, 292, 293, 294, 295, 297, 298, 299, 301, 302, 304, 305, 306, 307, 308, 309, 310, 312, 314, 315, 316, 317, 319, 320, 321, 325, 326, 327, 328, 331, 332, 334, 336, 340, 341, 343, 344, 346, 347, 348, 350, 352, 353, 357, 359, 360, 361, 362, 363, 364, 366, 367, 368, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 382, 383, 384, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, 404, 406, 407, 410, 411, 412, 414, 415, 416, 418, 419], "outer_test_idx": [3, 6, 13, 18, 19, 26, 33, 44, 48, 49, 50, 56, 57, 72, 80, 88, 94, 101, 103, 107, 108, 114, 126, 128, 130, 145, 149, 157, 167, 171, 175, 188, 196, 197, 199, 211, 220, 222, 225, 229, 232, 236, 250, 260, 261, 271, 281, 283, 285, 287, 296, 300, 303, 311, 313, 318, 322, 323, 324, 329, 330, 333, 335, 337, 338, 339, 342, 345, 349, 351, 354, 355, 356, 358, 365, 369, 381, 388, 399, 405, 408, 409, 413, 417]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.477705869562307,
|
||||
"rmse": 0.6911626939891266,
|
||||
"mae": 0.38659381004701177,
|
||||
"r2": -0.46585807501413723
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 59,
|
||||
"mse": 0.7692103143544243,
|
||||
"rmse": 0.8770463581558413,
|
||||
"mae": 0.6155587352528158,
|
||||
"r2": 0.2522361838732067
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6904761904761905,
|
||||
"precision": 0.4426767676767677,
|
||||
"recall": 0.6817716333845366,
|
||||
"f1": 0.43613724611708476
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6428571428571429,
|
||||
"precision": 0.5650987224157956,
|
||||
"recall": 0.5790095525389644,
|
||||
"f1": 0.5637508626639062
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 60,
|
||||
"accuracy": 0.9333333333333333,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9649122807017544,
|
||||
"f1": 0.7818181818181817
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.4102080974965646,
|
||||
"js_divergence": 0.11100613154873733
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.14162975892531532,
|
||||
"lr": 0.0004019907813153378,
|
||||
"weight_decay": 0.00037960139235180325,
|
||||
"backbone_lr_ratio": 0.18010931581670617,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 25, 26, 28, 29, 31, 33, 34, 35, 37, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 56, 57, 59, 60, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, 81, 82, 83, 84, 85, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 101, 102, 103, 104, 105, 107, 108, 110, 111, 112, 113, 114, 116, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 130, 132, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 152, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 171, 173, 174, 175, 176, 177, 178, 180, 181, 182, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 203, 205, 206, 207, 208, 209, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 229, 230, 231, 232, 234, 235, 236, 238, 239, 240, 241, 243, 244, 245, 246, 247, 248, 249, 250, 251, 253, 254, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 270, 271, 272, 273, 277, 278, 279, 280, 281, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 300, 301, 302, 303, 304, 305, 306, 309, 311, 312, 313, 314, 315, 316, 318, 319, 320, 322, 323, 324, 325, 326, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 345, 346, 347, 349, 350, 351, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 365, 367, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 381, 383, 384, 385, 386, 388, 390, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 402, 403, 405, 406, 407, 408, 409, 410, 411, 413, 415, 416, 417, 418, 419], "outer_test_idx": [0, 5, 11, 21, 24, 27, 30, 32, 36, 38, 39, 40, 47, 55, 58, 61, 65, 76, 86, 95, 100, 106, 109, 115, 118, 125, 129, 131, 136, 148, 150, 151, 153, 156, 158, 159, 168, 172, 179, 183, 184, 185, 202, 204, 210, 212, 213, 228, 233, 237, 242, 252, 255, 256, 259, 268, 269, 274, 275, 276, 282, 297, 307, 308, 310, 317, 321, 327, 340, 344, 348, 352, 364, 366, 368, 379, 380, 382, 387, 389, 398, 404, 412, 414]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.1842198466764517,
|
||||
"rmse": 0.4292083953937198,
|
||||
"mae": 0.29178874833243235,
|
||||
"r2": -0.33736192476816806
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.9003281069383875,
|
||||
"rmse": 0.9488562098328637,
|
||||
"mae": 0.6070586243837044,
|
||||
"r2": 0.1293975832987566
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5476190476190477,
|
||||
"precision": 0.34548450889914306,
|
||||
"recall": 0.5337941628264209,
|
||||
"f1": 0.3497882046269143
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.7023809523809523,
|
||||
"precision": 0.6548765244417418,
|
||||
"recall": 0.7576923076923077,
|
||||
"f1": 0.6777508856852221
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 59,
|
||||
"accuracy": 0.9661016949152542,
|
||||
"precision": 0.8,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8659090909090909
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.3946735882065513,
|
||||
"js_divergence": 0.1067245125767987
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.28242799368681437,
|
||||
"lr": 0.00037183641805732076,
|
||||
"weight_decay": 6.290644294586152e-05,
|
||||
"backbone_lr_ratio": 0.10677482709481352,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73, 75, 76, 77, 80, 81, 85, 86, 88, 89, 90, 92, 94, 95, 96, 98, 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, 111, 113, 114, 115, 116, 117, 118, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 139, 141, 144, 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 160, 163, 164, 167, 168, 169, 170, 171, 172, 175, 176, 178, 179, 180, 182, 183, 184, 185, 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 206, 208, 210, 211, 212, 213, 216, 217, 218, 219, 220, 222, 224, 225, 227, 228, 229, 230, 231, 232, 233, 234, 236, 237, 239, 241, 242, 244, 245, 247, 248, 249, 250, 252, 253, 255, 256, 257, 258, 259, 260, 261, 262, 265, 267, 268, 269, 270, 271, 272, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 285, 286, 287, 288, 291, 292, 294, 296, 297, 298, 299, 300, 301, 303, 304, 306, 307, 308, 309, 310, 311, 312, 313, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 332, 333, 335, 336, 337, 338, 339, 340, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 355, 356, 357, 358, 359, 360, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 374, 375, 377, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 393, 395, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 408, 409, 411, 412, 413, 414, 415, 417, 418, 419], "outer_test_idx": [7, 16, 20, 29, 51, 59, 60, 69, 70, 74, 78, 79, 82, 83, 84, 87, 91, 93, 97, 102, 110, 112, 119, 120, 121, 132, 137, 140, 142, 143, 152, 161, 162, 165, 166, 173, 174, 177, 181, 186, 187, 194, 205, 207, 209, 214, 215, 221, 223, 226, 235, 238, 240, 243, 246, 251, 254, 263, 264, 266, 273, 284, 289, 290, 293, 295, 302, 305, 314, 315, 331, 334, 341, 350, 353, 361, 373, 376, 378, 392, 394, 402, 410, 416]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.3808128541133737,
|
||||
"rmse": 0.6171003598389598,
|
||||
"mae": 0.4168719153806388,
|
||||
"r2": -0.2644353156285024
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.751610048614176,
|
||||
"rmse": 0.8669544674400012,
|
||||
"mae": 0.7122741444999802,
|
||||
"r2": 0.04465827311677528
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5,
|
||||
"precision": 0.3181788931788932,
|
||||
"recall": 0.5039032006245121,
|
||||
"f1": 0.32369614512471656
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6666666666666666,
|
||||
"precision": 0.6258687258687259,
|
||||
"recall": 0.6461904761904762,
|
||||
"f1": 0.6127803231251508
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 58,
|
||||
"accuracy": 0.9655172413793104,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8242424242424242
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.39644445917049376,
|
||||
"js_divergence": 0.09334798400608228
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.23085562232445592,
|
||||
"lr": 0.0005227270589225132,
|
||||
"weight_decay": 0.00461701039547356,
|
||||
"backbone_lr_ratio": 0.12087164274488635,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 3, 5, 6, 7, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 24, 26, 27, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 42, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 114, 115, 118, 119, 120, 121, 123, 124, 125, 126, 128, 129, 130, 131, 132, 136, 137, 140, 141, 142, 143, 144, 145, 146, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 194, 195, 196, 197, 198, 199, 201, 202, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 240, 242, 243, 244, 246, 247, 248, 250, 251, 252, 254, 255, 256, 258, 259, 260, 261, 262, 263, 264, 266, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 295, 296, 297, 300, 301, 302, 303, 304, 305, 306, 307, 308, 310, 311, 313, 314, 315, 316, 317, 318, 319, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 333, 334, 335, 337, 338, 339, 340, 341, 342, 343, 344, 345, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 361, 362, 364, 365, 366, 367, 368, 369, 373, 374, 375, 376, 378, 379, 380, 381, 382, 384, 387, 388, 389, 391, 392, 393, 394, 396, 397, 398, 399, 402, 403, 404, 405, 406, 408, 409, 410, 411, 412, 413, 414, 416, 417, 419], "outer_test_idx": [1, 2, 4, 8, 9, 14, 17, 22, 23, 25, 28, 34, 37, 41, 43, 45, 63, 64, 68, 85, 96, 104, 111, 113, 116, 117, 122, 127, 133, 134, 135, 138, 139, 147, 160, 163, 170, 180, 191, 192, 193, 200, 203, 208, 224, 227, 230, 239, 241, 245, 249, 253, 257, 265, 267, 272, 280, 294, 298, 299, 309, 312, 320, 326, 332, 336, 346, 347, 360, 363, 370, 371, 372, 377, 383, 385, 386, 390, 395, 400, 401, 407, 415, 418]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.3074589292084139,
|
||||
"rmse": 0.5544897917982025,
|
||||
"mae": 0.3793355481965201,
|
||||
"r2": -4.093563359726248
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 61,
|
||||
"mse": 1.0592195690639976,
|
||||
"rmse": 1.029183933543464,
|
||||
"mae": 0.6786946221025753,
|
||||
"r2": 0.19824714422578682
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5952380952380952,
|
||||
"precision": 0.37142213207121927,
|
||||
"recall": 0.35978835978835977,
|
||||
"f1": 0.35976608187134507
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5476190476190477,
|
||||
"precision": 0.5052287581699346,
|
||||
"recall": 0.5094429380143666,
|
||||
"f1": 0.4903811048389362
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9508196721311475,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9741379310344828,
|
||||
"f1": 0.8200589970501475
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 61,
|
||||
"kl_divergence": 0.5219711265981701,
|
||||
"js_divergence": 0.13035793372268764
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.18117503720006686,
|
||||
"lr": 8.135394049241399e-05,
|
||||
"weight_decay": 0.015076469897649124,
|
||||
"backbone_lr_ratio": 0.9586175198423679,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 36, 37, 38, 39, 40, 41, 43, 44, 45, 47, 48, 49, 50, 51, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 68, 69, 70, 72, 74, 76, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 91, 93, 94, 95, 96, 97, 100, 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 145, 147, 148, 149, 150, 151, 152, 153, 156, 157, 158, 159, 160, 161, 162, 163, 165, 166, 167, 168, 170, 171, 172, 173, 174, 175, 177, 179, 180, 181, 183, 184, 185, 186, 187, 188, 191, 192, 193, 194, 196, 197, 199, 200, 202, 203, 204, 205, 207, 208, 209, 210, 211, 212, 213, 214, 215, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242, 243, 245, 246, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 280, 281, 282, 283, 284, 285, 287, 289, 290, 293, 294, 295, 296, 297, 298, 299, 300, 302, 303, 305, 307, 308, 309, 310, 311, 312, 313, 314, 315, 317, 318, 320, 321, 322, 323, 324, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 358, 360, 361, 363, 364, 365, 366, 368, 369, 370, 371, 372, 373, 376, 377, 378, 379, 380, 381, 382, 383, 385, 386, 387, 388, 389, 390, 392, 394, 395, 398, 399, 400, 401, 402, 404, 405, 407, 408, 409, 410, 412, 413, 414, 415, 416, 417, 418], "outer_test_idx": [10, 12, 15, 31, 35, 42, 46, 52, 53, 54, 62, 66, 67, 71, 73, 75, 77, 81, 89, 90, 92, 98, 99, 105, 123, 124, 141, 144, 146, 154, 155, 164, 169, 176, 178, 182, 189, 190, 195, 198, 201, 206, 216, 217, 218, 219, 231, 234, 244, 247, 248, 258, 262, 270, 277, 278, 279, 286, 288, 291, 292, 301, 304, 306, 316, 319, 325, 328, 343, 357, 359, 362, 367, 374, 375, 384, 391, 393, 396, 397, 403, 406, 411, 419]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.10285134147020851,
|
||||
"rmse": 0.3207044456664243,
|
||||
"mae": 0.2692902485529582,
|
||||
"r2": -0.10201936510861498
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 60,
|
||||
"mse": 0.663864171054346,
|
||||
"rmse": 0.8147786024769833,
|
||||
"mae": 0.548082401487045,
|
||||
"r2": 0.11628172479876508
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5357142857142857,
|
||||
"precision": 0.4457671957671958,
|
||||
"recall": 0.7063492063492064,
|
||||
"f1": 0.44368858654572946
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6666666666666666,
|
||||
"precision": 0.6064246211305034,
|
||||
"recall": 0.6547619047619048,
|
||||
"f1": 0.6168530247347982
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9344262295081968,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9655172413793103,
|
||||
"f1": 0.7821428571428571
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.3895171114701636,
|
||||
"js_divergence": 0.10296173296198505
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.1799936812783694,
|
||||
"lr": 0.00033865324369584493,
|
||||
"weight_decay": 0.01440133094015265,
|
||||
"backbone_lr_ratio": 0.3278334190266755,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 51, 52, 53, 54, 55, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 102, 104, 105, 106, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 127, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 189, 190, 191, 192, 193, 194, 195, 198, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 221, 223, 224, 226, 227, 228, 230, 231, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 257, 258, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 284, 286, 288, 289, 290, 291, 292, 293, 294, 295, 297, 298, 299, 301, 302, 304, 305, 306, 307, 308, 309, 310, 312, 314, 315, 316, 317, 319, 320, 321, 325, 326, 327, 328, 331, 332, 334, 336, 340, 341, 343, 344, 346, 347, 348, 350, 352, 353, 357, 359, 360, 361, 362, 363, 364, 366, 367, 368, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 382, 383, 384, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, 404, 406, 407, 410, 411, 412, 414, 415, 416, 418, 419], "outer_test_idx": [3, 6, 13, 18, 19, 26, 33, 44, 48, 49, 50, 56, 57, 72, 80, 88, 94, 101, 103, 107, 108, 114, 126, 128, 130, 145, 149, 157, 167, 171, 175, 188, 196, 197, 199, 211, 220, 222, 225, 229, 232, 236, 250, 260, 261, 271, 281, 283, 285, 287, 296, 300, 303, 311, 313, 318, 322, 323, 324, 329, 330, 333, 335, 337, 338, 339, 342, 345, 349, 351, 354, 355, 356, 358, 365, 369, 381, 388, 399, 405, 408, 409, 413, 417]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.4783278330356588,
|
||||
"rmse": 0.6916124876226996,
|
||||
"mae": 0.3700549229081855,
|
||||
"r2": -0.4677665928655337
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 59,
|
||||
"mse": 0.8242563169380902,
|
||||
"rmse": 0.907885629877514,
|
||||
"mae": 0.6424747443900017,
|
||||
"r2": 0.19872492929644914
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.7023809523809523,
|
||||
"precision": 0.4810152874709206,
|
||||
"recall": 0.7291346646185355,
|
||||
"f1": 0.48990704493096837
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6428571428571429,
|
||||
"precision": 0.5627865961199294,
|
||||
"recall": 0.5790095525389644,
|
||||
"f1": 0.5641184865618634
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 60,
|
||||
"accuracy": 0.9333333333333333,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9649122807017544,
|
||||
"f1": 0.7818181818181817
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.40656307520365187,
|
||||
"js_divergence": 0.10906334576015857
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.14162975892531532,
|
||||
"lr": 0.0004019907813153378,
|
||||
"weight_decay": 0.00037960139235180325,
|
||||
"backbone_lr_ratio": 0.18010931581670617,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 25, 26, 28, 29, 31, 33, 34, 35, 37, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 56, 57, 59, 60, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, 81, 82, 83, 84, 85, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 101, 102, 103, 104, 105, 107, 108, 110, 111, 112, 113, 114, 116, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 130, 132, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 152, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 171, 173, 174, 175, 176, 177, 178, 180, 181, 182, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 203, 205, 206, 207, 208, 209, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 229, 230, 231, 232, 234, 235, 236, 238, 239, 240, 241, 243, 244, 245, 246, 247, 248, 249, 250, 251, 253, 254, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 270, 271, 272, 273, 277, 278, 279, 280, 281, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 300, 301, 302, 303, 304, 305, 306, 309, 311, 312, 313, 314, 315, 316, 318, 319, 320, 322, 323, 324, 325, 326, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 345, 346, 347, 349, 350, 351, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 365, 367, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 381, 383, 384, 385, 386, 388, 390, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 402, 403, 405, 406, 407, 408, 409, 410, 411, 413, 415, 416, 417, 418, 419], "outer_test_idx": [0, 5, 11, 21, 24, 27, 30, 32, 36, 38, 39, 40, 47, 55, 58, 61, 65, 76, 86, 95, 100, 106, 109, 115, 118, 125, 129, 131, 136, 148, 150, 151, 153, 156, 158, 159, 168, 172, 179, 183, 184, 185, 202, 204, 210, 212, 213, 228, 233, 237, 242, 252, 255, 256, 259, 268, 269, 274, 275, 276, 282, 297, 307, 308, 310, 317, 321, 327, 340, 344, 348, 352, 364, 366, 368, 379, 380, 382, 387, 389, 398, 404, 412, 414]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.16667444743348794,
|
||||
"rmse": 0.4082578198069058,
|
||||
"mae": 0.2857146007674081,
|
||||
"r2": -0.20998938958412183
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.9768153651071599,
|
||||
"rmse": 0.9883397012703476,
|
||||
"mae": 0.6390594764259355,
|
||||
"r2": 0.055435667309009284
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6904761904761905,
|
||||
"precision": 0.49700048379293665,
|
||||
"recall": 0.7552483358934973,
|
||||
"f1": 0.533806146572104
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6904761904761905,
|
||||
"precision": 0.6299589603283173,
|
||||
"recall": 0.6871794871794873,
|
||||
"f1": 0.6483638563493374
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 59,
|
||||
"accuracy": 0.9661016949152542,
|
||||
"precision": 0.8,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8659090909090909
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.394783094910233,
|
||||
"js_divergence": 0.10592993993751994
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.28242799368681437,
|
||||
"lr": 0.00037183641805732076,
|
||||
"weight_decay": 6.290644294586152e-05,
|
||||
"backbone_lr_ratio": 0.10677482709481352,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73, 75, 76, 77, 80, 81, 85, 86, 88, 89, 90, 92, 94, 95, 96, 98, 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, 111, 113, 114, 115, 116, 117, 118, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 139, 141, 144, 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 160, 163, 164, 167, 168, 169, 170, 171, 172, 175, 176, 178, 179, 180, 182, 183, 184, 185, 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 206, 208, 210, 211, 212, 213, 216, 217, 218, 219, 220, 222, 224, 225, 227, 228, 229, 230, 231, 232, 233, 234, 236, 237, 239, 241, 242, 244, 245, 247, 248, 249, 250, 252, 253, 255, 256, 257, 258, 259, 260, 261, 262, 265, 267, 268, 269, 270, 271, 272, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 285, 286, 287, 288, 291, 292, 294, 296, 297, 298, 299, 300, 301, 303, 304, 306, 307, 308, 309, 310, 311, 312, 313, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 332, 333, 335, 336, 337, 338, 339, 340, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 355, 356, 357, 358, 359, 360, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 374, 375, 377, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 393, 395, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 408, 409, 411, 412, 413, 414, 415, 417, 418, 419], "outer_test_idx": [7, 16, 20, 29, 51, 59, 60, 69, 70, 74, 78, 79, 82, 83, 84, 87, 91, 93, 97, 102, 110, 112, 119, 120, 121, 132, 137, 140, 142, 143, 152, 161, 162, 165, 166, 173, 174, 177, 181, 186, 187, 194, 205, 207, 209, 214, 215, 221, 223, 226, 235, 238, 240, 243, 246, 251, 254, 263, 264, 266, 273, 284, 289, 290, 293, 295, 302, 305, 314, 315, 331, 334, 341, 350, 353, 361, 373, 376, 378, 392, 394, 402, 410, 416]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.38432886654317966,
|
||||
"rmse": 0.6199426316548812,
|
||||
"mae": 0.43342806632260245,
|
||||
"r2": -0.2761097384806048
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.6744019580730524,
|
||||
"rmse": 0.8212197988803317,
|
||||
"mae": 0.6701494166306381,
|
||||
"r2": 0.14279441523317304
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5357142857142857,
|
||||
"precision": 0.35634973404255316,
|
||||
"recall": 0.547423887587822,
|
||||
"f1": 0.3495414294750159
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6904761904761905,
|
||||
"precision": 0.6587301587301587,
|
||||
"recall": 0.6938095238095238,
|
||||
"f1": 0.6526081185986528
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 58,
|
||||
"accuracy": 0.9655172413793104,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8242424242424242
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.40697274862376626,
|
||||
"js_divergence": 0.09501893155280818
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.23085562232445592,
|
||||
"lr": 0.0005227270589225132,
|
||||
"weight_decay": 0.00461701039547356,
|
||||
"backbone_lr_ratio": 0.12087164274488635,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 3, 5, 6, 7, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 24, 26, 27, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 42, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 114, 115, 118, 119, 120, 121, 123, 124, 125, 126, 128, 129, 130, 131, 132, 136, 137, 140, 141, 142, 143, 144, 145, 146, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 194, 195, 196, 197, 198, 199, 201, 202, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 240, 242, 243, 244, 246, 247, 248, 250, 251, 252, 254, 255, 256, 258, 259, 260, 261, 262, 263, 264, 266, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 295, 296, 297, 300, 301, 302, 303, 304, 305, 306, 307, 308, 310, 311, 313, 314, 315, 316, 317, 318, 319, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 333, 334, 335, 337, 338, 339, 340, 341, 342, 343, 344, 345, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 361, 362, 364, 365, 366, 367, 368, 369, 373, 374, 375, 376, 378, 379, 380, 381, 382, 384, 387, 388, 389, 391, 392, 393, 394, 396, 397, 398, 399, 402, 403, 404, 405, 406, 408, 409, 410, 411, 412, 413, 414, 416, 417, 419], "outer_test_idx": [1, 2, 4, 8, 9, 14, 17, 22, 23, 25, 28, 34, 37, 41, 43, 45, 63, 64, 68, 85, 96, 104, 111, 113, 116, 117, 122, 127, 133, 134, 135, 138, 139, 147, 160, 163, 170, 180, 191, 192, 193, 200, 203, 208, 224, 227, 230, 239, 241, 245, 249, 253, 257, 265, 267, 272, 280, 294, 298, 299, 309, 312, 320, 326, 332, 336, 346, 347, 360, 363, 370, 371, 372, 377, 383, 385, 386, 390, 395, 400, 401, 407, 415, 418]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.28709899653313253,
|
||||
"rmse": 0.5358161965946275,
|
||||
"mae": 0.41961162147067843,
|
||||
"r2": -3.7562675545651993
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 61,
|
||||
"mse": 1.0055884332484593,
|
||||
"rmse": 1.0027903236711349,
|
||||
"mae": 0.6592718309371687,
|
||||
"r2": 0.23884204782685936
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.44047619047619047,
|
||||
"precision": 0.34375,
|
||||
"recall": 0.32275132275132273,
|
||||
"f1": 0.2913806254767353
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5357142857142857,
|
||||
"precision": 0.5,
|
||||
"recall": 0.5004995004995004,
|
||||
"f1": 0.4796109240553685
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9508196721311475,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9741379310344828,
|
||||
"f1": 0.8200589970501475
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 61,
|
||||
"kl_divergence": 0.4974494276121329,
|
||||
"js_divergence": 0.1259321573319038
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.18117503720006686,
|
||||
"lr": 8.135394049241399e-05,
|
||||
"weight_decay": 0.015076469897649124,
|
||||
"backbone_lr_ratio": 0.9586175198423679,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 36, 37, 38, 39, 40, 41, 43, 44, 45, 47, 48, 49, 50, 51, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 68, 69, 70, 72, 74, 76, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 91, 93, 94, 95, 96, 97, 100, 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 145, 147, 148, 149, 150, 151, 152, 153, 156, 157, 158, 159, 160, 161, 162, 163, 165, 166, 167, 168, 170, 171, 172, 173, 174, 175, 177, 179, 180, 181, 183, 184, 185, 186, 187, 188, 191, 192, 193, 194, 196, 197, 199, 200, 202, 203, 204, 205, 207, 208, 209, 210, 211, 212, 213, 214, 215, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242, 243, 245, 246, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 280, 281, 282, 283, 284, 285, 287, 289, 290, 293, 294, 295, 296, 297, 298, 299, 300, 302, 303, 305, 307, 308, 309, 310, 311, 312, 313, 314, 315, 317, 318, 320, 321, 322, 323, 324, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 358, 360, 361, 363, 364, 365, 366, 368, 369, 370, 371, 372, 373, 376, 377, 378, 379, 380, 381, 382, 383, 385, 386, 387, 388, 389, 390, 392, 394, 395, 398, 399, 400, 401, 402, 404, 405, 407, 408, 409, 410, 412, 413, 414, 415, 416, 417, 418], "outer_test_idx": [10, 12, 15, 31, 35, 42, 46, 52, 53, 54, 62, 66, 67, 71, 73, 75, 77, 81, 89, 90, 92, 98, 99, 105, 123, 124, 141, 144, 146, 154, 155, 164, 169, 176, 178, 182, 189, 190, 195, 198, 201, 206, 216, 217, 218, 219, 231, 234, 244, 247, 248, 258, 262, 270, 277, 278, 279, 286, 288, 291, 292, 301, 304, 306, 316, 319, 325, 328, 343, 357, 359, 362, 367, 374, 375, 384, 391, 393, 396, 397, 403, 406, 411, 419]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.12734599676966307,
|
||||
"rmse": 0.3568557086129674,
|
||||
"mae": 0.283481532619113,
|
||||
"r2": -0.3644717949534717
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 60,
|
||||
"mse": 0.6995736506531275,
|
||||
"rmse": 0.8364051952571359,
|
||||
"mae": 0.5743296845893686,
|
||||
"r2": 0.06874621814647808
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5119047619047619,
|
||||
"precision": 0.41008771929824556,
|
||||
"recall": 0.6746031746031745,
|
||||
"f1": 0.4050345260514752
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6666666666666666,
|
||||
"precision": 0.6189974937343359,
|
||||
"recall": 0.687908496732026,
|
||||
"f1": 0.6319077437787746
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9344262295081968,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9655172413793103,
|
||||
"f1": 0.7821428571428571
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.3964743242871827,
|
||||
"js_divergence": 0.10757710661599443
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.1799936812783694,
|
||||
"lr": 0.00033865324369584493,
|
||||
"weight_decay": 0.01440133094015265,
|
||||
"backbone_lr_ratio": 0.3278334190266755,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 51, 52, 53, 54, 55, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 102, 104, 105, 106, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 127, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 189, 190, 191, 192, 193, 194, 195, 198, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 221, 223, 224, 226, 227, 228, 230, 231, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 257, 258, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 284, 286, 288, 289, 290, 291, 292, 293, 294, 295, 297, 298, 299, 301, 302, 304, 305, 306, 307, 308, 309, 310, 312, 314, 315, 316, 317, 319, 320, 321, 325, 326, 327, 328, 331, 332, 334, 336, 340, 341, 343, 344, 346, 347, 348, 350, 352, 353, 357, 359, 360, 361, 362, 363, 364, 366, 367, 368, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 382, 383, 384, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, 404, 406, 407, 410, 411, 412, 414, 415, 416, 418, 419], "outer_test_idx": [3, 6, 13, 18, 19, 26, 33, 44, 48, 49, 50, 56, 57, 72, 80, 88, 94, 101, 103, 107, 108, 114, 126, 128, 130, 145, 149, 157, 167, 171, 175, 188, 196, 197, 199, 211, 220, 222, 225, 229, 232, 236, 250, 260, 261, 271, 281, 283, 285, 287, 296, 300, 303, 311, 313, 318, 322, 323, 324, 329, 330, 333, 335, 337, 338, 339, 342, 345, 349, 351, 354, 355, 356, 358, 365, 369, 381, 388, 399, 405, 408, 409, 413, 417]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.46358638894813786,
|
||||
"rmse": 0.6808717859833361,
|
||||
"mae": 0.37019611553973464,
|
||||
"r2": -0.422531928127458
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 59,
|
||||
"mse": 0.8370140113507513,
|
||||
"rmse": 0.9148846983914155,
|
||||
"mae": 0.6370043654657774,
|
||||
"r2": 0.18632293457411198
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6071428571428571,
|
||||
"precision": 0.47548510048510045,
|
||||
"recall": 0.7491039426523297,
|
||||
"f1": 0.4726173766801967
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6785714285714286,
|
||||
"precision": 0.6115219070742745,
|
||||
"recall": 0.6469582704876823,
|
||||
"f1": 0.6198067632850242
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 60,
|
||||
"accuracy": 0.9333333333333333,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9649122807017544,
|
||||
"f1": 0.7818181818181817
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.40801997248379873,
|
||||
"js_divergence": 0.11086638268723202
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
{
|
||||
"dropout": 0.14162975892531532,
|
||||
"lr": 0.0004019907813153378,
|
||||
"weight_decay": 0.00037960139235180325,
|
||||
"backbone_lr_ratio": 0.18010931581670617,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 25, 26, 28, 29, 31, 33, 34, 35, 37, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 56, 57, 59, 60, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, 81, 82, 83, 84, 85, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 101, 102, 103, 104, 105, 107, 108, 110, 111, 112, 113, 114, 116, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 130, 132, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 152, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 171, 173, 174, 175, 176, 177, 178, 180, 181, 182, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 203, 205, 206, 207, 208, 209, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 229, 230, 231, 232, 234, 235, 236, 238, 239, 240, 241, 243, 244, 245, 246, 247, 248, 249, 250, 251, 253, 254, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 270, 271, 272, 273, 277, 278, 279, 280, 281, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 300, 301, 302, 303, 304, 305, 306, 309, 311, 312, 313, 314, 315, 316, 318, 319, 320, 322, 323, 324, 325, 326, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 345, 346, 347, 349, 350, 351, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 365, 367, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 381, 383, 384, 385, 386, 388, 390, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 402, 403, 405, 406, 407, 408, 409, 410, 411, 413, 415, 416, 417, 418, 419], "outer_test_idx": [0, 5, 11, 21, 24, 27, 30, 32, 36, 38, 39, 40, 47, 55, 58, 61, 65, 76, 86, 95, 100, 106, 109, 115, 118, 125, 129, 131, 136, 148, 150, 151, 153, 156, 158, 159, 168, 172, 179, 183, 184, 185, 202, 204, 210, 212, 213, 228, 233, 237, 242, 252, 255, 256, 259, 268, 269, 274, 275, 276, 282, 297, 307, 308, 310, 317, 321, 327, 340, 344, 348, 352, 364, 366, 368, 379, 380, 382, 387, 389, 398, 404, 412, 414]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.15145313313910996,
|
||||
"rmse": 0.3891697998806048,
|
||||
"mae": 0.2744193644750686,
|
||||
"r2": -0.09948877551085711
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.9378577638427679,
|
||||
"rmse": 0.9684305673835207,
|
||||
"mae": 0.6135335185661398,
|
||||
"r2": 0.09310702461562304
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6071428571428571,
|
||||
"precision": 0.4863247863247863,
|
||||
"recall": 0.7491039426523297,
|
||||
"f1": 0.5019607843137255
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6785714285714286,
|
||||
"precision": 0.6324786324786325,
|
||||
"recall": 0.7021367521367522,
|
||||
"f1": 0.6488452445899254
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 59,
|
||||
"accuracy": 0.9661016949152542,
|
||||
"precision": 0.8,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8659090909090909
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.39116454524118993,
|
||||
"js_divergence": 0.1065009133663494
|
||||
}
|
||||
}
|
||||
60
models/abl/baseline/20260617_180556/strata_info.json
Normal file
60
models/abl/baseline/20260617_180556/strata_info.json
Normal file
@ -0,0 +1,60 @@
|
||||
{
|
||||
"original_strata_counts": {
|
||||
"T0|P0|E0": "5",
|
||||
"T0|P0|E1": "58",
|
||||
"T0|P0|E2": "169",
|
||||
"T0|P1|E0": "1",
|
||||
"T0|P1|E1": "17",
|
||||
"T0|P1|E2": "32",
|
||||
"T0|P2|E2": "3",
|
||||
"T1|P0|E2": "9",
|
||||
"T1|P1|E2": "5",
|
||||
"TNA|P0|E0": "28",
|
||||
"TNA|P0|E1": "21",
|
||||
"TNA|P0|E2": "20",
|
||||
"TNA|P1|E0": "29",
|
||||
"TNA|P1|E1": "7",
|
||||
"TNA|P1|E2": "14",
|
||||
"TNA|P2|E2": "1",
|
||||
"TNA|P3|E0": "1"
|
||||
},
|
||||
"rare_strata": [
|
||||
"T0|P1|E0",
|
||||
"T0|P2|E2",
|
||||
"TNA|P2|E2",
|
||||
"TNA|P3|E0"
|
||||
],
|
||||
"final_strata": [
|
||||
"RARE",
|
||||
"T0|P0|E0",
|
||||
"T0|P0|E1",
|
||||
"T0|P0|E2",
|
||||
"T0|P1|E1",
|
||||
"T0|P1|E2",
|
||||
"T1|P0|E2",
|
||||
"T1|P1|E2",
|
||||
"TNA|P0|E0",
|
||||
"TNA|P0|E1",
|
||||
"TNA|P0|E2",
|
||||
"TNA|P1|E0",
|
||||
"TNA|P1|E1",
|
||||
"TNA|P1|E2"
|
||||
],
|
||||
"final_strata_counts": {
|
||||
"RARE": "6",
|
||||
"T0|P0|E0": "5",
|
||||
"T0|P0|E1": "58",
|
||||
"T0|P0|E2": "169",
|
||||
"T0|P1|E1": "17",
|
||||
"T0|P1|E2": "32",
|
||||
"T1|P0|E2": "9",
|
||||
"T1|P1|E2": "5",
|
||||
"TNA|P0|E0": "28",
|
||||
"TNA|P0|E1": "21",
|
||||
"TNA|P0|E2": "20",
|
||||
"TNA|P1|E0": "29",
|
||||
"TNA|P1|E1": "7",
|
||||
"TNA|P1|E2": "14"
|
||||
},
|
||||
"n_rare_merged": "6"
|
||||
}
|
||||
932
models/abl/baseline/20260617_180556/summary.json
Normal file
932
models/abl/baseline/20260617_180556/summary.json
Normal file
@ -0,0 +1,932 @@
|
||||
{
|
||||
"fold_results": [
|
||||
{
|
||||
"fold": 0,
|
||||
"best_params": {
|
||||
"dropout": 0.28242799368681437,
|
||||
"lr": 0.00037183641805732076,
|
||||
"weight_decay": 6.290644294586152e-05,
|
||||
"backbone_lr_ratio": 0.10677482709481352,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 15,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.32790454280151365,
|
||||
"rmse": 0.572629498717551,
|
||||
"mae": 0.35871042688208893,
|
||||
"r2": -0.08876073797082196
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.7250728333301815,
|
||||
"rmse": 0.8515120864263651,
|
||||
"mae": 0.7098816664696768,
|
||||
"r2": 0.07838867510225656
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5476190476190477,
|
||||
"precision": 0.3435971685971686,
|
||||
"recall": 0.5359094457455114,
|
||||
"f1": 0.34977324263038545
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.7142857142857143,
|
||||
"precision": 0.6871101871101871,
|
||||
"recall": 0.707142857142857,
|
||||
"f1": 0.6756066411238826
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 58,
|
||||
"accuracy": 0.9655172413793104,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8242424242424242
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.4073394583325288,
|
||||
"js_divergence": 0.092887269703335
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 1,
|
||||
"best_params": {
|
||||
"dropout": 0.23085562232445592,
|
||||
"lr": 0.0005227270589225132,
|
||||
"weight_decay": 0.00461701039547356,
|
||||
"backbone_lr_ratio": 0.12087164274488635,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 9,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.233876145855699,
|
||||
"rmse": 0.4836074294876982,
|
||||
"mae": 0.3760785318556286,
|
||||
"r2": -2.874543407510119
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 61,
|
||||
"mse": 1.0238964615450643,
|
||||
"rmse": 1.0118776910007772,
|
||||
"mae": 0.6578027546466862,
|
||||
"r2": 0.2249841902125319
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5238095238095238,
|
||||
"precision": 0.34497354497354493,
|
||||
"recall": 0.3280423280423281,
|
||||
"f1": 0.3231922398589065
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5595238095238095,
|
||||
"precision": 0.5101731601731602,
|
||||
"recall": 0.5036154321868608,
|
||||
"f1": 0.48790324563862697
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9508196721311475,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9741379310344828,
|
||||
"f1": 0.8200589970501475
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 61,
|
||||
"kl_divergence": 0.48528378254405913,
|
||||
"js_divergence": 0.12258377401744426
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 2,
|
||||
"best_params": {
|
||||
"dropout": 0.18117503720006686,
|
||||
"lr": 8.135394049241399e-05,
|
||||
"weight_decay": 0.015076469897649124,
|
||||
"backbone_lr_ratio": 0.9586175198423679,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 22,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.07870736214858826,
|
||||
"rmse": 0.28054832408800495,
|
||||
"mae": 0.2252055633635748,
|
||||
"r2": 0.15667568332606574
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 60,
|
||||
"mse": 0.6624288051399898,
|
||||
"rmse": 0.8138972939750997,
|
||||
"mae": 0.5578871982870623,
|
||||
"r2": 0.118192445613993
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5714285714285714,
|
||||
"precision": 0.43453195231581004,
|
||||
"recall": 0.7014848950332823,
|
||||
"f1": 0.4452380952380952
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6666666666666666,
|
||||
"precision": 0.6140109890109889,
|
||||
"recall": 0.6785714285714285,
|
||||
"f1": 0.6262626262626263
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9344262295081968,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9655172413793103,
|
||||
"f1": 0.7821428571428571
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.3967825471495568,
|
||||
"js_divergence": 0.1057568924841401
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 3,
|
||||
"best_params": {
|
||||
"dropout": 0.1799936812783694,
|
||||
"lr": 0.00033865324369584493,
|
||||
"weight_decay": 0.01440133094015265,
|
||||
"backbone_lr_ratio": 0.3278334190266755,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 10,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.477705869562307,
|
||||
"rmse": 0.6911626939891266,
|
||||
"mae": 0.38659381004701177,
|
||||
"r2": -0.46585807501413723
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 59,
|
||||
"mse": 0.7692103143544243,
|
||||
"rmse": 0.8770463581558413,
|
||||
"mae": 0.6155587352528158,
|
||||
"r2": 0.2522361838732067
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6904761904761905,
|
||||
"precision": 0.4426767676767677,
|
||||
"recall": 0.6817716333845366,
|
||||
"f1": 0.43613724611708476
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6428571428571429,
|
||||
"precision": 0.5650987224157956,
|
||||
"recall": 0.5790095525389644,
|
||||
"f1": 0.5637508626639062
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 60,
|
||||
"accuracy": 0.9333333333333333,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9649122807017544,
|
||||
"f1": 0.7818181818181817
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.4102080974965646,
|
||||
"js_divergence": 0.11100613154873733
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 4,
|
||||
"best_params": {
|
||||
"dropout": 0.14162975892531532,
|
||||
"lr": 0.0004019907813153378,
|
||||
"weight_decay": 0.00037960139235180325,
|
||||
"backbone_lr_ratio": 0.18010931581670617,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 12,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.1842198466764517,
|
||||
"rmse": 0.4292083953937198,
|
||||
"mae": 0.29178874833243235,
|
||||
"r2": -0.33736192476816806
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.9003281069383875,
|
||||
"rmse": 0.9488562098328637,
|
||||
"mae": 0.6070586243837044,
|
||||
"r2": 0.1293975832987566
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5476190476190477,
|
||||
"precision": 0.34548450889914306,
|
||||
"recall": 0.5337941628264209,
|
||||
"f1": 0.3497882046269143
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.7023809523809523,
|
||||
"precision": 0.6548765244417418,
|
||||
"recall": 0.7576923076923077,
|
||||
"f1": 0.6777508856852221
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 59,
|
||||
"accuracy": 0.9661016949152542,
|
||||
"precision": 0.8,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8659090909090909
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.3946735882065513,
|
||||
"js_divergence": 0.1067245125767987
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 0,
|
||||
"best_params": {
|
||||
"dropout": 0.28242799368681437,
|
||||
"lr": 0.00037183641805732076,
|
||||
"weight_decay": 6.290644294586152e-05,
|
||||
"backbone_lr_ratio": 0.10677482709481352,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 15,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.3808128541133737,
|
||||
"rmse": 0.6171003598389598,
|
||||
"mae": 0.4168719153806388,
|
||||
"r2": -0.2644353156285024
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.751610048614176,
|
||||
"rmse": 0.8669544674400012,
|
||||
"mae": 0.7122741444999802,
|
||||
"r2": 0.04465827311677528
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5,
|
||||
"precision": 0.3181788931788932,
|
||||
"recall": 0.5039032006245121,
|
||||
"f1": 0.32369614512471656
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6666666666666666,
|
||||
"precision": 0.6258687258687259,
|
||||
"recall": 0.6461904761904762,
|
||||
"f1": 0.6127803231251508
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 58,
|
||||
"accuracy": 0.9655172413793104,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8242424242424242
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.39644445917049376,
|
||||
"js_divergence": 0.09334798400608228
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 1,
|
||||
"best_params": {
|
||||
"dropout": 0.23085562232445592,
|
||||
"lr": 0.0005227270589225132,
|
||||
"weight_decay": 0.00461701039547356,
|
||||
"backbone_lr_ratio": 0.12087164274488635,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 9,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.3074589292084139,
|
||||
"rmse": 0.5544897917982025,
|
||||
"mae": 0.3793355481965201,
|
||||
"r2": -4.093563359726248
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 61,
|
||||
"mse": 1.0592195690639976,
|
||||
"rmse": 1.029183933543464,
|
||||
"mae": 0.6786946221025753,
|
||||
"r2": 0.19824714422578682
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5952380952380952,
|
||||
"precision": 0.37142213207121927,
|
||||
"recall": 0.35978835978835977,
|
||||
"f1": 0.35976608187134507
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5476190476190477,
|
||||
"precision": 0.5052287581699346,
|
||||
"recall": 0.5094429380143666,
|
||||
"f1": 0.4903811048389362
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9508196721311475,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9741379310344828,
|
||||
"f1": 0.8200589970501475
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 61,
|
||||
"kl_divergence": 0.5219711265981701,
|
||||
"js_divergence": 0.13035793372268764
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 2,
|
||||
"best_params": {
|
||||
"dropout": 0.18117503720006686,
|
||||
"lr": 8.135394049241399e-05,
|
||||
"weight_decay": 0.015076469897649124,
|
||||
"backbone_lr_ratio": 0.9586175198423679,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 22,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.10285134147020851,
|
||||
"rmse": 0.3207044456664243,
|
||||
"mae": 0.2692902485529582,
|
||||
"r2": -0.10201936510861498
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 60,
|
||||
"mse": 0.663864171054346,
|
||||
"rmse": 0.8147786024769833,
|
||||
"mae": 0.548082401487045,
|
||||
"r2": 0.11628172479876508
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5357142857142857,
|
||||
"precision": 0.4457671957671958,
|
||||
"recall": 0.7063492063492064,
|
||||
"f1": 0.44368858654572946
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6666666666666666,
|
||||
"precision": 0.6064246211305034,
|
||||
"recall": 0.6547619047619048,
|
||||
"f1": 0.6168530247347982
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9344262295081968,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9655172413793103,
|
||||
"f1": 0.7821428571428571
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.3895171114701636,
|
||||
"js_divergence": 0.10296173296198505
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 3,
|
||||
"best_params": {
|
||||
"dropout": 0.1799936812783694,
|
||||
"lr": 0.00033865324369584493,
|
||||
"weight_decay": 0.01440133094015265,
|
||||
"backbone_lr_ratio": 0.3278334190266755,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 10,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.4783278330356588,
|
||||
"rmse": 0.6916124876226996,
|
||||
"mae": 0.3700549229081855,
|
||||
"r2": -0.4677665928655337
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 59,
|
||||
"mse": 0.8242563169380902,
|
||||
"rmse": 0.907885629877514,
|
||||
"mae": 0.6424747443900017,
|
||||
"r2": 0.19872492929644914
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.7023809523809523,
|
||||
"precision": 0.4810152874709206,
|
||||
"recall": 0.7291346646185355,
|
||||
"f1": 0.48990704493096837
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6428571428571429,
|
||||
"precision": 0.5627865961199294,
|
||||
"recall": 0.5790095525389644,
|
||||
"f1": 0.5641184865618634
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 60,
|
||||
"accuracy": 0.9333333333333333,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9649122807017544,
|
||||
"f1": 0.7818181818181817
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.40656307520365187,
|
||||
"js_divergence": 0.10906334576015857
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 4,
|
||||
"best_params": {
|
||||
"dropout": 0.14162975892531532,
|
||||
"lr": 0.0004019907813153378,
|
||||
"weight_decay": 0.00037960139235180325,
|
||||
"backbone_lr_ratio": 0.18010931581670617,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 12,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.16667444743348794,
|
||||
"rmse": 0.4082578198069058,
|
||||
"mae": 0.2857146007674081,
|
||||
"r2": -0.20998938958412183
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.9768153651071599,
|
||||
"rmse": 0.9883397012703476,
|
||||
"mae": 0.6390594764259355,
|
||||
"r2": 0.055435667309009284
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6904761904761905,
|
||||
"precision": 0.49700048379293665,
|
||||
"recall": 0.7552483358934973,
|
||||
"f1": 0.533806146572104
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6904761904761905,
|
||||
"precision": 0.6299589603283173,
|
||||
"recall": 0.6871794871794873,
|
||||
"f1": 0.6483638563493374
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 59,
|
||||
"accuracy": 0.9661016949152542,
|
||||
"precision": 0.8,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8659090909090909
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.394783094910233,
|
||||
"js_divergence": 0.10592993993751994
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 0,
|
||||
"best_params": {
|
||||
"dropout": 0.28242799368681437,
|
||||
"lr": 0.00037183641805732076,
|
||||
"weight_decay": 6.290644294586152e-05,
|
||||
"backbone_lr_ratio": 0.10677482709481352,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 15,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.38432886654317966,
|
||||
"rmse": 0.6199426316548812,
|
||||
"mae": 0.43342806632260245,
|
||||
"r2": -0.2761097384806048
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.6744019580730524,
|
||||
"rmse": 0.8212197988803317,
|
||||
"mae": 0.6701494166306381,
|
||||
"r2": 0.14279441523317304
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5357142857142857,
|
||||
"precision": 0.35634973404255316,
|
||||
"recall": 0.547423887587822,
|
||||
"f1": 0.3495414294750159
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6904761904761905,
|
||||
"precision": 0.6587301587301587,
|
||||
"recall": 0.6938095238095238,
|
||||
"f1": 0.6526081185986528
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 58,
|
||||
"accuracy": 0.9655172413793104,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8242424242424242
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.40697274862376626,
|
||||
"js_divergence": 0.09501893155280818
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 1,
|
||||
"best_params": {
|
||||
"dropout": 0.23085562232445592,
|
||||
"lr": 0.0005227270589225132,
|
||||
"weight_decay": 0.00461701039547356,
|
||||
"backbone_lr_ratio": 0.12087164274488635,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 9,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.28709899653313253,
|
||||
"rmse": 0.5358161965946275,
|
||||
"mae": 0.41961162147067843,
|
||||
"r2": -3.7562675545651993
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 61,
|
||||
"mse": 1.0055884332484593,
|
||||
"rmse": 1.0027903236711349,
|
||||
"mae": 0.6592718309371687,
|
||||
"r2": 0.23884204782685936
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.44047619047619047,
|
||||
"precision": 0.34375,
|
||||
"recall": 0.32275132275132273,
|
||||
"f1": 0.2913806254767353
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5357142857142857,
|
||||
"precision": 0.5,
|
||||
"recall": 0.5004995004995004,
|
||||
"f1": 0.4796109240553685
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9508196721311475,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9741379310344828,
|
||||
"f1": 0.8200589970501475
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 61,
|
||||
"kl_divergence": 0.4974494276121329,
|
||||
"js_divergence": 0.1259321573319038
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 2,
|
||||
"best_params": {
|
||||
"dropout": 0.18117503720006686,
|
||||
"lr": 8.135394049241399e-05,
|
||||
"weight_decay": 0.015076469897649124,
|
||||
"backbone_lr_ratio": 0.9586175198423679,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 22,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.12734599676966307,
|
||||
"rmse": 0.3568557086129674,
|
||||
"mae": 0.283481532619113,
|
||||
"r2": -0.3644717949534717
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 60,
|
||||
"mse": 0.6995736506531275,
|
||||
"rmse": 0.8364051952571359,
|
||||
"mae": 0.5743296845893686,
|
||||
"r2": 0.06874621814647808
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5119047619047619,
|
||||
"precision": 0.41008771929824556,
|
||||
"recall": 0.6746031746031745,
|
||||
"f1": 0.4050345260514752
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6666666666666666,
|
||||
"precision": 0.6189974937343359,
|
||||
"recall": 0.687908496732026,
|
||||
"f1": 0.6319077437787746
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9344262295081968,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9655172413793103,
|
||||
"f1": 0.7821428571428571
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.3964743242871827,
|
||||
"js_divergence": 0.10757710661599443
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 3,
|
||||
"best_params": {
|
||||
"dropout": 0.1799936812783694,
|
||||
"lr": 0.00033865324369584493,
|
||||
"weight_decay": 0.01440133094015265,
|
||||
"backbone_lr_ratio": 0.3278334190266755,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 10,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.46358638894813786,
|
||||
"rmse": 0.6808717859833361,
|
||||
"mae": 0.37019611553973464,
|
||||
"r2": -0.422531928127458
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 59,
|
||||
"mse": 0.8370140113507513,
|
||||
"rmse": 0.9148846983914155,
|
||||
"mae": 0.6370043654657774,
|
||||
"r2": 0.18632293457411198
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6071428571428571,
|
||||
"precision": 0.47548510048510045,
|
||||
"recall": 0.7491039426523297,
|
||||
"f1": 0.4726173766801967
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6785714285714286,
|
||||
"precision": 0.6115219070742745,
|
||||
"recall": 0.6469582704876823,
|
||||
"f1": 0.6198067632850242
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 60,
|
||||
"accuracy": 0.9333333333333333,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9649122807017544,
|
||||
"f1": 0.7818181818181817
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.40801997248379873,
|
||||
"js_divergence": 0.11086638268723202
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 4,
|
||||
"best_params": {
|
||||
"dropout": 0.14162975892531532,
|
||||
"lr": 0.0004019907813153378,
|
||||
"weight_decay": 0.00037960139235180325,
|
||||
"backbone_lr_ratio": 0.18010931581670617,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
},
|
||||
"epoch_mean": 12,
|
||||
"test_metrics": {
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.15145313313910996,
|
||||
"rmse": 0.3891697998806048,
|
||||
"mae": 0.2744193644750686,
|
||||
"r2": -0.09948877551085711
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.9378577638427679,
|
||||
"rmse": 0.9684305673835207,
|
||||
"mae": 0.6135335185661398,
|
||||
"r2": 0.09310702461562304
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6071428571428571,
|
||||
"precision": 0.4863247863247863,
|
||||
"recall": 0.7491039426523297,
|
||||
"f1": 0.5019607843137255
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6785714285714286,
|
||||
"precision": 0.6324786324786325,
|
||||
"recall": 0.7021367521367522,
|
||||
"f1": 0.6488452445899254
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 59,
|
||||
"accuracy": 0.9661016949152542,
|
||||
"precision": 0.8,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8659090909090909
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.39116454524118993,
|
||||
"js_divergence": 0.1065009133663494
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"summary_stats": {
|
||||
"size": {
|
||||
"mse_mean": 0.2768235036159284,
|
||||
"mse_std": 0.1346583260723207,
|
||||
"rmse_mean": 0.508798491275714,
|
||||
"rmse_std": 0.13396864891266763,
|
||||
"mae_mean": 0.3427187344475763,
|
||||
"mae_std": 0.06271329639776796,
|
||||
"r2_mean": -0.9110994850991861,
|
||||
"r2_std": 1.3609378589681
|
||||
},
|
||||
"delivery": {
|
||||
"mse_mean": 0.834075853950265,
|
||||
"mse_std": 0.13581578656540713,
|
||||
"rmse_mean": 0.9102708371721865,
|
||||
"rmse_std": 0.0740463162089242,
|
||||
"mae_mean": 0.634870878942305,
|
||||
"mae_std": 0.04810398332825185,
|
||||
"r2_mean": 0.14309063048291837,
|
||||
"r2_std": 0.06678544282427759
|
||||
},
|
||||
"pdi": {
|
||||
"accuracy_mean": 0.573809523809524,
|
||||
"accuracy_std": 0.07315376902732006,
|
||||
"precision_mean": 0.40644301832628565,
|
||||
"precision_std": 0.06081224559746048,
|
||||
"recall_mean": 0.591894166836878,
|
||||
"recall_std": 0.15212645465643837,
|
||||
"f1_mean": 0.40503518503422653,
|
||||
"f1_std": 0.07270554354315185
|
||||
},
|
||||
"ee": {
|
||||
"accuracy_mean": 0.65,
|
||||
"accuracy_std": 0.05460640448180816,
|
||||
"precision_mean": 0.5988843624524457,
|
||||
"precision_std": 0.055997857124168736,
|
||||
"recall_mean": 0.6355952320322067,
|
||||
"recall_std": 0.07902933872282923,
|
||||
"f1_mean": 0.5997699900861396,
|
||||
"f1_std": 0.06505269720858664
|
||||
},
|
||||
"toxic": {
|
||||
"accuracy_mean": 0.9500396342534485,
|
||||
"accuracy_std": 0.014290090778642328,
|
||||
"precision_mean": 0.7457142857142857,
|
||||
"precision_std": 0.03149343955006944,
|
||||
"recall_mean": 0.9737706334802525,
|
||||
"recall_std": 0.007575117962473199,
|
||||
"f1_mean": 0.81483431023254,
|
||||
"f1_std": 0.0312513648447909
|
||||
},
|
||||
"biodist": {
|
||||
"kl_divergence_mean": 0.42024315728866957,
|
||||
"kl_divergence_std": 0.04170766696370389,
|
||||
"js_divergence_mean": 0.10843433388487847,
|
||||
"js_divergence_std": 0.010645869413863087
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.12930599750984867,
|
||||
"lr": 0.0003183893957684731,
|
||||
"weight_decay": 0.0011797820449629415,
|
||||
"backbone_lr_ratio": 0.35598913444921026,
|
||||
"moe_n_experts": 2,
|
||||
"moe_top_k": 2,
|
||||
"moe_expert_hidden_mult": 2,
|
||||
"llm_lora_r": 8,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
1
models/abl/both/20260617_232841/outer_fold_0/splits.json
Normal file
1
models/abl/both/20260617_232841/outer_fold_0/splits.json
Normal file
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73, 75, 76, 77, 80, 81, 85, 86, 88, 89, 90, 92, 94, 95, 96, 98, 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, 111, 113, 114, 115, 116, 117, 118, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 139, 141, 144, 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 160, 163, 164, 167, 168, 169, 170, 171, 172, 175, 176, 178, 179, 180, 182, 183, 184, 185, 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 206, 208, 210, 211, 212, 213, 216, 217, 218, 219, 220, 222, 224, 225, 227, 228, 229, 230, 231, 232, 233, 234, 236, 237, 239, 241, 242, 244, 245, 247, 248, 249, 250, 252, 253, 255, 256, 257, 258, 259, 260, 261, 262, 265, 267, 268, 269, 270, 271, 272, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 285, 286, 287, 288, 291, 292, 294, 296, 297, 298, 299, 300, 301, 303, 304, 306, 307, 308, 309, 310, 311, 312, 313, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 332, 333, 335, 336, 337, 338, 339, 340, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 355, 356, 357, 358, 359, 360, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 374, 375, 377, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 393, 395, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 408, 409, 411, 412, 413, 414, 415, 417, 418, 419], "outer_test_idx": [7, 16, 20, 29, 51, 59, 60, 69, 70, 74, 78, 79, 82, 83, 84, 87, 91, 93, 97, 102, 110, 112, 119, 120, 121, 132, 137, 140, 142, 143, 152, 161, 162, 165, 166, 173, 174, 177, 181, 186, 187, 194, 205, 207, 209, 214, 215, 221, 223, 226, 235, 238, 240, 243, 246, 251, 254, 263, 264, 266, 273, 284, 289, 290, 293, 295, 302, 305, 314, 315, 331, 334, 341, 350, 353, 361, 373, 376, 378, 392, 394, 402, 410, 416]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.27316252507783767,
|
||||
"rmse": 0.5226495241343262,
|
||||
"mae": 0.268634506018765,
|
||||
"r2": 0.09300240292875017
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.49318943105662066,
|
||||
"rmse": 0.7022744698881063,
|
||||
"mae": 0.5225495728182381,
|
||||
"r2": 0.37312647214479966
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.75,
|
||||
"precision": 0.4107142857142857,
|
||||
"recall": 0.5977751756440282,
|
||||
"f1": 0.447008547008547
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.7023809523809523,
|
||||
"precision": 0.6658119658119658,
|
||||
"recall": 0.6976190476190475,
|
||||
"f1": 0.6690688363683327
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 58,
|
||||
"accuracy": 0.9655172413793104,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8242424242424242
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.20575334902695963,
|
||||
"js_divergence": 0.045069148869594025
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.14959924395216218,
|
||||
"lr": 0.00012401964324838103,
|
||||
"weight_decay": 9.656428689903883e-05,
|
||||
"backbone_lr_ratio": 0.32683834688760083,
|
||||
"moe_n_experts": 4,
|
||||
"moe_top_k": 2,
|
||||
"moe_expert_hidden_mult": 1,
|
||||
"llm_lora_r": 32,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
1
models/abl/both/20260617_232841/outer_fold_1/splits.json
Normal file
1
models/abl/both/20260617_232841/outer_fold_1/splits.json
Normal file
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 3, 5, 6, 7, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 24, 26, 27, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 42, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 114, 115, 118, 119, 120, 121, 123, 124, 125, 126, 128, 129, 130, 131, 132, 136, 137, 140, 141, 142, 143, 144, 145, 146, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 194, 195, 196, 197, 198, 199, 201, 202, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 240, 242, 243, 244, 246, 247, 248, 250, 251, 252, 254, 255, 256, 258, 259, 260, 261, 262, 263, 264, 266, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 295, 296, 297, 300, 301, 302, 303, 304, 305, 306, 307, 308, 310, 311, 313, 314, 315, 316, 317, 318, 319, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 333, 334, 335, 337, 338, 339, 340, 341, 342, 343, 344, 345, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 361, 362, 364, 365, 366, 367, 368, 369, 373, 374, 375, 376, 378, 379, 380, 381, 382, 384, 387, 388, 389, 391, 392, 393, 394, 396, 397, 398, 399, 402, 403, 404, 405, 406, 408, 409, 410, 411, 412, 413, 414, 416, 417, 419], "outer_test_idx": [1, 2, 4, 8, 9, 14, 17, 22, 23, 25, 28, 34, 37, 41, 43, 45, 63, 64, 68, 85, 96, 104, 111, 113, 116, 117, 122, 127, 133, 134, 135, 138, 139, 147, 160, 163, 170, 180, 191, 192, 193, 200, 203, 208, 224, 227, 230, 239, 241, 245, 249, 253, 257, 265, 267, 272, 280, 294, 298, 299, 309, 312, 320, 326, 332, 336, 346, 347, 360, 363, 370, 371, 372, 377, 383, 385, 386, 390, 395, 400, 401, 407, 415, 418]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.11199287760383045,
|
||||
"rmse": 0.3346533693298641,
|
||||
"mae": 0.24370252518426805,
|
||||
"r2": -0.8553464014912291
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 61,
|
||||
"mse": 0.9945337433308287,
|
||||
"rmse": 0.9972631264269368,
|
||||
"mae": 0.637184505488296,
|
||||
"r2": 0.24720965117371863
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5833333333333334,
|
||||
"precision": 0.2606719367588933,
|
||||
"recall": 0.24206349206349206,
|
||||
"f1": 0.25038520801232667
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5357142857142857,
|
||||
"precision": 0.4737424924924925,
|
||||
"recall": 0.47331240188383045,
|
||||
"f1": 0.46359870390878144
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9508196721311475,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9741379310344828,
|
||||
"f1": 0.8200589970501475
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 61,
|
||||
"kl_divergence": 0.42904510824573017,
|
||||
"js_divergence": 0.11140172525390164
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.12302210383900847,
|
||||
"lr": 0.00015510064533248203,
|
||||
"weight_decay": 0.0037340196924722196,
|
||||
"backbone_lr_ratio": 0.3036603338505521,
|
||||
"moe_n_experts": 4,
|
||||
"moe_top_k": 2,
|
||||
"moe_expert_hidden_mult": 1,
|
||||
"llm_lora_r": 16,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
1
models/abl/both/20260617_232841/outer_fold_2/splits.json
Normal file
1
models/abl/both/20260617_232841/outer_fold_2/splits.json
Normal file
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 36, 37, 38, 39, 40, 41, 43, 44, 45, 47, 48, 49, 50, 51, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 68, 69, 70, 72, 74, 76, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 91, 93, 94, 95, 96, 97, 100, 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 145, 147, 148, 149, 150, 151, 152, 153, 156, 157, 158, 159, 160, 161, 162, 163, 165, 166, 167, 168, 170, 171, 172, 173, 174, 175, 177, 179, 180, 181, 183, 184, 185, 186, 187, 188, 191, 192, 193, 194, 196, 197, 199, 200, 202, 203, 204, 205, 207, 208, 209, 210, 211, 212, 213, 214, 215, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242, 243, 245, 246, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 280, 281, 282, 283, 284, 285, 287, 289, 290, 293, 294, 295, 296, 297, 298, 299, 300, 302, 303, 305, 307, 308, 309, 310, 311, 312, 313, 314, 315, 317, 318, 320, 321, 322, 323, 324, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 358, 360, 361, 363, 364, 365, 366, 368, 369, 370, 371, 372, 373, 376, 377, 378, 379, 380, 381, 382, 383, 385, 386, 387, 388, 389, 390, 392, 394, 395, 398, 399, 400, 401, 402, 404, 405, 407, 408, 409, 410, 412, 413, 414, 415, 416, 417, 418], "outer_test_idx": [10, 12, 15, 31, 35, 42, 46, 52, 53, 54, 62, 66, 67, 71, 73, 75, 77, 81, 89, 90, 92, 98, 99, 105, 123, 124, 141, 144, 146, 154, 155, 164, 169, 176, 178, 182, 189, 190, 195, 198, 201, 206, 216, 217, 218, 219, 231, 234, 244, 247, 248, 258, 262, 270, 277, 278, 279, 286, 288, 291, 292, 301, 304, 306, 316, 319, 325, 328, 343, 357, 359, 362, 367, 374, 375, 384, 391, 393, 396, 397, 403, 406, 411, 419]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.13105160735348353,
|
||||
"rmse": 0.36201050724182515,
|
||||
"mae": 0.29236553396497456,
|
||||
"r2": -0.4041762321007929
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 60,
|
||||
"mse": 0.6170164560338233,
|
||||
"rmse": 0.7855039503616918,
|
||||
"mae": 0.518595163594,
|
||||
"r2": 0.178644153319804
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5714285714285714,
|
||||
"precision": 0.3343023255813954,
|
||||
"recall": 0.5261136712749617,
|
||||
"f1": 0.34470899470899463
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6904761904761905,
|
||||
"precision": 0.6311332192269291,
|
||||
"recall": 0.6916433239962653,
|
||||
"f1": 0.6470105449067581
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9344262295081968,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9655172413793103,
|
||||
"f1": 0.7821428571428571
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.2793246003181208,
|
||||
"js_divergence": 0.07360589998440034
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.11061601330629428,
|
||||
"lr": 0.0003491022701087641,
|
||||
"weight_decay": 1.2696904821623371e-05,
|
||||
"backbone_lr_ratio": 0.39277239063286945,
|
||||
"moe_n_experts": 4,
|
||||
"moe_top_k": 2,
|
||||
"moe_expert_hidden_mult": 2,
|
||||
"llm_lora_r": 32,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
1
models/abl/both/20260617_232841/outer_fold_3/splits.json
Normal file
1
models/abl/both/20260617_232841/outer_fold_3/splits.json
Normal file
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 51, 52, 53, 54, 55, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 102, 104, 105, 106, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 127, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 189, 190, 191, 192, 193, 194, 195, 198, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 221, 223, 224, 226, 227, 228, 230, 231, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 257, 258, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 284, 286, 288, 289, 290, 291, 292, 293, 294, 295, 297, 298, 299, 301, 302, 304, 305, 306, 307, 308, 309, 310, 312, 314, 315, 316, 317, 319, 320, 321, 325, 326, 327, 328, 331, 332, 334, 336, 340, 341, 343, 344, 346, 347, 348, 350, 352, 353, 357, 359, 360, 361, 362, 363, 364, 366, 367, 368, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 382, 383, 384, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, 404, 406, 407, 410, 411, 412, 414, 415, 416, 418, 419], "outer_test_idx": [3, 6, 13, 18, 19, 26, 33, 44, 48, 49, 50, 56, 57, 72, 80, 88, 94, 101, 103, 107, 108, 114, 126, 128, 130, 145, 149, 157, 167, 171, 175, 188, 196, 197, 199, 211, 220, 222, 225, 229, 232, 236, 250, 260, 261, 271, 281, 283, 285, 287, 296, 300, 303, 311, 313, 318, 322, 323, 324, 329, 330, 333, 335, 337, 338, 339, 342, 345, 349, 351, 354, 355, 356, 358, 365, 369, 381, 388, 399, 405, 408, 409, 413, 417]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.2974639059494916,
|
||||
"rmse": 0.5454025173662949,
|
||||
"mae": 0.2553033943635872,
|
||||
"r2": 0.08722103632340716
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 59,
|
||||
"mse": 0.72832486531675,
|
||||
"rmse": 0.8534195130864715,
|
||||
"mae": 0.5703363718970095,
|
||||
"r2": 0.29198169797506535
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6785714285714286,
|
||||
"precision": 0.3663025210084033,
|
||||
"recall": 0.5624039938556068,
|
||||
"f1": 0.3811802616390919
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6666666666666666,
|
||||
"precision": 0.5903252773977808,
|
||||
"recall": 0.6201608848667672,
|
||||
"f1": 0.59879647539222
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 60,
|
||||
"accuracy": 0.9333333333333333,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9649122807017544,
|
||||
"f1": 0.7818181818181817
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.4182398191784831,
|
||||
"js_divergence": 0.10764099439445415
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.41353294032230026,
|
||||
"lr": 0.00018606616740103076,
|
||||
"weight_decay": 9.912252717813433e-05,
|
||||
"backbone_lr_ratio": 0.32820993966799533,
|
||||
"moe_n_experts": 4,
|
||||
"moe_top_k": 1,
|
||||
"moe_expert_hidden_mult": 2,
|
||||
"llm_lora_r": 16,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
1
models/abl/both/20260617_232841/outer_fold_4/splits.json
Normal file
1
models/abl/both/20260617_232841/outer_fold_4/splits.json
Normal file
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 25, 26, 28, 29, 31, 33, 34, 35, 37, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 56, 57, 59, 60, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, 81, 82, 83, 84, 85, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 101, 102, 103, 104, 105, 107, 108, 110, 111, 112, 113, 114, 116, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 130, 132, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 152, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 171, 173, 174, 175, 176, 177, 178, 180, 181, 182, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 203, 205, 206, 207, 208, 209, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 229, 230, 231, 232, 234, 235, 236, 238, 239, 240, 241, 243, 244, 245, 246, 247, 248, 249, 250, 251, 253, 254, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 270, 271, 272, 273, 277, 278, 279, 280, 281, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 300, 301, 302, 303, 304, 305, 306, 309, 311, 312, 313, 314, 315, 316, 318, 319, 320, 322, 323, 324, 325, 326, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 345, 346, 347, 349, 350, 351, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 365, 367, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 381, 383, 384, 385, 386, 388, 390, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 402, 403, 405, 406, 407, 408, 409, 410, 411, 413, 415, 416, 417, 418, 419], "outer_test_idx": [0, 5, 11, 21, 24, 27, 30, 32, 36, 38, 39, 40, 47, 55, 58, 61, 65, 76, 86, 95, 100, 106, 109, 115, 118, 125, 129, 131, 136, 148, 150, 151, 153, 156, 158, 159, 168, 172, 179, 183, 184, 185, 202, 204, 210, 212, 213, 228, 233, 237, 242, 252, 255, 256, 259, 268, 269, 274, 275, 276, 282, 297, 307, 308, 310, 317, 321, 327, 340, 344, 348, 352, 364, 366, 368, 379, 380, 382, 387, 389, 398, 404, 412, 414]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.2385472153185827,
|
||||
"rmse": 0.4884129557235175,
|
||||
"mae": 0.37417884383882793,
|
||||
"r2": -0.7317567503291509
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.7980907160636062,
|
||||
"rmse": 0.8933592312522473,
|
||||
"mae": 0.6033944039252298,
|
||||
"r2": 0.2282594525293985
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5952380952380952,
|
||||
"precision": 0.33809196980096085,
|
||||
"recall": 0.5263056835637481,
|
||||
"f1": 0.3583862620559868
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.7261904761904762,
|
||||
"precision": 0.6831659493065518,
|
||||
"recall": 0.7594017094017094,
|
||||
"f1": 0.7065123352302344
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 59,
|
||||
"accuracy": 0.9661016949152542,
|
||||
"precision": 0.8,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8659090909090909
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.4050166777635646,
|
||||
"js_divergence": 0.10143992174009567
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.12930599750984867,
|
||||
"lr": 0.0003183893957684731,
|
||||
"weight_decay": 0.0011797820449629415,
|
||||
"backbone_lr_ratio": 0.35598913444921026,
|
||||
"moe_n_experts": 2,
|
||||
"moe_top_k": 2,
|
||||
"moe_expert_hidden_mult": 2,
|
||||
"llm_lora_r": 8,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73, 75, 76, 77, 80, 81, 85, 86, 88, 89, 90, 92, 94, 95, 96, 98, 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, 111, 113, 114, 115, 116, 117, 118, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 139, 141, 144, 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 160, 163, 164, 167, 168, 169, 170, 171, 172, 175, 176, 178, 179, 180, 182, 183, 184, 185, 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 206, 208, 210, 211, 212, 213, 216, 217, 218, 219, 220, 222, 224, 225, 227, 228, 229, 230, 231, 232, 233, 234, 236, 237, 239, 241, 242, 244, 245, 247, 248, 249, 250, 252, 253, 255, 256, 257, 258, 259, 260, 261, 262, 265, 267, 268, 269, 270, 271, 272, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 285, 286, 287, 288, 291, 292, 294, 296, 297, 298, 299, 300, 301, 303, 304, 306, 307, 308, 309, 310, 311, 312, 313, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 332, 333, 335, 336, 337, 338, 339, 340, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 355, 356, 357, 358, 359, 360, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 374, 375, 377, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 393, 395, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 408, 409, 411, 412, 413, 414, 415, 417, 418, 419], "outer_test_idx": [7, 16, 20, 29, 51, 59, 60, 69, 70, 74, 78, 79, 82, 83, 84, 87, 91, 93, 97, 102, 110, 112, 119, 120, 121, 132, 137, 140, 142, 143, 152, 161, 162, 165, 166, 173, 174, 177, 181, 186, 187, 194, 205, 207, 209, 214, 215, 221, 223, 226, 235, 238, 240, 243, 246, 251, 254, 263, 264, 266, 273, 284, 289, 290, 293, 295, 302, 305, 314, 315, 331, 334, 341, 350, 353, 361, 373, 376, 378, 392, 394, 402, 410, 416]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.2816563970171338,
|
||||
"rmse": 0.5307131023605257,
|
||||
"mae": 0.27628492734518395,
|
||||
"r2": 0.06479970039267835
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.5807003895647976,
|
||||
"rmse": 0.7620370001284699,
|
||||
"mae": 0.564853833378132,
|
||||
"r2": 0.26189476312686466
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.7857142857142857,
|
||||
"precision": 0.42781279178338005,
|
||||
"recall": 0.5944574551131928,
|
||||
"f1": 0.4533531409168081
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6547619047619048,
|
||||
"precision": 0.6603426956368134,
|
||||
"recall": 0.7080952380952382,
|
||||
"f1": 0.6472175061309188
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 58,
|
||||
"accuracy": 0.9827586206896551,
|
||||
"precision": 0.9912280701754386,
|
||||
"recall": 0.75,
|
||||
"f1": 0.8289085545722714
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.2790682434585921,
|
||||
"js_divergence": 0.06757546969442413
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.14959924395216218,
|
||||
"lr": 0.00012401964324838103,
|
||||
"weight_decay": 9.656428689903883e-05,
|
||||
"backbone_lr_ratio": 0.32683834688760083,
|
||||
"moe_n_experts": 4,
|
||||
"moe_top_k": 2,
|
||||
"moe_expert_hidden_mult": 1,
|
||||
"llm_lora_r": 32,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 3, 5, 6, 7, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 24, 26, 27, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 42, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 114, 115, 118, 119, 120, 121, 123, 124, 125, 126, 128, 129, 130, 131, 132, 136, 137, 140, 141, 142, 143, 144, 145, 146, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 194, 195, 196, 197, 198, 199, 201, 202, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 240, 242, 243, 244, 246, 247, 248, 250, 251, 252, 254, 255, 256, 258, 259, 260, 261, 262, 263, 264, 266, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 295, 296, 297, 300, 301, 302, 303, 304, 305, 306, 307, 308, 310, 311, 313, 314, 315, 316, 317, 318, 319, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 333, 334, 335, 337, 338, 339, 340, 341, 342, 343, 344, 345, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 361, 362, 364, 365, 366, 367, 368, 369, 373, 374, 375, 376, 378, 379, 380, 381, 382, 384, 387, 388, 389, 391, 392, 393, 394, 396, 397, 398, 399, 402, 403, 404, 405, 406, 408, 409, 410, 411, 412, 413, 414, 416, 417, 419], "outer_test_idx": [1, 2, 4, 8, 9, 14, 17, 22, 23, 25, 28, 34, 37, 41, 43, 45, 63, 64, 68, 85, 96, 104, 111, 113, 116, 117, 122, 127, 133, 134, 135, 138, 139, 147, 160, 163, 170, 180, 191, 192, 193, 200, 203, 208, 224, 227, 230, 239, 241, 245, 249, 253, 257, 265, 267, 272, 280, 294, 298, 299, 309, 312, 320, 326, 332, 336, 346, 347, 360, 363, 370, 371, 372, 377, 383, 385, 386, 390, 395, 400, 401, 407, 415, 418]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.08666696329506099,
|
||||
"rmse": 0.2943925326754417,
|
||||
"mae": 0.22798642090388707,
|
||||
"r2": -0.4357809346276156
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 61,
|
||||
"mse": 0.9690008398737997,
|
||||
"rmse": 0.9843784027871597,
|
||||
"mae": 0.626403434202075,
|
||||
"r2": 0.26653621845095465
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.4880952380952381,
|
||||
"precision": 0.27691029900332226,
|
||||
"recall": 0.2579365079365079,
|
||||
"f1": 0.24170918367346939
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5357142857142857,
|
||||
"precision": 0.4703263535182041,
|
||||
"recall": 0.47331240188383045,
|
||||
"f1": 0.46348793258357346
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9508196721311475,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9741379310344828,
|
||||
"f1": 0.8200589970501475
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 61,
|
||||
"kl_divergence": 0.4359101867730315,
|
||||
"js_divergence": 0.11254492304386336
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.12302210383900847,
|
||||
"lr": 0.00015510064533248203,
|
||||
"weight_decay": 0.0037340196924722196,
|
||||
"backbone_lr_ratio": 0.3036603338505521,
|
||||
"moe_n_experts": 4,
|
||||
"moe_top_k": 2,
|
||||
"moe_expert_hidden_mult": 1,
|
||||
"llm_lora_r": 16,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 36, 37, 38, 39, 40, 41, 43, 44, 45, 47, 48, 49, 50, 51, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 68, 69, 70, 72, 74, 76, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 91, 93, 94, 95, 96, 97, 100, 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 145, 147, 148, 149, 150, 151, 152, 153, 156, 157, 158, 159, 160, 161, 162, 163, 165, 166, 167, 168, 170, 171, 172, 173, 174, 175, 177, 179, 180, 181, 183, 184, 185, 186, 187, 188, 191, 192, 193, 194, 196, 197, 199, 200, 202, 203, 204, 205, 207, 208, 209, 210, 211, 212, 213, 214, 215, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242, 243, 245, 246, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 280, 281, 282, 283, 284, 285, 287, 289, 290, 293, 294, 295, 296, 297, 298, 299, 300, 302, 303, 305, 307, 308, 309, 310, 311, 312, 313, 314, 315, 317, 318, 320, 321, 322, 323, 324, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 358, 360, 361, 363, 364, 365, 366, 368, 369, 370, 371, 372, 373, 376, 377, 378, 379, 380, 381, 382, 383, 385, 386, 387, 388, 389, 390, 392, 394, 395, 398, 399, 400, 401, 402, 404, 405, 407, 408, 409, 410, 412, 413, 414, 415, 416, 417, 418], "outer_test_idx": [10, 12, 15, 31, 35, 42, 46, 52, 53, 54, 62, 66, 67, 71, 73, 75, 77, 81, 89, 90, 92, 98, 99, 105, 123, 124, 141, 144, 146, 154, 155, 164, 169, 176, 178, 182, 189, 190, 195, 198, 201, 206, 216, 217, 218, 219, 231, 234, 244, 247, 248, 258, 262, 270, 277, 278, 279, 286, 288, 291, 292, 301, 304, 306, 316, 319, 325, 328, 343, 357, 359, 362, 367, 374, 375, 384, 391, 393, 396, 397, 403, 406, 411, 419]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.13747360050361937,
|
||||
"rmse": 0.3707743255723343,
|
||||
"mae": 0.2868303656578064,
|
||||
"r2": -0.4729858432626901
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 60,
|
||||
"mse": 0.7104536138129312,
|
||||
"rmse": 0.8428841046151785,
|
||||
"mae": 0.5430462850956246,
|
||||
"r2": 0.054263101423121185
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6428571428571429,
|
||||
"precision": 0.45827160493827157,
|
||||
"recall": 0.7127496159754224,
|
||||
"f1": 0.4944194569381975
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6666666666666666,
|
||||
"precision": 0.6060343270099368,
|
||||
"recall": 0.6573295985060691,
|
||||
"f1": 0.6198067632850242
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9344262295081968,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9655172413793103,
|
||||
"f1": 0.7821428571428571
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.28003378134681434,
|
||||
"js_divergence": 0.0731604987811758
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.11061601330629428,
|
||||
"lr": 0.0003491022701087641,
|
||||
"weight_decay": 1.2696904821623371e-05,
|
||||
"backbone_lr_ratio": 0.39277239063286945,
|
||||
"moe_n_experts": 4,
|
||||
"moe_top_k": 2,
|
||||
"moe_expert_hidden_mult": 2,
|
||||
"llm_lora_r": 32,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 51, 52, 53, 54, 55, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 102, 104, 105, 106, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 127, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 189, 190, 191, 192, 193, 194, 195, 198, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 221, 223, 224, 226, 227, 228, 230, 231, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 257, 258, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 284, 286, 288, 289, 290, 291, 292, 293, 294, 295, 297, 298, 299, 301, 302, 304, 305, 306, 307, 308, 309, 310, 312, 314, 315, 316, 317, 319, 320, 321, 325, 326, 327, 328, 331, 332, 334, 336, 340, 341, 343, 344, 346, 347, 348, 350, 352, 353, 357, 359, 360, 361, 362, 363, 364, 366, 367, 368, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 382, 383, 384, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, 404, 406, 407, 410, 411, 412, 414, 415, 416, 418, 419], "outer_test_idx": [3, 6, 13, 18, 19, 26, 33, 44, 48, 49, 50, 56, 57, 72, 80, 88, 94, 101, 103, 107, 108, 114, 126, 128, 130, 145, 149, 157, 167, 171, 175, 188, 196, 197, 199, 211, 220, 222, 225, 229, 232, 236, 250, 260, 261, 271, 281, 283, 285, 287, 296, 300, 303, 311, 313, 318, 322, 323, 324, 329, 330, 333, 335, 337, 338, 339, 342, 345, 349, 351, 354, 355, 356, 358, 365, 369, 381, 388, 399, 405, 408, 409, 413, 417]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.32669708395989955,
|
||||
"rmse": 0.5715742156184965,
|
||||
"mae": 0.31596550309514426,
|
||||
"r2": -0.0024820483050997932
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 59,
|
||||
"mse": 0.7029380513850005,
|
||||
"rmse": 0.8384140095352657,
|
||||
"mae": 0.5650059677881457,
|
||||
"r2": 0.31666069734708746
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6785714285714286,
|
||||
"precision": 0.3406323185011709,
|
||||
"recall": 0.5230414746543779,
|
||||
"f1": 0.3490853658536585
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6547619047619048,
|
||||
"precision": 0.5888888888888889,
|
||||
"recall": 0.6327300150829562,
|
||||
"f1": 0.5970695970695971
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 60,
|
||||
"accuracy": 0.9333333333333333,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9649122807017544,
|
||||
"f1": 0.7818181818181817
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.3455956570999495,
|
||||
"js_divergence": 0.08991455654751294
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.41353294032230026,
|
||||
"lr": 0.00018606616740103076,
|
||||
"weight_decay": 9.912252717813433e-05,
|
||||
"backbone_lr_ratio": 0.32820993966799533,
|
||||
"moe_n_experts": 4,
|
||||
"moe_top_k": 1,
|
||||
"moe_expert_hidden_mult": 2,
|
||||
"llm_lora_r": 16,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 25, 26, 28, 29, 31, 33, 34, 35, 37, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 56, 57, 59, 60, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, 81, 82, 83, 84, 85, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 101, 102, 103, 104, 105, 107, 108, 110, 111, 112, 113, 114, 116, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 130, 132, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 152, 154, 155, 157, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 171, 173, 174, 175, 176, 177, 178, 180, 181, 182, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 203, 205, 206, 207, 208, 209, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 229, 230, 231, 232, 234, 235, 236, 238, 239, 240, 241, 243, 244, 245, 246, 247, 248, 249, 250, 251, 253, 254, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 270, 271, 272, 273, 277, 278, 279, 280, 281, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 300, 301, 302, 303, 304, 305, 306, 309, 311, 312, 313, 314, 315, 316, 318, 319, 320, 322, 323, 324, 325, 326, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 345, 346, 347, 349, 350, 351, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 365, 367, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 381, 383, 384, 385, 386, 388, 390, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 402, 403, 405, 406, 407, 408, 409, 410, 411, 413, 415, 416, 417, 418, 419], "outer_test_idx": [0, 5, 11, 21, 24, 27, 30, 32, 36, 38, 39, 40, 47, 55, 58, 61, 65, 76, 86, 95, 100, 106, 109, 115, 118, 125, 129, 131, 136, 148, 150, 151, 153, 156, 158, 159, 168, 172, 179, 183, 184, 185, 202, 204, 210, 212, 213, 228, 233, 237, 242, 252, 255, 256, 259, 268, 269, 274, 275, 276, 282, 297, 307, 308, 310, 317, 321, 327, 340, 344, 348, 352, 364, 366, 368, 379, 380, 382, 387, 389, 398, 404, 412, 414]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.2498053256210641,
|
||||
"rmse": 0.49980528770818755,
|
||||
"mae": 0.4012378028460911,
|
||||
"r2": -0.8134860989037498
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.8713336067211406,
|
||||
"rmse": 0.9334525198000917,
|
||||
"mae": 0.6369200194704121,
|
||||
"r2": 0.1574347863646688
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6190476190476191,
|
||||
"precision": 0.32608695652173914,
|
||||
"recall": 0.510752688172043,
|
||||
"f1": 0.350912975912976
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6785714285714286,
|
||||
"precision": 0.6324786324786325,
|
||||
"recall": 0.7021367521367522,
|
||||
"f1": 0.6488452445899254
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 59,
|
||||
"accuracy": 0.9661016949152542,
|
||||
"precision": 0.8,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8659090909090909
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.3635802403548602,
|
||||
"js_divergence": 0.09224357999051915
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.12930599750984867,
|
||||
"lr": 0.0003183893957684731,
|
||||
"weight_decay": 0.0011797820449629415,
|
||||
"backbone_lr_ratio": 0.35598913444921026,
|
||||
"moe_n_experts": 2,
|
||||
"moe_top_k": 2,
|
||||
"moe_expert_hidden_mult": 2,
|
||||
"llm_lora_r": 8,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73, 75, 76, 77, 80, 81, 85, 86, 88, 89, 90, 92, 94, 95, 96, 98, 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, 111, 113, 114, 115, 116, 117, 118, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 139, 141, 144, 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 160, 163, 164, 167, 168, 169, 170, 171, 172, 175, 176, 178, 179, 180, 182, 183, 184, 185, 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 206, 208, 210, 211, 212, 213, 216, 217, 218, 219, 220, 222, 224, 225, 227, 228, 229, 230, 231, 232, 233, 234, 236, 237, 239, 241, 242, 244, 245, 247, 248, 249, 250, 252, 253, 255, 256, 257, 258, 259, 260, 261, 262, 265, 267, 268, 269, 270, 271, 272, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 285, 286, 287, 288, 291, 292, 294, 296, 297, 298, 299, 300, 301, 303, 304, 306, 307, 308, 309, 310, 311, 312, 313, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 332, 333, 335, 336, 337, 338, 339, 340, 342, 343, 344, 345, 346, 347, 348, 349, 351, 352, 354, 355, 356, 357, 358, 359, 360, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 374, 375, 377, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 393, 395, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 408, 409, 411, 412, 413, 414, 415, 417, 418, 419], "outer_test_idx": [7, 16, 20, 29, 51, 59, 60, 69, 70, 74, 78, 79, 82, 83, 84, 87, 91, 93, 97, 102, 110, 112, 119, 120, 121, 132, 137, 140, 142, 143, 152, 161, 162, 165, 166, 173, 174, 177, 181, 186, 187, 194, 205, 207, 209, 214, 215, 221, 223, 226, 235, 238, 240, 243, 246, 251, 254, 263, 264, 266, 273, 284, 289, 290, 293, 295, 302, 305, 314, 315, 331, 334, 341, 350, 353, 361, 373, 376, 378, 392, 394, 402, 410, 416]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.3048058934964392,
|
||||
"rmse": 0.5520922871191366,
|
||||
"mae": 0.30447895555611115,
|
||||
"r2": -0.012064934220566759
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 58,
|
||||
"mse": 0.5277170018903071,
|
||||
"rmse": 0.7264413272180398,
|
||||
"mae": 0.553587457165122,
|
||||
"r2": 0.32923984608630563
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.7261904761904762,
|
||||
"precision": 0.3958333333333333,
|
||||
"recall": 0.5817720530835285,
|
||||
"f1": 0.43162393162393164
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.75,
|
||||
"precision": 0.7124588290649997,
|
||||
"recall": 0.7785714285714285,
|
||||
"f1": 0.7248325686863893
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 58,
|
||||
"accuracy": 0.9655172413793104,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9821428571428572,
|
||||
"f1": 0.8242424242424242
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 58,
|
||||
"kl_divergence": 0.2720172018326682,
|
||||
"js_divergence": 0.060785283409926956
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.14959924395216218,
|
||||
"lr": 0.00012401964324838103,
|
||||
"weight_decay": 9.656428689903883e-05,
|
||||
"backbone_lr_ratio": 0.32683834688760083,
|
||||
"moe_n_experts": 4,
|
||||
"moe_top_k": 2,
|
||||
"moe_expert_hidden_mult": 1,
|
||||
"llm_lora_r": 32,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 3, 5, 6, 7, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 24, 26, 27, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 42, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 114, 115, 118, 119, 120, 121, 123, 124, 125, 126, 128, 129, 130, 131, 132, 136, 137, 140, 141, 142, 143, 144, 145, 146, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 194, 195, 196, 197, 198, 199, 201, 202, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 240, 242, 243, 244, 246, 247, 248, 250, 251, 252, 254, 255, 256, 258, 259, 260, 261, 262, 263, 264, 266, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 295, 296, 297, 300, 301, 302, 303, 304, 305, 306, 307, 308, 310, 311, 313, 314, 315, 316, 317, 318, 319, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 333, 334, 335, 337, 338, 339, 340, 341, 342, 343, 344, 345, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 361, 362, 364, 365, 366, 367, 368, 369, 373, 374, 375, 376, 378, 379, 380, 381, 382, 384, 387, 388, 389, 391, 392, 393, 394, 396, 397, 398, 399, 402, 403, 404, 405, 406, 408, 409, 410, 411, 412, 413, 414, 416, 417, 419], "outer_test_idx": [1, 2, 4, 8, 9, 14, 17, 22, 23, 25, 28, 34, 37, 41, 43, 45, 63, 64, 68, 85, 96, 104, 111, 113, 116, 117, 122, 127, 133, 134, 135, 138, 139, 147, 160, 163, 170, 180, 191, 192, 193, 200, 203, 208, 224, 227, 230, 239, 241, 245, 249, 253, 257, 265, 267, 272, 280, 294, 298, 299, 309, 312, 320, 326, 332, 336, 346, 347, 360, 363, 370, 371, 372, 377, 383, 385, 386, 390, 395, 400, 401, 407, 415, 418]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.10482404388180623,
|
||||
"rmse": 0.32376541489449767,
|
||||
"mae": 0.23482046808515275,
|
||||
"r2": -0.7365828681878246
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 61,
|
||||
"mse": 0.9723624200125729,
|
||||
"rmse": 0.9860843878758921,
|
||||
"mae": 0.6302215732084434,
|
||||
"r2": 0.2639917446186245
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5952380952380952,
|
||||
"precision": 0.28258620689655173,
|
||||
"recall": 0.2698412698412698,
|
||||
"f1": 0.2714159292035398
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5476190476190477,
|
||||
"precision": 0.48611111111111116,
|
||||
"recall": 0.4884639170353456,
|
||||
"f1": 0.4753962887837127
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9508196721311475,
|
||||
"precision": 0.75,
|
||||
"recall": 0.9741379310344828,
|
||||
"f1": 0.8200589970501475
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 61,
|
||||
"kl_divergence": 0.4600248432068658,
|
||||
"js_divergence": 0.11821523045175072
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.12302210383900847,
|
||||
"lr": 0.00015510064533248203,
|
||||
"weight_decay": 0.0037340196924722196,
|
||||
"backbone_lr_ratio": 0.3036603338505521,
|
||||
"moe_n_experts": 4,
|
||||
"moe_top_k": 2,
|
||||
"moe_expert_hidden_mult": 1,
|
||||
"llm_lora_r": 16,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 36, 37, 38, 39, 40, 41, 43, 44, 45, 47, 48, 49, 50, 51, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 68, 69, 70, 72, 74, 76, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 91, 93, 94, 95, 96, 97, 100, 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 145, 147, 148, 149, 150, 151, 152, 153, 156, 157, 158, 159, 160, 161, 162, 163, 165, 166, 167, 168, 170, 171, 172, 173, 174, 175, 177, 179, 180, 181, 183, 184, 185, 186, 187, 188, 191, 192, 193, 194, 196, 197, 199, 200, 202, 203, 204, 205, 207, 208, 209, 210, 211, 212, 213, 214, 215, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242, 243, 245, 246, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 280, 281, 282, 283, 284, 285, 287, 289, 290, 293, 294, 295, 296, 297, 298, 299, 300, 302, 303, 305, 307, 308, 309, 310, 311, 312, 313, 314, 315, 317, 318, 320, 321, 322, 323, 324, 326, 327, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 358, 360, 361, 363, 364, 365, 366, 368, 369, 370, 371, 372, 373, 376, 377, 378, 379, 380, 381, 382, 383, 385, 386, 387, 388, 389, 390, 392, 394, 395, 398, 399, 400, 401, 402, 404, 405, 407, 408, 409, 410, 412, 413, 414, 415, 416, 417, 418], "outer_test_idx": [10, 12, 15, 31, 35, 42, 46, 52, 53, 54, 62, 66, 67, 71, 73, 75, 77, 81, 89, 90, 92, 98, 99, 105, 123, 124, 141, 144, 146, 154, 155, 164, 169, 176, 178, 182, 189, 190, 195, 198, 201, 206, 216, 217, 218, 219, 231, 234, 244, 247, 248, 258, 262, 270, 277, 278, 279, 286, 288, 291, 292, 301, 304, 306, 316, 319, 325, 328, 343, 357, 359, 362, 367, 374, 375, 384, 391, 393, 396, 397, 403, 406, 411, 419]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 84,
|
||||
"mse": 0.12549337649644715,
|
||||
"rmse": 0.35425044318454585,
|
||||
"mae": 0.2802231794311887,
|
||||
"r2": -0.34462155879619094
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 60,
|
||||
"mse": 0.6592902402854742,
|
||||
"rmse": 0.8119668960527111,
|
||||
"mae": 0.5348013029200956,
|
||||
"r2": 0.12237041942365745
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.5119047619047619,
|
||||
"precision": 0.4135659661975451,
|
||||
"recall": 0.6746031746031745,
|
||||
"f1": 0.4122222222222222
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6547619047619048,
|
||||
"precision": 0.5972649572649572,
|
||||
"recall": 0.6507936507936507,
|
||||
"f1": 0.6069243156199677
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 61,
|
||||
"accuracy": 0.9344262295081968,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9655172413793103,
|
||||
"f1": 0.7821428571428571
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.2563386788633516,
|
||||
"js_divergence": 0.06872839042316117
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.11061601330629428,
|
||||
"lr": 0.0003491022701087641,
|
||||
"weight_decay": 1.2696904821623371e-05,
|
||||
"backbone_lr_ratio": 0.39277239063286945,
|
||||
"moe_n_experts": 4,
|
||||
"moe_top_k": 2,
|
||||
"moe_expert_hidden_mult": 2,
|
||||
"llm_lora_r": 32,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"outer_train_idx": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 51, 52, 53, 54, 55, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 102, 104, 105, 106, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 127, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 172, 173, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 189, 190, 191, 192, 193, 194, 195, 198, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 221, 223, 224, 226, 227, 228, 230, 231, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 257, 258, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 284, 286, 288, 289, 290, 291, 292, 293, 294, 295, 297, 298, 299, 301, 302, 304, 305, 306, 307, 308, 309, 310, 312, 314, 315, 316, 317, 319, 320, 321, 325, 326, 327, 328, 331, 332, 334, 336, 340, 341, 343, 344, 346, 347, 348, 350, 352, 353, 357, 359, 360, 361, 362, 363, 364, 366, 367, 368, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 382, 383, 384, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, 404, 406, 407, 410, 411, 412, 414, 415, 416, 418, 419], "outer_test_idx": [3, 6, 13, 18, 19, 26, 33, 44, 48, 49, 50, 56, 57, 72, 80, 88, 94, 101, 103, 107, 108, 114, 126, 128, 130, 145, 149, 157, 167, 171, 175, 188, 196, 197, 199, 211, 220, 222, 225, 229, 232, 236, 250, 260, 261, 271, 281, 283, 285, 287, 296, 300, 303, 311, 313, 318, 322, 323, 324, 329, 330, 333, 335, 337, 338, 339, 342, 345, 349, 351, 354, 355, 356, 358, 365, 369, 381, 388, 399, 405, 408, 409, 413, 417]}
|
||||
@ -0,0 +1,42 @@
|
||||
{
|
||||
"size": {
|
||||
"n_samples": 83,
|
||||
"mse": 0.30582211903190704,
|
||||
"rmse": 0.5530118615652896,
|
||||
"mae": 0.297713055668107,
|
||||
"r2": 0.06157355129088471
|
||||
},
|
||||
"delivery": {
|
||||
"n_samples": 59,
|
||||
"mse": 0.7117105624010245,
|
||||
"rmse": 0.8436293987296937,
|
||||
"mae": 0.5593153651077616,
|
||||
"r2": 0.30813277436953124
|
||||
},
|
||||
"pdi": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6666666666666666,
|
||||
"precision": 0.36681547619047616,
|
||||
"recall": 0.5662442396313364,
|
||||
"f1": 0.3804035250463822
|
||||
},
|
||||
"ee": {
|
||||
"n_samples": 84,
|
||||
"accuracy": 0.6666666666666666,
|
||||
"precision": 0.5864396721189867,
|
||||
"recall": 0.6201608848667672,
|
||||
"f1": 0.5949003714961162
|
||||
},
|
||||
"toxic": {
|
||||
"n_samples": 60,
|
||||
"accuracy": 0.9333333333333333,
|
||||
"precision": 0.7142857142857143,
|
||||
"recall": 0.9649122807017544,
|
||||
"f1": 0.7818181818181817
|
||||
},
|
||||
"biodist": {
|
||||
"n_samples": 60,
|
||||
"kl_divergence": 0.31884722326826903,
|
||||
"js_divergence": 0.08589330459529161
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"dropout": 0.41353294032230026,
|
||||
"lr": 0.00018606616740103076,
|
||||
"weight_decay": 9.912252717813433e-05,
|
||||
"backbone_lr_ratio": 0.32820993966799533,
|
||||
"moe_n_experts": 4,
|
||||
"moe_top_k": 1,
|
||||
"moe_expert_hidden_mult": 2,
|
||||
"llm_lora_r": 16,
|
||||
"d_model": 256,
|
||||
"num_heads": 8,
|
||||
"n_attn_layers": 4,
|
||||
"fusion_strategy": "attention",
|
||||
"head_hidden_dim": 128,
|
||||
"set_transformer_block": "sab"
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user