본문 바로가기

분류 전체보기71

파이썬 가상 환경 분리하고 패키지 의존성 관리하기 개발 프로젝트를 팀 단위로 진행하다보면 사용하는 언어나 라이브러리 버전이 맞지 않아 문제가 생길 때가 종종 있습니다. 예를 들어 팀원 중 한 명이 작성한 코드가 상위 버전에서만 작동하는 기능이라 하위 버전의 라이브러리를 사용하는 다른 팀원은 실행할 수 없는 경우가 있습니다. 팀 프로젝트 뿐만 아니라 코드를 배포하는 단계에서도 버전 관리는 중요합니다. 개발 환경에서는 문제 없이 작동하는 코드가 배포된 환경에서는 버전 문제를 겪을 수도 있기 때문입니다. 이런 문제를 피하기 위해서 팀 프로젝트나 코드 배포에 익숙한 개발자들은 프로젝트마다 독립적인 환경을 구성하곤 합니다. 저도 기존에는 파이썬이나 라이브러리를 모두 컴퓨터에 글로벌하게 설치하여 별도의 가상환경 분리나 의존성 관리를 해주지 않았지만, 새롭게 프로젝.. 2023. 11. 24.
[논문리뷰] ReAct: Synergizing Reasoning and Acting in Language Models Chain-of-Thought에 이어 널리 알려진 프롬프트 조작법인 ReAct를 제안한 논문 ReAct: Synergizing Reasoning and Acting in Language Models를 읽고 정리해보았습니다. ReAct는 chain of thought과 같이 결론에 이르는 추론 과정을 활용하는 것에 더해 언어 모델이 태스크를 해결하는 과정에서 주어진 환경과 상호작용하는 행동에 대한 정보도 프롬프트 내에서 활용합니다. 언어 모델의 행동이라는 개념이 조금 생소하긴 한데, 논문을 읽으면서 저자가 의도하는 바를 어느 정도 잘 이해할 수 있게 되는 것 같습니다. 논문의 내용을 구체적으로 알아보며 ReAct는 어떤 연구인지 알아보겠습니다. 번역을 통해 오히려 이해가 어려워지거나, 원문의 표현을 사용하.. 2023. 11. 24.
[논문리뷰] Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 대규모 언어 모델의 등장 이후 프롬프트 엔지니어링이라는 새로운 학문이 탄생했습니다. 프롬프트 엔지니어링을 단순하게 정의하면 프롬프트를 정교하게 조작하여 언어 모델에게 더 좋은 답변을 얻는 방법을 연구하는 분야입니다. 아마 이와 관련해서 가장 유명한 연구가 Chain of Thought일 것이라고 생각하는데, 실제로 그 논문을 읽고 어떤 연구가 수행되었는지를 공부해보았습니다. AI나 LLM 트렌드에 대해 소개하는 세미나에서도 Chain of Thought에 대한 내용을 몇 번 들은 적이 있었는데, 흔히 프롬프트에 "Let's take step by step"과 같은 표현을 추가하면 언어 모델의 추론 성능이 눈에 띄게 좋아진다고 설명하였습니다. CoT가 실제로 추론에 이르는 과정을 생성하며 출력의 근거를 모.. 2023. 11. 24.
N그램 언어 모델 자연어 처리에서 언어 모델링은 문장의 일부가 주어졌을 때 이후에 나올 단어를 예측하는 과제를 말합니다. 현재는 딥러닝에 기반한 다양한 기술로 언어 모델을 설계하지만, 과거에는 통계적인 기법들을 사용한 통계적 언어 모델(statistical language mdoel)을 사용하였습니다. 사실 신경망 언어 모델(neural language model)도 훈련 목표만 놓고 보면 전통적인 언어 모델의 훈련 목표와 다르지 않습니다. 다만 각 단어를 표현하는 방법이나 모델이 목적 함수를 학습하는 방법에 차이가 있을 뿐입니다. 가장 대표적인 통계적 언어 모델 $N$ 그램입니다. $N$ 그램(N-gram)은 이전에 등장한 $N-1$ 개의 단어에 대하여 다음 단어를 예측하는 확률론적 모델입니다. 여기서 $N$그램은 $N.. 2023. 11. 21.