03dadc93da
Cambio mecánico, sin efecto en el comportamiento: la suite pasa igual antes y después. Va en un commit propio para no tapar los cambios con sentido. Se agregan además dos flujos de verificación que corren en cada carga al repositorio: - YAML: yamllint para sintaxis y estilo, más la carga de cada config contra su esquema de pydantic. Son cosas distintas — un YAML puede ser sintácticamente perfecto y estar roto igual, con 'run_nombre' en vez de 'run_name'. Ese paso no instala torch: se verificó que la capa de configuración no lo importa, así que corre en segundos en vez de descargar dos gigas y medio de CUDA. - Python: ruff check, ruff format --check y la suite completa con torch de CPU. Las rutas ignoradas de .yamllint.yml van ancladas con barra inicial. Sin anclar, 'data/' y 'runs/' excluían configs/data/ y configs/runs/ — siete archivos, justo los que más importa revisar — y el linter pasaba en verde sin haber mirado nada. Es el mismo defecto que ya había aparecido en .gitignore.
53 lines
1.3 KiB
TOML
53 lines
1.3 KiB
TOML
[project]
|
|
name = "enlace"
|
|
version = "0.1.0"
|
|
description = "Modelo de lenguaje propio, entrenado desde cero, para asistencia general y familiar en español."
|
|
requires-python = ">=3.11"
|
|
|
|
# Las versiones se pinean con cuidado: el salto a Blackwell (RTX 5090, sm_120)
|
|
# exige torch >= 2.7 con CUDA 12.8. Turing (RTX 2060, sm_75) funciona con
|
|
# cualquier torch reciente. Ver configs/hardware/ y docs/HARDWARE.md.
|
|
dependencies = [
|
|
"torch>=2.5",
|
|
"pydantic>=2.7",
|
|
"omegaconf>=2.3",
|
|
"numpy>=1.26",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
data = [
|
|
"datasets>=2.20", # streaming del corpus; nunca se baja entero
|
|
"tokenizers>=0.20",
|
|
"fasttext-wheel>=0.9", # filtro de idioma
|
|
"datasketch>=1.6", # deduplicación MinHash
|
|
]
|
|
distill = [
|
|
# Solo para generar el dataset SFT (Etapa 3) con la Batch API. No hace falta
|
|
# en el servidor de entrenamiento: enlace/data/distill.py importa el SDK de
|
|
# forma perezosa para que el paquete funcione sin él.
|
|
"anthropic>=0.69",
|
|
]
|
|
dev = [
|
|
"pytest>=8.0",
|
|
"ruff>=0.6",
|
|
"yamllint>=1.35",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["enlace"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
addopts = "-q"
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py311"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "UP", "B"]
|