class_docstr: Abstract base class for grouped `nn.Embedding` and `nn.EmbeddingBag`
docstr: Args:
      features (KeyedJaggedTensor):
  Returns:
      torch.Tensor: sparse gradient parameter names.
docstr_tok: ["Args",":","features","(","KeyedJaggedTensor",")",":","Returns",":","torch.Tensor",":","sparse","gradient","parameter","names","."]
code: def forward(
      self,
      features: KeyedJaggedTensor,
  ) -> torch.Tensor:
      """
      Args:
          features (KeyedJaggedTensor):
      Returns:
          torch.Tensor: sparse gradient parameter names.
      """
      pass
  
file_path: torchrec/torchrec/distributed/embedding_kernel.py
imports: import abc
  import logging
  from collections import defaultdict, OrderedDict
  from typing import Any, Dict, List, Optional, Tuple, Union
  import torch
  import torch.distributed
  from torch import nn
  from torchrec.distributed.embedding_types import EmbeddingComputeKernel, GroupedEmbeddingConfig, ShardedEmbeddingTable
  from torchrec.distributed.types import Shard, ShardedTensor, ShardedTensorMetadata
  from torchrec.sparse.jagged_tensor import KeyedJaggedTensor
label_desc: Use image node_id 1 for calling the BaseEmbedding obj's underlying member method code with example usage: obj.forward(features) without return types