본문 바로가기

전체 글

문장 벡터 요약 방법: Multi-Head Pooling 딥러닝 모델에서 문장이나 문서 전체를 하나의 벡터로 표현하는 과정은 매우 중요하다. 일반적으로는 [CLS] 토큰이나 평균 풀링(average pooling), 최대값 풀링(max pooling) 등을 사용하지만, 이 방식들은 각 단어의 중요도를 고려하지 못한다는 한계가 있다. 즉, 모든 토큰을 동일하게 취급한다는 점이다. 하지만 실제 문장의므는 특정 단어의 기여도가 훨씬 클 수도 있다. 참고: E5 모델은 문장 단위의 의미를 얻기 위해 평균 풀링을 수행함def average_pool(last_hidden_states: Tensor, attention_mask: Tensor) -> Tensor: last_hidden = last_hidden_states.masked_f.. 더보기
[Observational Studies] Propensity Score Matching(PSM)과 Endogeneity의 관계 Experiment가 인과추론의 Gold Standard이지만, 실무에서는 관측데이터로부터 인과추론을 해야할 경우가 존재한다. 그 중에서 Matching 방식에 대한 생각을 정리해본다. 1. Propensity Score Matching(PSM)과 Endogeneity의 관계2. Propensity Score Matching이 Endogeneity를 어떻게 낮출 수 있는가? 1. Propensity Score Matching(PSM)과 Endogeneity의 관계PSM은 처치를 받을 확률, 즉 propensity score를 사전에 모델링한 후, 그 확률이 유사한 관측치들끼리 매칭하는 방법이다. 이렇게 하면 처치 집단과 통제 집단이 공변량 기준으로 유사해지기 때문에, 비교 가능한 구조를 만들 수 있다. .. 더보기
3. Causality가 LLM이 직면한 문제를 해결하는 데 어떻게 도움이 될 수 있을까? https://fenzhan.tistory.com/51 2. LLM이 인과적 메커니즘을 밝히는 데 어떻게 도움을 줄 수 있을까?https://fenzhan.tistory.com/50 1. LLM은 인과 관계를 이해하고 추론할 수 있을까?Large Laguage Model(LLM)은 방대한 텍스트 데이터를 바탕으로 학습해 언어 이해와 생성에서 좋은 능력을 발휘한다.이러한 LLM의fenzhan.tistory.com 앞선 글에서 소개한 COAT 프레임워크에서는 LLM(Large Language Model)이 직접적으로 인과 관계를 추론하지는 않지만, 인과 발견을 위한 요인(factors)을 식별하는 데 기여할 수 있음을 확인했다. 특히, LLM은 비정형 데이터에서 유용한 정보를 추출하고, 이를 정형 데이터로 .. 더보기
[Faiss GPU 병렬 처리 오류] Faiss assertion 'p + size == head_' failed in void faiss::gpu::StackDeviceMemory::Stack::returnAlloc(char*, size_t, cudaStream_t) at /project/faiss/faiss/gpu/utils/StackDeviceMemory.cpp:144 상황: Faiss GPU를 활용해 텍스트 유사도 검색하는 부분이 있었는데, 이를 ThreadPoolExcutor를 활용하여 병렬 처리 구성하였을 경우 발생한 오류 Faiss assertion 'p + size == head_' failed in void faiss::gpu::StackDeviceMemory::Stack::returnAlloc(char*, size_t, cudaStream_t) at /project/faiss/faiss/gpu/utils/StackDeviceMemory.cpp:144 Faiss GPU는 Faiss CPU와 다르게, 읽기 전용 함수에서도 thread safe 하지 않기 때문에 해당 오류가 발생한다. 이러한 점은 Faiss 공식 문서에서도 나와 있다. 해당 오류에 관한 이슈,h.. 더보기
2. LLM이 인과적 메커니즘을 밝히는 데 어떻게 도움을 줄 수 있을까? https://fenzhan.tistory.com/50 1. LLM은 인과 관계를 이해하고 추론할 수 있을까?Large Laguage Model(LLM)은 방대한 텍스트 데이터를 바탕으로 학습해 언어 이해와 생성에서 좋은 능력을 발휘한다.이러한 LLM의 Model Understading에 대한 최신 연구에 따르면, 인과적 질문(Causal Question)에fenzhan.tistory.com 이전 글에서 LLM은 불완전한 도메인 전문가로, 학습된 패턴을 바탕으로 인과 관계와 관련된 구조나 관계에 대한 힌트를 주는 역할을 할 수 있다고 하였다. 그렇다면 어떻게 LLM을 활용하여 Causal Discovery(CD)를 수행하고, 이를 산업 애플리케이션에 적용할 수 있을까? 이러한 질문에 어느 정도 답변을 준.. 더보기
1. LLM은 인과 관계를 이해하고 추론할 수 있을까? Large Laguage Model(LLM)은 방대한 텍스트 데이터를 바탕으로 학습해 언어 이해와 생성에서 좋은 능력을 발휘한다.이러한 LLM의 Model Understading에 대한 최신 연구에 따르면, 인과적 질문(Causal Question)에 높은 정확도로 답변을 제시하는 경우가 존재한다. 하지만 LLM이 실제로 인과 관계를 이해하고 추론(causal reasoning)을 수행하는지에 대한 논의는 여전히 진행 중이다. 인과적 질문 예시: "A가 B의 원인이고, B가 C의 원인일 때, A가 C의 원인이 될까?" 1. GPT의 학습 방식 GPT의 학습 방식은 기본적으로 "다음에 올 단어는 무엇일까?"라는 질문에 답할 수 있도록 학습한 Auto-regressive with teacher forcing.. 더보기
[Experiment] 온라인 통제 실험의 패턴 인과추론과 실무 빌더를 맡으면서, 온라인 통제 실험에 대한 주제를 발표하게 되었습니다.평소에 관심이 있던 분야라, 공부할 기회가 있으면 좋겠다 싶었는데 스터디를 통해 좋은 기회를 얻어 발표하게 되었습니다.아래는 프로젝트 발표에 대한 정리본입니다. 무작위 실험의 순서(0) 가설 및 실험 디자인 – Sample Size(how long?), OEC, Guardrail Metric, Data Quality etc..(1) 실험 할당 – 고유 식별자에 기반하여, 사용자를 그룹으로 나누고, 제품 변형(variant) 하나로 할당(2) 실험 실행 – 사용자의 행동 데이터를 Logging(3) 실험 로그 처리 - Log 데이터를 저장소로 업로드하여 처리 (e.g., 서버 로그와 실험 metadata 결합)(4) 실험.. 더보기
[RAG] RAG 성능 향상을 위한 Re-ranking 대학원 시절 검색 모델에 흥미를 가져 관련 연구와 공부를 진행했었는데, 당시 배운 지식이 RAG 시스템을 이해하는 데 많은 도움이 되고 있다.  예를 들어, RAG에서 주로 활용되는 임베딩 방식은 쿼리와 문서가 독립적으로 인코딩되어 문장 간의 유사도를 계산하는 Bi-Encoder이다. All-to-all interaction이 필요한 Cross-Encoder와 비교했을 때, Bi-Encoder는 텍스트를 미리 인코딩할 수 있으며, ANN Search 방식을 활용하면 Cross-Encoder 대비 빠른 연산 속도를 보장한다. 따라서 Latency가 중요한 RAG 시스템에서 Bi-Encoder 구조를 활용하는 것은 타당해 보인다. 하지만 Bi-Encoder 방식은 문서를 독립적으로 임베딩하기 때문에 텍스트 .. 더보기