<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://hololee.github.io/</id><title>꾸물꾸물</title><subtitle></subtitle> <updated>2025-01-10T09:40:15+09:00</updated> <author> <name>jonghyeok lee</name> <uri>https://hololee.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://hololee.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="ko" href="https://hololee.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.3.4">Jekyll</generator> <rights> © 2025 jonghyeok lee </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>클라우드 환경에서 pytorch DDP 사용하기</title><link href="https://hololee.github.io/posts/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-pytorch-DDP-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/" rel="alternate" type="text/html" title="클라우드 환경에서 pytorch DDP 사용하기" /><published>2024-06-06T18:37:00+09:00</published> <updated>2024-06-06T18:37:00+09:00</updated> <id>https://hololee.github.io/posts/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-pytorch-DDP-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/</id> <content type="text/html" src="https://hololee.github.io/posts/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-pytorch-DDP-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/" /> <author> <name>jonghyeok lee</name> </author> <category term="mlops" /> <summary>모델을 빠르게 학습하고 피드백하려면 어떻게 해야할까? 더 좋은 GPU를 사용할 수도 있고 더 많은 GPU를 하나의 시스템에 설치할 수도 있다. 하지만 그 성능과 물량은 물리적으로 제한이 있다. 영상처리 모델을 학습해야하는데 모델의 크기와 데이터 하나의 크기는 크지 않지만 (LLM과 비교해서) 데이터의 개수가 6백만장에 가까워서 빠른 학습 및 검증을 시도하기 어려운 상황이였다. 이를 위해 클라우드 환경에서 DDP(Distributed data parallel)를 구성했고 mlflow와 skypilot을 사용하면서 필요했던 부분들을 기록해두려고 한다. 조건 AWS g4dn series multiple node pytorch(1.12.0) mlflow (2.8.0) skypilot (0...</summary> </entry> <entry><title>간단히 살펴보는 프롬프트 튜닝</title><link href="https://hololee.github.io/posts/%EA%B0%84%EB%8B%A8%ED%9E%88-%EC%82%B4%ED%8E%B4%EB%B3%B4%EB%8A%94-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%ED%8A%9C%EB%8B%9D/" rel="alternate" type="text/html" title="간단히 살펴보는 프롬프트 튜닝" /><published>2024-04-01T20:23:00+09:00</published> <updated>2024-04-01T20:23:00+09:00</updated> <id>https://hololee.github.io/posts/%EA%B0%84%EB%8B%A8%ED%9E%88-%EC%82%B4%ED%8E%B4%EB%B3%B4%EB%8A%94-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%ED%8A%9C%EB%8B%9D/</id> <content type="text/html" src="https://hololee.github.io/posts/%EA%B0%84%EB%8B%A8%ED%9E%88-%EC%82%B4%ED%8E%B4%EB%B3%B4%EB%8A%94-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%ED%8A%9C%EB%8B%9D/" /> <author> <name>jonghyeok lee</name> </author> <category term="nlp" /> <summary>프롬프트 튜닝 사이클 프롬프트 튜닝 사이클은 단순히 프롬프팅을 작성하는데 시간을 투자하는것이 아니다. 반복적으로 테스트를 진행해서 프롬프트의 결과를 평가하며 개선해 나가는것이 중요하다. test-driven 으로 접근하는것이 좋다. 우선 task의 목적을 명확히 해야한다. 다음으로 평가를 위한 테스트 케이스를 구성해야한다. 이때 특이한 edge-case를 뻬먹지 말고 넣어야 한다. 다음으로 해당 case에 대해 프롬프트를 다듬어가며 평가 결과를 바탕으로 개선해간다. task에 대해서 목적 성능을 어느정도 달성하면 프롬프트를 단순화하거나, 작은 모델을 선택해서 테스트 해보고 문제가 없다면 조정한다. (마치 프루닝 작업을 프롬프트와 모델 선택에 하는 느낌) 프롬프트 팁 개인적으로 ...</summary> </entry> <entry><title>GPT는 왜 모르는 글자가 없을까? - BBPE (Byte-level Byte-Pair Encoding)</title><link href="https://hololee.github.io/posts/GPT%EB%8A%94-%EC%99%9C-%EB%AA%A8%EB%A5%B4%EB%8A%94-%EA%B8%80%EC%9E%90%EA%B0%80-%EC%97%86%EC%9D%84%EA%B9%8C/" rel="alternate" type="text/html" title="GPT는 왜 모르는 글자가 없을까? - BBPE (Byte-level Byte-Pair Encoding)" /><published>2023-12-10T15:15:00+09:00</published> <updated>2023-12-10T15:15:00+09:00</updated> <id>https://hololee.github.io/posts/GPT%EB%8A%94-%EC%99%9C-%EB%AA%A8%EB%A5%B4%EB%8A%94-%EA%B8%80%EC%9E%90%EA%B0%80-%EC%97%86%EC%9D%84%EA%B9%8C/</id> <content type="text/html" src="https://hololee.github.io/posts/GPT%EB%8A%94-%EC%99%9C-%EB%AA%A8%EB%A5%B4%EB%8A%94-%EA%B8%80%EC%9E%90%EA%B0%80-%EC%97%86%EC%9D%84%EA%B9%8C/" /> <author> <name>jonghyeok lee</name> </author> <category term="nlp" /> <summary>GPT를 활용한 챗봇을 개발하며 문득 이런 생각이 들었다. 정해진 vocabulary 안에서 나오지 않는 단어나 이모티콘은 어떻게 처리해 하나? 복잡한 테이블이나 코딩의 기호들은? 궁금증에 앞서 일단 토그나이저의 동작이 어떻게 이루어지는지 간략하게 다시 살펴보았다. (요즘 기억력이 점점 안좋아지는것 같다..) Tokenizer method word-based tokenizer 단어 기반 토큰화는 단어를 기반으로 토큰을 할당하게 된다. 예를들어 띄어쓰기를 기준으로 단어로 인식한다고 가정하면 나는 너를 사랑해 라는 문장은 나는, 너를, 사랑해 로 구분할 수 있다. corpus에 따라서 vocabulary의 크기가 매우 커질 수 있다. 예를들어 사랑은 좋은것이야, 나는 너를 사랑...</summary> </entry> <entry><title>Game Tree Search 알고리즘</title><link href="https://hololee.github.io/posts/game-tree-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/" rel="alternate" type="text/html" title="Game Tree Search 알고리즘" /><published>2023-04-11T09:00:00+09:00</published> <updated>2023-04-11T09:00:00+09:00</updated> <id>https://hololee.github.io/posts/game-tree-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/</id> <content type="text/html" src="https://hololee.github.io/posts/game-tree-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/" /> <author> <name>jonghyeok lee</name> </author> <category term="algorithm" /> <summary>DKT의 결과를 어떻게 활용할것인가?에 대한 의문이 들어 논문에서 언급한 Expectimax Search algorithm에 대해 알아보려고한다. Game Tree Search algorithm Minmax Search GAN을 공부하면서 처음봤던 이론이다. 두 요소가 경쟁하면서 서로 최선의 선택하며 탐색하는 알고리즘이다. 간단하게 1vs1 격투 게임을 시뮬레이션 하는 튜토리얼을 넣어보자고 한다면 player는 User(CPU)와 Opponent(CPU)로 나뉘게 된다. 여기서 User의 선택을 (예를 들어 발차기 버튼을 누른다, 뒤로 이동한다 등등) 방해하는 쪽으로 Opponent는 행동을 결정하게 된다. 이때 User와 Opponent가 서로 최선의 선택을 하면서 경쟁을 하게 되는데 이를...</summary> </entry> <entry><title>Improving Knowledge Tracing via Pre-training Question Embeddings</title><link href="https://hololee.github.io/posts/Improving-Knowledge-Tracing-via-Pre-training-Question-Embeddings/" rel="alternate" type="text/html" title="Improving Knowledge Tracing via Pre-training Question Embeddings" /><published>2023-02-16T20:30:00+09:00</published> <updated>2023-02-16T20:30:00+09:00</updated> <id>https://hololee.github.io/posts/Improving-Knowledge-Tracing-via-Pre-training-Question-Embeddings/</id> <content type="text/html" src="https://hololee.github.io/posts/Improving-Knowledge-Tracing-via-Pre-training-Question-Embeddings/" /> <author> <name>jonghyeok lee</name> </author> <category term="review" /> <summary>KT 분야에서 question과 skill 사이의 관계 정보가 잘 추출되지 않는 문제가 있음. 본 논문에서는 문제와 스킬 사이의 bipartite graph를 통해서 명시적인 문제와 스킬 사이의 관계 뿐만아니라 문제 난이도와 같은 사이드 정보를 포함하는 embedding을 이용하여 KT의 성능을 끌어올림. Question-Skill bipartite graph Bipartite graph는 명시적인 관계와 암묵적인 관계를 가지고 있음. Bipartite graph를 두개의 열로 나타낼때 아래와 같이 표현되며, 문제($q$)와 스킬($s$) 사이에서의 관계(실선)는 명시적 관계이고 스킬과 스킬의 유사도, 문제와 문제사이의 유사도(점선)는 암묵적인 관계를 의미한다. 그림1. question...</summary> </entry> </feed>
