Week 13 - pickle error
개요 이번 프로젝트를 위해 베이스라인 코드를 모듈화하던 중 발생한 에러이다. pickle? 텍스트가 아닌 파이썬의 객체를 저장하는 방식이다. 텍스트 데이터를 tokenize 할 때 멀티 프로세싱을 수행하면, 병렬화 해야 하는 대상들을 pickle로 만들어서 세션끼리 공유한다. 그렇게 나도 Hugging Face의 Dataset 함수 중 map을 사용...
개요 이번 프로젝트를 위해 베이스라인 코드를 모듈화하던 중 발생한 에러이다. pickle? 텍스트가 아닌 파이썬의 객체를 저장하는 방식이다. 텍스트 데이터를 tokenize 할 때 멀티 프로세싱을 수행하면, 병렬화 해야 하는 대상들을 pickle로 만들어서 세션끼리 공유한다. 그렇게 나도 Hugging Face의 Dataset 함수 중 map을 사용...
Data-Centric 주제 분류 프로젝트 세 번째 프로젝트가 끝났다. 첫 번째는 STS, 두 번째는 RAG, 세 번째는 Data-Centric이다. 이번 프로젝트는 2주 동안 짧게 진행됐고, 개인 회고를 제출하지 않는 프로젝트였기 때문에 블로그에 개인적으로 기록하고자 한다. 코드는 여기에서 확인 프로젝트 개요 뉴스 기사 제목으로 주제 분류를 하는 ...
공부했던 내용이나 프로젝트 수행한 내용은 꾸준히 기록하는데 주간 학습 기록 폴더 안에 글이 없다. 아무래도 강의 내용과 프로젝트 내용을 체계적으로 잘 정리할 필요가 있겠다. 아무튼 이번에는 데이터 중심의 접근법에 대해서 배운다. Data-Centric이란? 어떤 task를 잘 수행하기 위해서 어떤 접근법이 먼저 떠오르는가? 나는 이븐한 모델이 가장 ...
배경 Retrieval 수행 후 탐색한 문서에서 응답을 추출해야 한다. BERT 기반 모델을 사용하다가 이 아이를 Generation Based 기법을 사용하여 프롬프팅 하면 어떨까? 하는 생각을 했다. 팀원 중 다른 분께서 LLaMA를 튜닝해보고 싶다고 하셔서, 나는 GPT를 프롬프팅만으로 시도해보기로 했다. 프롬프트 GPT를 프롬프팅 할 수 있는...
배경 MRC 프로젝트 수행 시 질문이 입력되면 그에 해당하는 문서를 찾기 위해 Dense Embedding을 구현하고자 한다. 제공받은 데이터셋의 경우, 문서를 보고 만든 질문들이 많아 키워드를 사용하여 문서를 탐색하는 방식인 Sparse Embedding이 보다 적합하다고 하지만, 개인적인 공부를 위해, 그리고 실험해보며 직접 경험해보기 위해 Den...
MRC 개요 MRC가 무엇인지에 대한 간략한 설명은 여기 참고하기~ MRC는 크게 질문의 답을 해줄 문서를 찾는 Retriever과 문서에서 답을 찾는 Reader로 구분된다. 문서를 찾지 않고 바로 응답하는 생성형 기반도 있지만, 이건 나중에~ Passage Retriever 많은 양의 문서, 데이터가 저장되어 있는 데이터베이스로부터 질문에 응답해...
LoRA: Low-Rank Adaptation of Large Language Models citation Hu, Edward J., et al. “Lora: Low-rank adaptation of large language models.” arXiv preprint arXiv:2106.09685 (2021). 인용 횟수가 무려 6800회 ...
분명 며칠 전에 STS 프로젝트가 끝났는데.. 다시 또 시작이다. 이번에 MRC. 아자아ㅈ..🫠 MRC란? MRC는 Machine Reading Comprehension이라고 하는 기계 독해 task이다. 사람이 document을 읽고 이해하는 것처럼 AI와 같은 기계가 document를 읽고 문맥을 이해하는 task를 말한다. 이때 기계가 잘 이해...
LoRA란? Low-Rank Adaptaion으로, PEFT 기법의 일종이다. downstream task 수행을 위해 모델 전체를 tuning하는 것이 아닌, 대부분의 파라미터를 freeze하고 일부 파라미터만 tuning하는 것이다. Hugging Face는 peft라는 라이브러리를 통해 다양한 PEFT 기법을 적용할 수 있게 했는데, 그 중 Lo...
PEFT 등장 배경 LLM은 그 크기가 커질 수록 정확도가 높아진다는 연구 결과가 발표된 후 pre-trained 모델의 크기를 점점 키우는 것이 유행(?)이 되었다. 하지만 이를 downstream task에 적용하기 위해서는 fine-tuning을 해야 하는데 많은 경우 가용한 자원은 제한적이기 때문에 모든 가중치를 전부 tuning하는 것은 불가...