ivanm151 commited on
Commit
4e282b0
·
1 Parent(s): 1c127e7

wheel fix 1

Browse files
Files changed (3) hide show
  1. Dockerfile +0 -8
  2. models.py +35 -9
  3. requirements.txt +6 -1
Dockerfile CHANGED
@@ -1,8 +1,6 @@
1
  FROM python:3.11-slim
2
 
3
- # Устанавливаем только нужное для сборки + OpenBLAS
4
  RUN apt-get update && apt-get install -y --no-install-recommends \
5
- build-essential \
6
  libopenblas-dev \
7
  && rm -rf /var/lib/apt/lists/*
8
 
@@ -17,12 +15,6 @@ WORKDIR $HOME/app
17
  COPY --chown=user requirements.txt .
18
  RUN pip install --no-cache-dir --user -r requirements.txt
19
 
20
- # Компиляция llama-cpp-python с OpenBLAS
21
- RUN CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" \
22
- FORCE_CMAKE=1 \
23
- pip install --no-cache-dir --user llama-cpp-python --upgrade --force-reinstall --no-cache-dir
24
-
25
- # Копируем код и модель (если скачал в weights/)
26
  COPY --chown=user . .
27
 
28
  CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860", "--workers", "1"]
 
1
  FROM python:3.11-slim
2
 
 
3
  RUN apt-get update && apt-get install -y --no-install-recommends \
 
4
  libopenblas-dev \
5
  && rm -rf /var/lib/apt/lists/*
6
 
 
15
  COPY --chown=user requirements.txt .
16
  RUN pip install --no-cache-dir --user -r requirements.txt
17
 
 
 
 
 
 
 
18
  COPY --chown=user . .
19
 
20
  CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860", "--workers", "1"]
models.py CHANGED
@@ -1,19 +1,45 @@
1
  from llama_cpp import Llama
 
 
2
 
3
- # Выбери подходящий квант (поменяй по вкусу)
4
- GGUF_MODEL = "https://huggingface.co/bartowski/Qwen2.5-7B-Instruct-GGUF/resolve/main/Qwen2.5-7B-Instruct-Q5_K_M.gguf"
5
- # Или локально: "./weights/Qwen2.5-7B-Instruct-Q5_K_M.gguf" но в HF Spaces лучше скачивать с HF
 
 
 
 
6
 
7
  llm = None
8
 
 
9
  def load_model():
10
  global llm
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  llm = Llama(
12
- model_path=GGUF_MODEL, # или локальный путь
13
- n_ctx=8192, # контекст — хватит для описаний + промпта
14
- n_threads=0, # 0 = все доступные CPU-ядра
15
- n_gpu_layers=0, # 0 = чистый CPU
16
- n_batch=512, # батч для промпта
17
- verbose=False
18
  )
 
 
19
  return llm
 
1
  from llama_cpp import Llama
2
+ from huggingface_hub import hf_hub_download
3
+ import os
4
 
5
+ # Параметры модели (Q5_K_M хороший баланс скорость/качество на CPU)
6
+ REPO_ID = "bartowski/Qwen2.5-7B-Instruct-GGUF"
7
+ FILENAME = "Qwen2.5-7B-Instruct-Q5_K_M.gguf" # если хочешь другой квант Q4_K_M (быстрее), Q6_K (лучше качество)
8
+
9
+ # Директория кэша (в HF Spaces /tmp сохраняется между перезапусками, модель не скачивается заново)
10
+ CACHE_DIR = "/tmp/hf/models"
11
+ os.makedirs(CACHE_DIR, exist_ok=True)
12
 
13
  llm = None
14
 
15
+
16
  def load_model():
17
  global llm
18
+
19
+ if llm is not None:
20
+ return llm # уже загружено — не тратим время
21
+
22
+ print(f"Скачиваем/находим модель {REPO_ID}/{FILENAME} ... (первый раз ~5–15 мин на HF CPU)")
23
+
24
+ # Скачивание (или берём из кэша, если уже есть)
25
+ model_path = hf_hub_download(
26
+ repo_id=REPO_ID,
27
+ filename=FILENAME,
28
+ cache_dir=CACHE_DIR,
29
+ local_dir=CACHE_DIR, # сохраняем явно
30
+ local_dir_use_symlinks=False # без ссылок, чтобы файл был физически
31
+ )
32
+
33
+ print(f"Путь к модели: {model_path}")
34
+
35
  llm = Llama(
36
+ model_path=model_path,
37
+ n_ctx=8192, # контекст — достаточно для длинных описаний + промпта
38
+ n_threads=0, # все доступные ядра CPU
39
+ n_gpu_layers=0, # строго CPU
40
+ n_batch=512,
41
+ verbose=True # логи в консоль Spaces — увидишь токены/сек
42
  )
43
+
44
+ print("Модель Qwen2.5-7B-Instruct успешно загружена в CPU-режиме")
45
  return llm
requirements.txt CHANGED
@@ -1,4 +1,9 @@
1
  fastapi>=0.115.0
2
  uvicorn[standard]>=0.30.0
3
  pydantic>=2.8.0
4
- llama-cpp-python>=0.2.80
 
 
 
 
 
 
1
  fastapi>=0.115.0
2
  uvicorn[standard]>=0.30.0
3
  pydantic>=2.8.0
4
+
5
+ # Предкомпилированный wheel для HF Spaces CPU (Luigi — свежий на январь 2026, с OpenBLAS)
6
+ https://huggingface.co/Luigi/llama-cpp-python-wheels-hf-spaces-free-cpu/resolve/main/llama_cpp_python-0.3.22-cp311-cp311-linux_x86_64.whl
7
+
8
+ # Для скачивания модели
9
+ huggingface-hub>=0.20.0