AI 컨텍스트에서의 이미지 관리에 대해 내부적으로 몇 가지 질문이 있어, 공개 문제 해결을 통해 몇 가지 고려 사항을 다루고자 합니다.
문제
현재 LLM은 여러 모달리티를 지원합니다. 주요 벤더들은 모두 이미지 입력을 지원하며, 일부 벤더(특히 Google)는 이미지 출력을 지원합니다.
이로 인해 Discourse AI는 LLM에게 "이미지"를 어떻게 제시할 것인가라는 다소 복잡한 문제에 직면했습니다.
구체적으로, 다음과 같은 예시 게시물이 있다고 가정해 보겠습니다:
Hello here is a picture of me:

And here is another one

The end
이 내용을 LLM에게 어떻게 제시해야 할까요?
옵션 1: 마크다운 유지, 이미지 추가
접근 방식: 모든 텍스트를 함께 유지하고, 이미지를 끝에 추가합니다.
[
"Hello here is a picture of me:

And here is another one

The end",
image1,
image2
]
옵션 2: 마크다운 유지, 인라인 이미지 삽입
접근 방식: 컨텍스트와 순서를 유지하기 위해 텍스트와 이미지를 번갈아 배치합니다.
[
"Hello here is a picture of me:
",
image1,
"And here is another one
",
image2,
"The end"
]
옵션 3: 마크다운 제거, 이미지 추가
접근 방식: 이미지 마크다운 문법을 완전히 제거하고, 실제 이미지를 끝에 추가합니다.
[
"Hello here is a picture of me:
And here is another one
The end",
image1,
image2
]
옵션 4: 설명 유지, 마크다운 단순화
접근 방식: Discourse 전용 포맷팅을 제거하되, 컨텍스트를 위해 이미지 설명은 유지합니다.
[
"Hello here is a picture of me:
And here is another one
Sam standing next to a window
The end",
image1,
image2
]
옵션 5: 설명 인라인화, 이미지 삽입
접근 방식: 마크다운을 설명으로 대체하여 인라인으로 배치한 후, 해당 이미지를 삽입합니다.
[
"Hello here is a picture of me:",
image1,
"And here is another one
Sam standing next to a window",
image2,
"The end"
]
현재 우리의 구현 방식은 (1)입니다. 그 이유 중 하나는 “레거시” 구형 모델들이 이미지의 위치를 지정하는 것을 허용하지 않았기 때문이며, 또 다른 이유는 사람들이 Discourse를 사용하여 게시물을 다시 포맷팅할 때, 업로드 마커를 제거하면 LLM이 우리가 다른 내용을 말한 것으로 오해하여 이미지와 함께 게시물을 다시 포맷팅하지 못할 수 있기 때문입니다.
또한 Anthropic과 같은 LLM 벤더들의 권장 사항은 항상 이미지를 끝에 배치하는 것입니다. 이는 LLM이 해석하는 것을 가장 단순하게 유지합니다.
그러나 이 접근 방식은 Nano Banana: Image editing in Google Gemini gets a major upgrade 와 같은 LLM에게는 매우 문제적입니다.
이렇게 시도했을 때, LLM은 이미지를 렌더링하는 대신 업로드 마커를 환각(hallucinate)하기 시작했습니다.
사후적으로 생각해 보면 당연한 일입니다.
LLM에게 upload://xd5Pv36uPIVKBqya8N5BzZGsJrN.png 같은 내용을 방금 말했노라고 알려주면, 다시 그런 이상한 내용을 말하는 것에 대해 놀라지 말아야 합니다.
(2)로 전환하는 것에 대해서는mixed feelings(복합적인 감정)이 있지만, “환각을 방지하기 위해 LLM이 방금 말한 내용을 되돌려 주는” 측면에서는 (3)이 유일한 합리적인 방식인 것으로 보입니다… 따라서 이 까다로운 문제에 대한 우리의 해결책은 다소 혼합되어 있습니다.
이 작업을 수행하면서 출력과 입력이 동일하게 처리되는 균일한 솔루션을 만들 수 있는지 탐구해 보았지만, 이것이 실용적이라고 생각하지는 않습니다. (또한 설명이 충분히 길 때 업로드 설명을 유지하는 시도도 해 보았습니다)
하지만 당장은
LLM 입력에는 (1)
LLM 출력에는 (3)
장기적으로:
입력에 (2)를 적용하는 것은 탐구할 가치가 있으며
출력에서는 제거하되 컨텍스트적 위치를 유지하는 것도 탐구할 가치가 있습니다.
현재 LLM 벤더 중 이미지와 함께 추가 메타데이터를 제공할 수 있도록 허용하는 곳이 없다는 점은 아쉬운 일입니다.