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

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..

Foundaion Model 학습은, 나와 같은 GPU거지 & 가난한 개발자(연구자)는 엄두를 낼수 없으니,이론으로 잘 이해하고, 실전에서는 파인튜닝에 집중하자. 내가 종사하는 도메인에서도 AI를 적용하려 노력중이다. 그러면 방법은 아래와 같이 몇가지로 좁혀진다. 1. 빅테크모델 api에 prompt를 잘 먹여서 사용하기2. 빅테크모델을 파인튜닝하여 사용하기3. 적당한 크기의 오픈소스 모델을 full파인튜닝하거나, peft해서 사용하기 이 정도이며, 1번은 개발 기술적인 부분이니 생략하고,2,3번을 공략해보도록 하겠다. 2번의 단점은 매번 사용할때마다 api비용이 나간다는 것이고, 당연히 학습할때도 비용이 나간다. 그리고, 내가 사용했던 base모델이 사라질지도 모른다는 리스크가 있다. 간단한 예로, 이..

#1. 패캠에 돈좀 썼음후기이벤트겸 글을 작성하고 있지만, "배우는 것에는 아끼지 말자"라는 모토아래 200만원 가까이 결제한것 같다.때로는 제목에 낚여서 실망한 강연도 있고,어떤 강연은 100이 들어 있을줄 알았는데, 70밖에 안들어 있어서 실망한 강연도 존재한다.하지만, 대부분의 강연은 기대한 수준의 만족감을 주었다. 또한, 기한이 정해져있지않고, 평생 반복해서 시청이 가능한 것이 장점인것 같다.오늘은 여러가지 강연중에 내가 제일 만족했던 강연의 후기를 공유해보고자 한다. #2. 파인튜닝, 그 이상의 지식을 원함AI를 공부하고, 현업에서 적용하는 입장에서 처음 파인튜닝은 새로운 세계였다. 이론적인 공부를 마치고, Pretrain을 하는 것은 나의 영역이 아니라는 것을 인식하고, 파인튜닝에 대한 이..

최근 회사에서 작성한 AI관련 R&D사업 기획안이 선정되어, 해당 R&D의 총괄을 맡게 되었다.추석이후 본격적으로 연세대와 함께 멘탈헬스관련 AI모델의 연구개발에 돌입한다.추석 연휴가 시작되기전 전체적인 로드맵을 그리면서, 내가 써낸 기획안이 실현가능한 수준인지 체크하고 있다(선정을 위해 너무 지른것이 아닌가 체크 또 체크 ;;;) 크게 3가지 과업을 셋팅했는데, 그 중 하나가 감정단어 분류기이다.자연어 데이터안에 있는 감정단어를 AI모델이 인식하여 찾아내고, 분류하는 모델. 0. 문제인식자연어 데이터에서 내가 원하는 감정단어를 어떻게 AI모델이 찾을수 있을까?우선 기계적인 코딩으로는 쉽다. 감정단어 리스트를 정리하고, 입력된 문장을 단어로 쪼개서, 리스트와 비교하면서 단어를 찾아내면 된다.하지만 문제는..
1. 내가 이해하는 직렬화, 역직렬화 구분- A: 사람이 읽기는 어렵지만, 기계에게 효과적인 데이터(예: 0xB0, 0xA0)- B: 사람이 읽기는 편하지만, 기계에게는 비효율적인 데이터(예: {"id": 1, "contents": '첫번째 글'}) 직렬화: B -> A (dict -> bytes): 조금더 배우고나서 적음 > dict > byte역직렬화: A -> B(bytes -> dict): 조금 더 배우고나서 적음: byte > dict > 객체 2. Django에서 직렬화 이해(GET과정)DB에서 인스턴스 가져오기ins0 = Comment.objects.all()[0]serializer에 넣어서 dict객체로sr = CommentSerializer(instance=ins0) #instance에 ..

간단한 API서버는 EC2로 만드는 것보다, Serverless로 하는게 간편하고 좋다.AWS Lambda를 사용해서, gpt-4o-mini와 소통하는 api를 만들었는데... 계속 Layer연결에서 에러가 나서... 남겨놓는다.(나의 4시간ㅜㅜ) 우선 lambda로 serverless를 구현하는데는 총 3가지 작업이 있다.1. 람다 함수 코딩2. Layer연결(python 개발시 설치되는 라이브러리들을 lambda로 가져오는 작업. layer없이 import openai하면, 해당 모듈이 없다고 뜬다)3. api gateway연결 위 3단계의 내용은 https://issul.tistory.com/438 요글에 코드와 함께 잘 나와있다. 오늘은 실리콘 맥에서(m1부터~) Layer구성하는데 시행착오를 남..