Longest Common Subsequence | 알고달레
알고달레
블로그에서 읽기 : https://velog.io/@soonmac/hh-plus-ai-week7
## 외부 특강 - AI를 처음 시작했을 때 알았더라면 좋았을 것들
이번 주에는 외부 연사 특강이 있었다.
컴퓨터 비전 엔지니어 한서우 님께서 '문제 중심 사고(Problem First)를 통한 AI 기술의 실무 적용법'이라는 주제로 강연하셨다.
최근 많은 회사들이 서비스나 사내 툴에 AI를 도입하려고 하지만, AI라는 도구를 제대로 이해하고 적절히 활용하는 회사는 많지 않다고 생각한다.
이로 인해 문제 해결 수단인 AI가 주객전도 되어, AI가 불필요한 상황에서도 이를 도입하려는 경우가 종종 발생하기도 한다.
이번 특강은 엔지니어 입장에서 이러한 상황을 어떻게 인식하고 대처해야 하는지에 관한 내용이었다.
나도 어쩌다가 AI 프로젝트를 맡게 된 입장인데, 기술도 중요하지만 AI를 잘 모르는 사람들과의 소통이 가장 중요하다고 생각한다. 왜냐하면 실제로 답변의 경계를 명확히 정하거나 UI/UX 수정만으로도 AI를 도입하지 않고 해결할 수 있는 문제가 많기 때문이다. 이번 특강은 실무에서 많은 도움이 되는 내용이었다.
## 1. ai를 꼭 써야하는 문제인가?
기술은 수단 목적이 x
- 최신 기술 적용 자체를 목표로
- 비즈니스보다는 기술에
ai를 도입하기 전 체크 리스트
1. 문제의 본질은 무엇인가
2. 현상과 원인을 명확히 구분했는가
3. 현재 사용 중인 해결책이 있는가
성공 기준 설정 단계
- 성공의 기준이 무엇인가?
- 현실적인 목표와 기대치를 설정했는가?
대안 비교 단계
- ai외에 고려할 수 있는 다른 해결책 찾아보기
- 대안, 설명, 장점, 단점, 리소스 등을 정리하고 비교
✨좋은 개발자 = 비즈니스 관점에서 문제를 해결할 수 있는 개발자
❗ 2. 정확도만 높다고 좋은 모델은 아니다
정확도 != 서비스 성공 현실 데이터의 예외 상황을 고려해야함
정확도보다는 할루시네이션 방지하는 것이 서비스에서 젤 중요한 문제
## 3. 협업이 곧 실력이다
기술 문제와는 별개 사람 간의 소통이 중요하다
비개발자와 소통하기 좋게 기술적 언어를 풀어서 언어를 간소화해서 관점 이해시키기
- 결과 ,효과 위주로 말하기 목표 명확화
- 백그라운드 설명, 숫자
- 우리가 왜 이걸하는지 문제에 대해 얘기함
## 4. 사이드 프로젝트와 기술 리더십 이야기
내가 연구하고 싶은 주제가 있을 때 사이드 프로젝트 하는 것이 좋다.
CTO 경험에서 배운 점
- 조직 규모에 따라 기대하는 역할이 다르다
- 작은 규모에서는 기술 문화 확립
- 내가 빨리 성장하고 싶으면 다른 도메인의 사람들과 협업을 하라
주니어 개발자에게 하고 싶은 말
- 회사가 알아주길 기다리지 말고, 내 목표와 원하는 경험을 명확히 표현하라
- 문제에 해결하는 능력에 집중
- 회사가 풀고싶어하는 문제가 무엇이고, 그걸 어떻게 해결해야할까. 기술이 언제나 답은 아니다
- 실패를 두려워하지 말고 우선 행동하기
- 요즘 취업시장이 힘든데 나는 그냥 인사팀 메일로 이력서를 보냈다. 적극적으로 접근해보길
### 사전질문
Q. 아직 AI가 완전히 대체할 수 없는 분야가 있을까요?
휴먼 터치가 필요한 곳
- 감정적 맥락과 공감이 중요한 커뮤니케이션
- 갈등 중재, 불만 응대, 민감한 상대(병원, 정신 케어 등) 윤리적 판단이 필요한 곳
- 공정성과 맥락 사후책임까지 고려해야할 때
창의적 통찰이 필요한 전략 수립, 데이터가 부족한 신제품, 신분야
Q. ai를 빠르게 접하고 적용하고 싶은사람에게 적합한 이직처
ai를 실험하고 주도적으로 적용할 수 잇는 회사가 좋다. 즉 ai 프로덕트를 판매하는 회사네
모든 회사가 ai 쓰려고 하는데 ai를 실험적으로 쓰려고 하는건지 진짜 진지하게 하는건지 확인이 필요함
면접 때 ai를 도입한 이유, 프로덕트의 미래에 대해 확인이 필요하다.
데이터 기반 전환이 빠른 산업 유통/물류 자동화 헬스케어 제조 공정 최적화 미디어, 콘텐츠 분야가 AI를 도입하기 좋은 도메인이다.
🎠 ## 개인 프로젝트 근황
저번주 회고 때도 썼지만 원래는 PDF 기반 QnA 봇을 만드려다가 과제 제출 때문에 급하게 이미지 분석 챗봇을 만들었었다.
그래서 이참에 이미지 분석 챗봇으로 주제를 바꿀까 고민을 했었는데 아래와 같은 고민들이 있었다.
1. 기능 구현에 시간이 오래걸린다. (이미지 분석 + 답변 생성 + 패션 관련 데이터 수집)
2. 내가 확실히 가져가고 싶은 것 = RAG, Langchain, 파인튜닝하는 법 에 집중하고 싶음
3. 바로 실무에 AI를 적용해야하는 상황
=> 좀 늦었지만 이러한 것들을 빠르고 확실하게 배워갈 수 있는 PDF QnA 챗봇을 만들기로 했다
다행히 PDF 기반 챗봇은 많은 사람들이 한 번 씩은 만들어보는 주제라서 깃헙에서 자료를 쉽게 구할 수 있었다.
### ConversationalRetrievalChain
https://github.com/HarryKane11/langchain/blob/main/streamlit_refer.py
이 분의 코드를 참고했다.
1. ConversationalRetrievalChain
를 사용해서 대화 기록을 참조
2. 벡터 스토어에서 긁어온 원본 문서를 포함
### 멀티쿼리 검색기, 앙상블 검색기
음 기존의 gpt-4o-mini가 어느정도 성능이 보장되어 있어서 그냥 as_retriever
을 사용해도 대체로 잘 작동한다.
하지만 종종 한정된 답변을 하거나 쓸모 없는 정보들도 끌고 오는 경우가 있었는데, 이를 검색 기법을 통해 개선해봤다.
https://youtu.be/J2AsmUODBak?si=l4cnrkVIrYuPuZfK
https://youtu.be/ehP4vphl_Us?si=EGSETEKzGPCsrd3j
실전! RAG 고급 기법 - Retriever (1),(2)
모두의AI님의 영상들을 참고했다.
🦜멀티 쿼리 검색기
* 사용자의 질문을 다양한 유사 질문으로 재생성하여 좀 더 문맥을 잘 이해한 답변을 제공한다.
* 예시로 추상적인 질문에 대한 한정적인 답변을 피하기 위해, llm을 통해 다양한 관점에서 해석하게끔 한다.
🦜앙상블 검색기
* 여러 검색기를 합쳐서 쓰는 검색기이다.
* Sparse 검색기와 Dense 검색기를 조합하는 것이 국룰이다.
* Sparse 검색기는 문서마다 갖고 있는 단어의 출연 빈도를 통해 단어가 많이 겹치는 문서를 가져온다.
* 빠르고 간편하지만, 같은 의미를 가진 다른 단어는 제대로 처리하지 못하는 단점이 있다.
* Dense 검색기는 반대로 맥락을 고려해서 이음 동의어도 처리할 수 있다.
* 그러나 사용자의 의도와는 조금 맞지 않는 문서들을 끌고 올 수 있다.
* 앙상블 검색기는 키워드 기반과 맥락 기반의 검색 결과를 결합한 후, 재정렬해서 사용자에게 보다 더 적합한 정보를 제공한다.
나는 앙상블 검색기에 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 요청 파이프라인을 쉽게 추적할 수 있다.
(이건 블로그 내용을 확인해주세요)
최종 출력값
```
딥시크(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를 개선해나가야할 지는, 해당 답변의 성능을 평가해봐야하는데
이것은 다음주에 하도록 하겠다.
### 프로젝트 앞으로 해야할 것!
1. Open LLM 경량화해서 파인튜닝하기
1. 어떤 데이터셋을 준비해야할까 고민하기
1. 벡터 스토어에 있는 청크들을 기반으로 OpenAI를 통해 데이터셋을 만들려고 생각중
2. LangSmith로 평가 플로우 만들기
------
항해 플러스에서 현재 백엔드, 프론트엔드 코스 수강생을 모집 중입니다!
추천 코드를 입력하시면 등록금 20만원을 할인받을 수 있어요. (커리어 코칭 제외)
관심 있으신 분들은 아래 링크에서 확인해보세요
추천 코드: 9T8Rkv
https://hanghae99.spartacodingclub.kr/hhplus-hub
#항해99 #항해플러스 #AI #AI개발자 #항해플러스AI후기 #LLM #RAG #Langchain #streamlit #파인튜닝
다음 내용이 궁금하다면?
이미 회원이신가요?
2025년 5월 18일 오전 8:07
직장인으로서 10년 정도 일하게 되면 피할 수 없는 순간이 바로 조직에서 리더의 역할을 받게 되는 인사발령이다. 팀원이었을 때는 내게 주어진 업무를 내가 가진 능력과 주변 동료들의 도움으로 해결하고, 그에 합당한 평가와 보상을 기다리며, 나쁘지 않는 리워드와 내 위치에 안도하며 또 새해를 맞이하고 하루하루를 버텨나가는 과정에 큰 어려움이 없다.
... 더 보기코
... 더 보기하나부터 열까지 리더가 상세히 설명해 주기를 바라는 구성원이 있습니다. 반대로 큰 얼개만 듣고 나머지는 자율적으로 하고 싶어 하는 경우도 있죠. 회식에 참여하는 것을 너무나 힘겨워 하는 구성원이 있는 반면, 동료들과 함께 시간을 보내며 가까워지는 것을 원하는 구성원도 있습니다.
... 더 보기프로덕트 매니저(PM)로 일하면서 늘 지표 이야기를 듣게 됩니다. 대부분 PM은 선행지표(leading indicator)와 후행지표(lagging indicator)의 개념을 잘 이해하고 있습니다. 하지만 선행지표에 영향을 미치는 '인풋(input) 지표, '아웃풋(o
... 더 보기외국어를 사용해서? 돈을 더 많이 벌어서? 새로운 기회가 많아서? 글로벌 경력을 쌓을 수 있어서?
... 더 보기