분류 전체보기

Tips

[Azure] Azure openai.NotFoundError: Error code: 404 - {'error': {'code': '404', 'message': 'Resource not found'}}

Run failed: OpenAI API hits NotFoundError: Error code: 404 - {'error': {'code': 'DeploymentNotFound', 'message': 'The API deployment for this resource does not exist. If you created the deployment within the last 5 minutes, please wait a moment and try again.'}} [Error reference: ]에러Azure OpenAI 리소스 생성한 다음 VScode promptflow 메뉴 - connections에서 Azure OpenAI 연결 추가하기(+ 버튼) 누르고 API 키, 엔드 포인트 입력하였지만 에..

AI&ML/학습 정리

langchain quickstart 따라하기

환경 세팅conda로 파이썬 환경을 만들어 줍니다.conda create -n ragex python=3.9conda activate ragexdotenv를 사용해서 api키를 관리할 것이므로. env 파일도 만들어주고 api key 적어줍니다.echo "OPENAI_API_KEY='{your_api_key}'" >> .env다운로드pip install python-dotenv langchain langchain-openaiLLM 부르기from dotenv import load_dotenvfrom langchain_openai import ChatOpenAIload_dotenv()llm = ChatOpenAI()llm에게 무언가 물어봅시다. “langsmith가 어떻게 쓰이는 거야?”llm.invoke(..

Tips

Python dotenv 사용법

LLM을 사용하려면 API 키를 입력해야 하는데, 이 API 키를 소스 코드 파일에 직접 넣게 되면 보안상 위험이 있습니다. 이러한 상황에서 .env 파일을 사용하여 환경 변수로 API 키를 관리하는 dotenv를 사용해 보겠습니다. 이 방법을 사용하면 API 키를 안전하게 보호할 수 있습니다.다운로드pip install python-dotenv.env 파일 생성OPENAI_API_KEY="this_is_my_api_key"사용 예제from dotenv import load_dotenvimport osfrom langchain_openai import ChatOpenAIload_dotenv()llm = ChatOpenAI(api_key=os.environ["OPENAI_API_KEY"])

AI&ML/학습 정리

[Paper-review]Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks

주로 RAG로 불리는 모델을 제시한 논문입니다. https://arxiv.org/abs/2005.11401 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks Large pre-trained language models have been shown to store factual knowledge in their parameters, and achieve state-of-the-art results when fine-tuned on downstream NLP tasks. However, their ability to access and precisely manipulate knowledge is still lim arxiv.org Abstra..

AI&ML/학습 정리

핸즈온 머신러닝 리뷰

12장 텐서플로를 사용한 사용자 정의 모델과 훈련 텐서플로란? 텐서플로는 강력한 수치 계산용 라이브러리입니다. 케라스가 고수준의 API를 제공하지만 더 높은 자유도를 위해서 저수준 파이썬 API를 사용할 수 있습니다. 이제 텐서를 직접 다루어 봅시다. 텐서 상수 텐서: tf.constant() shape과 dtype을 가진다. 모든 종류의 텐서 연산이 가능하다. 텐서의 값을 바꿀 수 없다. mean, sum, max 함수를 reduce_mean, reduce_sum, reduce_max와 같이 사용한다. GPU 커널(연산 구현)이 원소가 추가된 순서를 고려하지 않는 리듀스 알고리즘을 사용하기 때문이다. 어떠한 타입변환도 자동으로 수행하지 않는다. tf.cast() 함수를 사용한다. 변수 텐서: tf.Va..

AI&ML/Kaggle

Kaggle 학습 시리즈: IDF 기초 가이드

IDF Description IDF(Inverse Document Frequency)는 자연어 처리 및 정보 검색에서 등장한 개념으로, 문서 집합에서 특정 단어의 중요성을 평가하는 데 사용됩니다. 특정 단어가 드물게 나타날수록, 그 단어의 IDF 값은 높아지며, 이는 해당 단어가 특정 문서를 구별하는 데 유용하다는 것을 의미합니다. IDF는 TF(Term Frequency)와 IDF를 곱한 값인 TF-IDF를 구하기 위해 사용됩니다. TF는 각 문서에 대한 BoW를 하나의 행렬로 만든 DTM(Document-Term Matrix)에서 각 단어들이 가진 값을 의미합니다. TF-IDF는 각 단어의 중요성을 반영하여, 많은 경우에서 기존 DTM을 사용하는 것보다 좋은 성능을 얻을 수 있습니다. IDF 계산 공..

AI&ML/Kaggle

Kaggle 학습 시리즈: CountVectorizer 기초 가이드

CountVectorizer Description 텍스트 데이터에 대해서 BOW를 만들기 위해 사용할 수 있는 CountVectorizer 클래스입니다. 텍스트를 이루는 단어가 나타나는 횟수로 벡터를 만듭니다. ngram_range 파라미터는 단어와 단어의 연속된 조합(N-gram) 또한 반영하여 벡터를 생성할 수 있도록 합니다. 만약 ngram_range=(1, 2)일 때, 텍스트를 이루는 단어 하나하나가 카운팅 되고 연속된 두 개의 단어 조합이 추가적으로 카운팅 되어 벡터에 반영합니다. Code 아래는 CountVectorizer를 활용하여 텍스트 데이터를 BOW로 만드는 실습 코드입니다. from sklearn.feature_extraction.text import CountVectorizer # ..

나의 생각

2023년을 회고하며, 2024년을 맞이하며.

2023년 전반부 이야기는 블로그에 적어뒀다. 나름의 깨달음도 함께 적어뒀다. 부스트 캠프가 끝난 뒤에 길을 잃어버린 아이처럼 정처 없이 헤매었다. 실력에 대한 자신감이 부족했다. 6개월 공부한 것으로는 부족하다고 생각했다. 무력감이 찾아왔고 현실을 직면하지 못하고 시간을 흘려보내었다. 다른 분야를 공부하는 남들을 보며 저 사람들은 왜 저렇게 열심히 하는지 궁금했다. 이유를 물어도 보고 발표하는 내용을 듣기도 했다. 어느 날 아는 사람들이 모인 자리에서 “우리끼리 회사를 만들어도 되겠다.” 이런 이야기를 들었다. 프로젝트를 진행하는데 필요한 분야의 적절한 인원이 분배되어 있었고 실력도 있어 보였다. 그때 나는 끼지 못하는 느낌을 받았다. 어쩌면 나만 그런 생각을 했겠지만 결국 자신감이라는 결론에 다다랐다..

AI&ML/학습 정리

f1-score에 대해서 알아보자(2)

얼마 전 나갔던 경진대회에서 베이스라인으로 받은 코드를 살펴보던 중 이상한 점을 발견했습니다. validation 과정에서 f1-score를 계산할 때 배치별로 f1-score를 계산하고 평균을 내어 출력하는 것이었습니다. 반면 제가 생각하는 방식은 전체 데이터 셋에 대해 한 번에 f1-score를 계산하는 방식이었습니다. 두 방식 간에 결괏값 차이가 있을 것이라고 생각했습니다. 배치별로 f1-score를 계산하고 평균을 내는 방식 vs 전체 데이터셋에 대해 한 번에 f1-score를 계산하는 방식 배치별로 f1-score를 계산하고 평균을 내는 방식 장점 대용량 데이터를 사용할때 메모리 사용량이 줄어듭니다. 단점 배치 크기에 따라 스코어가 변하여 불안정합니다. 전체 데이터셋에 대해 한 번에 f1-sco..

AI&ML/학습 정리

f1-score에 대해서 알아보자(1)

얼마 전 나갔던 경진대회에서는 평가 메트릭으로 macro f1-score를 사용하였습니다. macro f1-score는 각각의 클래스에 대해 f1-score를 계산한 다음 각각의 값의 평균으로 계산합니다. 여기서 F1-score는 어떻게 계산할 수 있을까요? F1-score = 2 * (precision * recall) / (precision + recall) Precision 이란 정밀도라고 해석되며 true라고 예측한 것 중 실제 true 인 것의 비율로 계산합니다. Precision = tp / tn + tp Recall 이란 재현율이라고 해석되며 실제 true 인 것 중 true로 예측한 것의 비율로 계산합니다. Recall = tp / fn + tp scikit learn 라이브러리에서 f1..

흐르는 물에 씻어주세요
'분류 전체보기' 카테고리의 글 목록