Spaces:
Running
Running
File size: 2,623 Bytes
84635f1 |
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
"""
System utilities for Lily LLM API
"""
import os
import torch
import logging
logger = logging.getLogger(__name__)
def configure_cpu_threads():
"""CPU μ€λ λ νκ²½ μ΅μ ν (vCPU μμ λ§κ² μ‘°μ )."""
print(f"π [DEBUG] configure_cpu_threads μμ")
try:
# κΈ°λ³Έκ°: νκ²½λ³μ λλ μμ€ν
CPU μλ₯Ό μ¬μ©νλ κ³Όλν μ€λ λ λ°©μ§
env_threads = os.getenv("CPU_THREADS")
if env_threads is not None:
threads = max(1, int(env_threads))
else:
detected = os.cpu_count() or 2
# 컨ν
μ΄λ/μλ²μ vCPU μλ₯Ό κ·Έλλ‘ μ¬μ©νλ μν 16 μ μ©
threads = max(1, min(detected, 16))
# OpenMP/MKL/numexpr
os.environ["OMP_NUM_THREADS"] = str(threads)
os.environ["MKL_NUM_THREADS"] = str(threads)
os.environ.setdefault("NUMEXPR_NUM_THREADS", str(threads))
os.environ.setdefault("TOKENIZERS_PARALLELISM", "false")
# PyTorch λ΄λΆ μ€λ λ μ€μ
try:
torch.set_num_threads(threads)
except Exception:
pass
try:
# μ°μ° κ° μ€λ λ νμ 1~2 κΆμ₯(컨ν
μ€νΈ μ€μμΉ λΉμ© μ κ°)
torch.set_num_interop_threads(1 if threads <= 4 else 2)
except Exception:
pass
logger.info(f"π§΅ CPU thread config -> OMP/MKL/numexpr={threads}, torch_threads={threads}")
except Exception as e:
logger.warning(f"β οΈ CPU μ€λ λ μ€μ μ€ν¨: {e}")
print(f"π [DEBUG] configure_cpu_threads μ’
λ£")
def select_model_interactive():
"""μΈν°λν°λΈ λͺ¨λΈ μ ν"""
from ..models import list_available_models
available_models = list_available_models()
print("\n" + "="*60 + "\nπ€ Lily LLM API v2 - λͺ¨λΈ μ ν\n" + "="*60)
for i, model_info in enumerate(available_models, 1):
print(f"{i:2d}. {model_info['name']} ({model_info['model_id']})")
while True:
try:
# choice = input(f"\nπ μ¬μ©ν λͺ¨λΈ λ²νΈλ₯Ό μ ννμΈμ (1-{len(available_models)}): ")
# selected_model = available_models[int(choice) - 1]
selected_model = available_models[1]
print(f"\nβ
'{selected_model['name']}' λͺ¨λΈμ μ ννμ΅λλ€.")
return selected_model['model_id']
except (ValueError, IndexError):
print(f"β 1μμ {len(available_models)} μ¬μ΄μ μ«μλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ.")
except KeyboardInterrupt:
import sys
sys.exit("\n\nπ νλ‘κ·Έλ¨μ μ’
λ£ν©λλ€.")
|