- uv, 파이썬 패키지 관리의 신세카이Cat_Code0. 들어가며기존 파이썬 패키지들을 관리하는 관리자에는 pip , poetry, virtualen, pyenv 등이 있다.하지만 대부분의 패키지 관리자들은 Python으로 개발 되었다.물론 이러한 특성들 때문에 쉽고 확장성이 있다는 장점이 있지만, 인터프리터 언어의 특성상 실행 속도가 느리고 대용량의 파일 처리나 병렬 작업에는 성능한계가 있다. 이러한 단점을 보완하여 속도를 높이기 위해서 uv라는 파이썬 패키지 관리자가 등장하였다.uv는 Rust로 개발 되었기 때문에 기존의 파이썬 패키지 관리자 보다 빠른 속도를 보여준다.이번 글에서는 uv의 특징을 살펴보고, 설치법과 간단한 사용법 그리고 활용 방법에 대해서 살펴볼 것이다.1. uv의 특징uv github 저장소 : https://github.com/a..
- 2025-05-15 15:00:19
- GGUF (Georgi Gerganov Unified Format)에 관하여Cat_Code요즘 Hugging Face 저장소를 둘러보면 gguf 라는 포맷이 눈에 자주 들어온다.기존 Pytorch 모델들은 .pt 라는 확장자를 사용하여 모델의 가중치를 저장하였다.하지만 최근들어서 LLM 모델의 경우 gguf 포맷으로 넘어가고 있는 추세이다. 오늘은 이러한 gguf 포맷이 무엇인지 살펴보고 pt 포맷 보다 어떠한 장점이 있길래 인기를 얻고 있는지 살펴보려고한다. PyTorch에서 GGML, 그리고 GGUF로의 진화초기 LLM 모델 대부분은 PyTorch 와 같은 프레임워크의 기본 포맷인 .pt로 저장되었다.이러한 포맷은 훈련 목적으로는 적합했지만, 모델을 추론하고 서빙하는데는 효율성과 접근성에 제한이 있었다. 1. 모델 아키텍처 의존성.pt 파일은 가중치만 저장하며 모델 클래스의 정의가 코드..
- 2025-05-07 20:16:53
- [LangChain] LangChain으로 HuggingFace Model Inference 하기Cat_CodeLangChain에서 다양한 모델과 LLM API를 연계해서 사용이 가능하다!!OpenAI나 Claude, Gemma와 같이 유명 API를 활용한다면 손쉽게 LangChain에 연결을 할 수 있다.그러나 해당 API의 경우 일정 금액의 과금이 필수적이다.물론 최근들어 LLM API의 가격이 지속해서 내려가고 있는 추세이지만, 우리같이 한푼한푼이 아쉬운 사람들 위해서 무료로 LLM을 LangChain 사용할 수 있는 방법이 있다. 바로 HuggingFace를 활용하는 것이다. HuggingFace Hub? HuggingFace Hub는 머신러닝 분야에서 가장 큰 오픈 소스플랫폼중 하나로 90만개 이상의 모델, 20만개 이상의 데터셋 30만개 이상의 데모 앱을 호스팅하고 있는 플랫폼이다. 다양한 task와 ..
- 2025-01-26 17:50:25
- [LangChain] LangChain 개발 환경 구축Cat_CodeLangChain 개발 환경 구축(가상환경을 구축하는 것은 생략하겠다)`LangChain`은 `pip`를 사용해서 설치하면된다. 하지만 `LangSmith`이나 `LangGraph`와 같은 추가적인 `LangChain`계열의 라이브러리는 직접 설치해야한다. 1. LangChain 설치pip install langchain 2. 의존성 패키지 설치2.1 langchain communitypip install langchain-community2.2 OpenAI- langchain-openaipip install langchain-openai2.3 HuggingFace- langchain-huggingfacepip install langchain-huggingface2.4 Anthropic- langcha..
- 2025-01-24 21:45:18
- MIM의 Masking 방법들Cat_CodeNotion 링크 MIM의 Masking 방법들 | Notion0. 들어가며bottlenose-oak-2e3.notion.site 0. 들어가며최근 MAE 논문과 BEVT , Beit논문을 읽으면서 self-supervised learning 학습의 방법중 Masking modeling을 통한 (정확히 말하자면 Mask Auto Encoder) 표현 학습 방법에 관심이 생겼다. 특히, MAE 에서 단순히 랜덤 마스킹을 사용한것에 반에서 Beit에서는 Block wise masking 방법을 활용하는데 이 부분에 대해서 자세히 알고 싶어졌고 추가적 여러 Masking 방법에 대해서 정리하면 좋을 것 같아서 해당 글을 작성하게 되었다. 여러 Masking 방법들을 살펴보기 전에 간단하게 왜 Masking..
- 2024-07-21 17:56:43
- [논문리뷰] Masked Autoencoders Are Scalable Vision Learners(MAE)Cat_Code많은 DL 모델들이 `supervised learning` (지도학습)의 방법으로 학습되면서 좋은 성능을 보여주었다.`Label`이 있는 방대한 양의 데이터는 `LLM`과 같은 `fondation model`의 등장을 이끌어 냈고 `semi-supervised learning`과 합쳐져서 더 많은 양의 데이터로 학습이 가능해졌다. 그러나 실제적으로 라벨링을 수행하는 것은 시간과 돈이 많이 소요되는 작업이다.또한 `Vision` 분야에서 LLM과 같은 거대 모델을 만들어 내기 위해서는 수백만개의 라벨링된 이미지 데이터를 넘어서 수억 또는 수십억개의 라벨링된 이미지 데이터가 요구 된다. 오늘 살펴볼 논문 `Masked Autoencoders Are Scalable Vision Learners`는 이러한 부분..
- 2024-07-01 18:23:33
- [밑바닥 부터 식해보는 딥러닝] 01. 수치 미분과 역전파Cat_Code1. 수치 미분과 역전파 | Notion 참고 자료 bottlenose-oak-2e3.notion.site 0. 들어가면서 딥러닝을 공부하다 보면 항상마주치는 개념이 있다. 딥러닝 뉴비들이 갈려나가는 첫번째 위기라고 할 수 있는 오차역전파 (backpropagation) 이다. 고등학교 이후 수학, 특히 미분과 담을 쌓은 사람이라면 또는 수포자였다면 해당 위기는 정말 큰 위기로 느껴질 것이다. 하지만 딥러닝의 핵심을 이해하기 위해서는 (오차역전파라는 개념이 존재했기 때문에 현재의 딥러닝이 가능한 것이다. 최근에는 역전파 이외에 forward-forward라는 방법도 제시되고 있다) 해당 개념을 이해하고 넘어가는 것이 필수 적이다. 이번 시간에는 역전파와 관련된 개념들을 알아보고 numpy를 활용해서 직접..
- 2024-04-09 18:25:47
- [직접 구현하는 머신러닝] K- 평균 (K-Means)Cat_Code오늘은 K-평균 알고리즘 (K-Means)를 Python으로 직접 구현해 보겠다 필요한 라이브러리는 Numpy 하나이다 K-Means 알고리즘의 과정을 순서대로 나타내면 아래와 같다 1. 데이터 공간에서 임의의 k개 중심점을 초기화 한다 (랜덤 선택), 여기서 중심은 클래스 또는 범주에 해당한다. 즉, 이 중심점을 기준으로 해당 데이터의 클래스가 결정되는 것이다. 이때, k는 하이퍼 파라미터로 직접 지정해주어야한다. 2. 각 데이터 관측치와 각 중심 사이의 유클리드 거리를 계산한다. - 모든 데이터와 각 중심점 사이의 각각 거리를 구하는 것 3. 각 데이터 관측치를 가장 가까운 중심의 그룹에 할당한다 - 즉, k=3이라고 가정을 한다면 1점과 data들의 거리 2점과 data들의 거리, 3점과 데이터의 ..
- 2023-11-20 18:45:24
- [궁금한건 못참아]라이브러리 vs. 직접구현Cat_Code피어슨 상관계수와 코사인 유사도에 글을 정리하던 중 이미 해당 공식들은 numpy나 scipy에 존재했다 피어슨 상관계수? [머신러닝+선형대수] 상관관계와 코사인 유사도 통계와 머신러닝에서 가장 근본적이면서 중요한 분석 방법은 상관관계를 분석하는 것이다 상관관계를 살펴보기 위해서는 상관계수를 구하는 방법이 있다 상관계수는 -1 부터 +1까지의 범위로 eumgill98.tistory.com 이때 갑자기 의문점이 하나 생겼다 과연 직접 구현함 함수와 라이브러리에 있는 함수의 속도 차이가 존재할까? 오늘은 이런 의문점을 해결하기 위해서 간단한 실험을 진행해 보았다 실험 설계 오늘 비교할 공식 재료 : `피어슨 상관계수` 비교할 대상 (1) 직접 구현한 피어슨 상관계수 함수 (2) Numpy의 np.corrco..
- 2023-11-16 19:01:04
- [머신러닝+선형대수] 상관관계와 코사인 유사도Cat_Code통계와 머신러닝에서 가장 근본적이면서 중요한 분석 방법은 상관관계를 분석하는 것이다 상관관계를 살펴보기 위해서는 상관계수를 구하는 방법이 있다 상관계수는 -1 부터 +1까지의 범위로 표현할 수 있는데 +1은 완벽한 양의 상관관계를 나타내며, -1은 완벽한 음의 상관관계를 나타낸다. 0의 경우 선형관계가 없음을 의미한다. 1. 피어슨 상관계수 상관계수를 구하는 방법에는 피어슨 상관계수가 있다. 우선 상관계수는 -1~+1에 존재해야하기 때문에 정규화가 필요하다 피어슨 상관계수에서 정규화는 2가지 방법이 적용된다 | 각 변수의 평균 중심화 | A 벡터와 B 벡터의 상관계수를 구하려고하는데 A와 B의 단위가 다르다면 -1과 +1사이로 표현할 수 없을 것이다 이를 위해서 우리는 평균 중심화를 이용한다 말로 설명하..
- 2023-11-16 17:18:46
- [궁금한건 못참아] 다양한 이미지 포맷.. 보이지 않는 너머에 대해Cat_Code대학시절 미디어 커뮤니케이션학을 전공하면서 카메라의 발명은 예술작품의 `아우라`의 소멸을 만들어 냈다는 내용을 공부한 적이있다. 카메라만 있으면 누구나 원하는 자신의 얼굴 또는 지인의 얼굴 그리고 배경사진까지 하나의 예술작품으로 간직할 수 있는 시대가 만들어 진것이다. 최근 디지털로 넘어오면서 이러한 `아우라`는 완전히 사라진 것 처럼 보인다 물론 NFT 같이 디지털에서 `아우라`를 소생시키려는 시도들은 있지만 이제 누구나 원한다면 인터넷 상에서 자신이 원하는 예술작품, 사진, 그림 등을 Ctrl + C 와 Ctrl + V 만으로 소유할 수 있는 시대가 되었다. 그러나 우리는 이러한 행위에서 무심결에 넘어가는 부분이 있다. 바로 이미지 파일 포맷이다 `JPG, PNG, ...` 등 다양한 방식의 이미지 ..
- 2023-11-15 19:44:04
- [Einops] 차원관리의 새로운 차원Cat_CodeDeeplearning code를 작성하다 보면 항상 tensor의 차원을 관리하는 것에서 어려움을 마주친다. 물론 Pytorch나 Numpy를 활용해서 차원을 관리할 수 있지만 문제는 `직관적`이지 않다는 것이다. 실제로 4차원 이상부터는 사람이 상상하기 힘들다.. 이렇게 어려운 차원관리를 효율적으로 할 수 있는 라이브러리가 있다. 바로 `Einops`이다. 이 라이브러리를 처음 발견한 코드는 ViT를 Pytorch로 구현한 코드였다 처음 이 코드를 보았을때, 기존 Python의 문법에서 본적이 없는 하이퍼 파라미터의 형태를 갖고 있어서 조금은 혼란스러웠다. out = torch.matmul(attn, v) out = rearrange(out, 'b h n d -> b n (h d)') return s..
- 2023-10-17 23:21:33
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)