Python16 [PyTorch] nn.Transformer 모델 구조 상세 확인 17년도 Attention is all you need 논문 이후로 대 Transformer 구조의 시대에 살고 있다.NLP 의 역사를 돌아보면 슬슬 새로운 Architecture 가 나올 타이밍이긴 하지만 아직은 대 Transformer 구조의 시대가 지속되고 있다고 해도 과언이 아니다. (요즘에는 디퓨전 모델과 같은 방식으로 텍스트를 생성하는 방식이 뜨고 있는 것 같긴 하지만 필자 생각에는 이 또한 Transformer 구조다.)생성형 모델의 가치가 엄청나게 높아진 요즘 생성형 모델의 근간이 되는 Decoder 모델의 아버지이자 어머니인 Transformer 모델의 구조는 어땠는지를 확인해봤다.본 포스팅은 실무자를 위한 내용으로 Transformer 구조를 상세하게 다루었다.목차1. Transfor.. 2025. 3. 12. [LLaMA-Factory] LoRA Adapter 확인 LLM 오픈소스 중 가장 유명한 LLaMA-Factory 를 파악하고 있다.그 중 학습 시 LoRA 를 활용한다면 어떤 Adapter 를 생성하여 학습하는지 확인했다.본 포스팅은 오픈소스인 LLaMA-Factory 에서 LoRA 활용한 학습 시 Adapter 및 arguments 셋팅이 어떻게 되어 있는지 코드를 통해 확인한 결과를 소개한다.목차1. 실무자는 바쁘다.! 결론부터 말씀드릴게요.2. 생성되는 LoRA Adapter 확인 및 커스터마이즈 3. LoRA Config 설정 for Hyper-Parameter 셋팅4. 필자 리뷰 LLaMA-Factory github 바로가기1. 실무자는 바쁘다.! 결론부터 말씀드릴게요.필자가 파악하고자 한 주요 원인은 다음과 같다.LLaMA-Factory 로 내가 .. 2025. 2. 27. [LLaMA-Factory] Tokenizer padding_side 확인 LLM 오픈소스 중 가장 유명한 LLaMA-Factory 를 파악하고 있다.그 중 SFT 학습 시 Tokenizer padding_side 를 어떻게 설정하는지 확인했다.본 포스팅은 오픈소스인 LLaMA-Factory 에서 SFT 학습 시 Tokenizer padding_side 셋팅이 어떻게 되어 있는지 코드를 통해 확인한 결과를 소개한다.목차1. 실무자는 바쁘다.! 결론부터 말씀드릴게요.2. padding_side = 'right' 에 의한 데이터 구성3. padding_side = 'left' 에 의한 데이터 구성 4. 필자 리뷰 LLaMA-Factory github 바로가기1. 실무자는 바쁘다.! 결론부터 말씀드릴게요.필자가 파악하고자 한 주요 원인은 다음과 같다.LLaMA-Factory 로 내가.. 2025. 2. 22. [LLaMA-Factory] PT&SFT 학습 데이터는 어떻게 만들어지는가? LLM 오픈소스 중 가장 유명한 LLaMA-Factory 를 파악하고 있다.그중 Pretrain(a.k.a PT) 과 Supervised Fine-Tuning(a.k.a SFT) 에서 학습 데이터를 어떤 형태로 만드는지 실무자로서 가장 궁금했다.추후에 회사 프로젝트에서 sLLM 을 학습해야 한다면 LLaMA-Factory 도 좋은 수단으로 생각했기 때문에 데이터는 어떤 형태로 구성되는지 소스 코드를 통해 상세하게 파악할 필요가 있었기 때문이다.본 포스팅은 오픈소스인 LLaMA-Factory 에서 PT, SFT 학습 시 학습 데이터를 어떻게 encode 하는지 그 과정과 결과를 소개한다.목차1. 실무자는 바쁘다.! 결론부터 말씀드릴게요.2. PT 학습 시 학습 데이터 형태3. SFT 학습 시 학습 데이터 .. 2025. 1. 22. Triton Server 환경 구축하기 Triton Server 는 Deep Learning Model 을 Inference 하는데 GPU 자원을 최적으로 할당하여 서비스를 구축하기 편하게 해주는 환경이다. Torch, Tensorflow 와 같은 다양한 framework 를 지원하기 때문에 여러 종류의 모델을 하나의 Docker container 기반으로 배포할 수 있다. 즉, Triton Server 는 Docker container 기반의 Open-source inference serving software 라 할 수 있다. 본 포스팅에서는 실무자의 입장을 고려하여 Triton Server 환경을 구축하는 방법을 다룬다. 실무자의 상황을 고려하며 Docker Image 관리 및 Container 를 편하게 관리하는 노하우에 대해 소개하겠.. 2024. 2. 20. NVIDIA Triton 에 대한 고찰 인공지능 모델을 서빙하기 위해 NVIDIA Triton 를 많이 사용한다. NVIDIA Triton 란 무엇인고, 왜 사용하는지, 어떻게 사용하는지에 대한 간단한 설명과 예시를 다룬다. NVIDIA Triton 란 무엇인가? 인공지능 모델은 딥러닝의 발전으로 점점 커지고 성능도 향상되고 있다. 하지만 그만큼 추론 속도는 느려지고 많은 리소스가 필요하다. 더 좋은 GPU 를 사용하면 효과를 볼 수 있지만 많은 비용이 들기 때문에 어떻게 인공지능 모델을 효율적으로 운영할 수 있는지 연구가 계속 되고 있다. 비용을 줄이기 위한 방법으로는 모델 경량화와 같이 인공지능 모델의 크기를 줄이는 방법부터 효율적인 추론을 위한 ONNX, TensorRT 변환 등 다양한 방법이 있다. ONNX, TensorRT 변환의 경.. 2023. 10. 29. [창시모] DP vs DDP 정리 출처: better-tomorrow 님의 tistory 예전 포스팅으로 Multi-GPU 용어 관련 글을 썼다. 해당 글은 여기( link )를 참고하길 바란다. 필자의 글을 보면 마지막에 DP 방식의 학습과 DDP 방식의 학습을 비교 정리한다고 했었다. 그걸 이제 한다,,, DP와 DDP의 설명은 algopoolja님의 블로그를 참고하였다. 관련 글은 다음 링크를 참고하길 바란다. https://algopoolja.tistory.com/95 torch의 데이터 분산 연산(DP 와 DDP) torch parallelism Pytorch 를 사용해 모델을 학습하다 보면 여러가지 병렬화를 사용합니다. 병렬화를 사용하는 이유는 크게 2가지로 나눠볼 수 있습니다. 학습을 더 빨리 끝내기 위해 모델이 너무 커서 .. 2022. 11. 9. SBERT → ONNX 변환 및 Test example 들어가며.. 지난 22년 7월 27일, ONNX 란 무엇인지에 관한 소개 글을 올렸었다. 해당 글은 본 블로그에서 항상 top-1 조회수를 차지했다. 필자 생각에는 많은 회사와 산업에서 인공지능 모델을 서빙하려 하기 때문에 많은 관심을 받았다고 생각한다. 이러한 관심에 힘입어 필자가 진행했던 Sentence-BERT 모델을 ONNX 변환시키는 간단한 예시를 포스팅하고자 한다. Sentence-BERT 특징 ONNX 변환 전, Sentence-BERT의 Input/Output 형태를 알아야 한다. 형태는 다음과 같다. Input: text (ex. '나는 어바웃타임 영화를 좋아합니다.') Output: n차원 vector (ex. [0.1754, 0.7749, ...] 보통 768 차원 사용) Input/.. 2022. 11. 9. [창시모] unittest in python 들어가며,, git을 통해 모델링 개발을 하다보면 소스 코드의 파이프라인을 뜯어 보고 싶을 때가 있다. 전체 flow를 sequence하게 work하기보다는 모듈 단위로 구획을 나누어 확인해보고 싶은 경험이 다들 있을 것이다. 이때 중요한 건 각 모듈이 input 형태는 어떤지, output 형태는 어떤지 알고 있어야 한다는 점이다. 이를 통해 소스 코드 수정 및 업그레이드를 할 수 있다. 본 글에서 소개하는 기능은 파이썬의 단위 테스트인 unittest이다. DaleSeo 님의 블로그 글을 인용 + 필자의 의견을 종합하여 소개하고자 한다. 원본 글은 다음 링크를 확인하길 바란다. https://www.daleseo.com/python-unittest-testcase/#%EB%A7%88%EC%B9%98%.. 2022. 9. 5. [Setting] jupyter notebook 원격 접속 들어가며,, 네트워크 설정 완료한 서버를 이용해 분석하기 위해 jupyter notebook 원격 접속이 가능하도록 세팅해야한다.(물론 local에서도 가능하다.) 세팅이 완료되면 해당 pc가 아닌 곳에서 원격 접속하여 python을 활용한 분석을 할 수 있다. 이때 버전 충돌 방지를 위해 docker container를 새로 만들어 진행할수도 있지만 그 부분은 생략한다. 본 포스팅에서는 어떻게 원격 접속을 할 수 있는지 그 방법에 대해 다뤄보겠다. 설치 과정 1. config 파일 생성 $jupyter notebook --generate-config. # /home/v2j/.jupyter/jupyter_notebook_config.py 생성시 경로 밑에 위와 같은 config.py 파일이 생성된다. 2.. 2022. 8. 19. 이전 1 2 다음 반응형