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

전체 글 165

[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..

[LLM] 모델 학습 with Hugging Face (TrainingArguments, Trainer, trl) (5)

1. 개요이번 포스팅에서는HuggingFace에서 제공하는프레임워크에 대해 소개하겠다.라이브러리역할주요 기능Transformers모델, 토크나이저AutoModel, AutoTokenizer 등Trainer지도학습 (SFT)Trainer, TrainingArgumentsTRL강화학습 (RLHF)PPOTrainer, SFTTrainerDeepSpeedGPU 메모리 최적화ZeRO Stage, Hugging Face Trainer와 연동Accelerate분산 학습 최적화여러 GPU/TPU 환경에서 Trainer 가속화PEFT (Parameter Efficient Fine-Tuning)파라미터 효율적 파인튜닝 기법 지원LoraConfig, get_peft_modelEvaluate모델 평가load_metric("b..

[LLM] 데이터 준비 with huggingface (datasets) (4)

1. LLM 학습을 위한 데이터 형식모델에 따라 필요한 데이터의 형식은 달라질 수 있으나,일반적인 모델은 텍스트만 있으면 된다. (특이 케이스 형태의 데이터는 다음에 업데이트 하겠다.) 그리고 아래와 같은 태그를 붙여준다. (안붙여줘도 학습은 된다고 한다.) : 문장의 시작 : 문장의 끝 예를 들면 다음과 같다.data = [ {"text": " 인공지능은 사람의 언어를 학습할 수 있습니다. "}, {"text": " 사용자: 오늘 날씨 어때? "}] 만약 데이터를 직접 만들고 싶으면위와 같이 만들면 되겠다. 2. datasets를 이용해 데이터 불러오기datasets 는 huggingface에서 관리하는 데이터 셋을 불러오기 위한 라이브러리이다. 설치 명령어는 아래와 같다.pip instal..

[langchain] 채팅 히스토리와 메모리 (History, Memory)

0. 개요LangChain에서 대화 히스토리는 Memory 에서 관리한다.모델이 이전에 어떤 맥락(대화 이력 등)을 가지고 있었는지 유지이전 대화 내용을 연속적으로 반영하기 위한 구조 관리 방법과거 대화 내용을 요약하거나핵심만 발췌하거나혹은 토큰 제한(token limit)에 맞춰서 관리 1. 채팅 히스토리(History)채팅 내용을 물리적인 공간에 저장/관리 하는 기능대화(메시지)들을 실제로 보관하는 역할in-memory, redis, postgres, file, mongodb 등 다양한 곳에 저장할 수 있음 1.1. 인메모리(in-memory)에 저장인메모리(in-memory) 대화 기록 저장ChatMessageHistory 클래스 사용프로그램이 동작하는 동안만 메시지를 기억하고, 종료 시에는 사라진..

[FastAPI] FastAPI 속도개선 - 캐시(Cache) (15)

1. 캐시(Cache)란캐시(Cache)는 자주 사용되는 데이터를 빠르게 접근할 수 있도록 저장해 두는 임시 저장소즉, 속도를 높이고 성능을 최적화하기 위해 데이터를 미리 저장하는 기술 동작 방식사용자가 특정 데이터 요청 → 서버에서 데이터 조회 → 캐시에 저장다음에 동일한 요청이 오면, 데이터베이스 대신 캐시에서 데이터를 반환일정 시간이 지나면 캐시 만료(Expire) → 새로운 데이터를 다시 저장 사용 이유속도 향상서버 부하 감소비용 절감 주의사항오래된 데이터(Invalidation 문제) : 최신화된 데이터가 불러와지지 않을 수 있음메모리 사용량 증가 : 캐시가 많아질수록 메모리를 많이 차지하므로 적절한 용량 관리가 필요. 2. FastAPI 사용 방법2.1. 설치먼저 아래 명령어로 라이브러리를 설..

Fastapi 2025.02.04

[FastAPI] pytest 사용법 (14)

1. pytest 사용법1.1. 실행 방법pytest는 함수 이름이 test_로 시작하는 함수를 찾아서 실행함수 정의 시, assert 키워드를 이용해 성공 여부를 검사. True인 경우 성공 pytest 예시코드def test_addition(): assert 1 + 2 == 3def test_string_upper(): assert "pytest".upper() == "PYTEST"def test_fail(): assert 1 + 1 == 3, "이 테스트는 실패해야 합니다!" 특정 파일 테스트 실행pytest 파이썬파일.pypytest test_sample.py 특정 디렉토리 안의 모든 테스트 실행pytest pytest tests/test_routers/ 특정 함수만 테스트 실행p..

Fastapi 2025.02.03

[FastAPI] 로그 남기기 (logging) (13)

1. 기본 logging 설정 utils/logging.pyPython의 logging 모듈을 사용해서 FastAPI에 로깅을 추가logging.basicConfig() : 기본 로깅 설정 logging.StreamHandler() : 터미널에 출력하는 핸들러logging.FileHandler(file_path, mode="a") : 로그 파일에 저장logger = logging.getLogger("로거 이름") : logger 정의, 로거를 여러개 만든다면, 로거 이름을 각각 사용해 구분할 수 있다.import loggingimport os# 로그 파일 경로 설정LOG_FILE_PATH = "logs/app.log"os.makedirs(os.path.dirname(LOG_FILE_PATH), exist..

Fastapi 2025.02.03
반응형