Fix sampler
This commit is contained in:
parent
fdd0f2f472
commit
de0fabbc5c
@ -227,7 +227,7 @@ class OPTForCausalLM(OPTPreTrainedModel):
|
|||||||
self.model = OPTModel(config)
|
self.model = OPTModel(config)
|
||||||
# the lm_head weight is automatically tied to the embed tokens weight
|
# the lm_head weight is automatically tied to the embed tokens weight
|
||||||
self.lm_head = nn.Linear(config.word_embed_proj_dim, config.vocab_size, bias=False)
|
self.lm_head = nn.Linear(config.word_embed_proj_dim, config.vocab_size, bias=False)
|
||||||
self.sampler = Sampler(embedding=self.lm_head.weight)
|
self.sampler = Sampler()
|
||||||
|
|
||||||
# Initialize weights and apply final processing
|
# Initialize weights and apply final processing
|
||||||
self.post_init()
|
self.post_init()
|
||||||
@ -242,5 +242,6 @@ class OPTForCausalLM(OPTPreTrainedModel):
|
|||||||
) -> Dict[int, Tuple[int, int]]:
|
) -> Dict[int, Tuple[int, int]]:
|
||||||
hidden_states = self.model(
|
hidden_states = self.model(
|
||||||
input_ids, positions, kv_caches, input_metadata, cache_events)
|
input_ids, positions, kv_caches, input_metadata, cache_events)
|
||||||
next_tokens = self.sampler(hidden_states, input_metadata)
|
next_tokens = self.sampler(
|
||||||
|
self.lm_head.weight, hidden_states, input_metadata)
|
||||||
return next_tokens
|
return next_tokens
|
||||||
|
|||||||
@ -8,15 +8,12 @@ from cacheflow.models import InputMetadata
|
|||||||
|
|
||||||
class Sampler(nn.Module):
|
class Sampler(nn.Module):
|
||||||
|
|
||||||
def __init__(
|
def __init__(self) -> None:
|
||||||
self,
|
|
||||||
embedding: torch.Tensor,
|
|
||||||
) -> None:
|
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.embedding = embedding # [vocab_size, hidden_size]
|
|
||||||
|
|
||||||
def forward(
|
def forward(
|
||||||
self,
|
self,
|
||||||
|
embedding: torch.Tensor,
|
||||||
hidden_states: torch.Tensor,
|
hidden_states: torch.Tensor,
|
||||||
input_metadata: InputMetadata,
|
input_metadata: InputMetadata,
|
||||||
) -> Dict[int, Tuple[int, int]]:
|
) -> Dict[int, Tuple[int, int]]:
|
||||||
@ -31,7 +28,7 @@ class Sampler(nn.Module):
|
|||||||
hidden_states = hidden_states[last_token_indicies]
|
hidden_states = hidden_states[last_token_indicies]
|
||||||
|
|
||||||
# Get the logits for the next tokens.
|
# Get the logits for the next tokens.
|
||||||
logits = torch.matmul(hidden_states, self.embedding.t())
|
logits = torch.matmul(hidden_states, embedding.t())
|
||||||
|
|
||||||
# Sample the next tokens.
|
# Sample the next tokens.
|
||||||
# TODO(woosuk): Implement other sampling methods.
|
# TODO(woosuk): Implement other sampling methods.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user