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

전체 글 167

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

[FastAPI] 예외(Exception) 처리 방법 (10)

1. 개요FastAPI에서 예외를 처리하는 대표적인 방법은 아래와 같다.HTTPException 사용Custom Exception 만들기예외처리 핸들러 등록하기2.   HTTPException 사용FastAPI에서 기본적으로 제공하는 예외 클래스간단히 사용할 때 사용.from fastapi import FastAPI, HTTPExceptionapp = FastAPI()@app.get("/items/{item_id}")async def read_item(item_id: int): if item_id  3.  Custom 예외3.1. 왜 사용하는가?예외를 좀더 쉽게 추적하고 디버깅 하기위해코드의 가독성, 유지보수를 위해상태 코드와 메시지로만 예외를 구분하면 코드가 길어지고 복잡복잡한 시스템을 만들 때 ..

Fastapi 2025.01.19

[FastAPI] API의 Output (9)

1. API의 OutputAPI의 Output에는 어떠한 내용이 담겨있을까?데이터의 결과와 상태에 대한 데이터가 담겨 있다.구체적으로는 아래와 같다.Pydantic (Response Model)FastAPI는 Pydantic 모델을 사용하여 응답 데이터 구조를 정의클라이언트가 받을 데이터의 형태를 명확히 규정하고, 필요에 따라 필드 제한(예: 특정 필드만 출력)Json 데이터FastAPI는 기본적으로 JSON 포맷으로 응답을 반환한다.HTTP 상태 코드응답 상태 코드는 요청이 성공했는지, 실패했는지, 그리고 실패 이유가 무엇인지 클라이언트에 알려줌결론적으로 Json 형태로 만들거나, Pydantic 형태로 만들고데이터와 상태코드를 담아 보내면 된다. 2. 상태 코드2.1. 상태 코드 종류1xx: Info..

Fastapi 2025.01.19

[FastAPI] API의 Input (8)

지금까지는, API를 만들 때 그때그때 필요한 값을 Input으로 만들었다.앞으로는 상황에 맞는 값들을 사용해 보자.1. Path parameter1.1.설명경로(Path)에 파라미터 지정하는 방법Path Parameters는 클라이언트가 서버로 데이터를 전달하는 방법 중 하나일반적으로 str, int 를 처리한다.리소스 식별에 적합, (특정 리소스(데이터)를 고유하게 식별해야 하는 경우)get, delete 에서 주로 사용1.2. 기본 사용법URL에서 중괄호 {} 안에 정의함수의 파라미터에 input값, 타입힌트 정의주의사항{} 안의 변수명과 함수 매개변수명이 일치기본값을 설정할 수 없음@app.get("/users/{user_id}")async def read_user(user_id: int): ..

Fastapi 2025.01.19

[FastAPI] SSO 로그인과 OAuth 2.0 (7-2)

1. SSO 로그인SSO(Single Sign-On)는 사용자가 한 번의 로그인으로 여러 애플리케이션이나 시스템에 접근할 수 있도록 해주는 인증 방식중앙 집중식 인증주로 OAuth 2.0과 OpenID Connect와 같은 프로토콜을 사용사용자는 먼저 IdP에 로그인하고, 해당 로그인 정보가 포함된 인증 토큰(보통 JWT)을 받는다.일반적으로 여러 서비스가 붙어있는 거대한 환경에서 쓴다. 2. OAuth 2.02.1. OAuth 2.0 개념권한 위임(Authorization Delegation)유저는 비밀번호 등의 자격증명을 애플리케이션에 직접 제공하지 않고, 신뢰할 수 있는 권한 서버(Authorization Server)를 통해 자원에 접근할 권한을 위임함역할(Role)Resource Owner ..

Fastapi 2025.01.19
반응형