안녕하세요. 저는 파이썬을 활용한 데이터 분석 및 인공지능 서비스 개발 실무를 하고 있습니다. 관심 있는 주제를 찾아서 공부하고 그 내용들을 많은 분들과 공유하기 위해 꾸준하게 책을 집필하고 인공지능 강의를 진행해 오고 있습니다.
[이력]
현) 핀테크 스타트업 CEO
전) 데이콘 CDO
전) 인덕대학교 컴퓨터소프트웨어학과 겸임교수
Kaggle Competitin Expert, 빅데이터 분석기사
[강의]
NCS 등록강사 (인공지능)
SBA 서울경제진흥원 새싹(SeSAC) 캠퍼스 SW 교육 ‘우수 파트너 선정’ (Python을 활용한 AI 모델 개발)
금융보안원, 한국전자정보통신산업진흥회, 한국디스플레이산업협회, 대구디지털산업진흥원 등 강의
서울대, 부산대, 경희대, 한국외대 등 국내 주요 대학 및 국내 기업체 교육 경험
[집필]
파이썬 머신러닝 판다스 데이터 분석(정보문화사) : https://zrr.kr/x1ec
파이썬 딥러닝 머신러닝 입문(정보문화사) : https://zrr.kr/RPaE
파이썬 딥러닝 텐서플로(정보문화사) : https://zrr.kr/PrVN
실무자를 위한 파이썬 Python 100제(정보문화사) : https://zrr.kr/4fyq
랭체인(LangChain) 입문부터 응용까지 (위키독스) : https://wikidocs.net/book/14473
[유튜브] 판다스 스튜디오 : https://youtube.com/@pandas-data-studio?si=XoLVQzJ9mmdFJQHU
강의
로드맵
전체 1수강평
- graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)
- RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)
게시글
질문&답변
과거 채팅이력을 LLM에 줄때 포멧
안녕하세요. 판다스 스튜디오입니다. LangChain의 invoke 메서드는 HumanMessage와 AIMessage 객체들로 구성된 리스트를 내부적으로 처리합니다. 이러한 메시지 객체들을 각 모델 제공업체가 요구하는 형태로 자동 변환합니다. 제시해주신 코드처럼 HumanMessage와 AIMessage가 번갈아 나오는 리스트 형태가 정확한 채팅 이력 전달 방식이며, LangChain이 메시지 순서와 역할을 자동으로 인식하여 적절히 처리합니다. 따라서 별도의 형태 변환 없이 바로 LLM에 전달해도 문제없이 작동합니다.감사합니다.
- 0
- 1
- 16
질문&답변
OpenAIEmbeddings모델이 사용하는 토크나이저는 뭘까요?
안녕하세요. 판다스 스튜디오입니다. OpenAI 임베딩 모델도 텍스트를 토크나이징한 후 처리합니다. 임베딩 모델도 내부적으로는 transformer 기반 아키텍처를 사용하기 때문에, 텍스트를 바로 처리할 수 없고 토큰 단위로 변환해야 합니다.OpenAI의 임베딩 모델들(text-embedding-3-small 등)은 BPE(Byte Pair Encoding) 알고리즘을 기반으로 하는 tiktoken 토크나이저를 사용합니다. 감사합니다.
- 0
- 2
- 19
질문&답변
ChatPromptTemplate의 from_messages로 메세지를 구성할 때 system은 어떻게 설정해야하나요?
안녕하세요. 판다스 스튜디오입니다. 쉽게 설명드리면, System 메시지는 시스템 운영자(개발자) 입장에서 AI에게 요구하는 사항을 적용하고, User 메시지는 사용자의 요청을 처리한다고 구분하시면 됩니다. 따라서, System 메시지는 AI 모델의 행동과 성격을 설정하는 역할을 하고, User 메시지는 실제 사용자의 입력을 나타냅니다.
- 0
- 2
- 17
질문&답변
create_retrieval_chain에서 context는 지정된 인자인가요?
안녕하세요. 판다스 스튜디오입니다. 여기서 {context}는 create_retrieval_chain에서 내부적으로 정해진 고정 변수가 맞습니다. retriever에서 가져온 문서들을 자동으로 context라는 키로 combine_docs_chain에 전달하므로, 프롬프트에서는 반드시 {context}를 사용해야 합니다. 마찬가지로 {input}도 사용자 질문을 받는 고정된 키 이름입니다. 이 변수명들을 바꾸면 체인이 제대로 작동하지 않으므로 그대로 사용해야 합니다.감사합니다.
- 0
- 1
- 15
질문&답변
vectorstore의 as_retriever와 similarity_search는 같은 로직인가요?, 사용되는 검색 알고리즘은 뭔가요?
안녕하세요. 판다스 스튜디오입니다. 먼저 as_retriever()와 similarity_search()는 같은 내부 로직을 사용합니다. as_retriever() 메서드는 vectorstore를 retriever 인터페이스로 변환하는 역할을 하며, 내부적으로는 여전히 vectorstore의 similarity_search 메서드를 호출합니다. 따라서 두 방법 모두 동일한 검색 알고리즘과 유사도 측정 방식을 사용한다고 보시면 됩니다.차이점은 사용 방식과 편의성에 있습니다. similarity_search()는 vectorstore의 기본 검색 메서드로 직접적인 접근을 제공하는 반면, as_retriever()는 LangChain 에서 다른 컴포넌트와 통합 사용할 수 있는 표준화된 retriever 인터페이스를 제공합니다. 따라서, 편의성 차원에서는 as_retriever()가 더 유리합니다. RAG 파이프라인이나 체인 구성에서 다른 retriever들과 동일한 방식으로 사용할 수 있습니다. 검색 알고리즘의 경우 Chroma를 포함해서 많은 vectorstore들이 HNSW(Hierarchical Navigable Small World)라는 그래프 기반 인덱스 구조를 구현합니다. 구체적인 내부 구현은 각 vectorstore 제공업체에 따라 다를 수 있지만, 기본적인 원리는 같다고 보시면 됩니다. 감사합니다.
- 0
- 2
- 11
질문&답변
모델의 성능에 따라서 선택하는 도구가 많이 차이 나나요?
안녕하세요. 판다스 스튜디오입니다. 모델의 성능과 도구 선택 간에는 실제로 상당한 차이가 있을 수 있습니다.가장 큰 원인으로는 모델의 추론 능력의 차이가 있습니다. 일반적으로 더 큰 모델일수록 복잡한 상황에서 어떤 도구가 가장 적절한지 더 잘 판단합니다. 그리고, 컨텍스트를 이해하는 능력에도 차이가 있습니다. 다음과 같이 시스템 프롬프트에 도구별 사용 가이드라인을 명확하게 제시하는 방식으로 테스트해보시고, 원하시는 동작이 되지 않는다면 상위 모델로 변경하셔야 할 것 같습니다. (Ollama의 경우 일반적으로 양자화 방식으로 경량화된 모델로 한계가 있을 수 있습니다.)도구 선택 우선순위: 1. 백과사전적 정보 → wiki_search, wiki_summary 2. 최신 뉴스/정보 → search_web 감사합니다.
- 0
- 2
- 29
질문&답변
neo4j의 장점
안녕하세요. 판다스 스튜디오입니다. Neo4j와 같은 그래프 데이터베이스를 사용하는 주요 이유는 관계 탐색 성능이라고 말씀드릴 수 있습니다.예를 들면, 관계형 DB에서 "친구의 친구가 좋아하는 영화" 같은 복잡한 관계를 찾으려면 여러 JOIN이 필요해 처리 속도가 느려지지만, Neo4j는 노드 간 직접 연결로 빠르게 탐색합니다.특히 3단계 이상의 깊은 관계나 실시간 추천에서 SQL 대비 압도적인 성능 차이를 보입니다.또한 Cypher 쿼리가 관계 표현에 더 직관적이어서 개발 생산성도 높아지는 장점도 있습니다. 따라서 관계 기반의 탐색이 필요한 경우라면, 그래프 데이터베이스를 사용하는 것을 고려할 수 있습니다. 감사합니다.
- 0
- 2
- 23
질문&답변
Fan-in 시 여러개 노드에서 하나로 병합되는 과정에서 질문 입니다.
네, 맞습니다!LangGraph에서는 한 노드로 들어오는 여러 개의 엣지가 있을 때, 해당 노드는 모든 선행 노드들이 실행을 완료할 때까지 대기합니다. State 일관성 보장 등 병렬 처리의 결과를 안전하게 집계하기 위해서입니다.
- 0
- 3
- 29
질문&답변
Fan-in 시 여러개 노드에서 하나로 병합되는 과정에서 질문 입니다.
네, 맞습니다!LangGraph에서는 한 노드로 들어오는 여러 개의 엣지가 있을 때, 해당 노드는 모든 선행 노드들이 실행을 완료할 때까지 대기합니다. State 일관성 보장 등 병렬 처리의 결과를 안전하게 집계하기 위해서입니다.
- 0
- 3
- 29
질문&답변
환경설정 질문
안녕하세요. 판다스 스튜디오입니다. 강의 들으시는 분들이 설치하는 버전이 다를 수 있어서 캐럿(^) 버전으로 호환되는 업데이트를 허용했습니다. 실무에서는 마이너 버전까지 고정해서 쓰시는 것이 더 좋을 것 같습니다. 감사합니다.
- 0
- 2
- 24