작성
·
52
0
안녕하세요.
강의들 듣다가 질문이 생겨서 문의 드립니다.
첫번째, 툴이 너무 많은경우 어떤 식으로 처리해야 하나요? 즉, 사용할수 있는 툴이 천개 정도 된다면 LLM 호출시 마다 모든 툴에 대한 description 등을 같이 보내서 알맞은 툴을 선택하라고 할 수 없을 것 같은데 좋은 방법이 있을 까요?
두번째, 툴들 중 비슷한 역할을 하거나 중복되는 툴이 있을 때는 어떻게 처리해야 하나요? 사용자 정의 툴들을 등록하다 보면 기존에 있었던 것과 동일하지만 이름만 다르거나 아예 중복되는 툴들이 생길 수 있는데 이럴때 처리 방법이 궁금합니다.
답변 2
0
안녕하세요. 판다스 스튜디오입니다.
도구의 개수가 많을 때 모든 도구를 매번 LLM에게 프롬프트로 전달하면 선택 옵션이 많아지고 비슷한 도구들이 포함되어 있으면 더 어려운 상황이 될 수 있습니다. 선택되지 못하는 대부분의 도구 설명이 노이즈로 작용할 가능성이 높아집니다. 모델의 도구 호출 능력에 따라 다르겠지만, 10개 이상의 도구를 사용할 경우에는 다른 방법을 사용할 필요가 있습니다.
예를 들면, 도구에 대한 설명을 벡터저장소에 저장하고, RAG 방식으로 벡터 검색을 써서 필요한 도구들만 골라내는 방법이 있습니다. 사용자가 뭔가 물어보면 그 질문과 관련된 도구 몇 개만 찾아서 LLM에게 전달하는 방식입니다.
그리고, 같은 기능인데 이름만 다르거나 아예 똑같은 도구가 여러 개 있을 수 있는 상황이 발생하지 않도록 미리 관리해주는 것이 중요합니다.
결국 핵심은 LLM한테 "선택의 부담"을 덜어주는 것입니다. 중요한 정보에 집중할 수 있도록 불필요한 노이즈를 최대한 배제한 상태로 프롬프트를 구성할 필요가 있습니다. 따라서, 관련 있는 도구 몇 개만 깔끔하게 주면 훨씬 잘 작동합니다.
0
안녕하세요, 인프런 AI 인턴입니다. amievil2님. 툴의 숫자가 많을 때 LLM과 상호작용하는 방법에 대해 질문을 주셨군요.
툴이 매우 많을 경우, 모든 툴의 설명을 매번 LLM에 보내는 것은 비효율적일 수 있습니다. 이를 해결하기 위해 다음과 같은 방법을 고려할 수 있습니다:
툴 카테고리화: 툴을 관련된 기능이나 목적에 따라 카테고리화하고, 각 요청에 맞는 관련 카테고리만 로드하도록 설정합니다.
필터링 시스템 구현: 입력된 질문이나 요청의 컨텍스트를 바탕으로 사전에 툴을 필터링합니다. 예를 들어, 특정한 도메인이나 필드에서 필요한 툴로 먼저 필터링한 후, 그 중에서 선택하도록 합니다.
메타 정보 사용: 각 툴에 메타 데이터를 부여하여 필터링 조건에 따라 가장 적합한 툴 군을 선택하도록 합니다. 메타 정보에는 툴의 주요 기능, 사용 언어, 요구사항 등이 포함될 수 있습니다.
중복되거나 유사한 툴이 있을 때는 다음과 같은 방법을 사용할 수 있습니다:
중복 제거: 툴을 등록할 때, 중복 여부를 체크하여 등록 프로세스를 관리합니다. 이를 위해 해시값 등을 활용한 중복 검사 방법을 쓸 수 있습니다.
관계 정의: 비슷한 기능을 가진 툴들 간의 관계를 정의하고, 이들의 차별점을 명확히 합니다. 이를 통해 사용자가 특정 기능을 원할 때 적절한 툴을 권장할 수 있습니다.
사용자 피드백 기반 최적화: 툴 사용 후 사용자 피드백을 받아 유사한 툴을 사용했던 상황을 기록하여, 다음 번에는 더 적합한 툴을 추천하거나 제공할 수 있도록 데이터 기반 최적화를 수행할 수 있습니다.
이와 관련된 실무적인 접근은 강의 내에서도 다뤄질 수 있으니, 강의를 통해 학습한 내용을 활용하여 계획을 세워보시면 도움이 될 것 같습니다. LangChain을 활용한 툴 관리에 대한 추가 정보도 참고하시면 좋겠습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.