FacerAin's blog

We're here to put a dent in the universe.

Python async 혼내주기 - 1편: 비동기란 뭔가요?
Engineering

Python async 혼내주기 - 1편: 비동기란 뭔가요?

이번 시간에는 Python으로 비동기 (asynchronous)를 처리하는 방법에 대해 알아봅니다. 비동기, 프로그래밍을 하다보면 정말 많이 마주치는 개념인데요. Python 상에서 비동기 프로그래밍을 어떻게 할 수 있을지 함께 차근차근 살펴보아요! 비동기 (asynchronous)란 뭔가요? “The world is asynchronous” 무려 2022년 AWS re:invent Keynote에서 등장한 문구입니다. 키노트 링크 도대체 비동기가 무엇이길래, AWS
5 min read
[논문 리뷰] CITADEL: Conditional Token Interaction via Dynamic Lexical Routing for Efficient and Effective Multi-Vector Retrieval
Research

[논문 리뷰] CITADEL: Conditional Token Interaction via Dynamic Lexical Routing for Efficient and Effective Multi-Vector Retrieval

이번 시간에는 “CITADEL: Conditional Token Interaction via Dynamic Lexical Routing for Efficient and Effective Multi-Vector Retrieval” 논문을 살펴봅니다. 최근 sparse (e.g., BM25) 와 dense (e.g., DPR) retriever의 장점을 결합한 Multi-vector retriever method가 다양한 검색 태스크에서 좋은 성능을 보여주고 있습니다. 하지만 이러한 방법은 Single-vector retriever 방법에
14 min read
[논문 리뷰] COIL: Revisit Exact Lexical Match in Information Retrieval with Contextualized Inverted List
Research

[논문 리뷰] COIL: Revisit Exact Lexical Match in Information Retrieval with Contextualized Inverted List

이번 시간에는 COIL: Revisit Exact Lexical Match in Information Retrieval with Contextualized Inverted List 논문에 대해서 살펴봅니다. COIL은 기존 BM25와 같은 Exact lexical match 방식과 ColBERT와 같은 Dense Retriever의 장점을 합친 모델입니다. 이를 통해 적은 컴퓨팅 비용으로도 당시의 SOTA deep LM Retriever과 유사한 성능을 내는 점이 특징입니다. 논문은 링크에서 확인할
7 min read
[논문 리뷰] Certifiably Robust RAG against Retrieval Corruption
Research

[논문 리뷰] Certifiably Robust RAG against Retrieval Corruption

이번 시간에는 Retrieval corruption attack을 방어하는 RobustRAG를 제안한 Certifiably Robust RAG against Retrieval Corruption 논문에 대해 알아봅니다. 최근 공격자가 RAG system에 adversarial passage를 주입하여 의도하지 않은 retrievel 결과를 유도하는 기법들이 많이 연구되고 있습니다. 관련 논문 리뷰 링크 해당 논문은 이러한 공격 방법을 방어하는 프레임워크를 제안한 논문으로, 어떻게 공격을 막았는지 한번
6 min read
[논문 리뷰] Poisoning Retrieval Corpora by Injecting Adversarial Passages
Research

[논문 리뷰] Poisoning Retrieval Corpora by Injecting Adversarial Passages

이번 시간에는 Dense Retrieval 시스템의 취약점을 이용한 corpus poisoning attack을 제안한 “Poisoning Retrieval Corpora by Injecting Adversarial Passages” 논문을 살펴봅니다. 본 연구에서는 corpus poisoning attack을 통해 적대적인 passage를 corpus에 삽입하여 retrieval이 의도하지 않은 공격자의 passage를 출력하도록 하는 방법을 제안합니다. 최근 RAG가 주목 받으며 다양한 시스템에 Retrieval 시스템이 적용되고 있는데, 이러한
7 min read
[논문 리뷰] Can Long-Context Language Models Subsume Retrieval, RAG, SQL, and More?
Research

[논문 리뷰] Can Long-Context Language Models Subsume Retrieval, RAG, SQL, and More?

이번 시간에는 Long-context language model(LCLMs)의 장점과 이를 평가할 수 있는 벤치마크인 LOFT를 제안한 Can Long-Context Language Models Subsume Retrieval, RAG, SQL, and More? 논문을 소개합니다. Long-context language model(LCLMs)은 전통적인 Retriever이나 Database와 같은 외부 툴에 의존하는 방식이 아닌, 전체 corpus를 한 번에 입력하여 다양한
12 min read
[논문 리뷰] Retrieval Augmented Generation or Long-Context LLMs? A Comprehensive Study and Hybrid Approach
Research

[논문 리뷰] Retrieval Augmented Generation or Long-Context LLMs? A Comprehensive Study and Hybrid Approach

이번 시간에는 RAG와 Long-Context LLMs의 성능을 비교하고, 두 방법을 혼합한 Self-Route를 제안한 논문을 살펴봅니다. 최근에 출시된 Gemini 1.5와 같은 모델들은 Context window size가 1 Million에 달하는 등 매우 많은 토큰을 한 번에 입력 받을 수 있습니다. 이는 영문 소설 8권을 한 번에 입력할 수 있는 양입니다. 이러한
9 min read
[논문 리뷰] Gecko: Versatile Text Embeddings Distilled from Large Language Models
Research

[논문 리뷰] Gecko: Versatile Text Embeddings Distilled from Large Language Models

이번 시간에는 구글 딥마인드에서 발표한 Gecko 논문을 리뷰합니다. Gecko는 LLMs로부터 지식 증류 (knowledge distillation)를 통해 학습한 text embedding 모델입니다. 작은 모델 사이즈로도 큰 모델과 비견되는 높은 성능을 내는 것이 특징입니다. 논문은 링크에서 확인할 수 있습니다. Abstract * Gecko라는 compact하고 versatile한 text embedding 모델을 제안 * retriever에서 LLMs로부터의 지식 증류를 활용하여 강력한
8 min read
[논문 리뷰] Rethinking the Role of Token Retrieval in Multi-Vector Retrieval
Research

[논문 리뷰] Rethinking the Role of Token Retrieval in Multi-Vector Retrieval

이번 시간에는 구글 딥마인드 팀에서 발표한 “Rethinking the Role of Token Retrieval in Multi-Vector Retrieval” 논문을 소개하고자 합니다. 최근 LLM의 부상과 함께 RAG (Retrieval-Augmented Generation)이라는 기술도 많은 주목을 받고 있는데요, 이는 외부의 신뢰할 수 있는 지식 베이스에서 유저의 질문 (query)과 관련된 지식 소스를 참고하여 답변을 생성하는
15 min read
오픈소스로 알아보는 Soft Delete
Engineering

오픈소스로 알아보는 Soft Delete

들어가며 이번 시간에는 azure-sdk-for-python의 PR을 통해 soft-delete 기법을 알아보겠습니다. 😄 어떤 점이 궁금했나요? 위 PR은 기존 코드에서 test를 위해 비활성화했던 soft-delete 기능을 다시 활성화하며, test code들을 수정한 내용입니다. 해당 PR을 읽어보던 중soft delete키워드가 문득 궁금해져 찾아보게 되었습니다. Soft Delete란? Soft Delete는 데이터베이스에서 자주 사용하는 용어로, 데이터를
3 min read
AI 모델에게 특정 기억을 잊게 할 수는 없을까? - Unlearning
Research

AI 모델에게 특정 기억을 잊게 할 수는 없을까? - Unlearning

모두의 연구소 PERSONA LAB에서 진행한 세미나의 내용들을 참고하여 정리하였습니다 😄 들어가며 이번에 NeurIPS’23에서 구글이 무려 $50,000 상당의 캐글 컴페티션을 개최했는데요 (대회 링크), 컴페티션의 주제는 “Machine Unlearning” 입니다. Machine Learning은 많이 들어봤어도, Machine unlearning은 생소한 개념인데요, 어떤 주제인지 함께 알아봅시다 😄 Machine Unlearning? Machine unlearning은 말 그대로 기존에 모델이 학습했던 특정
5 min read
오픈소스로 알아보는 Monkey Patch
Engineering

오픈소스로 알아보는 Monkey Patch

들어가며 어느날 azure-sdk-for-python의 한 PR 을 살펴보며 Monkey Patch 관련하여 궁금한 내용을 정리해보았습니다. 😄 👉 해당 PR 링크: https://github.com/Azure/azure-sdk-for-python/pull/31265 어떤 점이 궁금했나요? PR을 쭉 읽어보던 중 아래 내용이 눈에 띄었습니다. 골자는 다음과 같습니다. 1. Contributor가 어떤 기능을 개선하기 위해 작업을
4 min read
[논문 리뷰] Generative Agents: Interactive Simulacra of Human Behavior
Research

[논문 리뷰] Generative Agents: Interactive Simulacra of Human Behavior

들어가며 이번 시간에는 Generative Agents: Interactive Simulacra of Human Behavior 논문에 대해 함께 알아보도록 하겠습니다. 논문 링크 본 논문은 인간의 행동을 모방할 수 있는 Agent를 제안합니다. 많은 분들이 Sims나 동물의 숲과 같은 게임을 즐겨해보셨을 것인데요. 이러한 게임에서는 가상의 샌드박스 세계에서 자신의 캐릭터를 만들고, 다양한 NPC 들과 상호작용하며 게임을 즐길 수
28 min read
2023년 하반기 리뷰
Life Featured

2023년 하반기 리뷰

들어가며 또 올 것만 같지 않던 2024년 새해가 밝았습니다. 🥲 오랜만에 복학하고 첫 한 해이기도 했고, 좋은 사람들도 많이 만나고 뜻 깊은 경험들을 할 수 있었던 한 해였습니다. 무엇보다도 이번 한 해는 나를 돌아보고, 앞으로 나아갈 길을 찾은 것 같다라는 점에서 내면의 큰 성장을 이룬 것 같아 뿌듯합니다. 그럼 이번 2023년
14 min read
경희대 학생들을 위한 대화형 검색 엔진: KHUGPT
Engineering

경희대 학생들을 위한 대화형 검색 엔진: KHUGPT

KHUGPT, 어떤 서비스인가요? KHUGPT는 경희대학교 학생들을 위한 대화형 검색 엔진 서비스입니다. 예를 들어 사용자가 “올해 소프트웨어 관련 대회 정보 알려줘”, “올해 겨울에 모집하는 해외 연수 프로그램 있을까?”, “오늘 학식 알려줘” 등의 교내 정보와 관련된 질문을 하면 적절한 답변과 관련 링크를 제공해주는 서비스입니다. 따라서 학생들은 친구에게 물어보듯이 교내 정보를 쉽고 빠르게
12 min read
2023년 상반기 리뷰
Life

2023년 상반기 리뷰

2023 상반기 회고 2022년 회고를 작성한게 엊그제 같은데, 어느덧 1학기 마무리를 앞두고 있습니다…! (2022년 리뷰 2편은 아직도 못썼…) 전역 후 오랜만에 복학한 만큼 정신 없이 한 학기를 보냈는데요, 한나름 뿌듯하고 뜻 깊은 일들을 많이 이룬 한 학기였던 것 같습니다! 다시 초심도 다잡을겸, 어떻게 한 학기를 보냈는지 회고와 함께 소개해볼게요 😊 함께
9 min read
Canary deployment 파헤치기
Engineering

Canary deployment 파헤치기

이번 시간에는 인스턴스 배포 방법 중 하나인 카나리 (Canary) 배포에 대해 알아봅니다. 무중단 배포? 본격적으로 카나리 배포를 알아보기 전에 먼저 무중단 배포에 대해 살펴봅시다. 우리가 새로 업그레이드 된 버전의 서비스를 사용자에게 배포하려면 어떻게 해야할까요? 가장 간단한 방법은 기존 버전의 서버를 잠시 멈추고, 새로운 버전의 서비스로 업그레이드 하는 것입니다. 하지만 이
15 min read
좋은 팀 문화 만들기
Life

좋은 팀 문화 만들기

이번 시간에는 제가 부스트캠프 AITech 4기를 진행하며, 함께했던 팀 지구코딩실에서 어떻게 협업을 했었는지 작성했던 글을 공유드리고자 합니다. 팀에 협업 문화를 어떻게 도입하면 좋을지 고민하시는 분들에게 도움이 되셨으면 좋겠습니다! 시작하며 이번 대회에서 지구코딩실의 주요 목표 중 하나는 “우리 함 제대로 된 협업을 해보자” 였습니다! 이를 위해 대회 전 일주일 간 지구코딩실이
6 min read
Huggingface transformers 컨트리뷰션 후기
Engineering Featured

Huggingface transformers 컨트리뷰션 후기

1. 개요 안녕하세요! 이번에 우연히 허깅페이스의 transformer 라이브러리에 contribution 하게 되었습니다. contribution이 처음이라 참 이런저런 우여곡절이 있었는데요. contribution의 과정을 소개 드려보고자 합니다 😊 2. 무엇을 컨트리뷰션 하신거죠? 컨트리뷰션 링크 사실 대단한 건 아니고, 사소한 주석 오타 수정에 기여했습니다! 이번에 허깅페이스 트랜스포머 분석 프로젝트 중에, ElectraTokenizer 의 Docstring이 Electra가 아닌 BERT로 잘못
10 min read
2022년 회고 - 1편
Life

2022년 회고 - 1편

2022 회고 2023년 토끼 띠의 한해가 밝았습니다. 🐰 블로그를 처음 시작하고 2021년 회고를 작성했던게 엊그제 같은데, 벌써 2022 회고를 작성하게 되었습니다. 이번 한 해는 (드디어!) 군대도 전역하고, 네이버 부스트캠프 aitech도 참여하는 등 나름 굵직굵직한 일들이 많이 있었습니다. 특히 부스트캠프에서 좋은 동료들도 만나고, 값어치를 매길 수 없는 소중한 경험들, 지식들을 키울 수
13 min read
Pythonic 코드를 위한 10가지 가이드
Engineering

Pythonic 코드를 위한 10가지 가이드

이번 시간에는 좋은 파이썬 코드를 위한 파이써닉한 코드를 위해 꼭 알아야 할 TOP 10에 대해 살펴봅니다. 1. PEP8 스타일 가이드 따르기 파이썬은 PEP8 (Python Enhancement Proposal)이라는 코드 스타일 가이드가 있습니다. 공백, 들여쓰기, 문법 등을 어떻게 하면 좋을지 상세하게 작성되어 있습니다. 그렇다고 이 모든 규칙들을 외울 필요는 없습니다. 바로 Black,
8 min read
[논문 리뷰] DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter
Research

[논문 리뷰] DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter

이번 시간엔 BERT의 지식 증류 버전인 DistilBERT를 살펴봅니다. 최근 모델 사이즈가 커짐에 따라 성능도 비약적으로 향상하였지만, 컴퓨팅 자원이 많이 들고, 실제 서비스에 활용하기 어렵다는 단점도 생겼습니다. 해당 논문에서 지식 증류 기법 통해 이 문제를 어떻게 해결하였는지 확인해보세요 :) 논문은 링크에서 확인할 수 있습니다. Abstract * 최근 NLP 분야에서 큰 사이즈의 프리트레인 모델들을
8 min read
[논문 리뷰] Fine-tune BERT for Extractive Summarization
Research

[논문 리뷰] Fine-tune BERT for Extractive Summarization

이번 시간에는 추출 요약을 수행하는 BERTSUM 모델에 대해 알아보겠습니다. 기존 BERT 구조에서 큰 변화없이 단순한 응용으로 추출 요약이 가능한 것이 인상적입니다. 논문은 링크에서 확인할 수 있습니다. Abstract * 연구팀은 BERTSUM이라는 추출 요약을 할 수 있는 BERT 모델을 제시 * 관련 요약 태스크에서 SOTA 성능을 달성 Introduction 문서 요약은 한 문서에서 중요한 정보를
7 min read