angle_emb.utils =============== .. py:module:: angle_emb.utils Attributes ---------- .. autoapisummary:: angle_emb.utils.logger Functions --------- .. autoapisummary:: angle_emb.utils.cosine_similarity angle_emb.utils.set_device angle_emb.utils.find_all_linear_names angle_emb.utils.get_pooling Module Contents --------------- .. py:data:: logger .. py:function:: cosine_similarity(vec1: List[int], vec2: List[int]) Calculate cosine similarity between two vectors. :param vec1: a list of integers :param vec2: a list of integers :return: a float value between 0 and 1, indicating the similarity between the two vectors. .. py:function:: set_device() -> str Set device automatically :return: str, device name .. py:function:: find_all_linear_names(model: transformers.PreTrainedModel, linear_type: Optional[object] = None) -> List[str] Find all linear layer names :param model: PreTrainedModel :param linear_type: Optional[object] = None, linear type, such as nn.Linear and bnb.nn.Linear4bit. :return: List[str], linear layer names .. py:function:: get_pooling(outputs: torch.Tensor, inputs: Dict, pooling_strategy: str, padding_side: str) -> torch.Tensor Pooling the model outputs. :param outputs: torch.Tensor. Model outputs (without pooling) :param inputs: Dict. Model inputs :param pooling_strategy: str. Pooling strategy [`cls`, `cls_avg`, `cls_max`, `last`, `avg`, `mean`, `max`, `all`, int] :param padding_side: str. Padding strategy of tokenizers (`left` or `right`). It can be obtained by `tokenizer.padding_side`.