오블완 18

TIL 41

강의 외부에서 추가로 알게 된 내용eval() 함수Python에서 문자열 형태로 작성된 표현식을 실행하여 그 결과를 반환하는 함수다. 즉, 코드나 수식을 문자열로 받아서 실행시켜 결과를 돌려준다. 예를 들어보자.# 기본적인 사용 예시expression = "3 + 5 * 2"result = eval(expression) # 문자열 안의 수식을 계산하여 실행print(result) # 출력: 13위 코드에서 eval()은 문자열 "3 + 5 * 2"를 실제 코드처럼 계산해서 결과값인 13을 반환한다. 그러나 eval()은 보안상의 위험이 있을 수 있다. 입력된 문자열이 안전한지 확인하지 않으면 의도치 않은 코드를 실행하여 보안 문제가 발생할 수 있다. 예를 들어, 악의적인 코드가 포함된 문자열을 eva..

TIL 40

이번에는 영어 텍스트를 입력받아서 한국어로 번역하고, 해당 번역문을 한국어 음성으로 변환해서 재생하는 프로그램을 만들어볼 것이다. 우리는 이전에 배운 페이스북 번역 모델과, ElevenLabs의 음성 합성 API를 사용해서, 번역과 음성 생성을 처리하고, 이걸 PyQt로 사용자 친화적인 인터페이스를 통해 제공할 예정이다. 바로 시작해보자.필요한 라이브러리들을 import하자. 이 중 pydub는 음성을 재생하거나 미디어 파일을 관리할 때 유용한 라이브러리 중 하나다.import osimport requestsfrom dotenv import load_dotenvfrom PyQt5 import QtWidgetsfrom PyQt5.QtCore import QUrlfrom PyQt5.QtMultimedia i..

TIL 39 필수 과제

5. 벡터 임베딩 생성OpenAI 모델을 사용했기 때문에 OpenAIEmbeddings를 이용해 텍스트를 벡터로 변환할 벡터 임베딩을 생성했다. langchain_openai 라이브러리에서 OpenAIEmbeddings 클래스를 불러온다.from langchain_openai import OpenAIEmbeddings# OpenAI 임베딩 모델 초기화embeddings = OpenAIEmbeddings(model="text-embedding-ada-002")text-embedding-ada-002 모델을 사용하여 텍스트 데이터를 임베딩 벡터로 변환한다. 이 모델은 텍스트 데이터를 고차원 벡터로 변환하는 데 사용된다. 자연어 처리(NLP) 작업에서 텍스트를 벡터 공간으로 변환하여, 유사도 검색, 클러스터링..

TIL 38 개인 과제

LLM 과 RAG를 활용하여 AI 챗봇을 구현해보자 1. 사용환경 준비 환경 변수에서 api 키를 가져오는 과정에서 문제가 발생했다. 처음에 작성한 코드는 아래와 같다.import openaiimport osfrom dotenv import load_dotenv# .env 파일 로드load_dotenv() # .env 파일을 로드하여 환경 변수들을 설정한다.# .env 파일에서 api 키 가져오기API_KEY = os.getenv('sparta_api_key')# openai 클라이언트에 API 키 설정openai.api_key = API_KEY이 코드를 통해 api 키를 가져왔고, 전체 코드를 실행하니 자꾸 오류가 발생했다.openai.OpenAIError: The api_key client opt..

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은 대규모 텍스트 데..