전체 글

하다보니 재미있는 개발에 빠져있는 평양냉면7 문의사항: ysoil8811@gmail.com
· Tools
이번에는 지난 글에 이어서 Elasticsearch에서 공식적으로 지원하는 한글 형태소 분석기인 Nori를 설치하고 사용해 보자. 기본 Analyzer 사용 시와 Nori 형태소 분석기를 사용했을 때의 차이점에 대해 비교해 보자. 이번에 사용할 데이터셋은 wikimedia kowiki로 wikimedia에서 제공하는 한국어 데이터셋을 사용할 거다.다음 명령어는 지난번에 다뤘기 때문에 빠르게 넘어간다.!pip install elasticsearch==8.8.0!wget -q https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.0-linux-x86_64.tar.gz!tar -xzf elasticsearch-8.8.0-linux-x86..
· Tools
이번 실습에서는 가장 많이 활용되고 있는 검색엔진 솔루션 중 하나인 Elasticsearch를 설치하고 구동해 보자.데몬으로 구동한 후 가장 간단한 형태의 색인 및 검색 테스트를 통해 정상적으로 동작하는지 확인해 보자.일단 데이터셋은 cnn_dailymail로 약 27만 개의 cnn 뉴스 데이터로 진행해 볼 것이다. 1. Elasticsearch 설치Elasticsearch를 노트북 환경에 설치한다.# Elasticsearch Python 패키지 설치!pip install elasticsearch==8.8.0# Elasticsearch 8.8.0 다운로드 및 압축 풀기# 리눅스용 엘라스틱서치 서버 설치를 위한 패키지 다운로드!wget -q https://artifacts.elastic.co/downloa..
주말동안 한 거 정리주말 동안 데이터 증강(SR, RI, Adverb Addition, back translation 등)을 해놓고 잘 합쳐서 불용어 처리까지 해봤는데도 여전히 성능이 좋게 나오지 않았다.SR 데이터 성능RI 데이터 성능Adverb Addition 데이터 성능이렇게 진행을 하다가 solar mini로 데이터 증강을 시도한 결과는 유의미했다! 실제로 눈으로 solar mini로 증강된 데이터를 보면 그렇게 데이터 증강이 잘 된 것 같진 않은데 성능은 좋게 나와서 신기했다. 아마 LLM을 이용해서 나온 데이터다 보니 LLM 특유의 번역체 말투가 기존 원본 데이터셋과 문장 구조가 유사하거나 비슷한 형태의 데이터로 증강되었기 때문에 '정답 요약'을 더 쉽게 생성해 낼 수 있던 거 아닐까 생각해 ..
경진대회 개요Dialogue Summarization 경진대회는 주어진 한글 데이터를 활용하여 일상 대화에 대한 요약을 효과적으로 생성하는 모델을 개발하는 대회다.이 대회에서는 ROUGE-1-F1, ROUGE-2-F1, ROUGE-L-F1, 총 3가지 종류의 metric으로부터 산출된 평균 점수를 더하여 최종 점수를 계산한다.현재 데이터 건수는 다음과 같다.train : 12457dev : 499test : 250hidden-test : 249데이터 구성은 다음과 같다.최소 2 턴, 최대 60 턴으로 대화가 구성되어 있고, 대화(dialogue)를 보고 이에 대한 요약(summary)을 예측하는 것이 최종 목표다.베이스라인 코드의 변수들은 다음과 같다.model_name: "digit82/kobart-s..
문제 발생한글 대화문을 보고 요약하는 모델을 pre training시키고 있는데 계속 데이터셋에 토큰들이 안지워져서 성능이 잘 안나오는 이슈가 있었다.모델의 예측값(PRED)과 실제 정답값(GOLD)을 비교하는 과정에서 나 같은 특수 토큰들이 제거되지 않아 성능이 저하되는 문제가 발생했다. 대화문 데이터에는 #Person1#, #Person2#와 같은 스페셜 토큰이 포함되어 있었는데 이 토큰들은 디코딩 과정에서도 유지되어야 했다. 이를 확인하기 위해 다음과 같이 skip_special_tokens=False 설정으로 디코딩 결과를 확인했다:decoded_preds = tokenizer.batch_decode(predictions, skip_special_tokens=False)print('>>>')pr..
· MLOps
지난번에 airflow를 실습해 본 것처럼 젠킨스 CI/CD도 도커 기반으로 실습해 보자.젠킨스 환경 구축docker-compose.yml 파일을 다음과 같이 만들어보자.version: '3.8'services: jenkins: image: jenkins/jenkins:latest ports: - "8080:8080" - "50000:50000" volumes: - jenkins_home:/var/jenkinshome environment: - JENKINS_OPTS=--httpPort=8080 restart: unless-stoppedvolumes: jenkins_home:이렇게 만들어주고 컨테이너를 백그라운드로 띄워보자docker-co..
· MLOps
MLOps에서 중요한 workflow management 중에서 Airflow를 실습해 보자.Airflow 실습 환경 구축실습을 할 수 있는 환경을 구축할 수 있는 두 가지 방법이 있다.pip install을 통해 local에 설정하기Docker container를 사용해서 docker image로 실행하기 (독립적인 공간에서 수행)여기서 당연히 더 확장성이 좋은 docker container기반 환경에서 실습해보려고 한다. Dockerfile로 Airflow 실행우선 도커 이미지를 생성하고, 해당 컨테이너를 실행시켜 보자.도커 파일은 다음과 같다.FROM python:3.8-slim# 환경 변수 설정ENV AIRFLOW_HOME=/usr/local/airflow# 필요한 시스템 라이브러리 설치RUN a..
· MLOps
1. 환경 구축쿠버네티스를 실습할 때 직접 install 하지 않고 온라인 테스트 환경에서 진행해보려고 한다.https://labs.play-with-k8s.com/ Play with KubernetesPlay with Kubernetes is a labs site provided by Docker and created by Tutorius. Play with Kubernetes is a playground which allows users to run K8s clusters in a matter of seconds. It gives the experience of having a free Alpine Linux Virtual Machine in brolabs.play-with-k8s.com (나는 도..