[GN⁺] LangChain의 문제점

GeekNewsxguru님께 허락을 받고 GN에 올라온 글들 중에 AI 관련된 소식들을 공유하고 있습니다. :smiley_cat:


소개

  • LangChain: AI 텍스트 생성을 위해 OpenAI의 GPT API와 인터페이스하는 Python 및 JavaScript 라이브러리
    • ReAct 논문의 구현체로, LLM의 출력 텍스트 품질을 향상시킨다고 알려짐
    • ReAct 워크플로우는 InstructGPT/text-davinci-003 에서 특히 효과적이었지만 비용이 많이 들고 소규모 프로젝트에는 사용하기 쉽지 않음
  • LangChain은 인기를 얻으면서 별도 수익이나 수익 창출 계획이 없음에도 꽤 많은 자금을 조달
  • 실제로 BuzzFeed에서 챗봇을 만드는데 사용하려고 했음
    • RAG(Retrieval-Augemented Generation)에 LangChain이 인기있는 도구 였기 때문에
    • 하지만, 한참 연구해봐도 잘 안됨. 버그도 많고 품질도 좋지 않음
    • 다시 저수준으로 들어가서 직접 개발해보니 LangChain보다 훨씬 좋은 결과가 나옴
    • 해커뉴스에서 "100줄의 코드로 LangChain 만들기" 글과 댓글에서 LangChain 비난을 보고 나만 그런게 아니라는 것을 알게됨
  • LangChain의 문제는 AI 생태계에 불필요한 복잡성과 편파성을 추가한다는 것
    • ChatGPT와 인터페이스 하는 방법을 배우고 싶은 초보자는 절대 LangChain으로 시작하지 말 것
    • 예제와 코드는 OpenAI의 공식 Python 라이브러리를 사용하는 것보다 더 복잡함
    • LangChain의 프롬프트 엔지니어링은 사실상 추가 단계를 넣어버린 f-strings에 불과함
    • Agent 워크플로우와 대화 기억 기능은 문서화가 잘 되어있지 않아 사용하기 헷갈릴 수 있음
    • 시스템 프롬프트 기능은 Agent 워크플로우와 제대로 통합되지 않음
    • 문서와 예제는 장점보다 문제가 더 많아 실제 사용시 어려움
  • LangChain 에이전트는 프롬프트 엔지니어링과 JSON 출력을 통해 독특한 도구 선택 방법을 사용함
    • 정상 출력 구조의 변경으로 인해 에이전트가 작동하지 않고 구문 분석 오류 처리가 필요할 수 있음
    • 챗봇은 레시피를 올바르게 추출하고 형식화할 수 있지만, 출력이 지루함
    • 사용자 정의 에이전트 및 체인 기능을 갖추고 있지만, 이는 프로세스를 복잡하게 만듦
    • 텍스트 분리기 및 통합 벡터 저장소와 같은 유틸리티 기능을 갖춘 LangChain은 LangChain 기반 코드만 사용할 수 있도록 제한을 둠
  • LangChain은 대부분의 인기 있는 사용 사례에서 오버헤드와 복잡성을 증가시킴
    • “it’s complicated, so it must be better!” 철학을 구현한 것 같음
  • 저자는 LangChain 대안으로 훨씬 더 간단한 simpleaichat라는 Python 패키지를 개발했음
  • simpleaichat 을 광고하는게 아니라, 초보자들이 LangChain으로 갈까봐 걱정됨

원문

출처 / GeekNews

더 읽어보기