2024/11 31

TIL 40

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

WIL 6

저번 주차 실습부터 모르는 부분이 생기면 적극적으로 튜터님께 찾아가기로 마음을 먹었었다. 이번 주차에도 모르는 부분이 생겼을 때, 혼자서 이것저것 해보고 찾아보다가 안 되면 튜터님께 찾아가서 해결할 수 있었다. 혼자서 볼 때는 보이지 않던 부분들이 많았는데 생각보다 쉽게 해결되는 경우도 있었고, 튜터님과 함께 무엇이 잘못됐는지 차근차근 찾아낼 수도 있었다. 이번 주차는 이해하기는 어렵지 않았지만, 막상 적용하려니 어려운 느낌이 많이 들었다. 강의를 듣고 다 이해했다고 생각했는데, 실제로 해보려니 잘 되지 않았다. 어떻게 해야할 지 막막했는데, 수준별 학습과 특강이 많이 도움이 되었다. 수준별 학습을 통해서 강의에 대한 보충도 할 수 있었고 새로운 내용도 알게 되었다. 수업을 해주시는 튜터님께 늘 감사하다..

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