
이번 주에는 외부 연사 특강이 있었다.
컴퓨터 비전 엔지니어 한서우 님께서 '문제 중심 사고(Problem First)를 통한 AI 기술의 실무 적용법'이라는 주제로 강연하셨다.
최근 많은 회사들이 서비스나 사내 툴에 AI를 도입하려고 하지만, AI라는 도구를 제대로 이해하고 적절히 활용하는 회사는 많지 않다고 생각한다.
이로 인해 문제 해결 수단인 AI가 주객전도 되어, AI가 불필요한 상황에서도 이를 도입하려는 경우가 종종 발생하기도 한다ㅠㅠ
이번 특강은 엔지니어 입장에서 이러한 상황을 어떻게 인식하고 대처해야 하는지에 관한 내용이었다.
나도 어쩌다가 AI 프로젝트를 맡게 된 입장인데, 기술도 중요하지만 AI를 잘 모르는 사람들과의 소통이 가장 중요하다고 생각한다. 왜냐하면 실제로 답변의 경계를 명확히 정하거나 UI/UX 수정만으로도 AI를 도입하지 않고 해결할 수 있는 문제가 많기 때문이다. 이번 특강은 실무에서 많은 도움이 되는 내용이었다.
기술은 수단 목적이 x
ai를 도입하기 전 체크 리스트
1. 문제의 본질은 무엇인가
2. 현상과 원인을 명확히 구분했는가
3. 현재 사용 중인 해결책이 있는가
성공 기준 설정 단계
대안 비교 단계
✨좋은 개발자 = 비즈니스 관점에서 문제를 해결할 수 있는 개발자
정확도 != 서비스 성공 현실 데이터의 예외 상황을 고려해야함
정확도보다는 할루시네이션 방지하는 것이 서비스에서 젤 중요한 문제
기술 문제와는 별개 사람 간의 소통이 중요하다
비개발자와 소통하기 좋게 기술적 언어를 풀어서 언어를 간소화해서 관점 이해시키기
내가 연구하고 싶은 주제가 있을 때 사이드 프로젝트 하는 것이 좋다.
CTO 경험에서 배운 점
주니어 개발자에게 하고 싶은 말
Q. 아직 AI가 완전히 대체할 수 없는 분야가 있을까요?
휴먼 터치가 필요한 곳
창의적 통찰이 필요한 전략 수립, 데이터가 부족한 신제품, 신분야
Q. ai를 빠르게 접하고 적용하고 싶은사람에게 적합한 이직처
ai를 실험하고 주도적으로 적용할 수 있는 회사가 좋다.
모든 회사가 ai 쓰려고 하는데 ai를 실험적으로 쓰려고 하는건지 진짜 진지하게 하는건지 확인이 필요함
면접 때 ai를 도입한 이유, 프로덕트의 미래에 대해 확인이 필요하다.
데이터 기반 전환이 빠른 산업 - 유통/물류 자동화, 헬스케어, 제조 공정 최적화, 미디어, 콘텐츠 분야가 AI를 도입하기 좋은 도메인이다.
저번주 회고 때도 썼지만 원래는 PDF 기반 QnA 봇을 만드려다가 과제 제출 때문에 급하게 이미지 분석 챗봇을 만들었었다.
그래서 이참에 이미지 분석 챗봇으로 주제를 바꿀까 고민을 했었는데 아래와 같은 고민들이 있었다.
1. 기능 구현에 시간이 오래걸린다. (이미지 분석 + 답변 생성 + 패션 관련 데이터 수집)
2. 내가 확실히 가져가고 싶은 것 = RAG, Langchain, 파인튜닝하는 법 에 집중하고 싶음
3. 바로 실무에 AI를 적용해야하는 상황
=> 좀 늦었지만 이러한 것들을 빠르고 확실하게 배워갈 수 있는 PDF QnA 챗봇을 만들기로 했다.
다행히 PDF 기반 챗봇은 많은 사람들이 한 번 씩은 만들어보는 주제라서 깃헙에서 자료를 쉽게 구할 수 있었다.
https://github.com/HarryKane11/langchain/blob/main/streamlit_refer.py
이 분의 코드를 참고했다.
ConversationalRetrievalChain 를 사용해서 대화 기록을 참조음 기존의 gpt-4o-mini가 어느정도 성능이 보장되어 있어서 그냥 as_retriever 을 사용해도 대체로 잘 작동한다.
하지만 종종 한정된 답변을 하거나 쓸모 없는 정보들도 끌고 오는 경우가 있었는데, 이를 검색 기법을 통해 개선해봤다.
https://youtu.be/J2AsmUODBak?si=l4cnrkVIrYuPuZfK
https://youtu.be/ehP4vphl_Us?si=EGSETEKzGPCsrd3j
실전! RAG 고급 기법 - Retriever (1),(2)
모두의AI님의 영상들을 참고했다.

🦜멀티 쿼리 검색기
🦜앙상블 검색기
나는 앙상블 검색기에 Sparse, Dense, 멀티 쿼리 이 3가지 검색기를 혼합해서 사용했다!
아래는 내가 작성한 코드다
# 스파스 검색기
def get_sparse_retriever(text_chunks):
return BM25Retriever.from_documents(
text_chunks,
)
# 덴스 검색기는 `as_retriever()`을 쓰기로 했다.
# 멀티 쿼리 검색기
def get_multiquery_retriever(vectorestore, model):
llm = ChatOpenAI(model=model, api_key=st.secrets["OPENAI_KEY"], temperature=0)
### 서치 타입을 mmr로 해서 답변의 다양성을 중시하도록 했다.
retriever = vectorestore.as_retriever(search_type="mmr")
multiquery_retriever = MultiQueryRetriever.from_llm(
retriever=retriever,
llm=llm,
)
return multiquery_retriever
# 앙상블 검색기
def get_ensemble_retriever(sparse, dense, multi):
return EnsembleRetriever(
retrievers=[sparse, dense, multi],
weights=[0.5, 0.3, 0.2],
)
그리고 get_ensemble_retriever 로 생성한 앙상블 검색기를 AI 요청할 때 retriever 파라미터 값에 넣어주면 된다.
🦜결과 확인! (with 랭스미스)
LangSmith를 쓰면 랭체인으로 구성된 AI 요청 파이프라인을 쉽게 추적할 수 있다.

질문은 "딥시크가 뭐야" 였다.
스파스 검색기 결과

덴스 검색기 결과

서로 다른 청크들을 끌고 온 것을 확인할 수 있었다.
멀티 쿼리 검색기 결과

멀티 쿼리 검색기의 경우에는 LLM을 한 번 거쳐서 3가지의 유사 질문을 만든다.
그리고 각 질문에 대한 문서들을 검색하는 방식이다.



최종 출력값
딥시크(DeepSeek)는 중국의 스타트업으로, AI 모델인 DeepSeek-R1을 개발하여 주목받고 있습니다. 이 모델은 오픈소스 기반으로, AI 독립성을 강화하고 있으며, 특정 작업에서 오픈AI의 GPT-4와 경쟁할 수 있는 성능을 보이고 있습니다. 그러나 개인정보 보호와 보안 문제로 인해 국제적으로 사용이 제한되고 있습니다.
| 주요 내용 | 설명 |
|-----------|------|
| **회사명** | 딥시크(DeepSeek) |
| **모델** | DeepSeek-R1 |
| **특징** | 오픈소스 기반, AI 독립성 강화 |
| **성능** | GPT-4와 경쟁 가능 |
| **우려사항** | 개인정보 보호, 보안 문제 |
| **국제적 반응** | 사용 제한 조치 확대 |
딥시크는 2025년 1월 20일에 DeepSeek-R1 모델을 출시하며 AI 산업에서 중요한 역할을 하고 있습니다. 이 모델은 강화학습과 전문가 혼합(MoE) 기술을 활용하여 효율성을 극대화하고 있으며, 벤치마킹 결과에서 오픈AI의 GPT-4와 유사한 성능을 기록했습니다. 그러나 중국의 사이버 보안법에 따라 데이터 처리 방식에 대한 우려가 있으며, 여러 국가에서 개인정보 보호 문제로 인해 딥시크의 사용을 제한하는 조치가 취해지고 있습니다.
최대한의 관련 문서들을 잘 끌어내는 것들을 확인할 수 있다.
그러나 개선해야할 점 :
1. 멀티 쿼리 검색기에서 레이턴시가 좀 길다.
3.71초 정도인데, 솔직히 가장 중요한 핵심 정보는 sparse, dense에서 다 가져오기 때문에.. 꼭 질문을 3가지를 더 가져올 필요는 없어보인다.
암튼 어떻게 RAG를 개선해나가야할 지는, 해당 답변의 성능을 평가해봐야하는데
이것은 다음주에 하도록 하겠다.
항해 플러스에서 현재 백엔드, 프론트엔드 코스 수강생을 모집 중입니다!
추천 코드를 입력하시면 등록금 20만원을 할인받을 수 있어요. (커리어 코칭 제외)
관심 있으신 분들은 아래 링크에서 확인해보세요
추천 코드: 9T8Rkv
https://hanghae99.spartacodingclub.kr/hhplus-hub