우리는 Autonomous Agents와 협력하고 그들의 힘을 직접 목격할 수 있는 기회를 공유하고 있습니다. AI 기반 자율 에이전트는 산업에 혁명을 일으키고 우리의 생활 방식을 바꿀 수 있는 잠재력을 가지고 있습니다. 그러나 모든 기술이 그렇듯, 그것들도 좋은 쪽으로 사용될 수도 있고 나쁜 쪽으로 사용될 수도 있습니다. 이제 실제 예제와 마지막에 나오는 흥미로운 튜토리얼을 통해 이를 어떻게 활용할 수 있는지 살펴보겠습니다.
간단히 말해서, 자율 에이전트는 Amazon 의 창고에서 상품을 선택하고 포장하는 데 사용되고 있습니다. 코카콜라는 자율 드론을 사용해 생산 시설의 안전과 유지 관리를 점검하고, 테슬라는 운송용 차량에 자율 주행 기술을 사용합니다.
지난달에는 Auto GPT와 Baby AGI라는 2개의 주요 저장소가 GitHub에 나타났습니다.
기본적으로 GPT-4 와 같은 LLM을 사용하여 다양한 종류의 작업을 자율적으로 개발하고 관리합니다. 즉, 관리하는 데 귀하가 필요하지 않습니다! 그들은 사용자의 입력 없이도 다음에 수행할 작업을 스스로 결정할 수 있습니다. 따라서 지능형 에이전트를 배포하여 작업을 수행하고 휴식을 취할 수 있습니다 🙂
사람들에게 좋은 것을 더 많이 보여주면 그 좋은 부분이 그들의 삶의 대부분을 차지하게 될 것입니다. 이것이 바로 사람의 선택을 관리할 수 있는 방법입니다. 비밀은 아닙니다. 우리의 선택은 마케팅 담당자에 의해 통제되며 항상 좋은 이름으로 통제되는 것은 아닙니다. 그러나 사실은 여전히 남아 있습니다. 우리는 좋은 것을 위해 AI를 사용해야 합니다!
lablab.ai 의 해커톤에서 멘토들은 현대 기술이 어떻게 사용될 수 있는지 설명했습니다. 그것이 내 인생을 어떻게 바꾸었나요? 이제 나는 미래의 궤적을 볼 수 있고, 미래의 직업을 알고 있으며, 열정적인 사람들이 새로운 시대 세대의 차세대 스티브 잡스가 될 분야를 알고 있습니다. 드론쇼 보셨나요? 브랜드들은 이미 공중에 광고를 게재하고 있습니다.
이제 개발을 위한 벡터가 얼마나 많은지 상상해 보세요. 경쟁이 없는 나만의 광고 회사를 만들고 싶나요? 현대 기술로 눈에 띄는 의료 센터를 만들고 싶습니까? 일상을 자동화하고 가족과 더 많은 시간을 보내고 싶습니까? 놀라운 점은 팀, 새로운 스타트업, 아이디어, 혁신, 역사에 흔적을 남기려는 열망 등 모든 것을 한 곳에서 발견했다는 것입니다. 그건 그렇고, 모든 일이 48시간 만에 일어났습니다. 방금 광고를 우연히 발견했습니다.
그러나 지금…
AI 에이전트는 주어진 작업을 스스로 해결하는 능력으로 인해 빠르게 인기를 얻고 있습니다. 아마도 AutoGPT , BabyAGI 또는 CAMEL 과 같은 프로젝트에 대해 들어본 적이 있을 것입니다. 오늘 여러분은 그것이 어떻게 작동하는지 적어도 부분적으로 배우게 될 것입니다!
AI 에이전트는 특정, 일반적으로 사전 정의된 목표 또는 일련의 목표를 달성하기 위해 결정을 내리고, 도구를 선택하고, 조치를 취하도록 설계된 컴퓨터 시스템입니다. 에이전트는 자율적으로 작동하며 작업에 사람의 개입이 거의 필요하지 않습니다.
현재 AI 에이전트가 많은 관심을 집중하게 만드는 것은 자립뿐만 아니라 올바른 강력한 도구입니다. 그것은 확실히 우리의 미래이며, 이 기술에 익숙해지는 것은 가치가 있습니다.
현재 에이전트를 사용해 볼 수 있는 몇 가지 옵션이 있습니다. AutoGPT 와 같은 기성 솔루션을 선택할 수 있습니다. 우리 팀은 이미 그들과 협력해 왔으며 우리 플랫폼에서 튜토리얼을 찾을 수 있습니다.
또 다른 옵션은 에이전트를 직접 구축하는 것입니다. 나는 바로 이 방법을 선택할 것이다. 이를 위해 LangChain을 사용합니다. 대규모 언어 모델을 기반으로 애플리케이션을 구축하기 위해 만들어진 프레임워크입니다. 이는 매우 강력하며 모델 및 에이전트 작업을 훨씬 쉽게 만듭니다!
우리는 에이전트를 배울 가치가 있는 이유를 이미 알고 있습니다. 이제 작업에 착수하여 우리만의 무언가를 만들어 봅시다!
새 디렉터리를 만들고 Python 환경을 초기화하는 것부터 시작해 보겠습니다.
mkdir ai-agents cd ai-agents python3 -m venv venv # Linux / MacOS source venv/bin/activate # Windows .\venv\Scripts\activate
필요한 도구를 설치하는 것부터 시작하겠습니다. LLM 및 에이전트와 작업하기 위한 langchain
, 외부 API에 대한 요청을 위한 requests
, OpenAI 모델을 더 쉽게 사용하기 위한 openai
SDK, 웹 검색을 위한 duckduckgo-search
필요합니다.
!pip install langchain !pip install openai !pip install requests !pip install duckduckgo-search
이제 라이브러리를 가져올 수 있습니다.
import requests from langchain import OpenAI from langchain.agents import initialize_agent, load_tools, Tool from langchain.chains import LLMChain from langchain.prompts import PromptTemplate from langchain.tools import DuckDuckGoSearchRun
이 시점에서 OpenAI에서 LLM을 정의하고 싶습니다. 이 튜토리얼에서는 GPT-3를 사용하겠습니다. 다른 모델과 함께 플레이할 수 있습니다. 또한 초기 프롬프트를 정의하고 이 모델에 대한 체인을 생성하겠습니다.
OPENAI_API_KEY = "sk-..." llm = OpenAI( openai_api_key=OPENAI_API_KEY, temperature=0.8, model_name="text-davinci-003" ) prompt = PromptTemplate( input_variables=["query"], template="You are New Native Internal Bot. Help users with their important tasks, like a professor in a particular field. Query: {query}" ) llm_chain = LLMChain(llm=llm, prompt=prompt)
이제 질문에 직면했을 때 모델이 어떻게 작동하는지 살펴보겠습니다. lablab.ai가 무엇인지, 적분을 어떻게 처리하는지 살펴보겠습니다!
llm_chain.run("What is lablab.ai")
Lablab.ai는 AI 및 머신러닝 기반 솔루션을 기업에 제공하여 운영을 간소화하고 효율성을 높이는 기술 플랫폼입니다. 자연어 처리, 머신 비전, 자동화 및 기타 산업별 솔루션과 같은 AI 서비스 제품군을 제공합니다. 기업이 고객 경험을 개선하고 비용을 절감하며 생산성을 높일 수 있도록 설계되었습니다.
llm_chain.run("Integral of x * (log(x)^2)")
답은 x^2 log(x)^3 / 3 + C입니다. 여기서 C는 임의 적분 상수입니다.
보시다시피 두 답변 모두 거짓입니다. 적분의 올바른 값 1/4 x^2 (1 - 2 log(x) + 2 log^2(x))
입니다. 반면에 lablab.ai가 무엇인지는 누구에게도 설명할 필요가 없을 것 같습니다😉.
잘못된 답변은 LLM의 수리 능력 부족과 최신 정보 부족으로 인해 발생합니다.
우리가 사용한 모델은 2021년 9월까지의 정보를 가지고 있습니다. lablab.ai 플랫폼은 나중에 만들어졌습니다. 그러나 두 가지 문제 모두에 대한 해결책이 있습니다!
문제를 해결하려면 에이전트와 도구를 사용하는 것이 좋습니다. 우리는 인터넷 검색 도구를 사용할 수 있습니다. 이를 통해 최신 정보를 검색할 수 있습니다. 이를 통해 우리 모델의 지식 범위가 현재까지 확대될 것입니다! LangChain에서만 가져올 수 있는 기성 도구가 이미 있습니다! 계산 문제에 대한 해결책은 Wolfram Alpha 의 API입니다. 수학 문제를 아주 잘 처리할 수 있습니다! 나는 그것을 강력히 추천합니다.
검색 도구를 함께 구성하는 것부터 시작해 보겠습니다. 이는 DuckDuckGoSearchRun
이라고 하며 이전에 가져온 적이 있습니다.
search = DuckDuckGoSearchRun() # Web Search Tool search_tool = Tool( name = "Web Search", func=search.run, description="A useful tool for searching the Internet to find information on world events, issues, etc. Worth using for general topics. Use precise questions." )
그렇게 간단합니다! 이제 수학 문제를 해결하기 위한 도구를 만들어 보겠습니다. 이를 위해 사용자 정의 클래스를 생성하겠습니다. Wolfram Alpha 에서 만든 API는 많지만 가장 간단한 것 중 하나를 사용하겠습니다.
class WA: """ Wolfram|Alpha API """ def __init__(self, app_id): self.url = f"http://api.wolframalpha.com/v1/result?appid={app_id}&i=" def run(self, query): query = query.replace("+", " plus ").replace("-", " minus ") # '+' and '-' are used in URI and cannot be used in request result = requests.post(f"{self.url}{query}") if not result.ok: raise Exception("Cannot call WA API.") return result.text
이 API는 자연어로 요청을 처리하고 결과를 반환합니다. 그것은 우리에게 완벽할 것입니다! run
메소드가 이를 처리할 것입니다! 이제 도구를 정의해 보겠습니다.
WA_API_KEY = "<WA_API_KEY>" # You can get it here: https://products.wolframalpha.com/api/ wa = WA(app_id=WA_API_KEY) wa_tool = Tool( name="Wolfram|Alpha API", func=wa.run, description="Wolfram|Alpha API. It's super powerful Math tool. Use it for simple & complex math tasks." )
좋습니다. 마지막 단계는 에이전트를 생성하고 도구를 제공한 후 결과를 확인하는 것입니다. 해보자!
agent = initialize_agent( agent="zero-shot-react-description", tools=[wa_tool, search_tool], llm=llm, verbose=True, # I will use verbose=True to check process of choosing tool by Agent max_iterations=3 )
이전 메시지를 확인해 보세요!
r_1 = agent("What is lablab.ai?") print(f"Final answer: {r_1['output']}") r_2 = agent("Integral of x * (log(x)^2)") print(f"Final answer: {r_2['output']}")
이전 답변:
Lablab.ai는 AI 및 머신러닝 기반 솔루션을 기업에 제공하여 운영을 간소화하고 효율성을 높이는 기술 플랫폼입니다. 자연어 처리, 머신 비전, 자동화 및 기타 산업별 솔루션과 같은 AI 서비스 제품군을 제공합니다. 기업이 고객 경험을 개선하고 비용을 절감하며 생산성을 높일 수 있도록 설계되었습니다.
답은 x^2 log(x)^3 / 3 + C입니다. 여기서 C는 임의 적분 상수입니다.
새로운 답변:
lablab.ai 는 AI 도구 및 기술 전용 플랫폼입니다. AI 튜토리얼, 해커톤, 최첨단 언어 모델에 대한 액세스 등을 제공합니다.
x^2/4 + 1/2 x^2 로그^2(x) - 1/2 x^2 로그(x)
도구를 사용하여 볼 수 있듯이 결과는 훨씬 더 좋습니다! 적분은 올바르게 계산되었으며 lablab.ai 플랫폼에 대한 질문에 대한 답변의 품질도 더 좋습니다. 이는 간단한 도구를 추가하는 것이 답변의 정확성을 높이는 데 어떻게 도움이 되는지 보여줍니다. 이것이 바로 지금 시간을 투자할 가치가 있는 이유라고 생각합니다. 그래야 앞으로 LLM과의 협력이 훨씬 더 나은 도움을 받을 수 있을 것입니다!
애플리케이션을 개선하려면 다른 유형의 에이전트를 사용해 보는 것이 좋습니다. 메모리를 사용하는 것도 가치가 있을 것입니다. 여기서는 벡터 데이터베이스가 유용할 수 있습니다. 다행히 LangChain 도 이를 지원합니다!