How to use from
SGLang
Install from pip and serve model
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
    --model-path "MinaGabriel/fol-parser-phi2-lora-adapter" \
    --host 0.0.0.0 \
    --port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/completions" \
	-H "Content-Type: application/json" \
	--data '{
		"model": "MinaGabriel/fol-parser-phi2-lora-adapter",
		"prompt": "Once upon a time,",
		"max_tokens": 512,
		"temperature": 0.5
	}'
Use Docker images
docker run --gpus all \
    --shm-size 32g \
    -p 30000:30000 \
    -v ~/.cache/huggingface:/root/.cache/huggingface \
    --env "HF_TOKEN=<secret>" \
    --ipc=host \
    lmsysorg/sglang:latest \
    python3 -m sglang.launch_server \
        --model-path "MinaGabriel/fol-parser-phi2-lora-adapter" \
        --host 0.0.0.0 \
        --port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/completions" \
	-H "Content-Type: application/json" \
	--data '{
		"model": "MinaGabriel/fol-parser-phi2-lora-adapter",
		"prompt": "Once upon a time,",
		"max_tokens": 512,
		"temperature": 0.5
	}'
Quick Links

code:

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel

BASE_MODEL = "microsoft/phi-2"
ADAPTER_MODEL = "MinaGabriel/fol-parser-phi2-lora-adapter"

# tokenizer
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
 
if tokenizer.pad_token is None:
    tokenizer.pad_token = tokenizer.eos_token 
 
base_model = AutoModelForCausalLM.from_pretrained(
    BASE_MODEL,
    torch_dtype=torch.float16,     
    device_map="auto",
)
 
base_model.config.pad_token_id = tokenizer.pad_token_id
base_model.generation_config.pad_token_id = tokenizer.pad_token_id
# attach the adapter
model = PeftModel.from_pretrained(
    base_model,
    ADAPTER_MODEL,
    device_map="auto",
)
model.eval()

def generate(context: str, question: str, max_new_tokens: int = 300) -> str:
    prompt = (
        "<SYS>\nYou are a precise logic parser. Output [FOL] then [CONCLUSION_FOL].\n</SYS>\n"
        "<USER>\n"
        f"[CONTEXT]\n{context}\n\n"
        f"[QUESTION]\n{question}\n\n"
        "Produce the two blocks exactly as specified.\n"
        "</USER>\n"
        "<ASSISTANT>\n"
    )

    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

    with torch.no_grad():
        output_ids = model.generate(
            **inputs,
            max_new_tokens=max_new_tokens,
            do_sample=False,
            temperature=0.0,
            eos_token_id=tokenizer.eos_token_id,      # explicit
            pad_token_id=tokenizer.pad_token_id       # explicit
        )

    full_text = tokenizer.decode(output_ids[0], skip_special_tokens=True)
    return full_text.split("<ASSISTANT>\n")[-1].strip()

Usage:

print(
    generate(
        context="Cats are animal. dogs are animal. human are not animal. animal are awesome",
        question="dogs awesome?"
    )
)

output:

[FOL]
cat(animal)
dog(animal)
¬human(animal)
∀x (animal(x) → awesome(x))

[CONCLUSION_FOL]
awesome(dog)
</ASSISTANT>
Downloads last month
2
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for MinaGabriel/fol-parser-phi2-lora-adapter

Base model

microsoft/phi-2
Adapter
(987)
this model