목록전체 글 (111)
헬창 개발자

지인이 재미있는 데이터셋을 들고 왔다. Junnos/luckyvicky · Datasets at Hugging Face와, 첫 장거리 운전이라니 완전 설레겠다! 🚗💨 나도 처음엔 긴장했는데, 알고 보니 완전 재밌더라고! 😆 길 잃어도 괜찮아. 오히려 새로운 곳 발견할 수도 있고, 여행은 그런 게 또 매력 있잖huggingface.co 요즘 유행하는 원영적 사고 데이터셋이다. 문득 이걸로 챗봇을 만들면 재밌을거 같아서 프로젝트를 수행하기로 했다. 모델은 가벼운 모델은 찾다가 EleutherAI/polyglot-ko-5.8b 모델을 선정했다. 학습 데이터를 구성하기 위해 input/output 데이터를 전처리를 해주는 과정을 진행했다. import json from datasets import Dat..
LoRA target_modules은 특정 모델의 파인튜닝이나 훈련 시, 수정 또는 최적화하려는 모델의 모듈을 지정하는 부분입니다. 특히, "q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"와 같은 모듈 이름들은 트랜스포머(Transformer) 아키텍처와 관련이 있습니다. Attention is all you need 논문을 읽어 보신분들은 어느정도 감이 오겠지만 모르시는 분들을 위해 각 모듈이 무엇을 하는지 간단히 설명하겠습니다:트랜스포머 아키텍처에서의 주요 모듈들q_proj (query projection):쿼리 벡터를 생성하는 모듈입니다. 입력된 텍스트의 특정 부분에 대한 쿼리를 생성합니다.트랜스포머의 셀프 어텐..
다차원 리스트를 1차원 리스트로 변환하는 것은 Python에서 자주 사용되는 작업입니다. 리스트가 중첩되어 있을 때, 즉 리스트 안에 리스트가 있을 때 이를 평평하게 만들어주는 것이 필요합니다. 이를 "플래트닝(flattening)"이라고 합니다. 재귀를 사용한 flatteningdef flatten(lst): flat_list = [] for item in lst: if isinstance(item, list): flat_list.extend(flatten(item)) # 재귀 호출 else: flat_list.append(item) return flat_listnested_list = [[1, 1], [2], [2, [..

Trainerdata = {"input_ids": [], "attention_mask": [], "labels": 1}input_ids : 토큰화된 Input Textattention_mask : 각 토큰이 실제 단어인지(1) 패딩 토큰(0)인지 나타냄labels : 입력에 대한 Ground Truth를 저장, 멀티라벨일 경우 배열을 사용하여 표현허깅페이스의 주요 입력 형식은 위와 같고 이 형식을 지켜서 trainer에 입력해야 한다.trainer = Trainer( model = model, args = args, train_dataset = train_dataset['train'], eval_dataset = train_dataset['test'], ..
Langchain의 여러가지 기능 중에 하나로 다양한 문서 분할 옵션을 제공합니다. 이를 통해 사용자는 대용량 문서를 더 작고 관리 가능한 덩어리로 나눌 수 있습니다. 다음은 LangChain의 문서 분할의 주요 기능과 예시입니다. LangChain의 문서 분할 주요 기능 CharacterTextSplitter기능: 기본적인 문자 기반 텍스트 분할기.설명: 주어진 텍스트를 문자 수를 기준으로 분할합니다.from langchain.text_splitter import CharacterTextSplittersplitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=20)chunks = splitter.split_text(text)for chunk in ..

1. nvidia-smi2. nvcc --version CUDA는 2개의 API를 가지고 있는데, 하나는 runtime API이고 다른 하나는 driver API이다.각 API가 각자의 version을 가지고 있다.nvidia-smi 의 CUDA는 runtime API를 나타내며, GPU 드라이버에 의해 설치된다.nvcc의 CUDA는 CUDA toolkit에 의해 설치된다.설치한 CUDA 버전을 확인하는건 2. nvcc --version 명령어가 옳다.* 만약 nvcc --version 명령어가 안될 경우 CUDA toolkit 을 설치해 줘야 한다. 호환되는 버전은 아래 링크 참고 Wikiwand - CUDAIn computing, CUDA is a proprietary parallel comput..

키워드 검색 (Keyword Search)시나리오 사용자가 "AI 산업혁명"을 검색합니다.결과 Keyword Search 엔진은 'AI'와 '산업혁명'이라는 단어가 포함된 문서를 찾습니다. 결과는 AI에 관한 일반적인 기사, 산업혁명에 대한 역사적 기사, 또는 단순히 'AI'와 '산업혁명'이라는 단어가 포함된 모든 문서가 될 수 있습니다. 예를 들어,“AI 기술의 최신 동향”이나 “19세기 산업혁명의 역사”와 같은 문서가 검색 결과에 포함될 수 있습니다.의미 검색 (Semantic Search)시나리오동일하게 사용자가 "AI 산업혁명"을 검색합니다.결과Semantic Search 엔진은 'AI'와 '산업혁명'의 결합된 의미와 사용자의 의도를 파악하려고 시도합니다.이 경우, 결과는 AI가 현재 산업에 어떤..

LCEL (LangChain Expression Language) LCEL은 Generative AI 애플리케이션 또는 LLM 체인 개발을 추상화하는 접근 방식으로 볼 수 있습니다. LCEL의 다양한 구성요소는 파이프 기호( |)로 구분된 순서대로 배치됩니다. 체인 또는 LCEL은 왼쪽에서 오른쪽으로 실행됩니다. 체인의 간단한 예는 다음과 같습니다. chain = prompt | model | output_parser from langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplateprompt = ChatPromptTemplate.from_template("tell me a..

사전 지식강화학습 딥러닝 (8) - [RL1] 강화학습(Reinforcement Learning)이란?Writer: Harim Kang 해당 포스팅은 '시작하세요! 텐서플로 2.0 프로그래밍'책의 흐름을 따라가면서, 책 이외에 검색 및 다양한 자료들을 통해 공부하면서 정리한 내용의 포스팅입니다. 해당 내용은 강davinci-ai.tistory.comGPT 구조 GPT (Generative Pre-trained Transformer) 학습시키기들어가며 오늘은 Generative Pre-trained Transformer (GPT) 의 구조에 대해 자세히 글을 써보려고 한다. 아래의 링크들은 참고하면 좋을만한 사이트들이다. 특히 유튜브 영상은 ETRI 임준호 박사님이 GPT-3에ainote.tistory.c..

작년 12월부터 취준 생활을 했으니까 약 5개월 만에 취업을 했습니다. 지원은 70곳 정도했고, 면접은 7번 봤는데 학교 동기들 보면 1번만 면접보고 붙어서 바로 들어가는게 부러웠습니다. 전 운이 없는건지 면접에서 어필을 못하는건지 면접만 6번 넘게 봤습니다 :( 학교 다니면서 다수 경진대회 수상, 논문도 많이 써서 스펙이 어느 정도 있어서 서류통과는 쉽게 됐는데, 면접에서 계속 탈락해서 학교 선배한테 카톡 보냈었는데, 저 선배도 7번 만에 붙었다고 힘내라고 응원을 받았습니다. 마침 구직시장을 돌아보던 와중 저의 직무와 관련된 채용을 찾았고 서류통과와 면접을 보고 나서 1주일 뒤... 저도 7번째 면접만에 "합격" 꽁꽁 얼어붙은 (한강 위로) 채용 시장 부셔버렸습니다. 제가 연구했던 NLP분야인 ..