Medium으로 블로그 이전했습니다.

Medium으로 블로그를 이전했습니다. 클릭하여 이동해 주세요.

Recent articles.
🎓 RESUMAI

[RESUMAI] 6. 서비스 개발 시작 - DRF 카카오 소셜로그인, 이것만 보면 한번에 끝!!

지난번까지 데모를 마치고, 이제 제대로 RESUMAI 서비스를 개발하기 시작했다. 핵심 아이디어는 이전에 데모에서 보여준 아이디어로, 백엔드 개발을 본격적으로 시작하게 되었다.본 프로젝트는 Django Rest Framework (DRF)로 개발하였으며, 프론트엔드는 React를 사용했다. (나는 백엔드 개발만 맡았다.)본 글은 DRF로 카카오 소셜로그인을 구현하며 겪었던 어려움을 모두 담았다. 아마 DRF로 처음 소셜로그인을 개발해보려는 사람들도 본 글만 보면 원하는 기능을 모두 구현할 수 있을 것이다 !! 1. Models카카오 로그인을 구현하기에 앞서 먼저 user model을 정의해야 한다. 사실 이 model은 프로젝트마다 다르기 때문에, 기본적인 것들을 제외하면 개발자가 따로 customize..

📚 논문

Beyond Candidates: Adaptive Dialogue Agent Utilizing Persona and Knowledge

Abstract dialogue agents에 대한 연구가 이어지는 가운데, 앞선 연구들은 페르소나 (persona)와 지식 (knowledge)을 내장된 데이터로부터 가져와 답변했다. 그러나 실제 세계에서 사람들이 대화할 때, 사람들은 준비된 후보 문장들을 가지고 답변하기보다는, 대화에 맞는 의미적 concept을 마음에 가지고 대화한다. 이런 대화 양식에 착안하여, 본 논문에서는 문장 후보들이 주어지지 않은 상황에서의 적응적 대화 시스템을 제안한다. 논문에서 제안한 모델은 단편적인 정보만을 가지고 일관적이고 관련 있는 persona 설명을 생성하며, 논리적인 답변을 위해 관련된 지식을 확인한다. Introduction 일반적인 대화에서는 대화 주제와 대화자를 기반으로 대화의 의미론적 개념을 마음에 품..

🎓 RESUMAI

[RESUMAI] 5. 자기소개서 생성 데모 서비스

지난 글에서 작업한 것을 바탕으로, 데모 서비스를 만들었다. 이번 글은 해당 데모를 만들 때의 기록이다. 1. RAG 과정 구현 지난번에는 pinecone에 벡터 데이터를 저장하는 작업까지 완료했으니, 이제는 내가 작성한 글과 유사도가 높은 k개의 항목을 가져와, 프롬프트에 예시로 넣어, 새로운 자기소개서를 생성하는 일만 남았다. 1. Retrieve 먼저, query를 embedding 하고, pinecone에서 유사한 3개의 항목을 가져온다. 코드는 다음과 같다. if st.button("생성하기!"): pinecone.init(api_key=st.secrets["PINECONE_API_KEY"], environment="gcp-starter") index = pinecone.Index("resuma..

🎓 RESUMAI

[RESUMAI] 4. 데이터 크롤링과 vectorDB 저장

GITHUB GitHub - resum-ai/resume-crawler: Resumai의 크롤러 코드를 작성한 레포지토리입니다. Resumai의 크롤러 코드를 작성한 레포지토리입니다. Contribute to resum-ai/resume-crawler development by creating an account on GitHub. github.com 지난 글에 이어 데이터를 모두 크롤링하고, pinecone에 저장하는 작업을 진행했다. 사실 어떤 DB를 사용할까 고민했던 이유는, vectorDB에 vector만 저장할 수 있는 줄 알았기 때문이었다. 하지만 찾아보니, 정말 다행스럽게도 metadata로 string, integer, bool 정도의 기본 데이터를 저장할 수 있다는 것을 알게 되었다. 그..

CS224N

[CS224N] 6, 7, 8. RNN, LSTM, Seq2seq, Attention & Transformers

종강 후에 2023년 버전에 맞춰 새롭게 업데이트된 CS224N 강의를 수강 중이다. 확실히 요즘 강의들이 훨씬 더 최신 정보들도 많고, 그에 따라 강의의 질도 좋은 것 같다. 흘러가듯이 들었던 과거와는 다르게, 이번에는 중요한 정보들을 이해하고 다시 개념 확인차 블로그에 정리해보고 있다. 이번 글에서는 RNN의 도입부터 LSTM, Transformer까지 오게 된 과정과 각각의 모델들에 대해서 작성해 보았다. 위 모델에 대해서 들어만 보고 잘 알지는 못하신 분들에게 강추. 1. RNN Simple RNN 지난 글에서도 작성했다시피, RNN의 핵심은 같은 가중치 W를 반복하여 사용함으로써 스스로에게 피드백을 주는 방식이다. 기본적인 구조는 아래와 같다. Training RNN 그럼 이런 구조의 RNN은 ..

🎓 RESUMAI

[RESUMAI] 3. RAG의 도입과 자기소개서 크롤링

드디어 기말고사가 끝났다..어쩌면 여유로웠고, 어쩌면 힘들었던 한 학기였던 것 같다. 이제 개발해야지. RAG의 도입 지난번에는 프롬프트를 실험해본 결과를 기록했다. 그 결과, 3-shot 프롬프트가 가장 좋은 퍼포먼스를 보였다. 해당 결과를 기반으로, 나는 RAG 기법을 이용해야겠다고 생각했다. RAG는 Retrieval Augmented Generation의 약자로, 다음 그림과 같은 3단계로 구성돼 있다. Retrieve 먼저 Retrieve 단계에서는 query를 embedding 한 후, vectorDB로부터 유사성이 높은 context를 가져오는 과정이다. 주로 책 안의 내용을 챗봇에게 질문하고자 할 때, 책 내용을 pdf로 만들어 첨부하고, 질문하는 내용에 대해 Retrieve 과정을 거쳐 ..

장영준
youngjangjoon