목록분류 전체보기 (94)
Ssul's Blog

#1. CPU와 GPU 비교- core: core내부에 여러개 들어 있는 ALU(계산 전용도구)- control(제어유닛): 계산을 언제할지 스케쥴, 배분 관리- L1 cache: core연산에 사용하기 위한 가까운 메모리- L2 cache: 약간 크지만 덜 가까운 메모리- L3 cache: 약간 더 크지만 조금 더 먼 메모리- DRAM: 외장 메모리, GPU DRAM은 비싼거 사용(코어가 많아서 빨라야함) CPU는 복잡하고 다양한 작업을 빠르게 수행 > 코어랑 제어유닛이 큼. 그리고 근처 cache가 커야함 > 트렌지스터 많아야 함GPU는 단순하고 많은 작업을 빠르게 수행 > 코어가 가변고, 단순작업 잘함 > 코어가 작은대신 엄청 많음CPU는 개별 코어의 성능을 높이는 방향으로 발전. GPU는 코어의 ..
인터넷 검색이나, AI검색을 통해서 AI모델 학습/추론하는 코드를 찾아보게 되면 다양한 방식이 존재한다.어쩔땐 pipeline, 어쩔땐 model.generate()/decode, 또 어쩔때는 model(input_ids)를 넣는 방식까지...매 검색 코드마다 쓰는 방식이 다르니, 한번 정리하고, 나만의 AI학습 코드를 고정해야 하겠다. 이번 글에선 “토크나이저 → 모델 → 디코딩” 흐름을 기준으로1️⃣ pipeline (원스톱)2️⃣ generate (표준)3️⃣ manual forward (로짓 해킹)세 등급으로 쪼개 봤다.코드는 전부 복붙-실행 되도록 적었으니 — 마음에 드는 루틴 하나 골라 바로 써 보시길! #0. 공통- 설치해주시고 pip install -q transformers acceler..

ios앱을 개발중이다. 이번 목표는 아래와 같다. 유튜브 앱에서 공유하기 버튼을 누른다. 공유 가능한 앱에 내 앱아이콘이 등장한다.해당 앱 아이콘을 클릭하면, 내 앱으로 이동한다.내앱에 들어가서, 내가 원하는 메뉴를 띄우고, 공유하는 유튜브 링크를 붙여넣는다. 위 3가지 포인트가 완성되어야 한다. 어떻게 해야 할까? #1. ShareExtension(내 앱 아이콘이 등장 > 내 앱으로 이동 전까지)ShareExtension은 다른 앱에서 공유하기 눌렀을때, 내 앱아이콘이 뜨고, 그걸 클릭했을때 연결해주는 역할을 하는 녀석임. 1-1. Xcode → File ▸ New ▸ Target ▸ iOS ▸ Share Extension클릭- 적절한 이름을 설정하고 추가1-2. bundle Identifier설정- ..
요즘 텍스트 데이터는 마크다운과 이모지의 향연이다.당연히 해당 텍스트 데이터를 그대로 잘 표현해야 한다. 그럼 SwiftUI는 알아서 잘 표현 할 것인가?SwiftUI의 마크다운 표현 가능 여부를 알아보자. 후보#1. Text- 별도의 라이브러리 설치없이 사용가능하다- iOS 15부터 가능하다import SwiftUIstruct MarkdownTextView: View { let markdownString = """ # 제목 1 ## 제목 2 **굵은 글씨**, *기울임*, `코드` - 리스트 아이템 1 - 리스트 아이템 2 [링크](https://www.apple.com) """ var body: some View { ScrollView { ..
1. StateObject- view가 인스턴스를 생성하고 소유함- 보통 ViewModel이 해당 뷰에서만 쓰이거나, 상위뷰에서 초반에 전역으로 사용할 인스턴스 생성할때 사용 struct MyView: View { @StateObject var viewModel = MyViewModel()}//상위에서 생성해서 보낼때 사용struct TmpApp: App { @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate @StateObject var container: DIContainer = .init(services: Services()) var body: some Scene { WindowGroup { ..

2025년 새해 계획 중 하나가, 두달에 하나의 앱을 개발하는 것이었다.벌써 4월이 시작되었지만, 아직 첫번째 앱. 열심히 분발해서 6개의 앱을 완성해보자!!애플개발자 계정 본전은 뽑아야지 ㅜㅜ 첫번째 앱을 개발하면서, 미국/유럽 등 영어권 시장부터 출시하면 어떨까 생각하게 되었다.근데 이미 개발을 한참 진행 했더니.... 전부다 한글인 상황. 1. 아이폰 앱 중에서 영어와 한국어 두개 이상의 언어를 지원하는 앱들은 어떻게 하는 것일까?이미지 추가-Add Image마이페이지-My Page처럼 결국 무조건 해석해서 두개를 넣는 것은 당연할 것 같은데.... 그런 궁금증을 가지고 검색을 시작했다. 우선 결론은 String Catalog와 String File 둘중에 하나를 쓰면 된다.String File이 ..

최근에 진행하는 R&D프로젝트가사전학습된 LLM의 지식을 활용하여, 약 4,000~5,000건의 데이터만 학습하여,특정 도메인에 특화된 과업을 해결하는 모델을 만드는 것이다.(예: 스팸문자 분류하는 LLM) 그래서 한글을 잘한다고 소문난 모델을 이것 저것 파인튜닝 해보고 있다.- EEVE, Qwen2.5의 경우 gpt-4o-mini를 api로 파인튜닝 한 모델보다 성능이 떨어졌다.- EXAONE3.5를 기점으로 gpt-4o-mini와 비슷하거나 높게 나오기 시작했다. 1. Gemma3 발표이놈의 AI쪽은 허구헛날 새로운 모델이 나오고, 기존 성능을 갱신한다.EXAONE에서 만족하고 다음 진도를 나가려 했는데..... 그래도 Gemma3가 나왔다고 하니 파인튜닝을 안할수 없었다.코드를 열심히 검색해봐도 대..

1. Instruction Fine-Tuning우선 LLM을 튜닝할때는 사전학습이 된 LLM의 지식을 활용하는 것이 핵심이다.그러기 위해서는 기존의 ML(머신러닝)방식의 입력값과 라벨(정답) 데이터만 무수히 많이 가지고 모델을 만드는 것이 아닌,엄청난 양의 사전 학습된 언어 지식을 활용하는 것이 Instruction FT라고 할수 있다. 스팸분류기 모델을 만든다고 했을때, 기존 ML방식으로 데이터 셋을 구성한다면,문자1내용, 스팸문자문자2내용, 스팸문자문자3내용, 정상문자이렇게 데이터 셋(입력값, 라벨)을 구성하고 신경망에 넣어서 스팸과 정상을 구분하는 모델을 만드는 것이다. instruction FT는 사전학습된 모델이 언어능력을 가지고 있기 때문에원래 내가 가지고 있던 데이터셋문자1내용, 스팸문자문자..

1. IOS Push알림 개념이해ios는 서버에서 직접 푸쉬를 보낼수 없다. 중간에 APNs가 존재해서, 서버에서 push를 보내려면, APNs에게 보내고, 그걸 클라이언트에 보내는 구조이다.아래 그림과 같은 구조이다(1-2) 개인 핸드폰이 APNs에게 연결을 요청하고, 자신 고유의 토큰을 받는다.(3) 자신의 APNs고유 토큰을 서버에게 알려준다(4) 서버에서 push를 보내려면 APNs에게 클라이언트 토큰과 내용(payload), APN key를 보낸다(5) APNs는 검증을 마치고 push알림을 보낸다 2. 설정하기2-1. xCode에서 push Notifications 추가하기xCode - TARGETS - 프로젝트명 - Signing&Capabilities탭 - +Capability - pus..

지난 설연휴동안 DeepSeek-R1이 아주 핫하다. 엔비디아 주가도 쭉쭉 빠지고....이놈의 AI분야는 공부해야 할께 넘쳐난다. 쉬고 싶다 ㅠ.ㅠ여러 보고서와 논문을 가지고, 구글 NotebookLM과 함께 공부한 내용을 올려본다.그리고 뽀너스로 deepseek-r1 학습방법을 유사하게 구현한 open-r1프로젝트도 함께 공유하여본다. #0. DeepSeek-R1의 파급력/성능많은 블로거들이 정리하였기에 스킵- 학습비용이 싸다(과연 싼것인가? 상대적으로 싸다)- 오픈소스다- 학습방식에서 유의미한 시사점을 던져 줌알아둘 것은 r1은 추론모델이다. 일반적인 gpt-4o, claude-3.5-sonnet과는 다른 gpt-o1과 같은 계열의 모델이다. #1. DeepSeek계열 이해하기1-1. DeepSee..