전체 글 116

TIL 37

RAG vs Prompt engineering vs Fine tuning각각이 무엇이고, 차이점이 무엇인가?이 3가지 개념은 생성형 AI 모델을 최적화하거나, 특정 목적에 맞춰 성능을 높이기 위한 방법들이다.RAGRetrieval-Augmented Generation. 검색-증강 생성외부 소스에서 가져온 사실을 통해 생성형 AI 모델의 정확성과 신뢰성을 향상시키는 기술기존 정보 검색 시스템(예: 검색 및 데이터베이스)의 강점과 생성형 대규모 언어 모델(LLM)의 기능을 결합한 AI 프레임워크개념 : 생성형 AI 모델이 정보를 생성할 때, 사전에 학습된 지식만을 사용하는 것이 아니라, 외부 데이터베이스에서 관련 정보를 검색하고, 이를 바탕으로 답변을 생성하는 방식이다.예) 고객 지원 챗봇이 실시간으로 최신..

TIL 36

프롬프트 엔지니어링프롬프트라는 용어는, AI에서는 AI를 작동시키기 위해 사용자가 언어 모델을 설정하거나 입력하는 모든 텍스트를 말하게 된다. 그래서 시스템 프롬프트부터 사용자의 명령까지 모두 프롬프트라고 할 수 있다. 그리고 AI가 좀 더 잘 동작하게 프롬프트를 개선하는 작업을 프롬프트 엔지니어링이라고 한다. 인공지능 모델이 답변을 할 때, 사용자가 원하는 답변을 할 수 있게 유도하는 것이다. 프롬프트 엔지니어링말고도 답변을 유도하는 방법은 여러 가지가 있을 것이다. 대표적으로 RAG 기법이 있다. 이 기법들은 상호 보완적으로 사용될 수 있는 구조이기 때문에, 우리는 전반적인 지식을 익혀야 한다.프롬프트 엔지니어링과 System, Assistant, User 역할 적용하기프롬프트 엔지니어링을 할 때, ..

TIL 35

LLM ( Large Language Model )LLM은 대규모 언어 모델이다. 이는 번역, 작문, 코딩까지 그 활용 범위가 굉장히 넓기 때문에 서비스의 형태로도 굉장히 다양하게 제공되고 있다. RAG, Vector DB, LangChain과 같은 기술들은 LLM을 좀 더 편하게 쓰고, LLM이 근본적으로 가지고 있는 한계점을 극복하기 위해 나온 기술들이다. 대형 언어 모델은 말도 안 되는 양의 크기의 인공지능에, 말도 안 되는 양의 텍스트 데이터를 학습시켜서, 마치 사람같은 자연어 처리 능력을 갖게 만든 모델을 말한다.LLM의 동작 원리LLM을 동작시키기 위해서는 세 가지 단계가 필요하다.첫 번째로, 학습이다. LLM도 인공지능이기 때문에 학습 단계가 포함돼야 하는 것이다. LLM은 대규모 텍스트 데..

TIL 34

이번에서는 OpenCV와 Yolo를 활용해서 실시간 객체 탐지 서비스 만들어볼 것이다. OpenCV는 사진이나 동영상에 대해서 굉장히 많은 기능을 지원하는 라이브러리 중 하나다. OpenCV와 YOLO 이외에도 PyQt5라는 것을 사용할 것이다. PyQt5는 파이썬에서 사용자의 인터페이스를 구성하는 라이브러리다. 먼저 필수 라이브러리를 import하자.from ultralytics import YOLOimport cv2from PyQt5.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget, QPushButtonfrom PyQt5.QtCore import QTimerfrom PyQt5.QtGui import QImage, QPixmapfrom ultr..

TIL 33

YOLO ( You Only Look Once )YOLO에 대해 알아볼 것이다. 실시간 객체 탐지 알고리즘 중 하나로, 한 번의 신경망 실행으로 이미지 내의 다양한 객체를 예측하는 방식으로 동작한다. YOLO는 빠르고 효율적이다. 동영상에 대해서 실시간 객체 탐지를 할 수도 있고, 카메라로부터 받은 입력에 대해서 실제로 객체 탐지를 진행할 수도 있을 것이다.ChatGPT로 그림 만들기ChatGPT는 이미지도 만들 수 있다. model에 dall-e라는 걸 설정해주고, prompt를 prompt 파라미터에 전달하면 된다. 아래쪽은 이미지의 size와 quality, 개수(n)를 설정하는 부분이다.from openai import OpenAIclient = OpenAI()prompt = input("Prom..

WIL 5

챕터 2가 끝났다. 팀 도전과제를 하면서 어려움이 많았다. 개인적인 어려움이었다. 도전 과제의 난이도가 매우 높게 느껴졌고, 개인 과제였다면 도전 과제는 해내지 못했을 것이다. 그러나 좋은 조원들 덕분에 도전과제도 해낼 수 있었다. 물론 완벽하게 이해한 것은 아니다. 다만, 혼자였다면 시도도 못했을 도전과제를 끝까지 시도라도 해볼 수 있었다. 팀과제의 장점을 직접 체감할 수 있었다. 도전 과제라는 말만 듣고, 시도하기조차 무서웠다. 그러나 필수 과제는 얼마든지 금방 끝낼 수 있으니, 남는 시간에 도전 과제를 해보자는 팀원들 덕분이었다. 좋은 팀원을 만나서 행복했던 챕터 2였다. 마냥 두려워하기만 하지 말고, 일단 부딪혀보면 어떻게든 해낼 수 있다는 생각을 하게 되었다. 챕터 1에서는 필수 과제를 해내기에..

TIL 32

ChatGPT와 ElevenLabs를 실습해볼 것이다. 간단한 질의응답 프로그램을 먼저 만들고, 그 후에 대화를 하는 인공지능을 만들어볼 것이고, 주어진 입력을 음성으로 바꾸는 실습도 해볼 것이다.ChatGPT를 사용한 간단한 질의응답 프로그램일회성. 질의응답먼저, 간단한 환영 인사 프로그램을 만들어보자.from openai import OpenAIclient = OpenAI()completion = client.chat.completions.create( model="gpt-4o", messages=[ {"role": "system", "content": "너는 변호사야 나에게 법적인 상담을 해줘"}, {"role": "user", "content": "안녕하세요 저는 ㅇㅇㅇ입니다."} ..