➡️ Google은 제너레이티브 AI 모델의 기능을 확장하는 ‘Agent’ 개념과 아키텍처를 상세히 설명하는 백서를 발표했습니다. 이 백서는 에이전트의 핵심 구성 요소인 모델, 도구, 오케스트레이션 레이어를 설명하고, LangChain 및 Vertex AI를 이용한 에이전트 구축 사례를 제시합니다.
➡️ Hugging Face에서는 LLM에 에이전트 기능을 통합하는 간단한 라이브러리인 ‘smolagents’를 출시했습니다. smolagents는 코드 에이전트를 위한 강력한 지원을 제공하며, 다양한 LLM과 도구를 허브를 통해 통합할 수 있도록 설계되었습니다.
➡️ Meta FAIR에서는 가상 에이전트 제어, 비디오 워터마킹, 새로운 언어 모델링 방식 등 다양한 AI 연구 결과와 오픈소스 모델을 공개했습니다.
➡️ NVIDIA는 문서에서 콘텐츠와 메타데이터를 추출하는 마이크로서비스인 ‘NVIDIA Ingest’를 발표했습니다. 이 서비스는 다양한 문서 형식을 지원하며, LLM 애플리케이션에 활용될 수 있도록 설계되었습니다.
➡️ 이 외에도 웹 크롤링 라이브러리, PDF 번역 도구, LLM 성능 향상 기법 등 다양한 AI 관련 소식이 있었습니다.
Google, Agents
링크, September 2024
- 제너레이티브 AI 에이전트는 목표 달성을 위해 외부 세계를 관찰하고 도구를 사용하여 행동하는 애플리케이션으로 정의됨.
- 에이전트는 자율적으로 작동하며, 명시적인 지시 없이도 목표 달성을 위해 추론 가능.
- 에이전트의 핵심 구성 요소는 의사 결정 역할을 하는 모델, 외부 세계와의 상호 작용을 가능하게 하는 도구, 정보 처리 및 의사 결정을 관리하는 오케스트레이션 레이어임.
- 모델은 명령어 기반 추론 및 논리 프레임워크(ReAct, CoT, ToT)를 따르는 LM을 활용하며, 특정 에이전트 아키텍처의 요구 사항에 따라 다양한 크기 및 방식으로 구성 가능.
- 도구는 에이전트가 외부 데이터 및 서비스와 상호 작용하도록 지원하며, 웹 API 메소드(GET, POST 등)와 유사한 형태로 제공됨.
- 확장 프로그램(Extensions), 함수(Functions), 데이터 저장소(Data Stores)는 Google 모델이 상호 작용할 수 있는 주요 도구 유형임.
- 확장 프로그램은 API와 에이전트 간의 간극을 표준화된 방식으로 연결하여 에이전트가 API의 구현 방식에 관계없이 원활하게 실행하도록 함.
- 함수는 특정 작업을 수행하는 재사용 가능한 코드 모듈로, 모델이 함수 호출 시점과 필요한 인수를 결정함. 함수는 클라이언트 측에서 실행됨.
- 데이터 저장소는 에이전트가 최신 정보에 접근하도록 지원하며, 벡터 데이터베이스 형태로 구현되어 RAG(Retrieval Augmented Generation) 애플리케이션에 활용됨.
- 에이전트의 응답 품질은 모델의 추론 능력, 올바른 도구 선택 능력, 도구 정의의 정확성에 따라 결정됨.
- 모델 성능 향상을 위해 인-컨텍스트 학습, 검색 기반 인-컨텍스트 학습, 파인튜닝 기반 학습 등 다양한 타겟 학습 방식이 활용될 수 있음.
- LangChain 및 LangGraph 라이브러리를 사용하여 실제 에이전트 프로토타입을 구축하는 예시 제시.
- Vertex AI 플랫폼은 에이전트 개발, 테스트, 평가, 배포를 위한 완전 관리형 환경을 제공함.
Hugging Face, Introducing smolagents, a simple library to build agents
링크, December 31, 2024
- smolagents는 LLM에 에이전트 기능을 통합하는 간단한 Python 라이브러리임.
- 에이전트는 LLM 출력이 워크플로우를 제어하는 프로그램으로 정의되며, 에이전시 수준은 LLM이 워크플로우에 미치는 영향력에 따라 연속적인 스펙트럼으로 표현됨.
- 멀티 스텝 에이전트는 루프를 통해 작업을 수행하며, 각 단계에서 LLM은 외부 도구를 호출하는 액션을 작성하고, 관찰 결과를 바탕으로 다음 단계를 결정함.
- 에이전트는 LLM이 앱의 워크플로우를 결정해야 할 때 유용하지만, 미리 결정된 워크플로우로 충분한 경우 과도한 설정일 수 있음.
- 코드 에이전트는 액션을 JSON 대신 코드로 작성하는 방식으로, 코드의 표현력과 LLM 학습 데이터와의 연관성을 활용하여 성능 향상을 기대할 수 있음.
- smolagents는 단순성, 코드 에이전트에 대한 강력한 지원, 허브 통합, 다양한 LLM 지원을 목표로 개발됨.
- 에이전트 구축을 위해서는 도구 목록과 LLM 모델이 필요하며, 도구는 타입 힌트와 독스트링을 포함한 함수로 정의하고
@tool
데코레이터를 사용하여 만들 수 있음. - 허브를 통해 도구를 공유하고 로드하는 기능 지원.
- 오픈 소스 모델이 에이전트 워크플로우에서 최고의 성능을 보이는 클로즈드 모델에 필적할 수 있음을 보여주는 벤치마크 결과 제시.
Thytu, Agentarium
링크, 2025/1/2
- Agentarium은 AI 에이전트 관리 및 오케스트레이션을 위한 새로운 Python 프레임워크임.
- 주요 기능으로는 고급 에이전트 관리, 강력한 상호 작용 관리, 체크포인트 시스템, 데이터 생성, 성능 최적화, 유연한 환경 구성 (YAML), 확장 가능한 아키텍처 등이 있음.
- 다양한 역할과 기능을 가진 여러 AI 에이전트를 생성하고 오케스트레이션 가능.
- 에이전트 간의 복잡한 상호 작용을 조정.
- 에이전트 상태 및 상호 작용을 저장하고 복원하는 기능 제공.
- 에이전트 상호 작용을 통해 합성 데이터 생성 가능.
- 효율성과 확장성을 고려하여 구축됨.
- YAML 구성 파일을 사용하여 사용자 정의 환경 정의 가능.
- 특정 요구 사항에 맞게 확장 및 사용자 정의가 용이한 아키텍처 제공.
Byaidu, PDFMathTranslate
링크, 2024/12/1
- PDF 과학 논문 번역 및 이중 언어 비교 도구.
- 수식, 차트, 목차 및 주석 유지 (미리보기).
- 다양한 언어 및 번역 서비스 지원.
- 명령줄 도구, 대화형 사용자 인터페이스 및 Docker 제공.
- GitHub Issues, Telegram Group 또는 QQ Group을 통해 피드백 제공 가능.
- 기여 방법은 Contribution Guide 참조.
Meta FAIR, Memory Layers at Scale
링크, December 23, 2024
- Meta FAIR에서 메모리 레이어를 활용하여 모델의 매개변수 수를 늘리지 않고도 정보를 저장하고 검색하는 새로운 기술을 개발하고 관련 연구 결과 및 모델을 오픈소스로 공개함.
- 메모리 레이어는 훈련 가능한 키-값 조회 메커니즘을 사용하여 FLOPs 증가 없이 모델에 추가 매개변수를 추가함.
- 희소하게 활성화되는 메모리 레이어는 연산 집약적인 밀집 피드포워드 레이어를 보완하여 정보를 저렴하게 저장하고 검색할 수 있는 전용 용량을 제공함.
- 개선된 메모리 레이어로 강화된 언어 모델은 다운스트림 작업에서 두 배 이상의 연산 예산을 가진 밀집 모델보다 성능이 뛰어나며, 연산량과 매개변수 수가 일치할 때 MoE 모델보다도 우수한 성능을 보임.
- 특히 사실적인 작업에서 성능 향상이 두드러짐.
- 최대 1280억 개의 메모리 매개변수를 사용하여 확장 법칙을 보여주는 완전 병렬화 가능한 메모리 레이어 구현을 제공하며, 1조 개의 토큰으로 사전 훈련하여 최대 80억 개의 매개변수를 가진 기본 모델과 비교함.
- Meta FAIR에서 에이전트, 견고성 및 안전성, 머신 러닝을 용이하게 하는 아키텍처 개발에 대한 최근 혁신을 강조하는 여러 새로운 연구 결과 공개.
- Meta Motivo (가상 구현 에이전트의 동작 제어를 위한 파운데이션 모델) 및 Meta Video Seal (오픈 소스 비디오 워터마킹 모델) 포함.
Meta FAIR, Sharing new research, models, and datasets from Meta FAIR
링크, December 12, 2024
- Meta FAIR에서 더욱 강력한 에이전트 구축, 견고성 및 안전성 확보, 모델이 새로운 정보를 보다 효과적으로 학습하고 현재 한계를 뛰어넘어 확장할 수 있도록 지원하는 아키텍처 혁신에 중점을 둔 최신 연구, 코드, 모델 및 데이터 세트 공개.
- Meta Video Seal (신경 비디오 워터마킹을 위한 최첨단 포괄적인 프레임워크 데모 및 코드), Meta Omni Seal Bench (신경 워터마킹 전용 리더보드), Meta Watermark Anything 모델 (허용 라이선스로 재출시) 공개.
- Meta Motivo (가상 구현 휴머노이드 에이전트의 움직임을 제어하는 행동 파운데이션 모델), Flow Matching 가이드 및 코드베이스, Meta Explore Theory-of-Mind (ToM 추론을 위한 프로그램 기반 적대적 데이터 생성), Meta Large Concept Models (LCM, 새로운 언어 모델링 패러다임), Meta Dynamic Byte Latent Transformer (계층적 바이트 레벨 모델), Meta Memory Layers at Scale 연구 결과 및 코드, Meta Image Diversity Modeling 연구 업데이트 및 텍스트-이미지 생성 모델 평가 툴박스, Meta CLIP 1.2 공개.
NVIDIA, NVIDIA-Ingest
링크, 2025/3/1
- NVIDIA Ingest는 PDF, Word, PowerPoint 문서 구문 분석을 지원하는 확장 가능하고 성능 지향적인 문서 콘텐츠 및 메타데이터 추출 마이크로서비스임.
- 다운스트림 생성 애플리케이션에 사용하기 위해 특수화된 NVIDIA NIM 마이크로서비스를 사용하여 텍스트, 표, 차트 및 이미지를 찾고 컨텍스트화하고 추출함.
- 문서를 페이지로 분할하는 프로세스를 병렬화하여 콘텐츠를 분류하고 (표, 차트, 이미지, 텍스트), 개별 콘텐츠로 추출하고, 광학 문자 인식 (OCR)을 통해 컨텍스트화하여 잘 정의된 JSON 스키마로 변환함.
- 추출된 콘텐츠에 대한 임베딩 계산을 선택적으로 관리하고, 벡터 데이터베이스 Milvus에 저장을 선택적으로 관리할 수 있음.
- JSON 작업 설명, 문서 페이로드 및 해당 페이로드에 수행할 수집 작업을 허용하고 작업 결과를 검색할 수 있도록 지원하며, 결과는 기본 문서에서 추출된 객체에 대한 메타데이터 목록과 처리 주석 및 타이밍/추적 데이터를 포함하는 JSON 딕셔너리임.
- PDF, Docx, pptx 및 이미지를 지원하며, 처리량과 정확성 간의 균형을 맞추기 위해 각 문서 유형에 대한 여러 추출 방법을 지원함 (예: PDF 문서의 경우 pdfium, Unstructured.io 및 Adobe Content Extraction Services를 통한 추출 지원).
- 텍스트 분할 및 청킹, 변환 및 필터링, 임베딩 생성, 이미지 스토리지를 포함한 다양한 유형의 사전 및 사후 처리 작업을 지원함.
unclecode, crawl4ai
링크, 2024/12/15
- Crawl4AI는 웹 크롤링 및 데이터 추출을 간소화하여 LLM 및 AI 애플리케이션에 즉시 사용할 수 있도록 지원하는 무료 오픈소스 라이브러리임.
- 빠른 성능 (유료 서비스보다 뛰어남), LLM 친화적인 출력 형식 (JSON, 정리된 HTML, 마크다운), 여러 URL 동시 크롤링 지원, 모든 미디어 태그 (이미지, 오디오, 비디오) 추출, 외부 및 내부 링크 추출 기능 제공.
- 페이지에서 메타데이터 추출, 인증, 헤더 및 페이지 수정을 위한 사용자 정의 훅, 사용자 에이전트 사용자 정의, 페이지 스크린샷 캡처, 크롤링 전에 사용자 정의 JavaScript 실행 기능 지원.
- 실시간, 비용 효율적인 성능으로 6배 빠른 결과 제공.
- 세션 관리, 프록시 및 원활한 데이터 액세스를 위한 사용자 정의 훅 제공.
- 비용이 많이 드는 모델에 대한 의존도를 줄이기 위해 고급 알고리즘 사용.
- Docker 및 클라우드 통합에 적합한 완전한 오픈 소스 라이브러리.
Jio Oh 외, Better Think with Tables: Leveraging Tables to Enhance Large Language Model Comprehension
링크, 2024/12/22
- LLM은 복잡한 쿼리 (특히 여러 조건이 포함된 현실 세계 시나리오)에 어려움을 겪음.
- 테이블을 활용하여 중간 사고를 수행하도록 LLM을 지원하는 “Thinking with Tables” 기술 제안.
- LLM이 정보를 테이블로 구성하도록 유도하는 사전 지시를 통해 평균 40.29%의 상대적 성능 향상, 더 높은 견고성 및 다양한 요청, 조건 또는 시나리오에 대한 일반화 가능성을 달성함.
- 데이터 구조화 수준이 모델에 미치는 영향을 비교하기 위해 네 가지의 서로 다른 구조화 수준을 소개하고 결과를 비교함.
Brian J Chan 외, Don’t Do RAG: When Cache-Augmented Generation is All You Need for Knowledge Tasks
링크, 2024/12/20
- 검색 증강 생성 (RAG)은 외부 지식 소스를 통합하여 언어 모델을 향상시키는 강력한 접근 방식으로 주목받고 있지만, 검색 지연 시간, 문서 선택 오류 가능성, 시스템 복잡성 증가와 같은 문제가 있음.
- 긴 컨텍스트 창을 특징으로 하는 대규모 언어 모델 (LLM)의 등장으로 실시간 검색을 우회하는 대안적인 패러다임인 캐시 증강 생성 (CAG)을 제안함.
- 제한적이고 관리 가능한 크기의 문서 또는 지식과 같은 관련 리소스를 LLM의 확장된 컨텍스트에 미리 로드하고 런타임 매개변수를 캐싱하는 방식임.
- 추론 중에 모델은 추가 검색 단계 없이 이러한 미리 로드된 매개변수를 활용하여 쿼리에 응답함.
- CAG는 검색 지연 시간을 제거하고 컨텍스트 관련성을 유지하면서 검색 오류를 최소화함.
- 여러 벤치마크에 대한 성능 평가 결과, 특히 제한된 지식 기반을 가진 특정 애플리케이션의 경우 CAG가 기존 RAG 파이프라인을 능가하거나 보완하는 시나리오를 강조함.
- CAG는 RAG에 대한 간소화되고 효율적인 대안을 제공하며, 복잡성을 줄이면서 유사하거나 우수한 결과를 달성할 수 있음을 시사함.
Sources
This GPT assists users by creating a detailed daily newspaper in Korean based on provided links. It follows these steps: read the content, summarize each content with detailed points, and write a report. The report format is:
(today’s date in 년 월 일) AI 소식,
Summary
(overall short summary, make summary with good details. for Summary section, explain the details starting with company name, e.g. OpenAI에서는 ~~~를 발표하였습니다.)
company name, Title
링크, date
- detailed summary1, (개조식 문체 사용)
- detailed summary2, (개조식 문체 사용)
… - detailed summary N, (개조식 문체 사용)
company name, Title
링크, date
링크, date,
- detailed summary1, (개조식 문체 사용)
- detailed summary2, (개조식 문체 사용)
… - detailed summary N, (개조식 문체 사용)
…
1 | ### |
Generated Code:
class TreeNode:
def init(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
Continues next page…
Agents
September 2024 17
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
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 | Snippet 1. Code Interpreter Extension can generate and run Python code |
기술적으로 최대한 자세하게 적어. 9개의 기사가 있고 하나도 빼먹지 말고 적어.