인공지능 개발자 수다(유튜브 바로가기) 자세히보기
반응형

전체 글 151

[FastAPI] 디자인 패턴-라우터패턴(Router Pattern) (11-4)

1. 라우터 패턴 (Router Pattern) 이란라우터 패턴(Router Pattern)은 FastAPI에서 API 엔드포인트를 논리적으로 분리하여 관리하는 방법기본적으로 APIRouter를 사용하여 엔드포인트를 모듈화하고, app 객체를 만드는 부분에서 이를 포함시키는 방식. 장점코드 모듈화: 엔드포인트를 역할별로 나가독성 향상: 각 엔드포인트의 역할이 명확유지보수 용이: 특정 기능을 수정하거나 추가할 때 더 쉽게 변경 가능확장성: 새로운 API 기능을 추가할 때 기존 구조를 해치지 않고 추가 가능 2. 라우터 패턴 사용 방법프로젝트 구조 예시my_fastapi_project/│── main.py│── routers/│ ├── user.py│ ├── item.py│── models/│── ..

Fastapi 2025.02.02

[LLM] DeepSeek-R1 논문 핵심내용 요약

0. 개요이전 글에서 DeepSeek 논문 리뷰를 먼저 작성하고,이번 포스팅은 핵심 내용을 요약한 것이다.RL, GRPO, 체인 오브 소트 데이터, 다단계 학습 파이프라인 (Multi-Stage Training Pipeline) 에 대해 정리해 보자 이전 글 링크 [LLM] DeepSeek-R1 논문 리뷰논문을 읽게 된 배경연구 관련 설명(출처: CNN 뉴스, BBC 뉴스)중국의 인공지능 기업의 기술ChatGPT와 유사한 성능OpenAI, Google, Meta보다 훨씬 낮은 비용으로 제작됨이전보다 훨씬 적은 컴퓨팅 성능으databoom.tistory.com 1.  RL과 GRPO1.1. 기존 Supervised Fine-Tuning (SFT) 방식전통적으로 Supervised Fine-Tuning (S..

LLM 모델 불러오기 실행하기 (Huggingface Transformers) (3)

1.  모델 선택먼저 HuggingFace에서 Models에 들어가사용하고 싶은 모델을 선택한다. 모델을 선택 했으면, Use this model을 클릭하고transformers를 클릭해 준다. 그러면 모델을 불러올 수 있는 코드를 두가지 확인할 수 있다. 2. 모델 직접적으로 불러오는 방법이 방법은 모델을 직접 불러오는 것이다. 불러오는 방법은 다음과 같다.실행을 위해 코드를 복사한다. (모델 이름, import 라이브러리 확인)모델을 gpu로 옮겨준다.토크나이저도 불러온다.import torchfrom transformers import AutoModelForCausalLM, AutoTokenizer# 디바이스 설정 (GPU가 사용 가능하면 GPU, 아니면 CPU)device = torch.devic..

Pytorch Transformers 설치 (2)

이 글은 2025.01.28 기준이다. 1. 파이썬 환경 구성먼저 pyenv를 이용해 적절한 python을 설치해 준다.pyenv install 3.12.4 설치된 파이썬 확인pyenv versions 파이썬 가상환경을 만들어 준다.pyenv virtualenv 3.12.4 my_env 가상환경 확인pyenv virtualenvs 가상환경 실행activate my_env 2. Pytorch 설치Pytorch 버전은 2.5.1 이 최신이다. MPS (Apple Silicon) 지원 설치 (Mac M1/M2) 또는 CPU 전용 설치pip install torch torchvision torchaudio Cuda를 사용하는 경우예시: CUDA 11.8pip install torch torchvision tor..

LLM을 위한 Pytorch와 HuggingFace 개요 (1)

0. 개요LLM을 위한 Pytorch에서는Pytorch 기본 사용방법을 이미 알고 있으며,딥러닝에 대한 기본지식이 있는 사람들을 대상으로LLM을 다루기 위해 Pytorch를 어떻게 사용해야 하는지를 정리할 것이다. 또한, 기본적으로 HuggingFace의 Transformers를 사용할 수 있어야 하기 때문에함께 사용법을 알아가도록 하자. 1. Pytorch와 LLMLLM을 다루기 위한 강력한 도구이다.Pytorch로 다양한 작업을 수행할 수 있다.모델 설계학습 - 사전 학습(Pre-training), 분산 학습최적화 (Optimizer)디버깅 및 배포모델 미세 조정(Fine-Tunning)사후 작업 (Post-Training) - 양자화(Quantization), 프루닝(Pruning), Distill..

[LLM] DeepSeek 실행 방법 with Pytorch

0. 개요DeepSeek가 현재 상당한 이슈가 되고 있다.게다가 오픈소스로 Huggingface에 올라와 있어실행이 가능하다고 하니, 한번 실행해 보도록 하자. huggingface 링크 deepseek-ai/DeepSeek-R1 · Hugging FaceDeepSeek-R1 Paper Link👁️ 1. Introduction We introduce our first-generation reasoning models, DeepSeek-R1-Zero and DeepSeek-R1. DeepSeek-R1-Zero, a model trained via large-scale reinforcement learning (RL) without supervised fine-tuning (SFT) as a prelhug..

[LLM] DeepSeek-R1 논문 리뷰

논문을 읽게 된 배경연구 관련 설명(출처: CNN 뉴스, BBC 뉴스)중국의 인공지능 기업의 기술ChatGPT와 유사한 성능OpenAI, Google, Meta보다 훨씬 낮은 비용으로 제작됨이전보다 훨씬 적은 컴퓨팅 성능으로 제작오픈소스로 공개 최근 DeepSeek-R1 으로인해, 미국 인공지능 회사들의 주가가 크게 떨어졌다.저렴한 가격으로 높은 성능의 모델을 만들었기 때문이다.게다가 OpenAI는 모델이 비공개인데, DeepSeek는 오픈소스이다! DeepSeek를 다운받아 pytorch로 실행하는 글은 다음 글에서 확인해보자 (다음 글 링크) [LLM] DeepSeek 실행 방법 with Pytorch0. 개요DeepSeek가 현재 상당한 이슈가 되고 있다.게다가 오픈소스로 Huggingface에 올..

[FastAPI] 디자인 패턴-미들웨어 패턴(Middleware Pattern) (11-3)

1. 미들웨어(Middleware) 란 무엇인가개념클라이언트와 서버 사이에서 데이터 요청(Request) 및 응답(Response)을 처리하는 중간 계층HTTP 요청을 처리하거나 응답을 반환하기 전에 실행되는 함수case1 : 요청이 애플리케이션의 특정 라우터에 도달하기 전에 작업을 수행case2 : 응답이 클라이언트에 반환되기 전에 조작하는 데 사용주요 역할요청(Request) 처리 전 작업요청의 유효성을 검사하거나 수정인증(Authentication) 및 권한 확인(Authorization)로그 기록(Log)을 남기거나 성능 모니터링응답(Response) 처리 후 작업데이터 압축(Gzip 등)응답 헤더 추가에러나 예외(Exception)를 클라이언트에 적절히 전달보안(Security)CORS(Cros..

Fastapi 2025.01.27

[FastAPI] 디자인패턴-팩토리 패턴(Factory Pattern) (11-2)

1. 개념1.1. 설명객체 생성 로직을 캡슐화팩토리(Factory) 역할을 하는 메서드나 클래스를 통해 객체를 생성객체 생성의 책임을 별도의 팩토리 클래스 또는 메서드에 위임하여, 객체 생성 로직을 단순화하고 클라이언트 코드와의 결합도를 낮추는 것1.2. 사용 목적객체 생성 방식이 변경되더라도 클라이언트 코드에 영향을 최소화객체 생성 과정의 복잡성을 숨기고 단순화.1.3. 언제 사용하는가?앱 초기화구성 요소 관리 2. FastAPI 활용 예시2.1. 앱 초기화 예시다음과 같은 구조로 코드 예시를 정리한다. (여기서 app.py가 핵심이다.)project/├── app.py # 앱 초기화 및 팩토리 메서드 정의├── main.py # 애플리케이션 실행 진입점├── config..

Fastapi 2025.01.27

[FastAPI] 디자인패턴-의존성 주입(Dependency Injection) (11-1)

0. 디자인 패턴(Design Pattern)0.1. 설명소프트웨어 개발 과정에서 반복적으로 나타나는 문제들을 해결하기 위해 제안된 재사용 가능한 솔루션특정한 상황에서의 최선의 설계 방법을 정의0.2. 장점코드 재사용성 증가유지보수성 향상개발 시간 단축효율적인 협업유연하고 확장 가능한 코드0.3. 단점초보 개발자에게는 어려움과도한 설계 / 남용의 위험1. 의존성 주입(Dependency Injection) 개념1.1. 설명특정 값을 외부 함수에서 전달받는 방식1.2. 장점코드 재사용성 증가 (데이터베이스 연결, 인증 토근 검증, 사용자 정보 추출 등)테스트 코드 작성 용이 (개발환경, 테스트 환경에 따라 다른 의존성을 줄 수 있음)특정 로직을 모듈화 (하나의 로직이 하나의 책임만)비즈니스 로직과 기숙적 ..

Fastapi 2025.01.24
반응형