OpenAI Assistants API 의 Function Calling - ChatGPT의 성능을 훨씬 끌어 올려 줍니다.
2024. 8. 16. 16:10 |
https://youtu.be/QEf5FR0DiHk?si=TECvJ_RslHzm9fVl
https://youtu.be/QEf5FR0DiHk?si=TECvJ_RslHzm9fVl
작년 11월에 소개 된 Assistants API 입니다.
조용하게 진행 되지만 아주 중요한 프로젝트 입니다.
OpenAI에서 RAG 개념을 받아들인 최초의 API 예요.
Assistants는 LangChain의 Agent 역할을 하죠.
덕분에 우리도 ChatGPT에서 RAG 기능을 사용할 수 있게 됐습니다.
논문을 업로드해서 요약을 한다던지 현재 날씨 정보를 얻는다던지 하는 그런 서비스는 원래 ChatGPT는 못했었거든요.
LangChain은 LangGraph로 Agent 를 한껏 발전 시켰습니다.
OpenAI는 이 Assistants API를 어떤 방향으로 발전 시킬지...
아직 아무도 가지 않은 길을 가는 AI 세계는 정말 흥미롭습니다.
https://youtu.be/L5GjCjX9Yj8?si=IU0W1RAOrUzIguHF
https://catchuplangchain.streamlit.app/
2024년도에 AI Web App 개발 분야에서 떠오르는 기술입니다.
Agentic Workflow, Multi Agent Collaboration 등등 많은 이론과 기술들이 쏟아지고 있습니다.
LangChain에서는 LangGraph라고 하는 별도의 Framework를 만들어서 이 Agentic Workflow, Multi Agent Collaboration 개념과 기술을 AI Application에 구현할 수 있도록 지원하고 있습니다.
오늘 그 AI Agent를 사용해 첫번째 AI Web App을 만들어 보겠습니다.
기본을 탄탄하게 다져 놓으면 어려운 문제가 닥쳐도 쉽게 풀어 낼 수 있습니다. 이 AI Agent 기본은 LangChain에 있는 API Service 들을 사용합니다.
AI Agent 의 기본을 오늘부터 다져 나가겠습니다.
https://youtu.be/Yy0DVD2PlYY?si=gIkT3fcWFIEmOJWs
오늘은 챗지피티에게 코딩 시키기 두번째 시간입니다.
실무에서 AI 를 Scripting 에 이용하면서 느낀 점들 그리고 미래를 어떻게 준비 해야 되겠다라고 생각한 부분들도 정리해서 올렸습니다.
AI 시대를 준비하시는 여러분들에게 조금이라도 도움이 되길 바랍니다.
아래는 AI 에게 Scripting을 시켜서 앱을 개발하면서 느낀 점들을 정리 한 내용들 입니다.
- 아직 AI는 한번에 에러 없이 완벽한 코딩을 하지 못한다.
: 인간이 질문한 내용에만 focus 를 두어서 코딩을 하기 때문에 전체 소스코드가 에러 없이 실행되지 않을 때가 많다.
- 하지만 AI는 해당 에러의 원인을 파악하고 수정하는 작업은 인간보다 훨씬 빠르게 진행한다.
: Scripting에 천재적이지만 아직 말귀를 잘 못 알아 듣고 실무 경험이 부족한 사회 초년생을 조수로 둔 느낌
- AI에게 코딩을 시킬 때 백지상태에서 시작하는 것 보다 간단한 예제 코드를 제공하면서 시작하면 훨씬 진행이 빠르다.
- 아직 인간의 역할이 많이 필요 하다
: 인간은 뚜렷한 최종 목표 앱에 대한 그림(청사진)이 있어야 한다.
: Scripting 천재인 사회 초년생을 잘 Lead 하기 위한 앱 개발의 기본 지식은 있어야 한다.
: 더 좋은 대답을 얻으려면 더 좋은 질문을 해야 한다. (Requirement를 구체적이고 빠뜨림 없이 AI에게 제공해야 일의 진행을 더 빨리 할 수 있다.)
: Production에 Publish 하기 전 Testing 과정을 강화해야 함
: 필요한 경우 사용할 Languages, Tools, Modules 그리고 특정 API 등 아주 자세한 내용까지 제공해야 하는 경우도 있음
- 현재 AI의 코딩 실력은 기존의 개발자의 개발 시간을 크게 줄여 주는 역할은 충분히 할 수 있음
https://youtu.be/48k_H1cwsfM?si=TEKnvy0u01d2BRfZ
https://youtu.be/HThDRdksrL8?si=ScJbsbJNO4y35zsZ
2024년 7월 10일 뉴욕에서 열린 AWS Summit New York 에서 발표된 서비스 입니다.
AWS App Studio 프롬프트 만으로 앱을 만들어 준다고 합니다.
사용자가 프롬프트로 요구조건을 주면 App Studio 가 Plan 을 제시하고 Plan 이 맘에 들면 그냥 OK 만 누르면 된다고 합니다.
서비스를 아직 써 보지 않아서 실제 광고만큼 유용하게 사용할 수 있는지는 아직 모르겠지만...
AI 어플리케이션이 단순 task 중심이 아닌 하나의 임무를 완료 할 때까지 사용자와 AI 간 커뮤니케이션을 통해 일을 하는 Workflow 쪽으로 요즘 트렌드가 바뀌는 것 같습니다.
이 서비스 이외에도 다른 AI 관련된 AWS 서비스가 이 Summit 에서 소개 됐습니다.
이 Summit 에서 소개된 AWS 서비스 들입니다.
AWS Summit New York City 요약:
AWS 부사장 Matt Wood가 New York City에서 개최된 AWS Summit에서 기조 연설을 통해 Generative AI(생성적 AI)의 중요성과 혁신에 대해 강조했습니다. 주요 내용은 다음과 같습니다:
AWS는 Generative AI를 통해 고객들이 혁신하고 성장할 수 있도록 지원하며, 보안과 프라이버시를 중시하는 접근 방식을 강조하고 있습니다.
AWS App Studio 요약:
AWS App Studio는 생성적 AI를 활용한 저코드 애플리케이션 빌딩 서비스로, 다음과 같은 주요 기능과 특징을 제공합니다:
AWS App Studio는 IT 프로젝트 매니저, 데이터 엔지니어, 아키텍트 등 소프트웨어 개발 기술이 없는 기술 전문가들도 빠르고 쉽게 비즈니스 문제를 해결하는 애플리케이션을 만들 수 있게 해줍니다
Amazon Q 요약:
Amazon Q는 AWS에서 제공하는 생성적 AI 기반의 소프트웨어 개발 지원 도구로, 두 가지 주요 기능을 제공합니다:
Amazon Q는 소프트웨어 개발자와 엔터프라이즈 사용자 모두에게 큰 생산성 향상을 제공하며, AI를 활용한 자동화를 통해 업무의 효율성을 극대화할 수 있도록 돕습니다(AWSAppStudio).
Amazon Q와 SageMaker Studio의 관계 요약:
Amazon Q는 AWS의 SageMaker Studio와 통합되어 데이터 과학자와 머신 러닝 엔지니어가 머신 러닝 모델을 더 쉽게 구축, 훈련 및 배포할 수 있도록 돕습니다. SageMaker Studio는 데이터와 머신 러닝 워크로드를 위한 통합 개발 환경(IDE)으로, 대부분의 모델이 구축되는 장소입니다.
주요 기능:
SageMaker Studio와의 통합:
SageMaker Studio는 Q의 도움을 받아 데이터 과학자와 머신 러닝 엔지니어가 머신 러닝 모델을 구축, 훈련, 배포하는 전체 과정을 간소화합니다. Q는 SageMaker Studio 노트북 옆에서 실시간으로 작동하며, 데이터 과학자가 작업 중 궁금한 점을 질문하면 Q는 이에 대한 답변과 지침을 제공합니다. 이 통합을 통해 많은 조직이 머신 러닝 작업을 더 쉽게 시작하거나 가속화할 수 있습니다
Agents for Amazon Bedrock 요약:
Amazon Bedrock Agents는 복잡한 다단계 작업을 수행할 수 있는 지능형 시스템을 구축하는 데 필요한 모든 것을 제공하는 서비스입니다. 주요 기능과 특징은 다음과 같습니다:
Amazon Bedrock Agents는 이러한 기능들을 통해 조직이 더 복잡하고 전략적인 작업을 자동화하고, 생산성을 극대화할 수 있도록 돕습니다.
Contextual Grounding Checks 요약:
Contextual Grounding Checks는 Amazon Bedrock의 새로운 보호 기능으로, 생성적 AI 모델의 정확성과 신뢰성을 향상시키기 위해 설계되었습니다. 이 기능은 다음과 같은 주요 특징을 가지고 있습니다:
Contextual Grounding Checks는 Amazon Bedrock 내에서 자동으로 작동하며, 고객들이 더욱 안전하고 신뢰할 수 있는 생성적 AI 응용 프로그램을 구축할 수 있도록 지원합니다 .
Expanded Data Connectors 요약:
Amazon Bedrock의 Expanded Data Connectors는 사용자가 다양한 데이터 소스에서 데이터를 쉽게 통합하여 생성적 AI 모델을 맞춤화할 수 있도록 돕는 기능입니다. 주요 기능과 특징은 다음과 같습니다:
Expanded Data Connectors는 다양한 데이터 소스를 통합하여 맞춤형 생성적 AI 애플리케이션을 구축하고, 정확성을 높이며, 환각률을 줄이는 데 중요한 역할을 합니다.
Guardrails API 요약:
Guardrails API는 Amazon Bedrock의 중요한 기능으로, 생성적 AI 모델이 제공하는 결과의 정확성과 신뢰성을 보장하기 위해 설계되었습니다. 주요 기능과 특징은 다음과 같습니다:
Guardrails API는 Amazon Bedrock 모델과 밀접하게 통합되어 있으며, 이를 통해 다양한 환경에서 안전하고 신뢰할 수 있는 생성적 AI 응용 프로그램을 구축할 수 있습니다 .
AWS Summit 2024에서 발표된 Anthropic's Claude 3 모델의 파인 튜닝(Fine-Tuning) 요약:
AWS는 2024년 AWS Summit에서 Anthropic의 Claude 3 모델에 대한 파인 튜닝 기능을 발표했습니다. 이 기능은 사용자가 자신의 데이터를 사용하여 Claude 3 모델을 맞춤화할 수 있도록 합니다. 주요 기능과 특징은 다음과 같습니다:
이러한 파인 튜닝 기능을 통해 기업들은 Claude 3 모델을 더욱 효과적으로 활용할 수 있으며, 비즈니스 요구에 맞는 맞춤형 AI 솔루션을 구축할 수 있습니다.
전체 비디오는 아래 링크에서 보실 수 있습니다.
https://youtu.be/hVy1cIpu6II?si=UeOxpmlOeTOcPqyp
유투브 비디오 썸네일로 사용하려고 AI에게 이미지를 그려 달라고 했는데 이렇게 그려 주더라구요.
예쁜 여자 프로그래머를 그려 달라고 했는데 너무너무 예쁘게 그려 주네요.
이 그림은 마이크로소프트의 코파일럿 (Copilot) 이 그려 준 겁니다.
실제 썸네일에는 GPT 4o 가 그려 준 아래 이미지를 사용했는데요.
코파일럿과 GPT 4o 각각 자신만의 화풍이 있는 것 같아요.
다음 비디오로는 GPT 4o 에게 코딩 시키기를 해 볼 계획입니다.
얼마전 회사에서 필요로 하는 샘플 RAG 웹앱을 만들어야 했는데요.
이 때 오늘 설명한 기능에서 사용한 소스코드를 base 로 해서 샘플 RAG 웹 앱을 만들었는데요.
저 혼자 하면 며칠은 해야 됐을 것 같은 일을 챗지피티랑 같이 하니까 단 몇시간만에 만들 수 있더라구요.
챗지피티가 초보 개발자 한두명 역할은 충분히 하는 것 같습니다.
챗지피티에게 코딩을 시키면서 여러가지 생각들이 들더라구요.
그 능력에 놀란 부분도 있었고 또 인공지능에게 코딩을 시키기 위해 인간이 가지고 있어야 할 능력이 무엇인지도 생각 해 볼 기회가 있었구요.
또 개발자의 미래 그리고 회사의 management 의 변화 뭐 이런 것들도 생각 해 봤구요.
하여간 다음 시간에는 챗지피티에게 코딩을 시켜서 웹 어플리케이션 하나 완성해 보는 과정을 다룰 거구요 또 실제 업무 현장에서 챗지피티와 함께 코딩을 하면서 느낀 점들을 같이 나누고자 합니다.
회사에서 주 업무는 클라우드 를 사용한 서버 관리 그 중에 요즘엔 쿠버네티스를 사용한 서버 관리 부분을 하고 있는데요.
AI 웹 앱도 컨테이너 기반으로 쿠버네티스를 이용한 서버 환경에서 관리하는 법도 제 블로그와 유투브 채널에 정리해서 올릴 계획입니다.
계속 관심 가져 주시고 구독과 좋아요를 눌러 주시면 미국 현장에서 배우는 IT 기술을 나누는 일에 큰 힘이 될 겁니다.
많은 협조 부탁드립니다.
https://www.youtube.com/@catchupai
LangChain - RAG - create_history_aware_retriever
지난 시간까지 RAG의 기본 기능을 배웠습니다.
AI Web Application에서 기본적으로 제공되어야 하는 것은 ChatBot 기능입니다.
이를 위해서는 Chat History를 관리해주는 기능이 추가 되어야 합니다.
AI는 이전 대화 내용을 기억하지 못하기 때문입니다.
이런 AI의 부족한 부분을 채워 주는 LangChain의 Retriever 가 바로 create_history_aware_retriever 입니다.
AI 하고 말이 통하게 만들어 주는 바로 그 Retriever.
오늘은 create_history_awere_retriever에 대해 배웁니다.
오늘 매울 AI Web Application link는 아래에 있습니다. https://catchuplangchain.streamlit.app/LC_Quickstart_03_ConversationRetrievalChain
이번 비디오의 내용은 지난 비디오의 보충수업입니다.
지난 강좌에서 LangChain에서 Retrieval 함수를 사용해서 RAG의 가장 기본적인 기능을 구현 했습니다.
그것을 통해서 데이터 수집 - 데이터 split - 임베딩 처리 - 벡터스토어에 저장 - Retrieval - LLM 과 communication 이런 RAG의 기본적인 프로세스를 이해 했습니다.
이번에는 그 기능에 더해 데이터를 vector store에 저장하고 그 저장한 데이터를 Retrieval 하는 과정에서 어떻게 데이터를 가공하는지를 자세하게 알아 봅니다.
데이터를 어떻게 가공하느냐에 따라 성능과 속도 그리고 비용에까지 영향을 미칠 수 있습니다.
장문의 입력 데이터를 임베딩 처리 하기 전에 Chunk로 split 할 때 개발자는 어떤 것을 어떻게 control 해서 최적화를 시킬 수 있는지…
그리고 Vector store 에서 Retrieval 할 때 어떤 옵션들이 있고 그것을 어떻게 사용하는지를 설명했습니다.
실력있는 개발자는 단순히 기능만 구현하는 것 이외에 성능, 속도, 비용까지 고려 합니다.
한번 배울 때 확실하게 배워서 진짜 실력있는 개발자가 됩시다.