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

전체 글 133

[Langchain] 임베딩(Embedding)과 유사도 검색 방법 for Retriever

1. 임베딩(Embedding)정의 : 임베딩은 단어, 문장, 이미지 등과 같은 데이터를 숫자 벡터(연속된 실수 공간)로 표현하는 방식 (사진 출처: google 머신러닝 기초과정) 단어나 문장을 임베딩 모델(BERT, GPT 등)을 통해 고정된 차원의 실수 벡터로 바꾸면, 각각의 벡터가 해당 단어(또는 문장)의 의미 정보를 함축적으로 담게 된다. 이때, 데이터는 의미가 유사한 두 벡터는 사이가 가깝도록 만든다. 2. 임베딩 모델주된 학습 목적은 의미가 유사한 문장은 유사한 벡터로, 의미가 다른 문장은 다른 벡터로 매핑하도록 하는 것생성 모델과 달리, 토큰을 문장으로 생성하는 것이 아니라 문장을 하나의 벡터로 표현하는 데 집중 2.1. 고전적인 모델고전적인 모델에는 Word2vec이 유명하다.Word2v..

[Langchain] Retriever 사용하기

출처 : Langchain 공식문서 How-to guides | 🦜️🔗 LangChainHere you’ll find answers to “How do I….?” types of questions.python.langchain.com 1. Retriever 는 무엇인가Retriever는 주어진 질문에 대해 벡터스토어 에서 관련된 정보를 검색 검색은 챗봇이 챗 모델의 훈련 데이터 외부의 데이터로 응답을 증강하는 데 사용 retriever를 적용하는 것은 다음을 고려한다.방법이 다양하기 때문에, 상황과 데이터에 맞는 방법을 채택한다.Custom으로 만들 것인가간단하게 만들 것인가.다양한 방법을 조합해서 만들 것인가어느 부분에 적용할 것인가 (prompt에 문서 삽입, 질문을 메타에 맞게 변형, 명확한 질..

[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
반응형