인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

foqlzm12345님의 프로필 이미지
foqlzm12345

작성한 질문수

RAG를 활용한 LLM Application 개발 (feat. LangChain)

HTML Rag

해결된 질문

작성

·

60

0

안녕하세요
rag의 최적화 및 성능 향상을 위해 이것저것 알아보다 HTML구조가 Plain Text 보다 훌륭한 결과를 도출할 수 있다는 논문이 있어서 의견을 물어보고 싶습니다.

https://arxiv.org/pdf/2411.02959

논문에서는 HTML 형식이 일반 텍스트보다 우수한 성능을 보인다고 하고 있습니다.

 

저의 경우 데이터 수집을 크롤링으로 하고 있는데 만약 HTML이 더 우수하다고 한다면 굳이 html tag를 처리하는 노다가를 하지 않고도 오히려 더 좋은 성능이 나온다고 하니 솔깃한 마음이 있네요

 

또 강의에서는 표를 이해시키기 위해 마크다운 형식으로 전처리 작업을 했는데 이건 특정 모델마다 (ex openAI, Llama) 편차를 보이는지 궁금합니다

답변 2

1

강병진님의 프로필 이미지
강병진
지식공유자

안녕하세요!

HTML이 PlainText보다 우수한 성능을 보이는 것은 HTML이 일반 텍스트보다 문서에 대해 더 풍부한 정보를 제공하기 때문입니다. 예를들면 제목(title)과 설명(description)이 있다고 할 때,

제목
설명

보다는

<h1>제목</h1>
<p>설명</p>

와 같이 작성하면 어떤게 제목이고 어떤게 설명인지 조금 더 자세히 전달할 수 있다는 이점이 있습니다. 저는 개인적으로 마크다운을 선호하는데요, 그 이유는 마크다운이 HTML보다 토큰 사용량이 적기 때문입니다. HTML로 작성한 내용을 마크다운으로 변형하면

# 제목
설명

이렇게 되기 때문에, 문서의 구조가 복잡해지는 경우 토큰 사용량을 아껴서 비용을 줄이고, 연산 속도를 개선할 수 있습니다.

 

만약 파싱하는 문서의 구조가 복잡해서 제목, 표, 설명, 등등을 표현해서 LLM에 전달해야한다면 Plain Text로 파싱하는 것 보다 HTML을 그대로 넣는 편이 더 높은 성능을 보여줄거라고 생각합니다. 다만 스타일이나 id, class와 같은 속성은 LLM에게 크게 의미는 없을테니, HTML을 그대로 쓰신다고 해도 id, class, style, data-어쩌고저쩌고 등과 같은 속성들은 제거하는 것을 추천 드립니다.

 

마크다운을 활용하는게 모델마다 편차가 있지는 않을거에요, 제가 모든 모델을 테스트 해보지는 않았지만, 마크다운을 활용하는 것이 아무래도 위에서 말씀드린 HTML을 사용하는 것과 유사한 장점이 있기 때문에 Plain Text보다는 전반적으로 모든 모델에서 더 우수한 성능을 보이지 않을까 추측해봅니다.

 

또 궁금하신 점이 있으시면 질문으로 올려주세요!

foqlzm12345님의 프로필 이미지
foqlzm12345
질문자

아하! 빠른 답변 감사합니다.

불필요한 토큰 사용량이 저한테는 크게 다가오기는 하네요

추가로 한 가지만 더 질문하고 싶습니다.

만약 HTML로 했을 때 문서가 다음과 같이 길어졌다고 가정하겠습니다.

<div>
  세법 1조 1항에 따르면..
  // 중략
  1. 이런저런 조항

=============== chunk 잘림 =============

  2. 2번 조항
  3. 3번 조항
</div>

이렇듯 div 태그가 잘려서 멀어질텐데 이런 문제는 어떻게 되는 것 일까요?

html 태그가 오히려 불필요한 context로 남아 버릴 것 같아요

강병진님의 프로필 이미지
강병진
지식공유자

그런 상황이시면 splitter에서 separator를 <div>, <p> 요런것들로 설정하셔서 태그의 꺽새(?) 기준으로 잘 잘리는지를 확인해보시는 편이 좋을 것 같습니다. 강의에서는 \n, \n\n이라서 줄바꿈 기준으로 보는거라 말씀하신 것처럼 이상하게 잘릴 것 같습니다

foqlzm12345님의 프로필 이미지
foqlzm12345
질문자

아 !! 그런 방법이 있겠군요 테스트 해봐야겠습니다

감사합니다. 행복한 연말 보내세요~~!! :)

0

안녕하세요, 인프런 AI 인턴입니다.

foqlzm12345님의 질문에 답변드리겠습니다. HTML 형식이 일반 텍스트보다 Retrieve-Aumented Generation(RAG)에서 더 나은 결과를 도출할 수 있다는 연구를 발견하셨군요. 이러한 성능 향상 가능성에 솔깃하실 수 있으며, 여러 요소가 존재합니다.

HTML vs Plain Text 성능 비교

  • HTML 형식의 이점: HTML은 데이터의 구조적 정보를 포함하고 있기 때문에 문서 내 요소들을 잘 구별할 수 있다는 장점이 있습니다. 이로 인해 검색 및 정보를 추출하는 작업이 보다 명확하게 이루어질 수 있습니다. 사실 HTML을 사용하면 태그를 통해 텍스트의 컨텍스트를 추가로 제공할 수 있어, 검색 엔진이 더 효과적으로 데이터를 이해하고 관련 결과를 제공하는 데에 도움이 될 수 있습니다.

  • 논문의 참조: 해당 논문의 내용처럼 HTML 형식이 더 나은 성능을 보인다는 결과가 있는 만큼, 이를 기반으로 실험해보는 것도 가치가 있을 것입니다. 논문 링크에서 관련된 내용을 더 자세히 확인해 보실 수 있습니다.

강의 내 마크다운 전처리 및 기타 모델의 차이

  • 마크다운 전처리: 특정 모델에 따른 응답 및 데이터 처리 성능에는 차이가 있을 수 있습니다. 강의에서 언급한 대로, 표나 구조적 데이터를 정확히 이해시키기 위해 마크다운을 사용하는 것이 도움이 될 수 있습니다. 이는 주로 데이터의 가독성과 구조적 이해를 돕기 위한 방법입니다.

  • 모델별 성능 편차: OpenAI API와 같은 특정 LLM 모델은 텍스트 데이터를 처리할 때 특정한 포맷에 더 적합한 성능을 보일 수 있습니다. 각각의 모델들이 어떻게 데이터를 처리하는지에 대한 내부적으로 공개된 명확한 가이드라인은 없으나, 모델마다 입력 데이터의 구조적 이해 능력은 다를 수 있습니다.

결론 및 제안

만약 HTML 구문이 RAG의 성능 향상에 실질적인 차이를 보일 수 있는 잠재력이 있다고 판단되신다면, 데이터를 HTML 형식으로 다루는 방법을 테스트해보는 것도 좋을 것입니다. 데이터의 유형 및 사용하는 LLM 모델에 맞춰 필요에 따라 전처리 방식을 조정하며 실험을 지속하는 것을 추천드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

foqlzm12345님의 프로필 이미지
foqlzm12345

작성한 질문수

질문하기