mirror of
https://git.datalinker.icu/vllm-project/vllm.git
synced 2025-12-10 07:04:53 +08:00
Signed-off-by: DarkLight1337 <tlleungac@connect.ust.hk> Co-authored-by: DarkLight1337 <tlleungac@connect.ust.hk>
84 lines
2.4 KiB
Python
84 lines
2.4 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
|
|
import base64
|
|
import io
|
|
|
|
import numpy as np
|
|
import pytest
|
|
import requests
|
|
import torch
|
|
|
|
from ...utils import RemoteOpenAIServer
|
|
|
|
MODEL_NAME = "ibm-nasa-geospatial/Prithvi-EO-2.0-300M-TL-Sen1Floods11"
|
|
DTYPE = "float16"
|
|
|
|
|
|
def _terratorch_dummy_inputs(model_name: str):
|
|
pixel_values = torch.full((6, 512, 512), 1.0, dtype=torch.float16)
|
|
location_coords = torch.full((1, 2), 1.0, dtype=torch.float16)
|
|
|
|
buffer_tiff = io.BytesIO()
|
|
torch.save(pixel_values, buffer_tiff)
|
|
buffer_tiff.seek(0)
|
|
binary_data = buffer_tiff.read()
|
|
base64_tensor_embedding = base64.b64encode(binary_data).decode("utf-8")
|
|
|
|
buffer_coord = io.BytesIO()
|
|
torch.save(location_coords, buffer_coord)
|
|
buffer_coord.seek(0)
|
|
binary_data = buffer_coord.read()
|
|
base64_coord_embedding = base64.b64encode(binary_data).decode("utf-8")
|
|
|
|
return {
|
|
"model": model_name,
|
|
"additional_data": {"prompt_token_ids": [1]},
|
|
"encoding_format": "base64",
|
|
"messages": [
|
|
{
|
|
"role": "user",
|
|
"content": [
|
|
{
|
|
"type": "image_embeds",
|
|
"image_embeds": {
|
|
"pixel_values": base64_tensor_embedding,
|
|
"location_coords": base64_coord_embedding,
|
|
},
|
|
}
|
|
],
|
|
}
|
|
],
|
|
}
|
|
|
|
|
|
@pytest.mark.parametrize("model_name", [MODEL_NAME])
|
|
async def test_single_request(model_name: str):
|
|
args = [
|
|
"--runner",
|
|
"pooling",
|
|
# use half precision for speed and memory savings in CI environment
|
|
"--dtype",
|
|
DTYPE,
|
|
"--enforce-eager",
|
|
"--trust-remote-code",
|
|
"--max-num-seqs",
|
|
"32",
|
|
"--model-impl",
|
|
"terratorch",
|
|
"--skip-tokenizer-init",
|
|
"--enable-mm-embeds",
|
|
]
|
|
|
|
with RemoteOpenAIServer(MODEL_NAME, args) as server:
|
|
prompt = _terratorch_dummy_inputs(model_name)
|
|
|
|
# test single pooling
|
|
response = requests.post(server.url_for("pooling"), json=prompt)
|
|
response.raise_for_status()
|
|
|
|
output = response.json()["data"][0]["data"]
|
|
|
|
np_response = np.frombuffer(base64.b64decode(output), dtype=np.float32)
|
|
assert len(np_response) == 524288
|