작성자: 줄리아 비싱어, 패트릭 말로, 블라디미르 부스코비치
원본: https://www.kaggle.com/whitepaper-agents
디렉토리(컴퓨터 하드 드라이브에 있음)
개요
지능형 신체란 무엇인가요?
모델링
인공물
오케스트레이션 레이어
인텔리전스 및 모델링
인지 아키텍처: 인텔리전스의 작동 방식
도구: 외부 세계로 통하는 열쇠
확장 프로그램
샘플 확장 기능
함수 (수학.)
사용 사례
함수 샘플 코드
데이터 스토리지
실현 및 적용
도구 검토
목표 학습을 통한 모델 성능 향상
랑체인을 통한 빠른 시작 인텔리전스
버텍스 AI 인텔리전스를 사용하는 프로덕션 애플리케이션
요약
이러한 추론, 논리 및 외부 정보에 대한 액세스가 제너레이티브 AI 모델과 연결되어 지능이라는 개념으로 이어집니다.
개요
인간은 복잡한 패턴 인식 작업을 매우 능숙하게 처리합니다. 하지만 결론에 도달하기 전에 사전 지식을 보완하기 위해 책, Google 검색, 계산기 등의 도구에 의존하는 경우가 많습니다.
인간과 마찬가지로 생성형 AI 모델도 도구를 사용하여 실시간 정보에 액세스하거나 실제 행동을 제안하도록 학습시킬 수 있습니다. 예를 들어, 모델은 데이터베이스 검색 도구를 사용하여 고객의 구매 내역과 같은 특정 정보에 액세스하여 맞춤형 쇼핑 추천을 생성할 수 있습니다.
또는 사용자 쿼리를 기반으로 모델이 다양한 API 호출을 수행하거나 동료에게 이메일 답장을 보내거나 사용자를 대신하여 금융 거래를 완료할 수 있습니다. 이를 위해서는 모델이 일련의 외부 도구에 액세스할 수 있어야 할 뿐만 아니라 자기 주도적인 방식으로 모든 작업을 계획하고 실행할 수 있어야 합니다.
이러한 추론, 논리, 외부 정보에 대한 액세스의 조합은 모두 생성 AI 모델과 연결되어 생성 AI 모델의 독립적인 기능을 확장하는 지능형 신체 또는 프로그램이라는 개념으로 이어집니다. 이 백서에서는 이러한 모든 측면과 관련 측면을 자세히 살펴봅니다.
지능형 신체란 무엇인가요?
가장 기본적인 형태인 생성형 AI 지능은 세상을 관찰하고 사용 가능한 도구를 사용하여 행동함으로써 목표를 달성하려는 애플리케이션으로 정의할 수 있습니다. 인텔리전스는 자율적이며 특히 적절한 목표나 달성 의도가 제공되면 사람의 개입 없이도 독립적으로 행동할 수 있습니다. 또한 인텔리전스는 목표 달성을 위한 접근 방식에 있어서도 능동적일 수 있습니다. 지능은 인간의 명시적인 지시가 없더라도 궁극적인 목표를 달성하기 위해 다음에 해야 할 일을 추론할 수 있습니다. AI의 지능 개념은 매우 일반적이고 강력한 개념이지만, 이 백서는 발행 시점에 제너레이티브 AI 모델이 구축할 수 있는 특정 유형의 지능에 초점을 맞추고 있습니다.
지능의 내부 작동을 이해하기 위해 먼저 지능의 행동, 행동 및 결정을 이끄는 기본 구성 요소에 대해 설명해 보겠습니다. 이러한 구성 요소의 조합은 인지 아키텍처로 설명할 수 있으며, 이러한 구성 요소를 혼합하고 조합하여 구현할 수 있는 다양한 아키텍처가 존재합니다. 핵심 기능에 초점을 맞춰 지능형 신체의 인지 아키텍처에는 그림 1과 같이 세 가지 기본 구성 요소가 있습니다.

그림 1. 일반 인텔리전스 아키텍처 및 구성 요소
모델링
지성인의 맥락에서 모델은 지성인의 프로세스에 대한 중앙 집중식 의사 결정자로 사용될 언어 모델(LM)입니다. 인텔리전시아에서 사용하는 모델은 ReAct, 생각의 사슬 또는 사고 나무와 같은 명령어 기반 추론 및 논리적 프레임워크를 따를 수 있는 모든 크기(소형/대형)의 하나 이상의 LM이 될 수 있습니다. 모델은 일반 모델, 멀티모달 모델 또는 특정 스마트 바디 아키텍처의 요구 사항에 맞게 미세 조정할 수 있습니다. 최상의 제작 결과를 얻으려면 의도한 최종 애플리케이션에 가장 적합하고 인지 아키텍처에서 사용하려는 도구와 관련된 데이터 서명에 대해 학습된 모델을 활용해야 합니다. 모델은 일반적으로 인텔리전스의 특정 구성 설정(예: 도구 선택, 오케스트레이션/추론 설정)을 사용하여 학습되지 않는다는 점에 유의해야 합니다. 그러나 모델이 다양한 상황에서 특정 도구나 추론 단계를 사용하는 경우를 포함하여 지능형 기관의 기능을 보여주는 예제를 제공함으로써 지능형 기관의 작업을 수행하도록 모델을 더욱 최적화할 수 있습니다.
인공물
기본 모델은 인상적인 텍스트 및 이미지 생성 기능에도 불구하고 여전히 외부 세계와 상호 작용할 수 없다는 한계가 있습니다. 도구는 이러한 격차를 해소하여 인텔리전스가 외부 데이터 및 서비스와 상호 작용하는 동시에 기본 모델 자체를 넘어 더 넓은 범위의 작업을 수행할 수 있도록 해줍니다. 도구는 다양한 형태와 다양한 수준의 복잡성을 가질 수 있지만, 일반적으로 GET, POST, PATCH, DELETE와 같은 일반적인 웹 API 메서드와 연계되어 있습니다. 예를 들어, 도구는 데이터베이스의 고객 정보를 업데이트하거나 날씨 데이터를 가져와서 인텔리전스가 사용자에게 제공하는 여행 추천에 영향을 줄 수 있습니다. 도구를 통해 인텔리전스는 실제 정보에 액세스하고 처리할 수 있습니다. 이를 통해 검색 강화 생성(RAG), 이는 기본 모델이 자체적으로 달성할 수 있는 것 이상으로 인텔리전스의 기능을 크게 확장합니다. 아래에서 도구에 대해 자세히 설명하지만, 도구는 인텔리전스의 내부 기능과 외부 세계 사이의 간극을 메워 더 넓은 범위의 가능성을 열어준다는 점을 이해하는 것이 가장 중요합니다.
오케스트레이션 레이어
오케스트레이션 계층은 지능체가 정보를 수집하고, 내부 추론을 수행하며, 그 추론을 사용하여 다음 작업이나 결정을 내리는 방법을 제어하는 순환 프로세스를 설명합니다. 일반적으로 이 루프는 인텔리전트 바디가 목표 또는 정지 지점에 도달할 때까지 계속됩니다. 오케스트레이션 계층의 복잡성은 인텔리전스와 이들이 수행하는 작업에 따라 크게 달라질 수 있습니다. 일부 루프는 의사 결정 규칙이 있는 단순한 계산일 수 있는 반면, 다른 루프는 연쇄 논리를 포함하거나 추가적인 머신 러닝 알고리즘을 포함하거나 기타 확률적 추론 기법을 구현할 수 있습니다. 인텔리전스 오케스트레이션 계층의 구현에 대해서는 인지 아키텍처 섹션에서 더 자세히 설명합니다.
인텔리전스 및 모델링
인텔리전스와 모델의 차이점을 더 명확하게 이해하려면 다음 다이어그램을 참조하세요:
모델링 | 지능형 신체 |
---|---|
지식은 학습 데이터에서 사용할 수 있는 것으로 제한됩니다. | 도구를 통해 외부 시스템에 연결하여 지식을 확장할 수 있습니다. |
사용자 쿼리에 기반한 단일 세션 추론/예측. 모델에 명시적으로 구현되지 않는 한 세션 기록이나 지속적인 컨텍스트는 관리되지 않습니다. (예: 채팅 기록) | 세션 기록(즉, 채팅 로그)을 관리하여 오케스트레이션 계층에서 이루어진 사용자 쿼리와 결정을 기반으로 여러 차례의 추론/예측을 수행할 수 있도록 합니다. 이 경우 '라운드'는 상호 작용하는 시스템과 인텔리전트 바디 간의 상호 작용으로 정의됩니다. (즉, 1개의 수신 이벤트/쿼리와 1개의 인텔리전트 바디 응답). |
기본 도구 구현이 없습니다. | 도구는 기본 스마트 바디 아키텍처에서 구현됩니다. |
기본 논리 계층이 구현되어 있지 않습니다. 사용자는 프롬프트를 간단한 질문으로 구성하거나 추론 프레임워크(CoT, ReAct 등)를 사용하여 복잡한 프롬프트를 구성하여 모델의 예측을 안내할 수 있습니다. | 네이티브 인지 아키텍처는 CoT, ReAct와 같은 추론 프레임워크 또는 LangChain과 같은 기타 사전 구축된 인텔리전스 프레임워크를 사용합니다. |
인지 아키텍처: 인텔리전스의 작동 방식
바쁜 주방에서 일하는 셰프를 상상해 보세요. 그들의 목표는 레스토랑 고객을 위한 맛있는 요리를 만드는 것이며, 이를 위해 계획, 실행, 조정의 사이클을 반복합니다.
- 고객 주문 및 식료품 저장실과 냉장고의 식재료 등의 정보를 수집합니다.
- 방금 수집한 정보를 바탕으로 만들 수 있는 요리와 풍미에 대해 내부적으로 추론합니다.
- 그들은 야채를 자르고, 향신료를 섞고, 고기를 튀기는 등 요리를 준비하기 위해 행동을 취합니다.
셰프는 프로세스의 각 단계에서 필요에 따라 조정하고, 재료가 떨어지거나 고객으로부터 피드백을 받으면 계획을 수정하고, 이전 결과를 바탕으로 다음 실행 계획을 결정합니다. 이러한 정보 수집, 계획, 실행, 조정의 주기는 셰프가 목표를 달성하기 위해 사용하는 고유한 인지 구조를 설명합니다.
요리사처럼 지능적인 신체는 인지 아키텍처를 사용하여 정보를 반복적으로 처리하고, 정보에 입각한 결정을 내리고, 이전 결과를 바탕으로 후속 조치를 개선함으로써 궁극적인 목표를 달성할 수 있습니다. 지능형 신체의 인지 아키텍처의 중심에는 기억, 상태, 추론 및 계획을 유지하는 오케스트레이션 계층이 있습니다. 이 계층은 빠르게 진화하는 큐 엔지니어링 분야와 관련 프레임워크를 사용하여 추론과 계획을 안내함으로써 지능이 환경과 상호 작용하고 작업을 보다 효과적으로 완료할 수 있도록 지원합니다. 언어 모델을 위한 큐 엔지니어링 프레임워크와 작업 계획 분야의 연구는 빠르게 발전하고 있으며, 다양한 유망한 접근법을 제시하고 있습니다. 전체 목록은 아니지만 이 백서 발행 시점을 기준으로 가장 많이 사용되는 프레임워크와 추론 기법은 다음과 같습니다:
- 큐 엔지니어링 프레임워크인 ReAct는 언어 모델이 문맥 예시 유무에 관계없이 사용자 쿼리를 추론하고 행동할 수 있는 사고 프로세스 전략을 제공하며, ReAct 큐는 여러 SOTA 기준선을 능가하고 대규모 언어 모델에서 인간의 행동 가능성과 신뢰성을 향상시키는 것으로 나타났습니다.
- 중간 단계를 통해 추론 능력을 가능하게 하는 큐 엔지니어링 프레임워크인 CoT(Chain of Thought)는 자기 참조, 능동 큐잉, 멀티모달 CoT 등 다양한 하위 기술이 있으며, 각 하위 기술에는 특정 애플리케이션에 따라 장단점이 있습니다.
- 단서 엔지니어링 프레임워크인 사고 트리(ToT)는 탐색적 또는 전략적 예측 작업에 이상적으로 적합합니다. 사고 사슬 프롬프트를 일반화하고 언어 모델을 사용하여 일반적인 문제 해결의 중간 단계로 작용하는 다양한 사고 사슬을 탐색할 수 있습니다.
지능형 기관은 위의 추론 기법 중 하나 또는 다른 여러 기법을 사용하여 주어진 사용자 요청에 대해 차선책을 선택할 수 있습니다. 예를 들어, 다음과 같이 프로그래밍된 경우를 생각해 보겠습니다. ReAct 프레임워크는 사용자 쿼리의 인텔리전스에 적합한 작업과 도구를 선택합니다. 이벤트 순서는 다음과 같습니다:
- 사용자가 스마트 바디에 쿼리를 보냅니다.
- 인텔리전스가 ReAct 시퀀스 시작
- 인텔리전트 바디는 모델에 다음 리액트를 생성하도록 요청하는 프롬프트를 제공합니다.
단계 중 하나와 해당 출력입니다:
a. 질문: 프롬프트와 함께 제공되는 사용자 쿼리에서 질문을 입력합니다.
b. 반성: 다음에 수행해야 할 작업에 대한 모델링 반성
c. 운영: 다음에 취할 조치에 대한 모델의 결정
i. 여기에서 도구를 선택할 수 있습니다.
예를 들어 동작은 [비행, 검색, 코드, 없음]이 될 수 있으며, 처음 세 개는 모델이 선택할 수 있는 알려진 도구를 나타내고 마지막은 "도구 선택 없음"을 나타냅니다.
d. 운영 입력: 도구에 어떤 입력을 제공할지에 대한 모델의 결정(있는 경우).
e. 관찰: 입력 시퀀스의 연산/조작 결과
이 사고/작동/작동 입력/관찰은 필요한 만큼 반복할 수 있습니다.
f. 최종 답변: 모델이 제공한 원래 사용자 쿼리에 대한 최종 답변입니다.
4. ReAct 루프가 종료되고 최종 답안 PS가 사용자에게 제공됩니다:ReAct 구현 로직 실습

그림 2: 오케스트레이션 레이어에서 ReAct 추론을 사용하는 인텔리전스 예시
그림 2에서 볼 수 있듯이 모델, 도구 및 인텔리전스는 함께 작동하여 사용자의 원래 쿼리를 기반으로 사용자에게 정보에 입각한 간결한 답변을 제공하도록 구성됩니다. 모델은 선험적 지식(일루전 생성)을 기반으로 답을 추측할 수 있지만, 도구(항공편)를 사용하여 실시간 외부 정보를 검색합니다. 이 추가 정보는 모델이 실제 사실 데이터를 기반으로 더 많은 정보에 입각한 의사 결정을 내릴 수 있도록 모델에 제공되며, 이 정보는 집계되어 사용자에게 피드백됩니다.
요약하면, 지능형 시스템의 응답 품질은 올바른 도구를 선택하는 능력과 도구가 얼마나 잘 정의되어 있는지 등 다양한 작업을 추론하고 작동하는 모델의 능력과 직접적인 관련이 있습니다. 요리사가 신선한 재료로 요리를 만들고 고객의 피드백에 주의를 기울이는 것처럼, 지능형 신체는 건전한 추론과 신뢰할 수 있는 정보에 의존하여 최적의 결과를 도출합니다. 다음 섹션에서는 인텔리전스가 새로운 데이터에 연결하는 다양한 방법에 대해 자세히 살펴보겠습니다.
도구: 외부 세계로 통하는 열쇠
언어 모델은 정보를 처리하는 데는 능숙하지만 실제 세계를 직접 인식하고 영향을 미치는 능력은 부족합니다. 따라서 외부 시스템이나 데이터와 상호 작용해야 하는 상황에서는 그 유용성이 제한됩니다. 즉, 어떤 의미에서 언어 모델은 학습 데이터에서 학습한 것만큼만 우수하다는 뜻입니다. 하지만 아무리 많은 데이터를 모델에 입력해도 외부 세계와 상호 작용할 수 있는 기본적인 능력은 여전히 부족합니다. 그렇다면 어떻게 하면 모델에 실시간 컨텍스트 인식 방식으로 외부 시스템과 상호 작용할 수 있는 기능을 부여할 수 있을까요? 함수, 확장 기능, 데이터 저장소, 플러그인은 모두 모델에 이 중요한 기능을 제공하는 방법입니다.
다양한 이름으로 불리지만 도구는 기본 모델과 외부 세계를 연결하는 연결고리입니다. 외부 시스템 및 데이터에 대한 이러한 연결을 통해 인텔리전스는 더욱 정확하고 안정적으로 다양한 작업을 수행할 수 있습니다. 예를 들어, 도구를 통해 스마트 홈 설정을 조정하고, 캘린더를 업데이트하고, 데이터베이스에서 사용자 정보를 검색하거나, 특정 지침에 따라 이메일을 보낼 수 있습니다.
이 백서 발행일을 기준으로 Google 모델이 상호 작용할 수 있는 도구에는 확장 프로그램, 함수, 데이터 저장소의 세 가지 주요 유형이 있습니다. Google은 인공지능에 도구를 제공함으로써 세상을 이해할 뿐만 아니라 세상을 행동으로 옮길 수 있는 엄청난 잠재력을 열어 수많은 새로운 애플리케이션과 가능성의 문을 열어줍니다.
확장 프로그램
확장 기능을 이해하는 가장 쉬운 방법은 표준화된 방식으로 API와 인텔리전스 간의 격차를 해소하여 인텔리전스가 기본 구현에 관계없이 API를 원활하게 실행할 수 있도록 하는 것으로 생각하면 됩니다. 사용자의 항공편 예약을 돕는 것이 목표인 인텔리전트를 구축했다고 가정해 보겠습니다. Google 항공편 API를 사용하여 항공편 정보를 검색하고 싶지만 스마트 바디가 이 API 엔드포인트를 호출하도록 하는 방법을 잘 모른다고 가정해 보겠습니다.

그림 3. 인텔리전스는 외부 API와 어떻게 상호 작용하나요?
한 가지 접근 방식은 들어오는 사용자 쿼리를 받아 관련 정보를 구문 분석한 다음 API 호출을 수행하는 사용자 지정 코드를 구현하는 것입니다. 예를 들어, 항공편 예약 사용 사례에서 사용자가 "오스틴에서 취리히로 가는 항공편을 예약하고 싶어요."라고 말할 수 있습니다. 이 경우 사용자 지정 코드 솔루션은 API 호출을 시도하기 전에 사용자 쿼리에서 "Austin"과 "Zurich"를 관련 엔터티로 추출해야 합니다. 하지만 사용자가 출발 도시를 제공하지 않고 "취리히행 항공편을 예약하고 싶어요"라고 말하면 어떻게 될까요? 필요한 데이터가 없으면 API 호출이 실패하고 이러한 극단적인 경우를 포착하기 위해 더 많은 코드를 구현해야 합니다. 이 접근 방식은 확장성이 없으며 구현된 사용자 지정 코드의 범위를 벗어나는 모든 상황에서 쉽게 실패할 수 있습니다.
보다 안정적인 접근 방식은 확장 기능을 사용하는 것입니다. 확장 프로그램은 다음과 같은 방식으로 인텔리전스와 API 간의 격차를 해소합니다:
- 이 예제를 사용하여 인텔리전스에게 API 엔드포인트 사용 방법을 가르치세요.
- API 엔드포인트를 성공적으로 호출하는 데 필요한 매개 변수를 인텔리전스에 가르치세요.

그림 4: 인텔리전스를 외부 API에 연결하기 위한 확장 기능
확장 기능은 인텔리전스와 독립적으로 구축할 수 있지만, 인텔리전스 구성의 일부로 제공되어야 합니다. 지능형 본문은 런타임에 모델과 예제를 사용하여 사용자의 쿼리를 해결하는 데 적합한 확장이 있는지 결정합니다. 이는 확장 기능의 주요 이점인 내장 예제 유형을 강조하며, 이를 통해 지능형 본체가 작업에 가장 적합한 확장 기능을 동적으로 선택할 수 있습니다.

그림 5: 인텔리전스, 확장 프로그램 및 API 간의 일대다 관계
소프트웨어 개발자가 사용자의 문제를 해결할 때 사용할 API 엔드포인트를 결정한다는 의미로 이해할 수 있습니다. 사용자가 항공편을 예약하려는 경우 개발자는 Google 항공편 API를 사용하고, 사용자가 자신의 위치에서 가장 가까운 커피숍의 위치를 알고자 하는 경우 개발자는 Google 지도 API를 사용할 수 있습니다. 같은 방식으로, 인텔리전트/모델 스택은 알려진 확장 기능 집합을 사용하여 사용자의 쿼리에 가장 적합한 확장 기능을 결정합니다. 확장 기능이 실제로 작동하는지 확인하려면 확장 기능을 쌍둥이자리 설정 > 확장 프로그램으로 이동하여 테스트하려는 확장 프로그램을 활성화하여 앱에서 사용해 보세요. 예를 들어 Google 항공편 확장 프로그램을 활성화하고 Gemini에게 "다음 주 금요일 오스틴에서 취리히로 가는 항공편 표시"를 요청할 수 있습니다.
샘플 확장 기능
확장 프로그램 사용을 간소화하기 위해 Google은 프로젝트에 빠르게 가져올 수 있고 최소한의 설정으로 사용할 수 있는 여러 가지 기본 제공 확장 프로그램을 제공합니다. 예를 들어 코드 스니펫 1의 코드 인터프리터 확장 프로그램을 사용하면 자연어 설명에서 Python 코드를 생성하고 실행할 수 있습니다.
Python
import vertexai
import pprint
PROJECT_ID = "YOUR_PROJECT_ID"
REGION = "us-central1"
vertexai.init(project=PROJECT_ID, location=REGION)
from vertexai.preview.extensions import Extension
extension_code_interpreter = Extension.from_hub("code_interpreter")
CODE_QUERY = """Write a python method to invert a binary tree in O(n) time."""
response = extension_code_interpreter.execute(
operation_id = "generate_and_execute",
operation_params = {"query": CODE_QUERY}
)
print("Generated Code:")
pprint.pprint({response['generated_code']})
# The above snippet will generate the following code.
# Generated Code:
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
Python
def invert_binary_tree(root):
"""
Inverts a binary tree.
Args:
root: The root of the binary tree.
Returns:
The root of the inverted binary tree.
"""
if not root:
return None
# Swap the left and right children recursively
root.left, root.right = \
invert_binary_tree(root.right), invert_binary_tree(root.left)
return root
# Example usage:
# Construct a sample binary tree
# 4
# / \
# 2 7
# / \ / \
# 1 3 6 9
root = TreeNode(4)
root.left = TreeNode(2)
root.right = TreeNode(7)
root.left.left = TreeNode(1)
root.left.right = TreeNode(3)
root.right.left = TreeNode(6)
root.right.right = TreeNode(9)
# Invert the binary tree
inverted_root = invert_binary_tree(root)
코드 스니펫 1. Python 코드 생성 및 실행을 위한 코드 인터프리터 확장 기능
요약하자면, 확장 프로그램은 인공지능이 외부 세계를 인식하고, 상호 작용하고, 영향을 미칠 수 있는 다양한 방법을 제공합니다. 이러한 확장 기능의 선택과 호출은 확장 기능 구성의 일부로 정의된 예제를 사용하여 안내합니다.
함수 (수학.)
소프트웨어 엔지니어링 분야에서 함수는 특정 작업을 수행하는 데 사용되며 필요에 따라 재사용할 수 있는 독립된 코드 모듈로 정의됩니다. 소프트웨어 개발자는 프로그램을 작성할 때 일반적으로 다양한 작업을 수행하기 위해 많은 함수를 만듭니다. 또한 함수에는 함수_a와 함수_b를 호출하는 로직과 예상되는 입력 및 출력도 정의됩니다.
함수는 인텔리전스 영역에서 매우 유사한 방식으로 작동하지만 소프트웨어 개발자 대신 모델을 사용할 수 있습니다. 모델은 알려진 함수 집합을 취하고 사양에 따라 각 함수를 언제 사용할지, 함수가 어떤 인수를 사용할지 결정할 수 있습니다. 함수는 여러 가지 면에서 확장과 다른데, 특히 다음과 같은 점이 가장 두드러집니다:
- 모델 출력 함수 및 해당 매개변수는 있지만 실시간 API 호출은 없습니다.
- 함수는 클라이언트 측에서 실행되고 확장은 스마트바디 측에서 실행됩니다.
Google 항공편의 예를 다시 사용하여 함수를 간단하게 설정하면 그림 7과 같이 보일 수 있습니다.

그림 7. 함수는 외부 API와 어떻게 상호 작용하나요?
여기서 가장 큰 차이점은 기능이나 인텔리전스가 Google 항공편 API와 직접 상호 작용하지 않는다는 점입니다. 그렇다면 API 호출은 실제로 어떻게 이루어질까요?
함수를 사용할 경우, 아래 그림 8과 9에 표시된 것처럼 실제 API 엔드포인트에 대한 호출의 로직과 실행이 인텔리전스에서 클라이언트 애플리케이션으로 전송됩니다. 이를 통해 개발자는 애플리케이션의 데이터 흐름을 보다 세밀하게 제어할 수 있습니다. 개발자가 확장 기능 대신 함수를 사용하는 이유는 여러 가지가 있지만, 몇 가지 일반적인 사용 사례는 다음과 같습니다:
- API는 에이전트 아키텍처 프로세스에서 직접 호출하는 것이 아니라 애플리케이션 스택의 다른 수준에서 호출해야 합니다(예: 미들웨어 시스템, 프런트엔드 프레임워크 사용 등).
- 상담원이 API를 직접 호출할 수 없는 보안 또는 인증 제한(예: API가 인터넷에 노출되어 있지 않거나 상담원 인프라가 API에 액세스할 수 없는 경우).
- 상담원이 실시간으로 API를 호출하지 못하게 하는 시간 또는 작업 순서 제한(예: 일괄 작업, 수동 검토 프로세스 등).
- 상담원이 수행할 수 없는 API 응답에는 추가적인 데이터 변환 로직이 필요합니다. 예를 들어 일부 API 엔드포인트는 반환되는 결과의 수를 제한하는 필터링 메커니즘을 제공하지 않습니다. 클라이언트 측에서 함수를 사용하면 개발자에게 이러한 변환을 수행할 수 있는 추가적인 기회가 제공됩니다.
- 개발자는 API 엔드포인트를 위한 추가 인프라를 배포하지 않고 프록시 개발을 반복하고 싶어합니다(예: 함수 호출이 API에 대한 '스테이킹 시뮬레이션' 역할을 할 수 있음).
그림 8과 같이 내부 아키텍처 관점에서 두 접근 방식의 차이는 미묘하지만 함수 호출은 추가적인 제어 기능을 제공하고 외부 인프라에 대한 의존성을 줄여 개발자에게 매력적인 옵션이 됩니다.

그림 8: 확장 및 함수 호출을 설명하는 클라이언트 측 및 스마트바디 측 컨트롤
사용 사례
모델을 사용하여 최종 사용자를 위한 복잡한 클라이언트 측 실행 프로세스를 처리하기 위해 함수를 호출할 수 있는데, 이때 지능형 개발자는 언어 모델이 API 실행을 관리하지 않기를 원할 수 있습니다(확장 프로그램의 경우처럼). 휴가 여행을 예약하려는 사용자와 상호 작용하기 위해 여행 컨시어지로 훈련된 지능형 객체를 예로 들어 보겠습니다. 목표는 지능형 객체가 사용자의 여행 계획을 위해 미들웨어 애플리케이션에서 이미지, 데이터 등을 다운로드하는 데 사용할 수 있는 도시 목록을 생성하는 것입니다. 사용자는 이렇게 말할 수 있습니다:
가족과 함께 스키 여행을 가고 싶은데 어디로 가야 할지 모르겠어요.
모델에 대한 일반적인 프롬프트에서 출력은 다음과 같을 수 있습니다:
가족 스키 여행을 위해 고려할 만한 도시 목록은 다음과 같습니다:
- 크레스티드 뷰트, 콜로라도, 미국
- 휘슬러, 브리티시컬럼비아주, 캐나다
- 스위스 체르마트
위의 출력에는 필요한 데이터(도시 이름)가 포함되어 있지만 형식이 구문 분석에 적합하지 않습니다. 함수 호출을 사용하면 다른 시스템에서 구문 분석하기 쉬운 구조화된 스타일(예: JSON)로 이 출력의 형식을 지정하도록 모델을 가르칠 수 있습니다. 사용자의 입력 프롬프트가 동일하다고 가정할 때 함수의 샘플 JSON 출력은 코드 스니펫 5와 같이 보일 수 있습니다.
고정되지 않음
function_call {
name: "display_cities"
args: {
"cities": ["Crested Butte", "Whistler", "Zermatt"],
"preferences": "skiing"
}
}
코드 스니펫 5. 도시 목록 및 사용자 기본 설정 표시를 위한 함수 호출 로드 샘플 이 JSON 로드는 모델에서 생성된 다음 클라이언트 서버로 전송되어 원하는 작업을 수행합니다. 이 특정 사례에서는 Google Places API를 호출하여 모델에서 제공하는 도시를 가져오고 이미지를 조회한 다음 사용자에게 형식이 지정된 리치 콘텐츠로 제공합니다. 위의 상호 작용 단계를 자세히 보여주는 그림 9의 시퀀스 다이어그램을 참조하세요.

그림 9: 함수 호출 수명 주기를 보여주는 시퀀스 다이어그램
그림 9의 예제에서는 클라이언트 UI가 Google Places API를 호출하는 데 필요한 매개변수로 '빈칸을 채우는' 데 모델이 사용됩니다. 클라이언트 UI는 반환된 함수에서 모델이 제공한 매개변수를 사용하여 실제 API 호출을 관리합니다. 이것은 함수 호출의 한 가지 사용 사례에 불과하지만 다음과 같은 다른 많은 시나리오를 고려할 수 있습니다:
- 언어 모델에서 코드에 사용할 수 있는 함수를 제안하고 싶지만 코드에 자격 증명을 포함하고 싶지 않은 경우입니다. 함수 호출은 함수를 실행하지 않으므로 코드에 함수에 대한 정보와 함께 자격 증명을 포함할 필요가 없습니다.
- 완료하는 데 몇 초 이상 걸릴 수 있는 비동기 작업을 실행하고 있습니다. 이러한 시나리오는 비동기 작업이기 때문에 함수 호출에 적용됩니다.
- 함수 호출 및 인수를 생성한 시스템과 다른 장치에서 함수를 실행하려고 합니다.
함수에 대해 기억해야 할 한 가지 중요한 점은 개발자가 API 호출의 실행과 애플리케이션의 전반적인 데이터 흐름을 더 잘 제어할 수 있도록 하기 위한 것이라는 점입니다. 그림 9의 예에서 개발자는 API 정보를 인텔리전스에 반환하지 않기로 선택했는데, 이는 인텔리전스가 향후 수행할 수 있는 작업과 관련이 없기 때문입니다. 그러나 애플리케이션의 아키텍처에 따라 향후 추론, 논리 및 작업 선택에 영향을 미치기 위해 외부 API 호출 데이터를 인텔리전스에 반환하는 것이 합리적일 수 있습니다. 궁극적으로 특정 애플리케이션에 적합한 것을 선택하는 것은 애플리케이션 개발자의 몫입니다.
함수 샘플 코드
스키 휴가 장면에서 위의 출력을 얻으려면 각 컴포넌트를 gemini-1.5-flash-001 모델과 함께 작동하도록 빌드해 보겠습니다. 먼저 간단한 파이썬 메서드로 display_cities 함수를 정의합니다.
Python
def display_cities(cities: list[str], preferences: Optional[str] = None):
"""根据用户的搜索查询和偏好提供城市列表。
Args:
preferences (str): 用户的搜索偏好, 例如滑雪、
海滩、餐馆、烧烤等。
cities (list[str]): 推荐给用户的城市列表。
Returns:
list[str]: 推荐给用户的城市列表。
"""
return cities
코드 스니펫 6. 도시 목록을 표시하는 함수에 대한 Python 메서드 샘플입니다.
다음으로 모델을 인스턴스화하고 도구를 빌드한 다음 사용자의 쿼리와 도구를 모델에 전달합니다. 아래 코드를 실행하면 코드 스니펫 하단에 표시된 출력이 생성됩니다.
Python
from vertexai.generative_models import GenerativeModel, Tool, FunctionDeclaration
model = GenerativeModel("gemini-1.5-flash-001")
display_cities_function = FunctionDeclaration.from_func(display_cities)
tool = Tool(function_declarations=[display_cities_function])
message = "I'd like to take a ski trip with my family but I'm not sure where to go."
res = model.generate_content(message, tools=[tool])
print(f"Function Name: {res.candidates[0].content.parts[0].function_call.name}")
print(f"Function Args: {res.candidates[0].content.parts[0].function_call.args}")
> Function Name: display_cities
> Function Args: {'preferences': 'skiing', 'cities': ['Aspen', 'Vail',
'Park City']}
코드 스니펫 7. 도구를 빌드하고 사용자 쿼리와 함께 모델에 전송하며 함수 호출을 허용합니다.
요약하자면, 함수는 애플리케이션 개발자가 데이터 흐름과 시스템 실행을 세밀하게 제어할 수 있는 간단한 프레임워크를 제공하는 동시에 주요 입력 생성을 위해 인텔리전스/모델을 효율적으로 활용할 수 있도록 해줍니다. 개발자는 특정 애플리케이션 아키텍처 요구 사항에 따라 외부 데이터를 반환하여 인텔리전스를 '루프에' 유지할지, 아니면 생략할지 여부를 선택적으로 선택할 수 있습니다.
데이터 스토리지
언어 모델을 학습 데이터가 들어 있는 방대한 라이브러리라고 상상해 보세요. 그러나 끊임없이 새로운 책을 추가하는 도서관과 달리 이 라이브러리는 초기 학습에서 얻은 지식만 보유하고 있는 정적인 상태입니다. 이는 실제 지식이 끊임없이 생성되기 때문에 어려운 문제입니다.
개발. 데이터 스토리지는 보다 동적인 최신 정보에 대한 액세스를 제공하고 모델 응답이 항상 사실과 관련성에 기반하도록 보장함으로써 이러한 한계를 해결합니다.
개발자가 모델에 스프레드시트나 PDF 형태로 소량의 추가 데이터를 제공해야 하는 일반적인 시나리오를 생각해 보겠습니다.

그림 10. 인텔리전스는 정형 및 비정형 데이터와 어떻게 상호 작용할까요?
데이터 스토어를 사용하면 개발자가 원래 형식으로 인텔리전스에 추가 데이터를 제공할 수 있으므로 시간이 많이 걸리는 데이터 변환, 모델 재교육 또는 미세 조정이 필요하지 않습니다. 데이터 스토어는 들어오는 문서를 벡터 데이터베이스 임베딩 세트로 변환하여 인텔리전스가 다음 작업이나 사용자에 대한 응답을 보완하는 데 필요한 정보를 추출하는 데 사용할 수 있습니다.

그림 11. 데이터 저장소는 인텔리전스를 다양한 유형의 새로운 실시간 데이터 소스에 연결합니다.
실현 및 적용
생성형 AI 인텔리전스의 맥락에서 데이터 저장소는 종종 벡터 데이터베이스로 구현되며, 개발자는 인텔리전스가 런타임에 액세스할 수 있기를 기대합니다. 여기서 벡터 데이터베이스에 대해 자세히 설명하지는 않겠지만, 핵심은 벡터 데이터베이스가 데이터를 고차원 벡터 또는 제공된 데이터의 수학적 표현인 벡터 임베딩의 형태로 저장한다는 점입니다. 최근 언어 모델과 함께 데이터 저장소를 사용하는 가장 대표적인 예 중 하나는 검색 증강 생성(RAG) 애플리케이션입니다. 이러한 애플리케이션은 예를 들어 모델에 다양한 형식의 데이터에 대한 액세스를 제공함으로써 모델 지식의 폭과 깊이를 확장하려고 시도합니다:
- 웹사이트 콘텐츠
- PDF, Word 문서, CSV, 스프레드시트 및 기타 형식의 구조화된 데이터.
- HTML, PDF, TXT 및 기타 형식의 비정형 데이터.

그림 12: 다양한 유형의 사전 색인된 데이터를 나타낼 수 있는 인텔리전스와 데이터 저장소 간의 일대다 관계
각 사용자 요청 및 인텔리전트 바디 응답 주기의 기본 프로세스는 일반적으로 그림 13과 같이 모델링됩니다.
- 사용자 쿼리는 임베딩 모델로 전송되어 쿼리의 임베딩을 생성합니다.
- 그런 다음 쿼리 임베딩은 매칭 알고리즘(예: ScaNN)을 사용하여 벡터 데이터베이스의 콘텐츠와 매칭됩니다.
- 벡터 데이터베이스에서 텍스트 형식으로 일치하는 항목을 검색하여 스마트 바디로 다시 보냅니다.
- 인텔리전스는 사용자 쿼리와 검색된 콘텐츠를 수신한 다음 응답 또는 조치를 공식화합니다.
5. 사용자에게 최종 응답을 보냅니다.

그림 13: RAG 기반 애플리케이션에서 사용자 요청 및 인텔리전트 바디 응답의 수명 주기
최종 결과는 인텔리전스가 벡터 검색을 통해 사용자의 쿼리를 알려진 데이터 저장소와 일치시키고, 원시 콘텐츠를 검색하여 추가 처리를 위해 오케스트레이션 계층과 모델에 제공할 수 있는 애플리케이션입니다. 다음 단계에서는 사용자에게 최종 답변을 제공하거나 추가 벡터 검색을 수행하여 결과를 더욱 최적화할 수 있습니다. 그림 14에는 ReAct 추론/계획 기능을 갖춘 RAG를 구현하는 지능형 기관과의 상호작용 예가 나와 있습니다.

그림 14: ReAct 추론/계획을 사용한 RAG 애플리케이션 예시
도구 검토
요약하자면, 확장 기능, 함수 및 데이터 저장소는 런타임에 인텔리전스가 사용할 수 있는 여러 가지 유형의 도구로 구성되어 있습니다. 각 도구에는 고유한 목적이 있으며, 인텔리전스 개발자의 재량에 따라 함께 또는 따로 사용할 수 있습니다.
확장 프로그램 | 함수 호출 | 데이터 스토리지 | |
---|---|---|---|
수행 | 지능형 신체 측면 구현 | 클라이언트 측 실행 | 지능형 신체 측면 구현 |
사용 사례 |
|
| 개발자는 다음 데이터 유형 중 하나를 사용하여 검색 증강 생성(RAG)을 구현하고자 합니다:
|
향상된 모델 성능 및 목표 학습
모델을 효과적으로 사용하기 위한 핵심 요소는 결과물을 생성할 때, 특히 프로덕션에서 대규모로 도구를 사용할 때 적합한 도구를 선택할 수 있는 능력입니다. 일반적인 교육은 모델이 이러한 기술을 개발하는 데 도움이 될 수 있습니다.그러나 실제 시나리오에는 일반적으로 다음과 같은 것 이상이 필요합니다.학습 데이터에 대한 지식. 기본적인 요리 기술과 특정 요리를 마스터하는 것의 차이점이라고 생각하면 됩니다. 둘 다 기본적인 요리 지식이 필요하지만, 후자는 보다 미묘한 결과를 얻기 위해 목표 학습이 필요합니다.
모델이 이러한 유형의 특정 지식을 습득하는 데 도움이 되는 몇 가지 접근 방식이 존재합니다:
- 문맥 학습: 이 접근 방식은 일반 모델에 추론 시 힌트, 도구 및 작은 샘플 샘플을 제공하여 특정 작업에 이러한 도구를 사용하는 방법과 시기를 "즉시" 학습할 수 있도록 합니다. ReAct 프레임워크는 자연어에서 이 접근 방식의 예시입니다.
- 검색 기반 컨텍스트 학습: 이 기술은 외부 저장소에서 가장 관련성이 높은 정보, 도구 및 관련 예제를 검색하여 모델 힌트를 동적으로 채웁니다. 예를 들어 Vertex AI 확장 기능의 '예제 저장소' 또는 앞서 언급한 데이터 저장소 RAG 아키텍처가 이에 해당합니다.
- 미세 조정 기반 학습: 이 방법은 추론하기 전에 더 큰 예제별 데이터 세트로 모델을 훈련하는 것입니다. 이를 통해 모델은 사용자 쿼리를 받기 전에 특정 도구를 언제, 어떻게 적용해야 하는지 이해할 수 있습니다.
각 학습 방법의 목표를 더 자세히 설명하기 위해 요리 비유로 돌아가서 살펴볼 수 있습니다.
- 셰프가 고객으로부터 특정 레시피(힌트), 몇 가지 주요 재료(관련 도구), 몇 가지 샘플 요리(샘플 적은 요리)를 제공받는다고 상상해 보세요. 이 제한된 정보와 요리사의 일반적인 요리 지식을 바탕으로 요리사는 레시피와 고객의 선호도에 가장 잘 맞는 요리를 '즉석에서' 준비할 방법을 찾아야 합니다. 이것이 바로 상황별 학습입니다.
- 이제 재료와 레시피(예시 및 도구)로 가득 찬 팬트리(외부 데이터 저장소)가 있는 잘 갖춰진 주방의 요리사를 상상해 봅시다. 이제 셰프는 팬트리에서 재료와 레시피를 동적으로 선택하고 고객의 레시피와 선호도에 더 잘 맞출 수 있습니다. 이를 통해 셰프는 기존 지식과 새로운 지식을 활용하여 더욱 스마트하고 정교한 요리를 만들 수 있습니다. 이것이 바로 검색 기반 컨텍스트 학습입니다.
- 마지막으로, 셰프를 다시 학교로 보내 새로운 요리 또는 요리를 배우게 한다고 가정해 보겠습니다(대규모 예시별 데이터 세트에 대한 사전 교육). 이를 통해 셰프는 향후 알려지지 않은 고객 레시피에 대해 더 깊이 이해하고 접근할 수 있습니다. 셰프가 다음을 수행하기를 원한다면
이 접근 방식은 특정 요리(지식 영역)에 탁월할 때 적합합니다. 이것은 미세 조정 기반 학습입니다.
각 접근 방식은 속도, 비용, 지연 시간 측면에서 고유한 장단점이 있습니다. 하지만 이러한 기술을 지능형 바디 프레임워크에 결합하면 장점은 활용하고 단점은 최소화하여 보다 강력하고 적응력 있는 솔루션을 만들 수 있습니다.
랑체인을 통한 빠른 시작 인텔리전스
실행 가능한 스마트바디가 실제로 실행되는 예를 제공하기 위해, 우리는 LangChain과 LangGraph 신속한 프로토타입을 구축하기 위한 라이브러리. 이러한 인기 있는 오픈 소스 라이브러리를 사용하면 일련의 로직과 추론을 서로 '연결'하고 사용자 쿼리에 응답하는 도구를 호출하여 클라이언트 인텔리전스를 구축할 수 있습니다. 코드 스니펫 8에 표시된 것처럼 gemini-1.5-flash-001 모델과 몇 가지 간단한 도구를 사용하여 사용자의 다단계 쿼리에 응답해 보겠습니다.
코드 스니펫 8에서 프로시저를 실행한 후 코드 스니펫 9에서 샘플 출력을 확인할 수 있으며, 여기서 사용하는 도구는 SerpAPI(Google 검색용)와 Google Places API입니다.
Python
from langgraph.prebuilt import create_react_agent
from langchain_core.tools import tool
from langchain_community.utilities import SerpAPIWrapper
from langchain_community.tools import GooglePlacesTool
os.environ["SERPAPI_API_KEY"] = "XXXXX"
os.environ["GPLACES_API_KEY"] = "XXXXX"
@tool
def search(query: str):
"""Use the SerpAPI to run a Google Search."""
search = SerpAPIWrapper()
return search.run(query)
@tool
def places(query: str):
"""Use the Google Places API to run a Google Places Query."""
places = GooglePlacesTool()
return places.run(query)
model = ChatVertexAI(model="gemini-1.5-flash-001")
tools = [search, places]
query = "Who did the Texas Longhorns play in football last week? What is the address of the other team's stadium?"
agent = create_react_agent(model, tools)
input = {"messages": [("human", query)]}
for s in agent.stream(input, stream_mode="values"):
message = s["messages"][-1]
if isinstance(message, tuple):
print(message)
else:
message.pretty_print()
코드 스니펫 8. 도구 사용 예 LangChain 및 LangGraph Intelligentsia
고정되지 않음
=============================== 用户消息 ================================ 德克萨斯长角牛队上周的橄榄球赛对手是谁?对方球队体育场的地址是什么? ================================= AI 消息 ================================= 工具调用:搜索 参数: 查询:德克萨斯长角牛队橄榄球赛程 ================================ 工具消息 ================================ 名称:搜索 {...结果:“NCAA 一级橄榄球联赛,佐治亚州,日期...”} ================================= AI 消息 ================================= 德克萨斯长角牛队上周与佐治亚斗牛犬队进行了比赛。 工具调用:地点 参数: 查询:佐治亚斗牛犬队体育场 ================================ 工具消息 ================================ 名称:地点 {...桑福德体育场地址:桑福德路 100 号...} ================================= AI 消息 ================================= 佐治亚斗牛犬队体育场的地址是佐治亚州雅典市桑福德路 100 号,邮编 30602。
코드 스 니펫 9. 코드 스 니펫 8의 프로그램 출력.
이는 인텔리전트 바디의 매우 간단한 예시이지만, 특정 목표를 달성하기 위해 함께 작동하는 모델, 오케스트레이션, 툴링의 모든 기본 구성 요소를 보여줍니다. 마지막 섹션에서는 이러한 구성 요소가 Vertex AI 인텔리전스 및 제너레이티브 플레이북과 같은 Google 규모 호스팅 제품에서 어떻게 결합되는지 살펴봅니다.
버텍스 AI 인텔리전스를 사용하는 프로덕션 애플리케이션
이 백서에서는 인공 지능의 핵심 구성 요소를 살펴보고 있지만, 프로덕션급 애플리케이션을 구축하려면 사용자 인터페이스, 평가 프레임워크, 지속적인 개선 메커니즘과 같은 다른 도구와 통합해야 하며, Google의 Vertex AI 플랫폼은 앞서 설명한 모든 필수 요소를 포함하는 완전 호스팅 환경을 제공하여 이 프로세스를 간소화합니다. 개발자는 자연어 인터페이스를 사용하여 목표, 작업 설명, 도구, 작업 위임을 위한 하위 지능, 예제 등 지능의 핵심 요소를 빠르게 정의하여 원하는 시스템 동작을 쉽게 구축할 수 있습니다. 또한 이 플랫폼은 테스트, 평가, 인텔리전스 성능 측정, 디버그, 개발된 인텔리전스의 전반적인 품질 개선에 사용할 수 있는 개발 도구 세트를 제공합니다. 이를 통해 개발자는 인텔리전스를 구축하고 최적화하는 데 집중할 수 있으며 인프라, 배포 및 유지 관리의 복잡성은 플랫폼 자체에서 관리합니다.
그림 15에서는 버텍스 에이전트 빌더, 버텍스 확장, 버텍스 함수 호출, 버텍스 예제 스토리지와 같은 다양한 기능을 사용하는 버텍스 AI 플랫폼에 구축된 인텔리전스의 예제 아키텍처를 제공합니다. 이 아키텍처에는 프로덕션 지원 애플리케이션에 필요한 다양한 구성 요소가 포함되어 있습니다.

그림 15: 버텍스 AI 플랫폼에 구축된 엔드투엔드 인텔리전스의 아키텍처 예시
공식 문서에서 사전 구축된 스마트바디 아키텍처의 예시를 살펴볼 수 있습니다.
요약
이 백서에서는 생성형 AI 지능의 기본 구성 요소와 그 구성, 그리고 이를 인지 아키텍처의 형태로 구현하는 효과적인 방법에 대해 설명합니다. 이 백서의 주요 내용은 다음과 같습니다:
- 인텔리전트는 도구를 사용하여 실시간 정보에 액세스하고, 실용적인 조치를 제안하고, 복잡한 작업을 자율적으로 계획 및 수행함으로써 언어 모델의 기능을 확장합니다. 인텔리전트는 하나 이상의 언어 모델을 사용하여 상태 전환 시기와 방법을 결정하고 외부 도구를 사용하여 모델 자체로는 수행하기 어렵거나 불가능한 복잡한 작업을 얼마든지 수행할 수 있습니다.
- 지능형 신체 운영의 중심에는 추론, 계획, 의사 결정을 구축하고 행동을 안내하는 인지 아키텍처인 오케스트레이션 계층이 있습니다. 다양한 추론 기법(예: ReAct, 사고 체인, 사고 나무)은 오케스트레이션 계층이 정보를 수신하고 내부 추론을 수행하며 정보에 입각한 결정이나 대응을 생성할 수 있는 프레임워크를 제공합니다.
- 도구(예: 확장 기능, 함수, 데이터 저장소)는 인공지능이 외부 시스템과 상호 작용하고 학습 데이터 이상의 지식에 액세스할 수 있도록 외부 세계로 통하는 열쇠 역할을 합니다. 확장은 인텔리전스와 외부 API 간의 가교 역할을 합니다.이를 통해 API 호출을 실행하고 실시간 정보를 검색할 수 있습니다. 함수는 개발자에게 책임 분담을 통해 보다 세분화된 제어 기능을 제공하여 인텔리전스가 클라이언트에서 실행할 수 있는 함수 매개변수를 생성할 수 있도록 합니다. 데이터 저장소는 인텔리전스가 정형 또는 비정형 데이터에 액세스하여 데이터 기반 애플리케이션을 지원할 수 있도록 합니다.
지능형 기관의 미래에는 흥미로운 발전이 기다리고 있으며, 우리는 이제 겨우 그 가능성의 표면을 긁어내기 시작했을 뿐입니다. 도구가 더욱 정교해지고 추론 능력이 향상됨에 따라 지능은 점점 더 복잡한 문제를 해결할 수 있게 될 것입니다. 또한 '인텔리전스 연쇄 연결'이라는 전략적 접근 방식은 계속해서 탄력을 받을 것입니다. 특정 영역이나 업무에서 각각 뛰어난 전문화된 인텔리전스를 결합함으로써 산업과 문제 영역 전반에 걸쳐 탁월한 결과를 제공할 수 있습니다.
복잡한 인텔리전스 아키텍처를 구축하려면 반복적인 접근 방식이 필요하다는 점을 기억하는 것이 중요합니다. 실험과 개선은 특정 비즈니스 사례와 조직의 요구 사항에 맞는 솔루션을 찾는 데 있어 핵심입니다. 아키텍처를 지원하는 기본 모델의 생성적 특성으로 인해 두 개의 인텔리전스가 동일한 것은 없습니다. 하지만 각 기본 구성 요소의 강점을 활용하면 언어 모델의 기능을 확장하고 실질적인 가치를 창출하는 영향력 있는 애플리케이션을 만들 수 있습니다.
각주
- 샤프란, I., 카오, Y. 외, 2022, 'ReAct: 언어 모델에서 추론과 행동의 시너지 효과'. Available at.
https://arxiv.org/abs/2210.03629 - 2023, '대규모 언어 모델에서 추론을 유도하는 생각의 사슬', Wei, J., Wang, X. 외, '대규모 언어 모델에서 추론을 유도하는 생각의 사슬'.
사용 가능: https://arxiv.org/pdf/2201.11903.pdf. - Wang, X. 외, 2022, '자기 일관성은 언어 모델에서 사고 추론의 사슬을 개선합니다'.
사용 가능: https://arxiv.org/abs/2203.11171. - 2023, '대규모 언어 모델에 대한 연쇄적 사고로 능동적 프롬프트', Diao, S. 외., 2023. Available at.
https://arxiv.org/pdf/2302.12246.pdf. - 2023, '언어 모델에서 다중 모드 사고 연쇄 추론'. Available at.
https://arxiv.org/abs/2302.00923. - 야오, S. 외, 2023, '생각의 나무: 대규모 언어 모델을 사용한 신중한 문제 해결'. Available at.
https://arxiv.org/abs/2305.10601. - Long, X., 2023, '대규모 언어 모델 가이드 트리'. Available at.
https://arxiv.org/abs/2305.08291. - **구글. '구글 제미니 애플리케이션'. 사용 가능: **http://gemini.google.com.
- **스와거. 'OpenAPI 사양'. 사용 가능: **https://swagger.io/specification/.
- Xie, M., 2022, '상황 내 학습은 어떻게 작동합니까? 차이점을 이해하기 위한 프레임워크
전통적인 감독 학습'. 사용 가능: https://ai.stanford.edu/blog/understanding-incontext/. - 구글 리서치. 'ScaNN (확장 가능한 가장 가까운 이웃)'. 사용 가능.
https://github.com/google-research/google-research/tree/master/scann. - **랑체인. 'LangChain'. 이용 가능: **https://python.langchain.com/v0.2/docs/introduction/.
© 저작권 정책
이 글은 저작권이 있으며 무단으로 복제해서는 안 됩니다.
관련 문서
댓글 없음...