Spaces:
Running
Running
Daryl Lim Claude Opus 4.6 commited on
Commit ·
e0dc6e1
1
Parent(s): de4ab0d
refactor: cache language mappings and use model.device
Browse filesCache _build_language_mappings() with @lru_cache since the result
never changes. Use model.device instead of calling _get_device()
again in translate().
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
app.py
CHANGED
|
@@ -38,6 +38,7 @@ def _load_model() -> AutoModelForSeq2SeqLM:
|
|
| 38 |
return AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME, torch_dtype=dtype).to(device)
|
| 39 |
|
| 40 |
|
|
|
|
| 41 |
def _build_language_mappings() -> tuple[dict[str, str], list[str]]:
|
| 42 |
tokenizer = _load_tokenizer()
|
| 43 |
vocab = tokenizer.get_vocab()
|
|
@@ -49,7 +50,7 @@ def _build_language_mappings() -> tuple[dict[str, str], list[str]]:
|
|
| 49 |
def translate(text: str, target_language_name: str) -> str:
|
| 50 |
tokenizer = _load_tokenizer()
|
| 51 |
model = _load_model()
|
| 52 |
-
device =
|
| 53 |
|
| 54 |
name_to_code, _ = _build_language_mappings()
|
| 55 |
target_code = name_to_code.get(target_language_name)
|
|
|
|
| 38 |
return AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME, torch_dtype=dtype).to(device)
|
| 39 |
|
| 40 |
|
| 41 |
+
@lru_cache(maxsize=1)
|
| 42 |
def _build_language_mappings() -> tuple[dict[str, str], list[str]]:
|
| 43 |
tokenizer = _load_tokenizer()
|
| 44 |
vocab = tokenizer.get_vocab()
|
|
|
|
| 50 |
def translate(text: str, target_language_name: str) -> str:
|
| 51 |
tokenizer = _load_tokenizer()
|
| 52 |
model = _load_model()
|
| 53 |
+
device = model.device
|
| 54 |
|
| 55 |
name_to_code, _ = _build_language_mappings()
|
| 56 |
target_code = name_to_code.get(target_language_name)
|