[GN⁺] GPT 토큰 5억 개 학습 후 얻은 교훈들

GPT 토큰 5억 개 학습 후 얻은 교훈들

[GN⁺] GPT 토큰 5억 개 학습 후 얻은 교훈들

개요

  • 저희는 OpenAI 모델을 사용하고 있으며, 다른 모델에 대한 저의 의견이 궁금하시면 아래의 Q&A를 참조해 주세요.

  • 저희의 사용 비율은 GPT-4가 85%, GPT-3.5가 15%입니다.

  • 저희는 오직 텍스트만을 다루므로 GPT-4V, Sora, Whisper 등은 사용하지 않습니다.

  • 저희는 B2B 사례로, 요약/분석-추출에 집중하고 있어서 여러분의 경우에 따라 다를 수 있습니다.

  • 5억 토큰은 실제로 보이는 것만큼 많지 않습니다 – 이것은 대략 75만 페이지의 텍스트에 해당한다고 보시면 됩니다.

GPT 사용에서 간결한 프롬프트가 더 나은 결과를 제공함

  • GPT는 이미 상식으로 알고 있는 내용을 프롬프트에 과도하게 명시하면 오히려 혼란스러워함
  • 예를 들어, 텍스트에서 언급된 주(state)를 분류하는 작업에서 50개 주 목록을 제공하는 것보다 단순히 주 이름을 요청하는 것이 더 정확한 결과를 냄

OpenAI의 chat API만으로도 충분히 다양하고 강력한 기능 구현이 가능함

  • Langchain 등 추가적인 도구 없이 chat API만 사용하여 JSON 추출 등 필요한 기능을 간단히 구현
  • GPT 모델 업그레이드 시에도 코드베이스의 문자열 하나만 수정하면 됨
  • OpenAI API의 에러 처리와 입력 길이 제한 등을 위한 간단한 로직만 추가하면 됨

GPT가 아무것도 찾지 못하는 경우를 처리하는 것이 어려움

  • "아무것도 찾지 못하면 빈 값을 리턴하라"는 프롬프트에서 GPT는 종종 헛것을 만들어내거나 자신감이 부족해짐
  • 입력이 비어있을 때 GPT에 프롬프트를 보내지 않도록 하는 것이 해결책

GPT는 제한된 길이의 출력만 생성할 수 있음

  • GPT-4의 입력 제한은 128k 토큰이지만 출력 제한은 4k 토큰에 불과함
  • JSON 객체 목록을 요청할 때 GPT는 10개 이상의 아이템을 안정적으로 생성하기 어려움

벡터 데이터베이스와 RAG/임베딩은 일반적인 용도에는 큰 도움이 되지 않음

  • 검색 이외의 용도로는 RAG가 잘 동작하지 않음
  • 관련성 판단의 어려움, 데이터 격리 문제, 사용자 만족도 저하 등의 이유로 실용성이 떨어짐
  • 일반적인 검색에는 GPT를 사용한 패싯 검색(faceted-search)이나 복잡한 쿼리 생성이 더 적합함

GPT는 사실상 환각(hallucination)을 만들어내지 않음

  • 주어진 텍스트에서 정보를 추출하는 작업에서 GPT는 매우 신뢰할만한 결과를 제공함
  • 다만 텍스트에 정보가 없는 경우에는 헛것을 만들어낼 수 있음
  • 따라서 충분한 컨텍스트를 제공하고 GPT의 응답을 잘 다루는 것이 중요함

GN⁺의 의견

  • 트랜스포머 모델과 웹 데이터, 대규모 인프라만으로는 AGI에 도달하기 어려울 것으로 보임
  • GPT-4는 분명 유용하지만, 그 이상의 발전을 위해서는 모델 아키텍처 자체의 혁신이 필요할 듯함
  • OpenAI 이외의 대안들은 아직 GPT에 미치지 못하는 것 같고, 결국 GPT의 버전업에 주목해야 할 것
  • GPT-5의 성능은 GPT-4 대비 혁신적인 수준은 아닐 것으로 예상됨. 비용 대비 효용이 한계에 다다른 듯함
  • 따라서 당분간은 GPT-4를 활용하여 최적의 프롬프트 설계와 응용에 집중하는 것이 현실적인 선택으로 보임

Hacker News 의견

  • 한 팀에서 한 달에 50억 이상의 토큰을 처리하고 있으며, 이를 관리하는 엔지니어링 매니저의 경험을 공유함.
    • Langchain 등 많은 추상화가 시기상조이며, 프롬프트는 단순히 API 호출이므로 특별한 것으로 취급하기보다는 일반적인 코드로 작성하는 것이 더 쉬움.
    • 요약은 견고하지만 추론은 어려우며, 특히 LLM이 문맥을 이해하고 확신이 없을 때 말하는 것이 어려움.
    • 게임 체인저이지만 세상의 종말은 아니며, 일부 직업에 큰 영향을 미치겠지만 인터넷처럼 획기적인 것은 아니고 힘을 증폭시키는 역할을 할 것임.
  • 개인 작문 앱에서 OpenAI 모델을 사용한 경험을 공유함.
    • Haskell을 언급한 최근 2년 간의 초안 노트를 찾는 등의 지능형 검색 기능을 구현하려 했으나, ChatGPT에게 구조화된 JSON 데이터를 반환하도록 요청하는 것은 일부만 작동함.
    • 대신 데이터를 SQLite 데이터베이스에 넣고 ChatGPT에게 스키마를 보내 원하는 것을 반환하는 쿼리를 작성하도록 요청하는 것이 더 잘 작동함.
  • 더 나은 프롬프트를 사용하면 더 저렴한 모델을 사용할 수 있음.
    • LLM에게 부드러운 출구(sufficient information이 없을 경우 가설을 세울 수 있지만 명확히 언급하고 근거와 논리적 기반을 제시하도록 요청)를 제공한 다음 자체 응답을 평가하도록 요청함.
  • JSON 모드가 필요하지 않은 이유에 대해 궁금해함.
  • 규칙이 텍스트에 적용되지 않을 경우 원본 텍스트를 변경 없이 반환하도록 프롬프트를 테스트했으나, ChatGPT는 "The original text without any changes"라는 리터럴 문자열을 반환함.
  • GPT는 매우 멋지지만 모호할수록 품질과 일반화가 향상된다는 해석에는 강하게 동의하지 않음.
    • 자연어는 GPT에 가장 가능성 있는 출력이며, 개발자는 GPT가 잘하는 것에 더 의존했을 뿐임.
    • 간단한 작업으로도 GPT를 실패하게 만들 수 있으며, GPT가 매핑을 "이해"한다는 것 자체가 고차 패턴 매칭을 암시함.
  • GPT-4가 1년 전 모델임에도 불구하고 다른 LLM에 비해 훨씬 우수한 성능을 보이며, 사용 패턴에 따라 환각이 드물고 옳다는 것을 알 때 더 고집스러움.
  • 회사 이름을 추출할 때 텍스트에 회사가 없다면 임의의 회사를 제시하는 null 가설 문제가 있음.
    • 먼저 "이 텍스트가 회사를 언급하는가?"를 물은 다음, 그렇다면 "이 텍스트에서 회사 이름을 나열해 달라"고 요청하는 2단계 접근이 필요함.
  • GPT가 10개 이상의 항목을 안정적으로 반환하지 못하는 것은 프롬프트 문제일 뿐이며, JSON 키를 사용하면 최대 200개 항목을 정확한 순서로 반환할 수 있음.
  • 'null' 문제 해결을 위한 팁:
    • "아무것도 반환하지 마라" 대신 "XYZ의 기본값을 반환하라"고 하고, 주 이름을 검색하는 것처럼 해당 기본값(XYZ)에 대한 텍스트 검색을 수행하면 됨.
    • 시스템 프롬프트를 사용하면 LLM이 X 역할을 하도록 할 수 있음.
  • 토큰 기반 잘림에 대한 마이크로 패키지를 소개함.

원문

출처 / GeekNews


:information_source: 알려드립니다

이 글은 국내외 IT 소식들을 공유하는 GeekNews의 운영자이신 xguru님께 허락을 받아 GeekNews에 게제된 AI 관련된 소식을 공유한 것입니다.

출처의 GeekNews 링크를 방문하시면 이 글과 관련한 추가적인 의견들을 보시거나 공유하실 수 있습니다! :wink:

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요