系统信息
text-generation-launcher --env
Runtime environment:
Target: x86_64-unknown-linux-gnu
Cargo version: 1.75.0
Commit sha: 2d0a7173d4891e7cd5f9b77f8e0987b82a339e51
Docker label: sha-2d0a717
nvidia-smi:
Wed Apr 24 19:58:49 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.15 Driver Version: 550.54.15 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3090 On | 00000000:01:00.0 Off | N/A |
| 0% 23C P8 16W / 350W | 8450MiB / 24576MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 1 NVIDIA GeForce RTX 3090 On | 00000000:21:00.0 Off | N/A |
| 0% 25C P8 20W / 350W | 8418MiB / 24576MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
模型信息
{
"model_id": "/opt/ml/checkpoint/llava-v1.6-mistral-7b-hf",
"model_sha": null,
"model_dtype": "torch.float16",
"model_device_type": "cuda",
"model_pipeline_tag": null,
"max_concurrent_requests": 128,
"max_best_of": 2,
"max_stop_sequences": 4,
"max_input_length": 24576,
"max_total_tokens": 32768,
"waiting_served_ratio": 1.2,
"max_batch_total_tokens": 65536,
"max_waiting_tokens": 20,
"max_batch_size": null,
"validation_workers": 2,
"max_client_batch_size": 4,
"version": "2.0.1",
"sha": "2d0a7173d4891e7cd5f9b77f8e0987b82a339e51",
"docker_label": "sha-2d0a717"
}
信息
- Docker
- CLI直接使用
任务
- 一个官方支持的命令
- 我自己的修改
重现方法
使用大于1MB的镜像,并适当设置IMAGE_PATH和API_ENDPOINT:
from PIL import Image
import requests
import base64
from io import BytesIO
# fetch image
image = Image.open(IMAGE_PATH)
# Convert the image to a base64 string
buffer = BytesIO()
image.save(buffer, format="PNG") # Use the appropriate format (e.g., JPEG, PNG)
base64_image = base64.b64encode(buffer.getvalue()).decode('utf-8')
# format image string
image_string = f"data:image/png;base64,{base64_image}"
query = "Describe the image?"
prompt=f"[INST] ![]({image_string})\n{query} [/INST]"
headers = {
"Accept" : "application/json",
"Content-Type": "application/json"
}
payload = {"inputs":prompt}
response = requests.post(f"{API_ENDPOINT}/generate", headers=headers, json=payload)
try:
print(response.json())
except:
print(response.text)
这将打印: Failed to buffer the request body: length limit exceeded
如果使用的镜像小于1MB,它可以正确生成。
预期行为
它应该为图像生成文本,只要它适合模型的上下文。根据错误文本来看,它似乎与default body size in Axum有关,基于与tokio-rs/axum#1652的相似性。
7条答案
按热度按时间lg40wkob1#
可能与这个 #1777 有关。
vlju58qv2#
我也遇到过这个问题,但是在idefics-9b-instruct模型上也出现了长度限制超出的情况。该模型可以处理不同维度的图像,但当图像较大(超过1MB)时仍然会失败。
gr8qqesn3#
这个问题已经过期,因为它已经打开了30天,没有活动。请移除过期标签或评论,否则将在5天内关闭。
v7pvogib4#
我将在不久的将来重新验证最新的TGI版本。
pjngdqdw5#
我再次尝试了这个,使用了最新的版本和idefics-8b-chatty模型,而不是llava模型,问题仍然存在。
$x_1^a_0 b_1 x$
模型信息
$x_1^a_1 b_1 x$
jutyujz06#
这个问题已经过期,因为它已经打开了30天,没有活动。请移除过期标签或评论,否则将在5天内关闭。
e1xvtsh37#
我尝试在最新的TGI版本(2.2)上复现这个问题,但最后得到了一个不同的错误: