TL;DR
- 멀티모달 LLM이 제공받은 이미지를 볼 수 없다고 주장하거나(can’t see, no image provided 등) 아무것도 없는 사각형만 보인다고 주장할 때는(empty image, void, black rectangle 등)
- 투명한 색과 특정 색상, 두 색상으로만 이루어진 PNG 파일을 제공했는지 확인해 봅니다.
- 해당 색상을 다른 색으로 변경하거나 투명도가 없는 이미지를 제공해 봅니다.
배경
- Vercel의 AI SDK와 Google Vertex AI가 쓰이는 Node.js 스크립트를 짜고 있었습니다.
- 특정 이미지 세트에 대해서는 Gemini가 이미지에 대한 적절한 설명을 제공했지만, 특정 이미지 세트에 대해서는 제공하지 않았습니다.
- 적절한 설명이 제공된 세트의 이미지들은 연한 검은색과 alpha 0의 투명한 색으로 이루어진 이미지였습니다.
- 적절한 설명이 제공되지 않는 세트의 이미지들은 완전한 검은색(#000)과 alpha 0의 투명한 색으로 이루어진 이미지였습니다.
추측
- PNG 파일이 숫자 벡터로 변환되는 과정 이전에 전처리 과정이 존재하고, 해당 과정에서 투명도가 있는 픽셀들이
#000000
으로 변환되는 것 같다는 팀 동료분의 추측이 있었습니다. - 투명한 색과 검은색으로 이루어진 이미지에서 투명한 색으로 칠해진 부분이 검은색으로 덮어씌워지면 LLM이 보게 되는 이미지는 검은색 사각형입니다.
- API를 통해 요청할 때와 달리, 웹 Gemini에서는 기대한 대로 동작하는 것으로 보아 전처리 과정이 다르게 동작하는 것으로 보입니다.