feat(moe): MoE + MolT5 LLM 融合层、消融流水线

This commit is contained in:
Michelle0574 2026-06-18 08:40:19 +00:00
parent cd4534f05a
commit cd9166d63c
209 changed files with 15295 additions and 6305 deletions

View File

@ -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

View File

@ -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:

View File

@ -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 不支持 concattoken 数随开关变化)")
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]]:
# 只对真实 tokenchem + 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

View 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()

View 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

View File

@ -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 tabexpert 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_extrastrainer 端通过 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,
)

View File

@ -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)

View File

@ -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()

View File

@ -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 使用 lrbackbone_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
View 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)

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View 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"
}

View 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
}
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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"
}

View 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]}

View File

@ -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
}
}

View File

@ -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