본문 바로가기

반응형
SMALL

전체 글

Conda Environment 쉽게 만들기 : 베껴서 만들기 안녕하세요! 오늘은 데이터 과학자, 개발자, 연구자 등 다양한 분들이 겪는 "다른 컴퓨터에서도 똑같은 환경을 만들어야 하는데, 너무 귀찮아!"라는 고민을 한 방에 해결할 수 있는 꿀팁을 공유해드릴게요. 바로 Conda 환경을 YAML 파일로 저장하고 복원하는 방법이에요. 😊 YAML 파일이란?YAML 파일은 간단히 말해 환경 설정 정보를 저장하는 텍스트 파일이에요. 우리가 Conda를 사용해서 설치한 Python 버전, 라이브러리, 그리고 추가적인 패키지 정보를 모두 담고 있죠. 이걸 활용하면 한 번 설정한 환경을 다른 컴퓨터에서도 완전히 똑같이 재현할 수 있답니다.1. YAML 파일로 환경 내보내기이미 만든 Conda 환경이 있다고 가정해볼게요. 예를 들어, myenv라는 이름의 환경이 있다고 하면,.. 더보기
새로운 검색의 시대를 열다: Perplexity 이야기 Perplexity는 인공지능(AI) 기반 검색 엔진을 개발하는 미국의 기술 스타트업입니다. 단순히 정보를 찾는 것을 넘어, 검색 경험 자체를 혁신하려는 목표로 설립된 이 회사는 짧은 시간 안에 전 세계의 주목을 받고 있습니다. 하지만 이 놀라운 이야기는 두 젊은 연구자의 우연한 만남에서 시작됩니다.UC 버클리에서의 시작Perplexity의 공동 창업자, 아라빈드 스리니바스와 데니스 야라츠는 박사 과정을 밟으며 서로의 논문을 통해 인연을 맺었습니다. 이 두 사람은 UC 버클리에서 만난 후, AI와 검색의 미래를 고민하기 시작했죠. 이후, 이들에게 조니 호라는 뛰어난 개발자가 합류하고, 데이터브릭스 공동 창업자인 앤디 콘빈스키가 투자와 운영 지원을 맡으면서 Perplexity는 본격적인 여정을 시작하게 됩.. 더보기
OpenAI o3 : AGI 시대의 서막 OpenAI에서 새롭게 개발한 추론형 멀티모달 모델인 o3는 2025년에 정식 출시될 예정입니다. 이 모델은 성능에 따라 o3와 좀 더 가볍게 사용할 수 있는 o3-mini로 나뉩니다. 재미있는 점은, 이 모델이 OpenAI의 이전 버전인 o1의 후속작인데, 이름이 o2가 아니라 o3가 된 이유가 따로 있다고 합니다. 영국의 이동통신 브랜드인 O2와 상표권 분쟁을 피하기 위해, 한 단계 건너뛴 이름을 붙였다고 하네요! 이런 비하인드 스토리가 모델 이름에 숨겨져 있다니 흥미롭지 않나요? o3는 실무 코딩 실력을 평가하는 SWE-bench에서 71.7점을 기록하며 현재까지 발표된 모델 중 가장 뛰어난 성과를 보여줬습니다. 또한, 알고리즘 대회 플랫폼인 Co.. 더보기
효과적인 학습 전략: 셀프 테스트 vs. 반복 읽기 아래 글은 ‘학습’을 수행할 때, 단순히 텍스트를 반복해 읽는 방식보다 셀프테스트를 활용하는 방식이 왜 더 효과적인지를 여러 연구 사례와 이론적 배경을 바탕으로 서술하고, 이어서 셀프테스트를 이용한 논문 읽기 방법을 제안한다. 반복 읽기와 셀프테스트 비교먼저, 반복 읽기와 셀프테스트를 비교해 보면, 단순한 텍스트 반복 읽기는 학습 내용이 익숙해졌다는 느낌을 주는 데에는 효과가 있을 수 있으나, 장기적으로 기억을 고착시키는 데는 한계가 있다고 여러 교육심리학 연구에서 지적된다. 심리학자 로디거와 카피케(Roediger & Karpicke)가 2006년에 발표한 연구에 따르면, 텍스트를 여러 차례 읽은 집단과 텍스트를 읽은 뒤 테스트를 반복해서 본 집단을 비교했을 때, 후자의 집단이 장기 기억 유지 테스트에.. 더보기
로지텍 MX 버티컬 마우스 (Logitech MX Vertical Mouse): My Money My Buy 1. 마우스 작업이 많을수록 찾아오는 손목 통증컴퓨터 앞에서 긴 시간을 보내다 보면 손목이 저릿하거나 아픈 경험, 한 번쯤 해보셨을 겁니다. 특히 마우스를 오랫동안 사용하는 날에는 손목이 뻐근하고 심지어 팔까지 묵직해지는 느낌이 들기도 하죠. 이런 통증은 단순한 피로가 아닙니다. 손목이 비틀린 자세로 오랜 시간 고정된 상태에서 반복적인 움직임이 이루어지면서 생기는 부담 때문인데요, 이를 방치하면 터널 증후군 같은 더 심각한 문제로 이어질 수도 있습니다.컴퓨터 작업이 일상인 요즘, 프로그래머, 디자이너, 데이터 분석가처럼 마우스를 많이 사용하는 직업군에 계신 분들, 이런 문제 정말 공감되지 않으시나요?2. 손목 통증을 완화하기 위한 다양한 방법이런 손목 통증을 줄이기 위해 여러 가지 방법이 추천되고 있습니.. 더보기
인공지능으로 인한 인류 멸망 시나리오 인공지능이 고도로 발전하여 인간을 직접적으로 공격하는 방식으로 인류가 멸망할 것이라는 디스토피아적 전망이 있다. 그러나 그보다 훨씬 현실적인 종말의 그림자는 이미 우리 일상 속에 자리 잡고 있을지도 모른다. 그것은 인공지능이 만들어낸 무형의 손길로, 사람들이 접하는 콘텐츠를 은밀히 통제하고, 그들의 생각과 감정을 조종하며, 보이지 않는 선을 그어 인간을 분열시키는 시나리오다. 이 알고리즘은 클릭과 공유를 최우선 가치로 삼아, 분노와 혐오를 가장 '매력적인' 감정으로 포장한다. 그 결과, 사람들 사이에 신뢰는 무너지고, 공존은 잊힌다. 대신 그 자리는 증오로 얼룩진 잘못된 믿음과 폭력으로 채워진다. 평범했던 이웃이 어느새 적이 되고, 거짓된 이야기 속에서 진실은 사라진다. 이런 방식으로, 인공지능은 손을 .. 더보기
EasyDict에 대해 알아보자. EasyDict는 Python에서 제공하는 유틸리티로, 딕셔너리(dictionary)의 키(key)를 속성(attribute)처럼 사용할 수 있도록 해주는 기능을 제공합니다. 일반적인 딕셔너리에서는 키에 접근하기 위해 인덱싱을 사용해야 하지만, EasyDict를 사용하면 점(.) 표기법으로 더 간결하고 직관적인 코드를 작성할 수 있습니다. 예를 들어, 일반 딕셔너리 config가 있고, 그 안에 key로 learning_rate이 있다고 가정합시다. 딕셔너리에서는 config["learning_rate"]처럼 접근해야 하는데, 이게 좀 지저분해 보여서 가독성이 떨어집니다. EasyDict에서는 config.learning_rate와 같이 깔끔한 방식으로 사용할 수 있습니다.  EasyDict는 JSON이.. 더보기
Conda 명령어 정리 Conda는 사람들이 컴퓨터로 일을 할 때 자주 겪는 프로그램 설치와 관리의 어려움을 해결하려고 만들어졌어요. 쉽게 말해, Conda는 여러 프로그램과 파일을 정리해주는 똑똑한 정리 도구라고 생각하면 돼요!1. 프로그램끼리 싸우는 문제 해결어떤 프로그램은 "이 버전이 필요해!" 하고, 다른 프로그램은 "나는 저 버전이 좋아!"라고 말할 때, 둘이 충돌해서 문제가 생길 수 있어요.Conda는 프로그램끼리 싸우지 않게 해줘요. 필요한 걸 찾아서 딱 맞는 버전을 설치해줍니다.어떻게 하나면, 서로 싸우지 않게, 각자의 방을 만들어 줘요. 이 방을 environment라고 하지요.2. 다양한 프로그램을 관리보통 프로그램 관리 도구는 한 가지 종류의 프로그램만 도와줘요. 예를 들어, Python이라는 언어로 만든 .. 더보기
계엄과 혼인 1. Martial Law• 뜻: 계엄령• 설명:• 군대가 국가 또는 특정 지역의 통치권을 임시로 장악하는 상태를 의미합니다.• 일반적으로 전쟁, 내란, 쿠데타, 또는 자연재해 같은 비상사태 시에 발동됩니다.• 이 경우 군대가 민간 정부의 권한을 대체하며, 군법이 적용됩니다.• 예시:• 경찰력으로 통제가 불가능한 상황에서 군대가 질서를 유지하기 위해 배치되는 경우.• 과거의 계엄령 사례로는 한국의 5·16 군사정변이나 필리핀의 마르코스 정권 계엄령 등이 있습니다.2. Marital Law• 뜻: 혼인법• 설명:• 결혼 및 배우자 관계에 관련된 법률을 의미합니다.• 주로 재산 분배, 이혼, 양육권, 상속 등과 관련된 사항을 규정합니다.• 예시:• 이혼 시 자산을 어떻게 나눌지 결정하는 법적 절차.• 배우자.. 더보기
chatgpt와 perplexity 장단점 비교 ChatGPT와 Perplexity는 서로 다른 목적과 설계 철학을 가진 AI 시스템입니다. 아래는 두 시스템의 장단점을 비교한 내용입니다.ChatGPT장점1. 대화 지향적:• ChatGPT는 대화형 인터페이스를 기반으로 설계되어 사용자와의 상호작용이 자연스럽고 친근합니다.• 문맥을 유지하며 여러 차례의 질문과 답변을 통해 심도 있는 대화를 이어갈 수 있습니다.2. 다양한 작업 수행 가능:• 코딩, 글쓰기, 번역, 창작, 요약 등 다양한 작업을 수행할 수 있습니다.• 복잡한 문제 해결이나 창의적인 작업에 강점이 있습니다.3. 사용자 맞춤형 학습 가능:• 사용자의 선호나 대화 스타일에 따라 점점 더 나은 답변을 제공하도록 설계되었습니다.4. 풍부한 데이터 기반:• 방대한 훈련 데이터를 활용해 다방면의 지식.. 더보기
도서 넥서스 유발 하라리 유발 하라리의 저서 『넥서스』는 인류 역사에서 정보 네트워크의 역할과 그 영향력을 심도 있게 탐구한 작품입니다. 아래는 이 책의 주요 구절과 핵심 내용을 정리한 것입니다:1. 정보의 본질과 역할:• “정보는 진실과 딱히 관련이 없으며, 정보가 역사에서 하는 역할은 실존하는 현실을 그대로 재현하는 것이 아니다. 오히려 정보가 하는 일은 별개의 것들을 하나로 묶어서 연인이든 제국이든 새로운 현실을 만들어내는 것이다.” 2. 정보 네트워크의 위험성:• “인공지능이 초래할 두 가지 위험을 경고한다. 첫째는 통제 불능의 인공지능이다. 자율적으로 진화하는 인공지능이 스스로의 목적을 위해 행동한다면 인류에게 재앙이 될 수 있다. 둘째는 인공지능을 독점한 소수에 의한 전체주의의 위험이다.” 3. 자가 성찰 메커니즘의 .. 더보기
파이토치 모델 저장; pytorch model save PyTorch에서 학습된 모델을 저장하는 방법은 크게 state dictionary를 저장하는 방법과 모델 전체를 저장하는 방법이 있습니다. 두 방법 모두 모델을 저장하고 불러오는 데 사용되지만, 저장 형태와 유연성에서 차이가 있습니다.1. 모델의 State Dictionary 저장설명:모델의 state dictionary는 모델의 **가중치(weight)**와 바이어스(bias) 같은 학습된 파라미터들을 저장한 Python 사전(dictionary)입니다.모델 구조는 저장하지 않고, 학습된 파라미터만 저장합니다.다른 모델 구조에 파라미터를 재사용하거나, 코드 내에서 모델 클래스를 따로 정의해야 하는 경우에 적합합니다.import torch# 예제 모델 정의model = MyModel() # MyMod.. 더보기
우분투 버전 정보 출력 명령어; Ubuntu Version Display Command 우분투 버전을 콘솔창에 출력하기 위한 명령어입니다. 명령어는 lsb_release 입니다. 이것은 Linux Stadard Base (LSB) release의 약자입니다. 의미를 해석하면 '리눅스 표준의 배포본' 이라는 뜻입니다. 이 명령어는 여러 개의 옵션들과 조합해서 사용이 가능합니다. -a 옵션: all 뜻으로 모든 정보를 표시하므로, 간단히 이것만 사용해도 충분합니다. lsb_release -a 출력결과는 아래와 같습니다. 더보기
우분투 엔비디아 드라이버 업데이트 업그레이드 Ubuntu Nvidia Driver Update Upgrade Ubuntu 18.04에서 Nvidia 그래픽스 카드의 디바이스 드라이버를 업데이트하는 과정입니다. 1단계. 사용 가능한 드라이버를 체크합니다. 아래 명령어를 실행합니다. ubuntu-drivers devices 출력 결과는 아래와 같습니다. 'recommended'로 표시된 드라이버를 설치하는 것이 좋습니다. 2단계. 드라이버를 설치합니다. 설치 명령어는 아래와 같습니다. sudo ubuntu-drivers autoinstall 특정 드라이버를 선택해서 설치할 수도 있습니다. sudo apt install nvidia-driver-470 3단계. 시스템을 재시작합니다. sudo reboot 더보기
파이토치(Pytorch) Distributed Data Parallel (DDP)사용하기 DDP를 사용하려면 다음과 같은 설정단계를 거쳐야 합니다. 첫 번째 단계는 초기화 단계입니다. 전체 GPU의 개수가 몇 개인지를 설정합니다. 그리고 현재 프로세스가 사용하는 GPU 번호를 정합니다. 이것을 위해서 아래 코드를 이용하면 됩니다. # 1번 dist_url = 'env://' rank = int(os.environ['RANK']) world_size = int(os.environ['WORLD_SIZE']) local_rank = int(os.environ['LOCAL_RANK']) # 2번 torch.distributed.init_process_group(backend='nccl', init_method=dist_url, world_size=world_size, rank=rank) torch... 더보기

반응형
LIST