너때문에흥이다깨져버렸으니까책임져
Google Gemini API 사용하기
개요 나는 최근 로컬 LLM에 대한 흥미를 잃고 있다. 왜 굳이 로컬 LLM을 사용할까? 무료이기 때문이다. 로컬 리소스만 사용하여 모델을 무료로 계속 돌릴 수 있다는 장점과 어떠한 정보가 타 기업에게 넘어가는 사태를 방지하기 위한 점이 가장 크다고 생각한다. 하지만 나는 기업도 아니고, LLM이 추론한 결과가 구글에 넘어가도 아무런 상관이 없다. 게다가 나는 로컬 리소스도 그렇게 널널하지 않은 편이다. 이러한 이유로 인해 (미래에는 어떨지 모르지만) 온디바이스 LLM을 굳이 고집해야 할까? 라는 회의감도 들어서 발견한 것이 구글의 AI Studio이다....
GSAP 스크롤 애니메이션 오류 해결
흠 최근 랜딩 페이지를 만들고 있는데, 이런 유형의 홈페이지를 많이 만들어보지 못해서 2~3일 간 뻘짓하다 시간을 날렸다. 개인적으로 GSAP(GreenSock Animation Platform)라는 라이브러리가 애니메이션 관련 작업하기에 최고라고 생각해서 바로 프로젝트에 적용하다가, 사용법 미숙으로 인해 삽질만 하다가 하루가 증발했다. 무엇이 문제인가 랜딩 페이지에서 각 section별로 스크롤 시 배경 화면 색깔이 달라지게 구현을 하고 싶었다. 무작정 만들어본 구현 코드는 다음과 같다. let currentGradient = "linear-gradient(120deg, #4facfe 0%, #00f2fe 100%)"; function registerBackground(id: string, gradient: string) { gsap....
C언어로 게임 만들기
동기 C언어 수업을 마치고, 어떤 주제로 기말 과제를 할지 고민하다가 언어의 이해도를 높이려면 직접 프로그램을 만들어봐야 한다고 생각했다. 마침 raylib이라는 크로스 플랫폼 게임 엔진을 발견하게 되어 게임을 만들어보자고 결정했다. Raylib? Raylib는 크로스 플랫폼 게임 라이브러리로, C언어로 작성되어 여러 프로그래밍 언어에 바인딩 할 수 있고 윈도우부터 웹까지 다양한 플랫폼에서 실행이 가능하다는 장점을 가지고 있다. 이 라이브러리가 제공하는 API 등이 직관적이라서 사용하기 쉽고 편하다고 느꼈다. 또한 게임을 만들 때 필수로 쓰이는 웬만한 함수들은 전부 구현이 되어있었다....
기상청 날씨 API 사용하기
개요 요즘 일교차가 심해 기온 그래프를 그려보려고 한다. 날씨 API 중 가장 많이 사용되는 OpenWeatherMap을 쓰려다가, 무료 계정은 단기 예보 API를 사용할 수 없다는 것을 깨닫고 불편함을 감수하며 기상청 API를 사용하기로 했다. 기상청 API는 상당히 불편하게 만들어놨다. 기본 리턴 값이 XML타입에다가, JSON 형식도 개떡같고 호출도 귀찮지만, 무료라서 쓸 이유는 충분하다고 생각한다. API 요청 날리기 기상청 API는 공공데이터포털을 통해 제공된다. 귀찮지만 회원가입을 하고 API 신청을 해야 인증 토큰을 얻을 수 있다....
파이썬 100제 풀기
지능형 기차 (2455) 문제 최근에 개발된 지능형 기차가 1번역(출발역)부터 4번역(종착역)까지 4개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. 이 장치를 이용하여 출발역에서 종착역까지 가는 도중 기차 안에 사람이 가장 많을 때의 사람 수를 계산하려고 한다. 단, 이 기차를 이용하는 사람들은 질서 의식이 투철하여, 역에서 기차에 탈 때, 내릴 사람이 모두 내린 후에 기차에 탄다고 가정한다. 내린 사람 수 탄 사람 수 1번역(출발역) 0 32 2번역 3 13 3번역 28 25 4번역(종착역) 39 0 예를 들어, 위와 같은 경우를 살펴보자....
Rust로 감성분석 AI 구현하기 (LSTM, GRU)
개요 파이썬은 내가 제일 많이 사용하는 언어 중 하나이다. 또한 파이썬은 PyTorch, Tensorflow, Keras 등 굉장히 편리하고 사용하기 쉬운 라이브러리가 많다. 하지만 대부분의 파이썬 머신러닝 라이브러리의 중심 부분은 파이썬으로 구현되지 않고 C, C++ 등의 저수준 언어로 구현되어있다. 파이썬은 인공신경망 등의 알고리즘을 실행시키기에는 너무나도 느리기 때문이다. PyTorch는 인공지능 개발에 필수적인 라이브러리라고 할 수 있다. 파이토치에서 제공하는 수백, 혹은 수천 개의 머신러닝을 위한 API는 코드 몇 줄로 모델을 만들거나, 학습시키고 추론하기 위한 다양한 함수들을 제공한다....
Efficient LLaMA3 Fine-Tuning with Unsloth
개요 글을 작성하는 현 시점 기준으로 약 2주 전 라마3가 발표되었다. 성능이 어떨지 궁금했기 때문에 이번 기회에 라마3을 파인튜닝하자고 결심했다. 허깅페이스에 누군가 한국어 데이터셋에 맞춰 학습시켜놓은 모델이 있었기 때문에 파인튜닝 시 기본 영어 모델보다 한국어 성능이 나을 것이라고 판단하여 이 모델을 베이스로 사용하기로 했다. 학습 전 준비물 개발 환경 (GPU 클라우드) RTX 4090 X 1 Ubuntu 22.04 PyTorch 2.2.0 CUDA 12.1 충분한 자본금(4090 기준 시간 당 약 0.3~0.4달러) 초연한 자세 어떠한 오류가 터져도 화내지 않는 강건한 정신 채팅 데이터셋 AI Hub에서 가져온 주제별 텍스트 일상 대화 데이터 데이터 전처리 라이브러리(pypi) unsloth accelerate transformers trl datasets peft etc....
react-native-ble-plx 사용 방법
개요 BLE 라이브러리에서 소개했던 라이브러리 중, react-native-ble-plx를 어떻게 사용하는지에 대해 기록을 남긴다. 패키지 설치 yarn add react-native-ble-plx yarn 또는 npm을 사용하여 먼저 설치를 진행한다. 만약 npx expo install react-native-ble-plx 명령어를 사용하여 설치를 진행한다면, app.json 또는 app.config.js의 플러그인 부분에 라이브러리가 자동으로 추가되는 듯하다. yarn expo prebuild expo의 prebuild 명령어를 이용해 네이티브 파일을 생성한다. { "expo": { "plugins": ["react-native-ble-plx"] } } 최상위 폴더의 app.json에 라이브러리를 추가하거나, 추가가 되어있는지 확인한다. yarn android 안드로이드용으로 빌드 시 위 명령어를 입력한다....
ESP32를 이용한 재실감지 센서 만들기
개요 몇 달 전에 산 ESP32를 쓸 곳이 별로 없어서 계속 방치하던 중 재실 감지 센서 아이디어가 떠올랐다. 원래 esp32를 재실감지용으로 사용하는 사람이 많아 ESPresense라는 굉장히 편리한 프로젝트가 있다. 이거 말고도 ESPHome이라는 프로젝트가 있는데, ESPHome은 좀 무거운 듯하고 와이파이 연결 에러가 자꾸 발생해서 그냥 ESPresense를 사용하기로 했다. ESPresense 설치 설치 방법은 굉장히 간단하다. 그냥 ESPresense 공식 사이트에 접속하면 웹페이지 내에서 크롬 시리얼 포트를 통해 esp32에 프로그램을 설치할 수 있다. 설치 후 와이파이 세팅까지 끝내면 내부망으로 esp32 웹서버에 접속할 수 있다....
React Native BLE 라이브러리 정리
리액트 네이티브 BLE(Bluetooth Low Energy) 라이브러리가 여러 개가 있는데, 그 중 사용해본 라이브러리를 설명하겠다. 아래는 깃허브 스타 수를 기준으로 정렬하였다. react-native-ble-plx 이 라이브러리는 크로스 플랫폼(Android, iOS)을 지원하여 개발자가 블루투스 서비스를 사용하기 쉽게 만들어 놓은 라이브러리다. 현재 깃허브 스타 수가 제일 많고, 기여가 활발한 편이다. expo를 지원해서, expo install 커맨드로 설치하면 AndroidManifest.xml이나 build.gradle 등의 네이티브 파일을 수정하지 않아도 된다. 다만 사용 중 모든 BLE 디바이스가 검색이 안되는 문제가 발생하여 대략 3일동안 삽질했는데, 아래 이슈를 보고 해결하였다....