안녕하세요! 세이 심플입니다. 카카오임팩트와 모두의연구소가 함께 '돕는 기술'로 사회문제를 해결하는 테크포임팩트에 대해서 아시나요? https://techforimpact.io/
이번에 테크포임팩트의 누구나리포터 LAB에 프롬프트 엔지니어로 새로 참가하게 되었습니다!
누구나리포터 LAB은 AI 챗봇으로 데이터 기반 의사결정돕기 프로젝트를 진행할 예정입니다. 위 프로젝트는 소셜벤처 '(주)누구나데이터'와 함께, 기부자 데이터 분석 솔루션 '오늘의리포트'를 활용한 LLM 기반 챗봇 리포트 서비스를 개발하는 프로젝트입니다. 이를 통해 데이터 분석 인력이 없는 비영리단체들에게 마치 주니어 분석가를 채용한 것과 같은 수준의 모금 전략 인사이트를 제공하는 것을 목표로 합니다.
위 내용은 아래 모두연의 모집글에서 참고한 내용입니다.
https://modulabs.co.kr/product/lab-17894-2024-09-05-150155/
누구나데이터 랩에는 한 달에 한 번 블로그, 링크드인 등 외부에 글을 작성하는 그라운드 룰이 있습니다. 그래서 간만에 블로그 글을 작성해 보았는데요. 새롭게 상기되기도 하고 회사 업무와는 다른 활동이기 때문에 글을 적을 수 있을 뿐만 아니라 권장되기까지 하니 좋은 룰인 것 같습니다.
10월에는 초기 준비 단계를 거쳐 프로젝트 설계 및 개발 단계를 위한 준비를 하고 있습니다. AI 파트에선 빅쿼리 스터디, Text to sql SOTA 모델 리서치, 오픈소스 모델별 비용 및 속도 리서치, 랭체인 리서치 초기셋팅 진행 등의 업무를 진행하고 있는데요, 저는 요약 리포트 생성 프롬프트 작성을 진행하였습니다.
랩 내에서 랭체인 v0.3을 사용하기로 하여서 프롬프트를 작성하기 전에 랭체인 v0.3에 대한 조사를 진행하였습니다.
일단 ChatGPT에게 두 버전의 차이점에 대해서 물어보았습니다.
LangChain v0.2 vs v0.3 주요 차이점 요약
1. 주요 기능 추가
- 에이전트 시스템 개선: v0.3에서는 에이전트의 유연성과 확장성이 향상되었으며, 새로운 에이전트 타입과 사용자 정의 에이전트 생성을 위한 API가 추가되었습니다.
- 멀티모달 지원: 텍스트 외에도 이미지, 오디오 등 다양한 데이터 유형을 처리할 수 있어, 보다 풍부한 애플리케이션 개발이 가능해졌습니다.
- 통합 데이터베이스 지원 강화: PostgreSQL, MongoDB 등 다양한 데이터베이스와의 통합이 개선되어 데이터 관리가 용이해졌습니다.
2. 성능 및 최적화
- 속도 향상: 체인 실행 속도가 전반적으로 개선되어 대규모 데이터 처리 시 효율성이 높아졌습니다.
- 메모리 사용 최적화: 메모리 사용량이 감소하여 자원 소모를 줄이면서도 높은 성능을 유지할 수 있습니다.
- 비동기 처리 강화: 비동기 작업 처리 능력이 향상되어 여러 작업을 동시에 효율적으로 처리할 수 있습니다.
3. API 변경 및 개선
- 함수 및 클래스 리팩토링: 일부 함수와 클래스가 구조적으로 변경되어 사용법이 달라졌으며, Chain 클래스가 모듈화되어 특정 기능을 독립적으로 사용할 수 있게 되었습니다.
- 새로운 설정 옵션 추가: 사용자 설정을 세밀하게 조정할 수 있는 옵션들이 추가되어, 개발자의 유연한 설정이 가능해졌습니다.
- 에러 핸들링 개선: 에러 메시지가 더 구체적이고 이해하기 쉽게 개선되어 디버깅이 용이해졌습니다.
4. 문서화 및 예제 강화
- 자세한 튜토리얼 및 코드 예제 추가: 새로운 기능과 사용법을 다룬 튜토리얼과 다양한 사용 사례의 코드 예제가 추가되어 개발자가 실제 애플리케이션에 적용하기 쉬워졌습니다.
- API 문서 개선: API 문서가 체계적으로 정리되어 필요한 정보를 빠르게 찾을 수 있게 되었습니다.
5. 호환성 및 마이그레이션
- 백워드 호환성 이슈: 일부 API 변경으로 인해 기존 v0.2 코드는 v0.3에서 호환되지 않을 수 있어, 마이그레이션 시 코드 수정을 필요로 합니다.
- Deprecation 알림: v0.2에서 사용되던 몇몇 기능이 v0.3에서 deprecated 되었으므로, 대체 기능으로 전환이 필요합니다.
- 버전 관리: 업그레이드 시 종속성을 신중히 관리하고, 주요 변경 사항을 반영한 테스트를 충분히 수행해야 합니다.
6. 커뮤니티 및 지원 강화
- 포럼 및 실시간 채팅 지원 확대: 사용자들이 질문하고 답변을 주고받을 수 있는 커뮤니티 지원이 강화되었습니다.
- 플러그인 및 확장 기능 공식 지원: 커뮤니티에서 개발한 다양한 플러그인과 확장 기능이 공식적으로 지원되어 LangChain의 기능을 더욱 확장할 수 있습니다.
주요 기능은 에이전트 시스템 개선, 멀티모달 지원, 통합 데이터베이스 지원 강화입니다. 세가지 내용을 봤을 때 v0.3에선 부가 기능과 사용성을 위주로 많은 개선이 이뤄진 것으로 보입니다. GPT는 거짓말을 할 수 있으므로 실제 랭체인의 문서를 살펴보겠습니다.
https://python.langchain.com/docs/versions/v0_3/
공식문서의 변경사항
아래 글은 랭체인 공식문서의 변경사항입니다.
모든 패키지에서 Pydantic을 v1 -> v2로 업그레이드 했다고 합니다. 기존에 pydantic_v1를 브릿지로 활용해 환경변수를 사용했던 부분들이 이젠 필요없다고 합니다.
그래서 Pydantic 1이 곧 지원되지 않을 예정이니 참고하면 좋을 것 같습니다. 또한 파이썬 3.8 버전이 2024년 10월 이후로 지원되지 않을 예정이라 하니 레거시 버전의 파이썬을 사용하고 계신 분들은 버전 업그레이드를 고려하셔야 할 것 같습니다.
- langchain-community는 랭체인을 사용하면서 많이 봤던 랭체인의 모듈입니다. 이 모듈에서 각 특징에 맞는 langchain-x 패키지로 옮겼다고 합니다. 모듈화 및 리팩토링을 진행했다고 볼 수 있겠네요. 기존 api는 deprecated 되어 사용할 순 있지만 모든 라이브러리가 그렇듯 언젠간 사용이 불가능해질 수 있으니 코드 업데이트도 고려해봐야 될 것 같습니다.
- 간단한 툴 바인딩 함수가 생겼습니다. 모델을 선언할 때 .bind_tools 메소드를 통해 기존의 툴을 통합할 수 있습니다.
- 파운데이션 모델 생성자, 속도 제한기, 메세지 유틸리티가 추가되었습니다.
- 사용자 정의 이벤트를 전송하는 기능이 추가되었습니다.
- 레거시 체인을 더 이상 사용하지 않으며 사용되지 않는 체인은 표시됩니다. 이와 함께 마이그레이션 가이드를 제공합니다. langchian v1.0.0에서는 레거시 체인이 사라질 예정이니 코드 업데이트를 고려해봐야 될 것 같습니다.
결론
v0.2.0에서 v0.3.0으로의 변화는 확실히 새로운 기능의 추가 보다는 전체적인 코드 리팩토링 및 편의성을 다듬은 것 같습니다. 또한 LLM이 얼추 자리를 잡으면서 패키지의 전체적인 모습을 함께 잡아가는 느낌입니다.
LLM이 이미 시장에서 모습을 드러내고 있으며 기능적으로도 많은 부분이 정의되고 있다는 사실이라 생각합니다.
저는 개인적으로 앞으로 LLM에서 발전해나갈 방향은 ACTION 부분이라고 생각하는 만큼 다음 버전에서는 어떠한 상호작용에 대한 기능의 발전이 있지 않을까 조심스래 추측(기대?) 해봅니다.
읽어주셔서 감사합니다.
'활동' 카테고리의 다른 글
[테크포임팩트] 누구나데이터 활동일지 - 02 (feat. kakao cloud) (0) | 2024.12.03 |
---|