Mein erstes Scoring -Skript verwendet os.path.join, um Stringpfade zu den Modellen zu erstellen. < /P>
Code: Select all
# This version used os.path.join and failed
import os
from transformers import AutoTokenizer, AutoModelForCausalLM, GPTQConfig
# ... other imports
def init():
model_dir = os.environ.get('AZUREML_MODEL_DIR')
adapter_model_path_str = os.path.join(model_dir, 'mistral-finetuned-website-v1')
# This line failed
tokenizer = AutoTokenizer.from_pretrained(adapter_model_path_str, local_files_only=True)
# ... rest of the loading logic
< /code>
Dies erzeugte den folgenden Fehler, was darauf hindeutet, dass die lokale Pfadzeichenfolge als Hub -Repository -ID falsch interpretiert wurde.huggingface_hub.errors.HFValidationError: Repo id must be in the form 'repo_name' or 'namespace/repo_name': '/var/azureml-app/azureml-models/mistral-package/1/mistral-finetuned-website-v1'.
< /code>
[b] Zweiter Versuch < /strong>: Verwenden von Pathlib.Path
Basierend auf dem anfänglichen Fehler besteht die Standardempfehlung darin, Pathlib.Path zu verwenden, um den lokalen Pfad für die Transformers -Bibliothek eindeutig zu machen. Ich habe mein Skript entsprechend aktualisiert.import os
import torch
import json
from pathlib import Path
from transformers import AutoTokenizer, AutoModelForCausalLM, GPTQConfig
from peft import PeftModel
from sentence_transformers import SentenceTransformer, util
# FALLBACK_MESSAGE and KNOWN_TOPICS are defined here...
def init():
global model, tokenizer, embedding_model, known_topics_embeddings
try:
model_dir = Path(os.environ.get('AZUREML_MODEL_DIR'))
base_model_path = model_dir / 'mistral-7b-combined-model'
adapter_model_path = model_dir / 'mistral-finetuned-website-v1'
embedding_model_path = model_dir / 'all-MiniLM-L6-v2'
quantization_config = GPTQConfig(bits=4, use_exllama=False)
print(f"Loading tokenizer from: {adapter_model_path}")
# This line is still failing
tokenizer = AutoTokenizer.from_pretrained(adapter_model_path, local_files_only=True)
print(f"Loading base model from: {base_model_path}")
base_model = AutoModelForCausalLM.from_pretrained(
base_model_path,
device_map="cpu",
quantization_config=quantization_config,
local_files_only=True
)
print(f"Loading fine-tuned PEFT adapter from: {adapter_model_path}")
model = PeftModel.from_pretrained(base_model, adapter_model_path)
print("Merging base model and adapter...")
model = model.merge_and_unload()
model.eval()
print("Loading SentenceTransformer model...")
embedding_model = SentenceTransformer(str(embedding_model_path))
print("Computing embeddings for known topics...")
known_topics_embeddings = embedding_model.encode(KNOWN_TOPICS, convert_to_tensor=True)
print("All models and embeddings loaded successfully.")
except Exception as e:
print(f"Error during initialization: {e}")
raise
def run(raw_data):
# (Full run function logic is included here)
pass
2025-09-12 04:37:12,668 I [73] azmlinfsrv.print - Loading tokenizer from: /var/azureml-app/azureml-models/mistral-package/1/mistral-finetuned-website-v1
2025-09-12 04:37:12,668 I [73] azmlinfsrv.print - Error during initialization: Repo id must be in the form 'repo_name' or 'namespace/repo_name': '/var/azureml-app/azureml-models/mistral-package/1/mistral-finetuned-website-v1'. Use `repo_type` argument if needed.
2025-09-12 04:37:12,668 E [73] azmlinfsrv - User's init function failed
...
Traceback (most recent call last):
File "/azureml-envs/.../site-packages/huggingface_hub/utils/_validators.py", line 154, in validate_repo_id
raise HFValidationError(
huggingface_hub.errors.HFValidationError: Repo id must be in the form 'repo_name' or 'namespace/repo_name': '/var/azureml-app/azureml-models/mistral-package/1/mistral-finetuned-website-v1'.
...
< /code>
Umgebung und Abhängigkeiten < /strong>:
Dies ist mein Conda.yml. Ich ziele auf eine CPU-Bereitstellung. Daher haben GPU-basierte Lösungen für diese Aufgabe keinen Umfang. < /P>
channels:
- conda-forge
- pytorch
- defaults
dependencies:
- python=3.10
- pip=23.3.1
- pytorch=2.0.1
- torchvision=0.15.2
- torchaudio=2.0.2
- cpuonly
- scikit-learn
- scipy
- pip:
- accelerate==0.21.0
- auto-gptq
- azureml-inference-server-http==1.5.0
- huggingface-hub
- peft==0.5.0
- sentence-transformers==2.6.1
- transformers>=4.34.0
# ... other packages
< /code>
Die Protokolle aus der fehlgeschlagenen Bereitstellung zeigen jedoch, dass die installierte Umgebung GPU -Pakete und eine andere Pytorch -Version enthält. < /p>
...
torch==2.8.0
nvidia-cublas-cu12==12.8.4.1
nvidia-cuda-cupti-cu12==12.8.90
nvidia-cuda-nvrtc-cu12==12.8.93
nvidia-cuda-runtime-cu12==12.8.90
nvidia-cudnn-cu12==9.10.2.21
transformers==4.56.1
... (full list)
< /code>
Diese Diskrepanz zwischen meiner angeforderten CPUonly-Umgebung und der tatsächlichen GPU-zentrierten Umgebung scheint eine potenzielle Grundursache für die Instabilität zu sein. Gibt es ein bekanntes Problem in bestimmten Transformatoren/Huggingface-Hub-Versionen oder Azure-ML-Umgebungen, in denen diese Standardfixe nicht funktioniert? Könnte der Konflikt zwischen einem angeforderten CPUonly-Build und dem Vorhandensein von Nvidia-* -Paketen zu einer zugrunde liegenden Instabilität führen, die sich als dieses hfvalidationerror manifestiert? < /Li>
[*] Was ist der empfohlene nächste Schritt, um dies zu debuggen? Sollte ich mich darauf konzentrieren, eine echte CPU-Umgebung zu erzwingen, oder gibt es eine andere Möglichkeit, die lokalen Modelle zu laden, die robuster sein könnten?
Mobile version