Python Dictionary의 순서 보장
들어가며 Python Dictionary는 key-value pair를 저장하는 유용한 자료구조 입니다. 그런데 Dictionary의 Key 순서는 과연 보장이 될까요? 아래 문제를 한 번 풀어봅시다. example_dict = { 'a': 1, 'b': 2, 'c': 3 } if example_dict.keys() == ['a','b','c']: print('
들어가며 Python Dictionary는 key-value pair를 저장하는 유용한 자료구조 입니다. 그런데 Dictionary의 Key 순서는 과연 보장이 될까요? 아래 문제를 한 번 풀어봅시다. example_dict = { 'a': 1, 'b': 2, 'c': 3 } if example_dict.keys() == ['a','b','c']: print('
들어가며 이번 시간에는 LLM이 검색 엔진과 상호작용하며 추론(Reasoning)을 수행할 수 있는 강화 학습 프레임워크 Search-R1을 소개합니다. 최근 OpenAI의 Deep Research나 여러 최신 연구에서 알 수 있듯, LLM의 추론 능력뿐 아니라 실시간 검색과 결합된 Reasoning이 큰 주목을 받고 있습니다. 하지만 기존의 RAG(Retrieval-Augmented Generation)이나 Tool-Use 방식은 * 복잡한 다단계
파이썬은 흔히 '인터프리터 언어'라고 불린다. 🤔: "파이썬은 코드를 한 줄씩 읽고 실행하는 인터프리터 언어이다." C++이나 Go 같은 언어는 소스 코드를 기계어로 번역하는 컴파일 과정을 거치지만, 파이썬은 코드를 한 줄씩 읽어 실행된다는 설명이다. 하지만 과연 Python을 단순히 "인터프리터 언어"라고 정의할 수 있을까? 이
✒️일을 시작할 수 있는 비결은 그것이 쉽지 않을 것임을 인정하는 것이다. 운이 좋게도 침실을 만드는 일 외에 아무런 할 일도 없는 날은 오지 않는다. 솔직하게 인정하자. 그리고 어려운 일을 할 때 떠오르는 생각과 감정을 통제할 수 있는 전략을 짜자. 시작을 어려워하는 이유는 힘든 감정과 생각에 대응할 전략을 구상하는 대신 이를
The Bitter Lesson The Bitter Lesson Rich Sutton March 13, 2019 AI 연구 70년에서 배울 수 있는 가장 큰 교훈은 연산력을 활용하는 일반적인 방법론이 결국 가장 효과적이며, 그것도 큰 차이로 효과적이라는 점입니다. 이러한 결과의 근본적인 이유는 무어의 법칙, 더 정확히는 연산 단위당 비용이 지속적으로 기하급수적으로 감소한다는 일반화된 법칙 때문입니다. 대부분의
✒️한마디로 세상에 대해 생각하라. 전쟁, 폭력, 자연재해, 인재, 부패..., 상황은 안 좋고, 문제는 점점 심각해지는 것만 같다. 안 그런가? 부자는 부자가 되고 가난한 사람은 더 가난해지며, 빈곤층은 더욱 늘어간다. 극적인 조치를 취하지 않으면 자원은 곧 동나고 말 것이다. 적어도 서양인 대부분이 언론에서 보고 머릿속에 담아둔 그림은 그렇다. 나는 그것을 '
들어가며 이번 시간에는 Evaluating Very Long-Term Conversational Memory of LLM Agents 논문에 대해 살펴봅니다. 최근에 ChatGPT를 필두로 사람과 LLM 간의 대화가 활발해지면서, LLM Agent가 사용자와 그동안 했던 대화를 기억(Memory)하고 답변에 적재적소로 활용할 수 있는 능력 또한 중요해지고 있습니다. 하지만 기존의 데이터셋은 대화 세션의 길이가 충분히 길지 않아, 긴
✒️솔직히 말해서 내가 요즘 들어 가장 많이 우울해 하는 것은 내 인생에 양감이 없다는 것이다. 내 삶의 부피는 너무 얇다. 겨자씨 한 알 심을 만한 깊이도 없다. 이렇게 살아도 되는 것일까. - 모순 (양귀자)모순 - 예스24초판이 나온 지 벌써 15년이 흘렀지만 이 소설 『모순』은 아주 특별한 길을 걷고
깨진 틈이 있어야 그 사이로 빛이 들어온다 | 프리드리히 니체 | 페이지2북스- 교보ebook“그대들의 희망이 삶을 밝히는 등불이 되게 하라” 철학자들의 철학자 니체가 전하는 삶의 지혜 * “현대 철학은 대부분 니체 덕으로 살아왔고, 여전히 니체 적으로 살아가고 있다.”_질 들뢰즈 * “이 책은 철학과 문학, 예언이 일체를 이룬 예술작품이다.”_칼 야스퍼스 * “우리의 질문은 니체를
✒️지혜의 9할은 시간에 대해 현명해지는 것이다. - 시어도어 루즈벨트당신이 너무 바쁘다는 착각 | 스즈키 유 저자, 하진수 번역 | 길벗- 교보ebook더 이상 시간에 쫓기지 않는 사람이 되는 법**베스트셀러 저널리스트 스즈키 유 신작** 시간을 효율적으로 사용하고 싶다는 것은 인간의 아주 오래된 욕망이다. 시간을 낭비하는 것이 인생을 낭비하는 것처럼 느껴지기도 한다. 그렇기에 시간을
이번 시간에는 Beyond Retrieval: Embracing Compressive Memory in Real-World Long-Term Conversations 논문을 소개합니다. 최근에 AI가 사용자와 그동안 나누었던 대화를 바탕으로 사용자의 과거와 취향 등을 기억하고, 이를 활용하여 답변할 수 있는 개인화 AI가 주목을 받고 있습니다. 이를 위해서는 대화 기록을 적재 적소로 정리하고 사용할 수 있는 memory 기술이 필요한데요, 본 논문에서는
Google Search Is Dying(There is good discussion on this article on Hacker News and Reddit)DKB BlogDmitri Brereton 2022년 2월, HackerNews와 Reddit을 뜨겁게 달군 글이 있다. "Google Search is Dying."이라는 다소 자극적인 제목의 글로 왜 최근에 구글 검색 결과가 망가지고 있는지 다루고 있다. 한국에서도 유튜버 코딩
Research
이번 시간에는 Personalized dialogue generation을 RAG와 결합하여 시도한 "Learning Retrieval Augmentation for Personalized Dialogue Generation" 논문을 살펴봅니다. 특히 최근에 개인화된 AI가 주목 받고 있는데요, AI가 사용자의 페르소나, 정보, 성격 등을 반영한다면 더욱 풍성하고 도움이 되는 답변을 생성할 수 있습니다. 이를 Personalized dialogue generation이라고 하는데요. 연구팀은 어떻게 해당 문제를
Life
✒️발상을 바꿔야 한다. 앞으로는 '불안해하지 말아야지'가 아니라 '불안과 더불어 살아가야지'라고 생각하자.나는 왜 생각이 많을까? | 홋타 슈고 | 서사원- 교보ebook머릿속의 스위치를 끄고 싶을 때 보는 뇌과학 이야기, 심플한 사고법은 아무나 가질 수 없다! 그러나 누구나 해 볼 수 있다! 짧게 생각하고 빠르게 행동하기 위한 필독서!
Life
✒️성과를 올리는 모든 사람들은 목표를 달성하기 위한 실행 능력을 갖추고 있다. 이 실행 능력은 기업에서 일하든, 정부기관에서 일하든, 병원의 관리자이든, 대학의 학장이든 똑같다.피터 드러커 자기경영노트 | 피터 드러커 | 한국경제신문- 교보ebook어떻게 ‘성과를 내는 경영 리더’가 되는가 지식작업자를 위한 변화와 혁신의 5가지 법칙! 이 책의 주제는 성과를 내는 능력을 향상시키기 위한
Life
✒️"기록한다는 것은 어지럽혀진 방을 멀끔히 정리해 언제고 자유롭게 활동할 수 있는 나만의 공간을 만드는 일이다."거인의 노트 | 김익한 | 다산북스- 교보ebook“살던 대로 살 것인가, 변화를 꾀할 것인가!” 인생의 전환점을 만들어 줄 단 하나의 무기, 기록! 사람은 태어난 순간부터 성장한다. 단순히 지식을 쌓고 똑똑해지는 것부터 기술적ㆍ직업적으로 일을 잘하게 되는
Research
이번 시간에는 “ColBERTv2: Effective and Efficient Retrieval via Lightweight Late Interaction” 논문을 살펴봅니다. 기존 ColBERT에서는 query와 document 간의 token-level interaction과 document token 임베딩은 미리 저장해두고, inference 시에 불러와서 사용하는 late interaction을 통해 성능과 속도를 모두 챙길 수 있었는데요. 하지만 late interaction을 위해 모델의 space footprint (공간 사용량)이 10배 이상
Engineering
이번 시간에는 Python으로 비동기 (asynchronous)를 처리하는 방법에 대해 알아봅니다. 비동기, 프로그래밍을 하다보면 정말 많이 마주치는 개념인데요. Python 상에서 비동기 프로그래밍을 어떻게 할 수 있을지 함께 차근차근 살펴보아요! 비동기 (asynchronous)란 뭔가요? “The world is asynchronous” 무려 2022년 AWS re:invent Keynote에서 등장한 문구입니다. 키노트 링크 도대체 비동기가 무엇이길래, AWS
Research
이번 시간에는 “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 방법에 비해 훨씬 느리고
Research
이번 시간에는 COIL: Revisit Exact Lexical Match in Information Retrieval with Contextualized Inverted List 논문에 대해서 살펴봅니다. COIL은 기존 BM25와 같은 Exact lexical match 방식과 ColBERT와 같은 Dense Retriever의 장점을 합친 모델입니다. 이를 통해 적은 컴퓨팅 비용으로도 당시의 SOTA deep LM Retriever과 유사한 성능을 내는 점이 특징입니다. 논문은 링크에서 확인할
Research
이번 시간에는 Retrieval corruption attack을 방어하는 RobustRAG를 제안한 Certifiably Robust RAG against Retrieval Corruption 논문에 대해 알아봅니다. 최근 공격자가 RAG system에 adversarial passage를 주입하여 의도하지 않은 retrievel 결과를 유도하는 기법들이 많이 연구되고 있습니다. 관련 논문 리뷰 링크 해당 논문은 이러한 공격 방법을 방어하는 프레임워크를 제안한 논문으로, 어떻게 공격을 막았는지 한번
Research
이번 시간에는 Dense Retrieval 시스템의 취약점을 이용한 corpus poisoning attack을 제안한 “Poisoning Retrieval Corpora by Injecting Adversarial Passages” 논문을 살펴봅니다. 본 연구에서는 corpus poisoning attack을 통해 적대적인 passage를 corpus에 삽입하여 retrieval이 의도하지 않은 공격자의 passage를 출력하도록 하는 방법을 제안합니다. 최근 RAG가 주목 받으며 다양한 시스템에 Retrieval 시스템이 적용되고 있는데, 이러한
Research
이번 시간에는 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를 한 번에 입력하여 다양한 작업을 수행할 수
Research
이번 시간에는 RAG와 Long-Context LLMs의 성능을 비교하고, 두 방법을 혼합한 Self-Route를 제안한 논문을 살펴봅니다. 최근에 출시된 Gemini 1.5와 같은 모델들은 Context window size가 1 Million에 달하는 등 매우 많은 토큰을 한 번에 입력 받을 수 있습니다. 이는 영문 소설 8권을 한 번에 입력할 수 있는 양입니다. 이러한 점을 활용해