본문 바로가기

NLP

HuggingFace Autotrain - 단 한 줄의 코드로 LLM 파인튜닝하기 🤗 AutoTrain Huggingface의 AutoTrain은 자연어 처리(NLP) 작업, 컴퓨터 비전(CV) 작업, 음성 작업, 표 형식 작업 등을 위한 최첨단 모델을 훈련하기 위한 코드가 필요 없는 툴입니다. 코드 없이 UI에서 스페이스를 생성하여 사용할수도 있고, 개발자는 autotrain-advanced 패키지를 설치하고 파이썬 API를 사용하여 최소한의 코드로 학습을 진행할 수 있습니다. 이번 글에서는 제가 autotrain으로 학습 가능한 다양한 태스크 중 LLM Finetuning을 수행한 과정에 대해 공유하고자 합니다. LLM Finetuning AutoTrain을 사용하면 자체 데이터에서 대규모 언어 모델(LLM)을 쉽게 미세 조정할 수 있습니다. AutoTrain은 아직 CLM의 파인.. 더보기
Multimodal Transformer Toolkit - 텍스트 데이터에 멀티모달 데이터를 통합하기 위한 툴킷 Multimodal Transformer? 트랜스포머 기반 모델은 비정형 데이터인 텍스트 데이터를 다루는 데 큰 변화를 가져옴 실제 환경에서 텍스트 데이터는 풍부한 정형 데이터 또는 오디오나 시각 정보와 같은 비정형 데이터와 함께 지원되는 경우가 많음 예를 들어 이커머스 리뷰의 경우, 리뷰 텍스트 외에도 판매자, 구매자, 제품에 대한 정보가 종합적으로 학습될 경우 더 좋은 성능을 기대할 수 있음 인간도 하나의 개념을 이해하기 위해 시각, 미각, 촉각, 텍스트까지 여러가지 감각을 통합하여 인식 이처럼 AI가 인간이 학습하는 방식과 유사하게 학습하기 위해 여러 채널의 모달리티(양식)를 받아들여 학습하는 방법을 '멀티모달' 이라고 함 Multimodal Toolkit 위와 같은 이유로 개발된 멀티 모달 트랜스.. 더보기
LLM을 앱에 연결해주는 microsoft의 Semantic Kernel Semantic Kernel 이란? 앱에 AI 기능을 추가하는 개발자에게 유연성을 제공하기 위한 microsoft의 오픈 소스 C#, Python 같은 기존 프로그래밍 언어와 LLM AI를 결합시켜주는 경량 SDK 오픈 소스 프레임워크로 예제 앱과 노트북이 함께 제공됨 시맨틱 커널 설계의 핵심은 Skill 과 Planner Planner 는 사용자의 요청을 받아 필요한 스킬, 메모리, 커넥터로 변환하여 복잡한 작업을 용이하게 함 Skill 은 어떤 기능을 하는 역할을 하는 함수나 모듈의 집합 OpenAI의 모델과 Azure OpenAI Service 지원 자주 사용되는 용어 Semantic Kernel (SK) 사용자의 ASK를 이행하는 오케스트레이터 Ask 사용자가 목표 달성을 위해 시맨틱 커널에 요청.. 더보기
[NLP] 텍스트 내의 명사구를 추출하는 방법 텍스트에서 명사구가 가지는 의미 명사구는 문장에서 중요한 역할을 하며, 주어와 서술어를 이루는 요소 중 하나입니다. 또한, 명사구는 문맥에 따라 다른 의미를 가질 수 있으며, 이는 해당 문장의 전체 의미를 해석하는 데에 중요한 역할을 합니다. 텍스트 데이터에서 명사구를 추출하면 텍스트에서 다루는 주요 주제와 주제에 대한 통찰력을 얻을 수 있으며, 문서 요약, 토픽 모델링 등 다양한 자연어 처리 기술에 적용할 수 있을 것입니다. SEO 측면에서의 활용 가능성 현재 저희 팀은 SEO(검색 엔진 최적화)를 위한 컨텐츠 작성 툴을 개발하고 있습니다. 컨텐츠가 검색 결과의 상위에 위치하려면, 검색어와 관련성이 있으면서 유용한 정보를 포함하고 있어야 합니다. 검색 결과 중 첫 번째 페이지의 결과가 바로 사람들의 검.. 더보기
[NLP/논문리뷰] How Contextual are Contextualized Word Representations? Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings How Contextual are Contextualized Word Representations? Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings Kawin Ethayarajh - Stanford University Accepted to EMNLP 2019 https://arxiv.org/abs/1909.00512 Abstract 본 논문은 “Contextualized Word Representation이 얼마나 문맥적인가?” 에 대한 분석 및 실험을 진행한다. 논문의 주요 포인트는 다음과 같다. Mesures of Contextuality Contextuality 에 대한 정량적인 평가 기준을 제시한다. Findings: Static vs. C.. 더보기
[NLP] 텍스트 마이닝의 개념과 전체적인 프로세스에 대하여 해당 글은 텍스트 분석 강의를 바탕으로 작성하였습니다. 첫 번째 강의인 Text Analytics는 텍스트 분석의 전체적인 개요와 프로세스에 대한 설명으로 이루어져있으며, 목차는 다음과 같다. 01 Text Analytics: Overview 강의 링크: https://www.youtube.com/watch?v=UInnl60pzkA&list=PLetSlH8YjIfVzHuSXtG4jAC2zbEAErXWm Background 80% 이상의 새로 생기는 데이터들은 비정형 데이터이고, 그중에서도 text data가 큰 비중을 차지한다. 검색어에 맞는 문서를 반환(retrieval) 해주는 것 만으로는 충분하지 않다. 즉, 새로운 지식을 찾아내는 것이 요구된다는 것이다. Definition Text Data를 다.. 더보기
[Elasticsearch] 색인의 모든 문서를 반복 / 스크롤하는 방법 목적 인덱스 내의 전체 문서를 돌며 각 필드의 데이터를 가져와 처리를 해야 하는 경우 elastic search의 scroll을 이용하는 유용한 코드가 존재한다. 전체 코드 def iterate_all_documents(es, index, logger, pagesize=250, scroll_timeout="15m", **kwargs): """ Helper to iterate ALL values from a single index Yields all the documents. """ is_first = True while True: # Scroll next try: if is_first: # Initialize scroll result = es.search(index=index, scroll=scroll_.. 더보기
[WIL] 2021년 9월 넷째 주/ 10월 첫째 주 WIL 9월 넷째 주의 절반은 추석과 함께 실종되어버렸다. 그리하여.. 9월 넷째 주 WIL은 아래 세 게시글로 스무스하게 대체하려고 한다. [Python] Beutiful Soup4 - decompose() 와 extract() [Spark] SQL - explode()를 사용하여 list 형태의 Row 분리하기 [Spark] SQL - 두 컬럼을 병합하여 새로운 Dataframe 만들기 📝 10월 5일 (화) ▪️NLP - Word2Vec 모델 Load 시 UnicodeDecodeError UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 0: invalid start byte 해결 KeyedVectors.load_word2vec_for.. 더보기