File size: 1,289 Bytes
60b21d3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | from typing import List, Dict, Any
# SPDX-FileCopyrightText: 2025 Stanford University, ETH Zurich, and the project authors (see CONTRIBUTORS.md)
# SPDX-FileCopyrightText: 2025 This source file is part of the OpenTSLM open-source project.
#
# SPDX-License-Identifier: MIT
import torch
import torch.nn as nn
from opentslm.prompt.full_prompt import FullPrompt
class TimeSeriesLLM(nn.Module):
def __init__(
self,
device,
):
super().__init__()
self.device = device
def generate(
self, batch: List[Dict[str, Any]], max_new_tokens: int = 50, **generate_kwargs
) -> List[str]:
raise NotImplementedError("Generate method should be implemented by the subclass")
def compute_loss(self, batch: List[Dict[str, Any]]) -> torch.Tensor:
"""
batch: same format as generate()
answers: List[str] of length B
"""
raise NotImplementedError("Compute loss method should be implemented by the subclass")
def get_eos_token(self) -> str:
raise NotImplementedError("Get eos token method should be implemented by the subclass")
def eval_prompt(self, prompt: FullPrompt) -> str:
raise NotImplementedError("Eval prompt method should be implemented by the subclass") |