Inflearn brand logo image

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

힌턴님의 프로필 이미지
힌턴

작성한 질문수

모두를 위한 대규모 언어 모델 LLM Part 5 - LangGraph로 나만의 AI 에이전트 만들기

Plan-and-Execute 아키텍처 구현하기

비동기 방식으로 agent를 구성할 필요성이 궁금합니다.

작성

·

55

·

수정됨

0

안녕하세요, 강의 감사히 잘 보고 있습니다.

Plan-and-Execute 강의 코드 보다가 궁금한 점이 있는데요,
다른 agent 구성에서는 동기 방식으로 def를 정의했었는데,

여기에서는 async와 await, .ainvoke의 비동기 방식으로 agent를 정의하는 것 같아 왜 여기서는 비동기 방식으로 정의하는지 여쭤봅니다.

plan -> execute -> replan 자체도 순차적으로 실행되는 것 같은데(RAG와 같이), 비동기 방식이 어떤 이유로 필요한 것인지 질문드립니다.

감사합니다.

답변 2

0

AISchool님의 프로필 이미지
AISchool
지식공유자

안녕하세요~. 반갑습니다.

먼저 강의를 잘 듣고 계시다니 기쁘네요 🙂

 

말씀해주신 부분을 확인해보니 현재 로직상 말씀해주신대로 plan -> execute -> replan 이 순차적으로 실행되는 구조라 비동기 방식의 이점이 딱히 없는 상태인 것 같습니다.

즉, 그냥 동기 방식 def로 바꿔도 큰 차이는 없을 것 같습니다.

 

비동기 방식으로 예제가 작성된 정확한 이유는 알수 없지만, 처음 예제를 만들때 뭔가 비동기적인 로직을 넣으려는 구상이 있었는데 예제 최종본에서는 해당 구상이 실현되지 못한게 아닐까 싶습니다.

 

좋은 하루되세요~.

감사합니다.

0

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

힌턴님께서 질문하신 비동기 방식으로 에이전트를 구성할 필요성에 대해 조금 더 설명드리겠습니다.

  1. 비동기 처리의 장점:

    • 비동기 방식은 여러 태스크를 동시에 다룰 수 있게 해줌으로써, 긴 대기 시간을 단축할 수 있습니다. 특히 외부 API를 호출하거나 파일 입출력 같은 I/O 바운드 작업이 포함된 경우에 효과적입니다.
    • 비동기 프로그래밍을 사용하면 CPU 자원을 효율적으로 활용하여 자원 낭비를 줄이고 응답성을 높일 수 있습니다.
  2. 에이전트의 구성 변경:

    • 비동기 처리는 순차적 작업이 아닌, 병렬적으로 태스크를 처리할 수 있는 환경을 제공합니다. Plan -> Execute -> Replan의 각 단계가 반드시 순차적으로만 처리될 필요가 없고, 각 단계가 독립적으로 처리될 수 있는 부분 또한 비동기의 이점입니다.
    • LangChain처럼 다양한 API와의 연동을 포함하는 애플리케이션에서는 비동기 처리가 병목을 방지하고 더 나은 사용자 경험을 제공할 수 있습니다.
  3. 적용 사례:

    • 예를 들어, 여러 외부 데이터를 동시에 수집하고 그 결과를 바탕으로 각 데이터에 대한 처리를 병렬로 실행해야 할 때 비동기 방식이 유리합니다.

이처럼 비동기 방식은 특정 작업의 성격에 따라 더 효율적일 수 있습니다. 특히, I/O 작업이 많거나 병렬로 수행해야 할 작업이 있을 때 더욱더 유용하게 사용됩니다.

다른 관련된 주제를 더 알고 싶으시다면, 아래의 유사한 질문들을 참고해 주세요:

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

힌턴님의 프로필 이미지
힌턴

작성한 질문수

질문하기