YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
import torch
from PIL import Image
from transformers import AutoProcessor, AutoModelForImageTextToText
import os
# --- 1. Model və Prosessoru Hugging Face Hub-dan yükləyin ---
# Modelinizin Hugging Face repozitoriya ID-si
hf_repo_id = "nijatzeynalov/azmedgemma-4b-lung-cxr-1ep"
print(f"'{hf_repo_id}' model və prosessoru yüklənir...")
# GPU varsa, onu istifadə edin
device = "cuda" if torch.cuda.is_available() else "cpu"
# Modeli bfloat16 dəqiqliyində yükləyərək yaddaşa qənaət edin
model = AutoModelForImageTextToText.from_pretrained(
hf_repo_id,
torch_dtype=torch.bfloat16,
device_map=device
)
processor = AutoProcessor.from_pretrained(hf_repo_id)
print("Model və prosessor uğurla yükləndi.")
CLASSES = [
'Atelektazi', 'Ağciyər Bulanıqlığı', 'Ağciyər Lezyonu',
'Böyümüş Kardiomediastinum', 'Digər Plevral Tapıntılar', 'Dəstək Qurğuları',
'Heç bir tapıntı yoxdur', 'Kardiomeqaliya', 'Konsolidasiya',
'Plevral Maye Toplanması', 'Pnevmatik döş qəfəsi (Pnevmotoraks)',
'Sınıq', 'Sətəlcəm', 'Ödəm'
]
# Təlim zamanı istifadə etdiyiniz prompt formatını eynilə tətbiq edin
options = "\\n".join(f"- {label}" for label in CLASSES)
prompt_text = (
"Bu, bir ağciyər MRT (və ya rentgen) şəkilidir.\\n"
"Aşağıdakı siyahıdakı diaqnozlardan hansı(lar) bu şəkildə ehtimal olunur?\\n"
"Bir və ya bir neçə variantı seçə bilərsiniz.\\n"
f"{options}\\n"
)
# Chat formatına uyğun mesajlar siyahısı yaradın
messages = [
{
"role": "user",
"content": [
{"type": "image"},
{"type": "text", "text": prompt_text},
],
}
]
# Prosessor vasitəsilə tam promptu hazırlayın
templated_prompt = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=False
)
# --- 3. Lokal şəkli yükləyin ---
local_image_path = "image (2).jpg"
image = Image.open(local_image_path).convert("RGB")
# --- 4. Model ilə nəticəni yaradın (Inference) ---
inputs = processor(images=[image], text=templated_prompt, return_tensors="pt").to(device, torch.bfloat16)
input_ids_len = inputs["input_ids"].shape[1]
print("\nNəticə yaradılır...")
generated_ids = model.generate(
**inputs,
max_new_tokens=50,
do_sample=False,
# Modeli cümlənin sonunda dayanmağa məcbur et
eos_token_id=processor.tokenizer.eos_token_id
)
# --- 5. Nəticəni deşifrə edin və göstərin (DƏYİŞİKLİK) ---
newly_generated_ids = generated_ids[:, input_ids_len:]
assistant_response_raw = processor.batch_decode(newly_generated_ids, skip_special_tokens=True)[0]
# Təkrarlanan hissələri təmizlə: "\nmodel" sözündən əvvəlki ilk hissəni götür
clean_response = assistant_response_raw.split("\n")[0].strip()
print("\n--- Modelin Diaqnozu ---")
print(clean_response)
- Downloads last month
- 3
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support