전체 글
TRL 라이브러리를 사용한 Lora 튜닝 시 주의사항
TL;DR Llama나, Mistral 등의 파인튜닝을 할 때, tokenizer.pad_token = tokenizer.eos_token을 하는 사람은 읽어보는게 좋습니다. TRL의 DataCollatorForCompletionOnlyLM가 상속받는 로직으로 인해, 문장 끝에 eos token가 label -100으로 치환되며, 계산이 안되는 이슈. 내 모델이 계속 말을 끊지 않고 이어나갈 경우, 이 이슈가 문제일 가능성이 높음. TRL 라이브러리 운영자는, Warning 추가 후 별도 조치 없음. 최소한의 솔루션 Vicuna에서 따온 방식인데, pad_token을 unk_token으로 대체하는 방법 또는 정석대로 pad_token을 별도로 추가하는 방법이 있으나, 모델 설정과 토크나이저 설정을 꽤 많..
작은 행렬 연산 벤치마크 테스트(파이토치, 러스트)
최근 Rust언어로 작성된 Candle이라는 라이브러리에 관심을 가지며 파이토치와 Candle로 작성한 코드의 벤치를 간단하게 테스트 해보던 중에, 다음과 같은 요청을 받았다. 본인의 도메인에서는 작은 행렬을 연산하는 것이 일반적인데, 파이토치가 여기에 bad job이라고 한다. 실제로 확인하기 위해서 코드를 작성 후 테스트를 하였다 테스트 환경 CPU : AMD Eyzen Threadripper PRO 3955WX 16-cores GPU : A6000 python version: 3.11.5 pytorch version: 2.1.1 numpy version: 1.24 rust version: 1.74.0 candle version: 0.3.1 테스트 파이토치, CPU 3 x 3 행렬을 각각 1천만개씩 ..
러스트 멀티 스레드 구현 예제
23년에 찾아온 특이점 중 하나는 러스트 언어를 시작했다는 것이다 파이썬을 하면서 항상 GIL이 존재해서(물론 병렬 처리를 도와주는 라이브러리들이 많지만) 멀티스레드를 직접 사용하지 못했는데, 러스트 언어를 사용해 네이티브하게 멀티스레드를 사용해볼 수 있었다. 정말 안타깝게도 티스토리에서는 코드블럭에 러스트 언어에 대한 구현이 없어 하이라이트가 제대로 들어가지 않는 단점은 덤으로 알게 되었다. // 필요한 라이브러리와 모듈을 가져옵니다. use std::thread; use std::time::Instant; fn main() { // 데이터를 초기화합니다. let data1 = vec![999; 1000000000]; let data2 = vec![999; 250000000]; let data3 = v..
ChatGPT로 만든 사회, 기억을 가진 NPC와 상호작용 [SELECTSTAR Webinar 박준성 박사님 유튜브 내용]
유튜브의 스크립트를 기반으로 Bing 사용 Prompt: 좌측 페이지는 무엇에 대해 이야기 하고 있습니까? - **셀렉스타 회사 소개**: 셀렉스타는 AI 학습 데이터를 제공하고 분석하고 큐레이션하는 All-in-one Data Platform for AI 회사이다. 텍스트, 비전, 오디오 데이터에 대한 레이블링, 분석, 생성 서비스를 제공하고, LLM 벤치마크 데이터셋과 윤리성 평가 데이터셋을 개발하고 있다. Forbes 30 under 30 Asia의 엔터프라이즈 테크놀로지 분야에 선정되었다. - **웨비나 주제 및 목적**: 생성 에이전트 인간 행동의 상호작용 시뮬레이션이라는 주제로 박준성 박사님의 발표와 파일사이드챗, Q&A 세션을 진행한다. 인공지능을 개발할 때 필요한 데이터를 수집하고 가공하는..