6P by xguru 8일전 | favorite | 댓글 3개
  • 웹사이트는 사람들에게 정보를 제공할 뿐만 아니라 LLM에도 정보를 제공하는 데 사용됨
  • LLM은 프로그래밍 라이브러리 및 API에 대한 정보를 웹사이트 문서에서 수집하는 옵션을 포함하여 코더가 사용하는 개발 환경을 향상시키는 데 사용됨
  • LLM을 위한 정보 제공은 사람을 위한 정보 제공과 약간 다르지만 많은 부분 겹침
    • 일반적으로 보다 간결한 형식으로 정보를 선호함
    • 많은 정보를 빠르게 수집할 수 있어 모든 주요 정보를 한 곳에 수집하는 것이 도움됨
    • LLM의 컨텍스트 창은 전체 웹 사이트를 처리하기에는 너무 작고, 복잡한 HTML 페이지를 LLM 친화적인 일반 텍스트 문서로 변환하는 것이 어려움
  • 따라서 AI 도우미에게 제공할 가장 중요한 정보를 식별하고 가장 적절한 형식으로 제공하는 방법이 필요함

Proposal

  • LLM 친화적인 콘텐츠를 제공하려는 사람들은 /llms.txt 파일을 사이트에 추가할 것을 제안함
    • 이는 간단한 배경 정보와 지침을 제공하는 마크다운 파일로, 더 자세한 정보를 제공하는 마크다운 파일에 대한 링크를 포함함
    • 이는 라이브러리 사용에 필요한 정보를 제공하거나 사람이나 조직에 대해 배우기 위한 연구의 일부로 사용될 수 있음
  • llms.txt 마크다운은 사람과 LLM이 읽을 수 있지만 정확한 형식의 처리 방법도 허용함
  • llms.txt 파일은 다양한 시나리오에서 사용할 수 있음
    • 소프트웨어 라이브러리의 경우 문서에 대한 구조화된 개요를 제공하여 LLM이 특정 기능이나 사용 예제를 쉽게 찾을 수 있게 함
    • 기업 웹사이트에서는 조직 구조와 주요 정보 출처를 개략적으로 설명할 수 있음
    • 새로운 법안과 필요한 배경 및 맥락에 대한 정보가 llms.txt 파일에 큐레이션되어 이해관계자들이 이해하는 데 도움이 될 수 있음
    • 개인 포트폴리오 또는 CV 웹사이트는 개인에 대한 질문에 답하는 데 도움이 될 수 있음
    • 전자상거래에서는 제품 카테고리와 정책을 간략하게 설명할 수 있음
    • 교육 기관은 과정 제공 및 리소스를 요약하는 데 사용할 수 있음

llms.txt 파일 형식

  • llms.txt 파일 형식은 언어 모델이 이해하기 쉬운 Markdown을 사용하여 정보 구조를 제공
  • 이 파일은 전통적인 구조화 형식(예: XML) 대신 Markdown을 사용하는데, 이는 파일의 주요 독자가 언어 모델과 에이전트이기 때문
  • llms.txt 파일은 표준 프로그래밍 도구를 통해 읽을 수 있으며, 특정 형식에 따라 구성
    • H1 헤더: 프로젝트나 사이트의 이름을 포함하며, 유일하게 필수적인 섹션임.
    • 인용 블록: 프로젝트에 대한 간단한 요약을 포함하며, 파일의 나머지 부분을 이해하는 데 필요한 주요 정보를 제공함.
    • Markdown 섹션: 상세 정보를 제공하며, 문단, 목록 등 여러 유형의 섹션이 포함될 수 있으나, 추가적인 헤딩은 포함되지 않음.
    • H2 헤더로 구분된 파일 목록 섹션: 추가 정보를 제공하는 URL 목록을 포함하며, 각 항목은 Markdown 링크 형식 [이름](URL)으로 작성되고, 선택적으로 설명이 추가될 수 있음.
  • 파일의 예
# 프로젝트 제목  
  
> 프로젝트에 대한 선택적 설명이 여기에 들어감  
  
선택적 세부 정보가 여기에 들어감  
  
## 섹션 이름  
  
- [링크 제목](https://링크_URL): 선택적 링크 설명  
  
## Optional  
  
- [링크 제목](https://링크_URL)  
  • "Optional" 섹션: 특별한 의미를 가지며, 짧은 맥락이 필요한 경우 해당 URL은 생략할 수 있음. 자주 생략할 수 있는 2차적인 정보를 포함함.

기존 표준과의 공존

  • llms.txt는 기존 웹 표준과 함께 작동하도록 설계되었음
  • 사이트맵(sitemaps)이 검색 엔진을 위해 모든 페이지를 나열하는 반면, llms.txt는 LLMs(대형 언어 모델)를 위한 큐레이션된 개요를 제공
  • llms.txt는 robots.txt와 보완 관계에 있으며, 허용된 콘텐츠에 대한 맥락을 제공할 수 있음
  • 또한 사이트에서 사용된 구조화된 데이터 마크업을 참조하여, LLM이 이를 이해하고 해석하는 데 도움을 줄 수 있음
  • /robots.txt/sitemap.xml과 같은 방식으로 파일의 경로를 표준화함
    • robots.txtllms.txt는 목적이 다름
      • robots.txt: 자동화 도구(예: 검색 인덱싱 봇)가 사이트 접근 허용 범위를 이해하는 데 사용됨
      • llms.txt: 주로 사용자가 특정 주제에 대한 정보를 명시적으로 요청할 때 사용됨. 예를 들어, 코딩 라이브러리의 문서를 프로젝트에 포함하거나, 검색 기능이 있는 챗봇에 정보를 요청할 때 유용함
    • llms.txt는 주로 **추론(inference)**에 유용할 것으로 기대됨. 사용자가 도움을 필요로 하는 시점에 활용될 것이며, **훈련(training)**에 사용되지는 않을 것으로 예상됨. 다만, llms.txt의 사용이 널리 퍼지면, 향후 훈련 과정에서도 이 정보를 활용할 수 있을 가능성도 있음
  • sitemap.xml과의 차이점
    • sitemap.xml: 사이트의 모든 색인 가능한 인간이 읽을 수 있는 정보를 나열함
    • llms.txtsitemap.xml의 대체가 아님:
      • LLM이 읽을 수 있는 페이지 버전이 포함되지 않을 수 있음.
      • 정보를 이해하는 데 유용할 수 있는 외부 사이트의 URL을 포함하지 않음.
      • 일반적으로 LLM의 컨텍스트 창에 맞지 않는 너무 큰 문서들을 포함하며, 사이트 이해에 불필요한 정보도 많이 포함됨.
    • llms.txt는 언어 모델이 특정 정보에 접근하고, 문맥을 이해하는 데 최적화된 도구로 작동할 수 있음

llms라는 네이밍이 특정 기술을 위한 인터페이스처럼 보여서 좀 불편하네요...

그러게요. 이상하고 매우 범용성이 낮은 또 다른 표준을 만드는 것보다 JSON-LD와 같은 이미 있는 표준을 이용하거나 확장하는 게 더 낫지 않을까 싶네요.

이게 널리 퍼진다면 적절한 llms.txt 파일로 LLM이 내 사이트를 사용하는걸 막을 수 있겠군요.
전혀 다른 무의미한 정보를 제공하거나, LLM의 컨텍스트를 모두 소모할만큼 큰 정보를 제공하거나 하는
방식으로요.