MCP는 Model Context Protocol의 준말로, 최근 가장 핫한 Agent 개발에 있어서 표준으로 자리매김한 프로토콜이다.Agent는 모델이 기존에 학습한 정보만으로 답할 수 없는 부분을 보완하기 위해, 다양한 API Tool들을 활용할 수 있도록 확장되어 사용자의 질의에 더 정확하게 대답할 수 있다.Agent가 사용할 수 있도록 Tool들을 서버에 등록시켜줘야 하는데, MCP는 각기 다른 규격의 Tool들을 처리해야하는 수고를 덜어주어 간편하게 등록할 수 있게 해준다.MCP는 다양한 프로그램 환경 (Client)에서 사용 가능하나, 가장 보편적으로 사용되는 Claude Desktop과 Visual Studio Code에서 진행해본다.서버를 원격으로 배포하는 방법도 있지만 이 포스팅에서는 로..
made by Google DeepMind모델 크기: 1B, 4B, 12B, 27B2025년 3월 12일 공개Gemini 2.0과 동일한 기술이 사용되었으며, 차이점은 오픈소스이고 경량화된 모델이라는 점Multi-Modal사전 학습 과정에서 Knowledge Distillation을 통해 학습사후 학습 과정에서 수학, 코딩, 추론, 대화 능력 개선에 집중, RLHF 학습140개 언어 지원128k의 Long Context 지원KV 캐시 메모리 문제 해소를 위한 Local / Global Attention Layer 비율 조정 128k와 같은 long context를 처리하려면 각 토큰의 Key/Value 벡터를 저장해야 해서 메모리가 폭증하게 된다. 이를 해소하기 위해 Local Attention과 Gl..
Normalization / Standardization / RegularizationNormalization: 값을 0~1 사이로 만듦예: Min-Max ScalingStandardization: 평균 0, 분산 1이 되도록 scale을 조정. 값의 범위는 자유.회귀 분석이나 PCA와 같은 알고리즘에서 많이 사용됨Regularization(규제): weight를 조정하는 데 규제를 거는 기법Overfitting을 방지하기 위해 사용예: L1 regularization, L2 regularization (L2-norm을 추가하여 파라미터가 더 작은 값을 가지도록 함) DataData ParallelismDistributed Data Parallel (DDP): 모든 GPU가 전체 파라미터를 복제Shard..
to.csv()를 통해 write하려는 DataFrame의 크기가 너무 클 때, 'OSError: [Errno 27] File too large' 에러가 발생할 수 있다. 관련 Github Issue를 참조하여, 해결 방법을 찾았다.알고 보니 해결법은 간단했다. 너무 큰 사이즈의 DataFrame을 n개로 분할해서 write하면 된다.n = 10000df_list = [df[i:i+n] for i in range(0, df.shape[0], n)]df_list[0].to_csv("OUTPUT_FILE.csv", index=False)for l in df_list[1:]: l.to_csv("OUTPUT_FILE.csv", index=False, header=False, mode='a')
'Function call', 'Tool use', 'Planning'의 개념간 혼동되는 부분이 있어, 구분하여 정리해본다. 1. Function callFunction call은 사용자 질의가 들어왔을 때, 이를 처리하기 위해 필요한 함수를 식별하여 함수의 이름 및 파라미터를 생성하는 작업을 의미한다.여기서 말하는 함수란, 일반적으로는 실제 executable한 API를 의미하며, API 사용이 불가한 환경에서는 특정 프로그래밍 언어로 작성된 function(method)을 의미하기도 한다.사용 가능한 API document 리스트가 사전에 제공되어야 하며, API document에는 각 API의 이름, 필수/선택 파라미터, API 기능 설명(description), 출력에 대한 설명 등의 정보가 작성..
(VllmWorkerProcess pid=0) ERROR 07-25 09:33:19 multiproc_worker_utils.py:242] RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the 'spawn' start method vllm을 통해 모델 추론을 하려고 하는데, 위와 같은 에러가 발생했다. https://github.com/vllm-project/vllm/issues/8893 [Bug]: RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiproce..
return OpenAI(api_key=api_key)이 부분에서 다음과 같은 오류 메시지가 출력되었다.TypeError: Client.__init__() got an unexpected keyword argument 'proxies' 구글링을 통해 문제가 발생한 원인은 httpx 라이브러리 버전 관련임을 알게 되었다. 라이브러리 버전을 확인해보니 현재 내 환경에서는 0.28.1 로 되어 있었다.해결 방법은 httpx 라이브러리를 0.27.2 버전으로 다운그레이드하는 것이다.$ pip uninstall httpx$ pip install httpx==0.27.2 참고: https://community.openai.com/t/error-with-openai-1-56-0-client-init-got-an-un..
ChatGPT (GPT-4o)와의 채팅(link)을 바탕으로, RoPE에 대해 얻은 지식을 정리해본다.✅ RoPE (Rotary Positional Embedding)RoPE(Rotary Positional Embedding)는 GPT-NeoX 등에서 사용되는 상대적 위치 정보를 내재화하는 방법입니다. 기존의 Sinusoidal Positional Embedding과는 다르게, 쿼리(Q)와 키(K)에 회전을 적용하여 위치 정보를 각도(rotation)로 인코딩합니다.🔸 핵심 아이디어RoPE는 각 토큰의 벡터를 회전(rotate)시켜 위치 정보를 반영합니다. 벡터의 짝수-홀수 차원쌍을 2D 평면으로 보고, 해당 벡터를 위치에 따라 회전시키는 방식입니다.각 차원의 임베딩 벡터를 복소수처럼 다루며,$\mat..