# embedding 模块说明 ## 模块作用 提供模式编码器(PatternEncoder,基于 Sentence Transformers)和可学习的偏好编码器(PreferenceEncoder),将原始嵌入投影到偏好空间,供对比学习训练与推理使用。 ## 文件与类 | 文件 | 类 | 说明 | | ---------- | --------------------------------- | ----------- | | encoder.py | PatternEncoder, PreferenceEncoder | 模式编码与偏好空间投影 | --- ## 接口说明 ### 1. PatternEncoder(encoder.py) #### `__init__(model_name: str = "sentence-transformers/all-MiniLM-L6-v2")` - **传入参数**:Sentence Transformer 模型名。 - **传出参数**:无。 #### `encode(text: Union[str, List[str]]) -> np.ndarray` - **传入参数**:`text` 为单条字符串或字符串列表。 - **传出参数**:对应的一条或一批嵌入向量(numpy)。 --- ### 2. PreferenceEncoder(encoder.py,nn.Module) #### `__init__(input_dim: int = 384, hidden_dim: int = 256, output_dim: int = None)` - **传入参数**:输入维度、隐藏层维度、输出维度(默认等于 input_dim)。 - **传出参数**:无。 #### `forward(x: torch.Tensor) -> torch.Tensor` - **传入参数**:`x` 形状 (batch_size, input_dim)。 - **传出参数**:L2 归一化后的 (batch_size, output_dim)。 #### `encode(x: Union[np.ndarray, torch.Tensor]) -> np.ndarray` - **传入参数**:单条或批量向量。 - **传出参数**:投影后的向量(numpy),推理用。