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

전체 글 168

[LLM] 파인튜닝(fine-tunning) (9)

1. 파인튜닝(fine-tunning)이란Pre-tained Model (기본 언어 능력을 학습한 모델)을 기초로 하여특정 상황에 맞는 사용을 위해 추가로 학습하는 것을 파인튜닝(fine-tunning) 이라고 한다. pre-train과 비교pre-train일반 말뭉치를 사용해 학습다음 단어를 예측하는 형식으로 학습, 즉 다음단어가 target이 되는 형식임방대한 데이터로 학습하여 모델의 기본 지능을 만드는 과정fine-tunning상황에 맞는 input과 output을 학습함. 즉, supervised learningpre-trained 모델을 가져와 특정 태스크에 맞는 소규모 데이터셋으로 추가 훈련2. 데이터셋 준비2.1. 데이터 설명어떤 도메인의 모델을 학습할지 먼저 정해야 한다.다음으로 특정 도메..

[FastAPI] 객체지향과 FastAPI (16)

FastAPI에서 객체지향 개념을 적용해 보자. 1. FastAPI에서 객체지향 적용의 필요성캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism)코드가 커지다 보면, 비슷한 기능을 하는 클래스를 여러개 만들 때가 많다. 이럴때 추상클래스와 상속, 다형성 개념을 적용하면 코드를 깔끔하게 정리할 수 있다.예를 들어 삭제 동작을 정의한다고 할 때, 프로젝트의 다양한 곳에서 delete, remove, erase, eliminate 등 다양한 이름으로 사용된다면 상당히 관리가 어려울 것이기 때문이다. 이럴 때, 추상클래스를 상속해 사용한다면 코드 관리가 아주 편리해 질 수 있을 것이다. 의존성 주입을 통한 결합도 낮추기fastapi의 Depends를 활용한 객체 주입..

Fastapi 2025.02.25

[LLM] 모델 학습 with HuggingFace (peft) (8)

1. peft(🤗 Parameter-Efficient Fine-Tuning)란?peft(Parameter-Efficient Fine-Tuning)는 Hugging Face에서 제공하는 라이브러리로, 대형 언어 모델(LLM)을 효율적으로 파인튜닝할 수 있도록 도와준다.기존 방식처럼 모델 전체를 미세 조정하는 대신, 일부 가중치만 조정하여 메모리 사용량을 줄이고, 훈련 속도를 높이며, 다양한 작업에 쉽게 적용할 수 있도록 설계되었다. 2. peft의 주요 기능LoRA (Low-Rank Adaptation)특정 가중치 행렬의 일부만 학습 가능한 상태로 두어 모델 크기를 줄이고, 연산량을 감소시킴메모리 사용량이 적어 GPU 자원이 적어도 LLM을 튜닝할 수 있음Prefix Tuning입력 시퀀스 앞에 학습 가..

[flutter] dart 언어 - 비동기 프로그래밍 (5)

0. 개요네트워크 요청, 파일 읽기, 데이터베이스 쿼리 같은 작업은 비동기적으로 실행하는 것이 더 효율적시간이 걸리는 작업을 기다리는 동안 다른 작업을 수행할 수 있음Future, async, await을 사용하여 비동기 코드를 작성stream 으로 연속된 값을 가져올 수 있음completer 를 이용해 Future를 직접 제어 1. Future - 비동기 작업Dart에서 비동기 작업을 처리할 때 Future 객체를 사용한다 먼저, 일반적인 동기 함수 코드를 보고 비교해 보자void longTask() { print("작업 시작..."); sleep(Duration(seconds: 3)); // 3초 동안 멈춤 print("작업 완료!");}void main() { print("A"); long..

flutter 2025.02.23

[flutter] dart 언어 - 함수 (4)

1. 함수 사용법기본적인 함수 선언// 반환값이 없음, input 없음void greet() { print("Hello, Dart!");}void main() { greet(); // 함수 호출} 반환값 정의: return 에 반환값 정의, 함수 이름 앞에 반환값의 자료형 정의input값 정의 : 자료형 변수명 형식int add(int a, int b) { return a + b;}void main() { int sum = add(3, 5); print("Sum: $sum"); // 출력: Sum: 8} 선택적 매개변수 : [][] 안에 있는 매개변수는 필수가 아님기본값이 없으면 null이 들어갈 수도 있음void greet([String name = "Guest"]) { print("Hell..

flutter 2025.02.22

[flutter] dart 언어 - 조건문 & 반복문 (3)

1. if문 (조건문)1.1. 기본 사용법if, else if, else 키워드를 사용if, else if 뒤에는 조건이 옴. 조건은 () 괄호에 넣어줌코드는 {} 안에 넣어줌if (score >= 90) { print("A 학점");} else if (score >= 80) { print("B 학점");} else { print("C 학점");} 1.2. 3항 연산자✅ (조건) ? 참일 때 값 : 거짓일 때 값String message = (age >= 18) ? "성인입니다." : "미성년자입니다."; 2. switch 문switch(변수)로 선언내용은 {} 안에case : 로 각 경우 정의, 괄호 없이 ; 로 코드 구분break로 실행 중단String grade = "B";switch (grade..

flutter 2025.02.22

[flutter] dart 언어 - print, 주석, 변수, 자료형 (2)

1. main 함수와 print()Dart 프로그램은 main() 함수에서 실행이 시작된다. print() 함수를 이용해 선언한 변수를 출력할 수 있다.그리고 코드 마지막에 ;(세미콜론)을 넣어준다. void main() { print("Hello, Dart!");} 2. 주석한줄 주석은 // 을 사용하면 된다. 여러줄 주석은 /* */ 을 사용 void main() { /* 여러 줄 주석을 사용할 수 있습니다. 이 부분은 실행되지 않습니다. */ print("Hello, Dart!"); // 출력: Hello, Dart!} 2. var 변수 만들기var로 자료형을 만들면자동으로 자료형을 알맞게 선언해 준다.한 번 타입이 정해지면 변경할 수 없다.void main() { var name..

flutter 2025.02.22

[flutter] 환경 세팅 (1)

들어가며... 인공지능을 배포하기 위해FastAPI를 공부했지만화면이 없다니 너무 답답하다 ㅠㅠ!그래서 앱까지 만들어 보기로 했다.flutter가 가장 많이 사용된다고 하니 도전해 보겠다. 1. 안드로이드 스튜디오flutter 개발을 위해서는 안드로이드 스튜디오가 가장 편리하다고 한다.구글에서 공식적으로 지원하기 때문gemini도 사용할 수 있고, 구글 플레이스토어와도 연동이 되니 아주 편리해 보인다. 안드로이드 스튜디오 홈페이지 Android 스튜디오 설치  |  Android Studio  |  Android DevelopersWindows, macOS 또는 Linux에서 Android 스튜디오를 설정 및 설치합니다.developer.android.com 2. Dart 공부를 위한 vscode이미 d..

flutter 2025.02.22

[LLM] 모델 학습 with HuggingFace (DeepSpeed) (7)

1. DeepSpeed 란?DeepSpeed는 분산 학습 메모리를 효율적이고 빠르게 만드는 PyTorch 최적화 라이브러리 내용 출처: DeepSpeed DeepSpeedDeepSpeed는 분산 학습 메모리를 효율적이고 빠르게 만드는 PyTorch 최적화 라이브러리입니다. 그 핵심은 대규모 모델을 규모에 맞게 훈련할 수 있는 Zero Redundancy Optimizer(ZeRO)입니다. ZeRO는 여러 단계huggingface.co 설치pip install deepspeed 2. 개념2.1. ZeRO(Zero Redundancy Optimizer)ZeRO (Zero Redundancy Optimizer) 방법을 사용함ZeRO-1, GPU 간 최적화 상태 분할ZeRO-2, GPU 간 그레이디언트 분할Ze..

[LLM] 모델 학습 with HuggingFace (Accelerate) (6)

1. 개념멀티 GPU/TPU 환경 등에서 파이토치(PyTorch) 기반 훈련 스크립트를 간편하게 확장할 수 있도록 도와주는 경량 라이브러리전통적으로 PyTorch 분산 학습(DDP)나 TPU/XLA를 직접 설정하려면, torch.distributed API나 TPU용 코드를 별도로 작성사용자 정의 훈련 루프를 최대한 그대로 두면서 분산 학습 설정과 관련된 복잡도를 줄여주는 것이 핵심다양한 하드웨어 가속 환경을 지원 출처: Accelerate 링크 AccelerateConcepts and fundamentalshuggingface.co 설치 방법pip install accelerate 2. 실행 방법2.1. accelerate config (설정 세팅)사용 목적: 사용자의 환경(로컬 머신/멀티 GPU/TP..

반응형