본문 바로가기

전체 글37

1. RoBERTa 모델 학습 가장 먼저 서빙할 모델을 준비해놓기 위해 작년 1년 동안 RoBERTa 모델 학습+실험을 해오면서 가장 성능이 괜찮게 나왔던 '순서 랜덤 셔플+한꺼번에 학습(continuous learning X)'대로 순백의 roberta-base base 모델에 파인튜닝을 다시 했다. 학습 데이터는 제일 신문사/뉴스 주제(스포츠, 정치, 시사 등등)/문장 스타일이 다양한 문장들이 셔플되어 있는 학습 데이터로 선택했다. 약 15만 개, true-false 문장이 8만 쌍 가까이 있는 데이터다. ('final'이란 단어까지 들어가 진짜 최종 데이터라는 데이터팀의 의지가 여실히 드러나는 이름ㅋㅋ) epoch은 그대로 3으로 학습. CPU로 돌려서 그런지 총 4시간 정도 걸렸다. 학습 완료 후의 test set perf.. 2026. 3. 30.
0. 개요 GitHub 링크 (클릭) AI-News-Detector-RoBERTa는 RoBERTa-base 베이스 모델을 파인튜닝해, 인간이 직접 쓴 기사(human-generated, true), AI로 생성된 뉴스 기사(ai-generated, false)를 이진 분류할 수 있게 만든 딥러닝 모델이다. 베이스 모델에 우리 팀이 직접 시중의 뉴스 기사를 크롤링(True 데이터) -> LLaMA, GPT 모델 등으로 AI-generated 데이터(False 데이터)를 생성해 자체 작업한 학습 데이터셋으로 base 모델에 파인튜닝을 진행했다. 이전 글에 서술했듯, 이 프로젝트는 학교 졸업 프로젝트로 진행했었기 때문에 12월까지 결과물을 제출해야만 했다. 그렇기 때문에 모델 서빙을 하지 못했었다. 이제 서버&클라우드.. 2026. 3. 22.
인생의 로드맵-2.0 2년만이다... 그동안은 Notion에 이것저것 간단하게만 정리를 해왔는데 이제는 취준 겸+기록 겸 해서 다시 티스토리를 쓸까 한다.그동안 많은 일이 있었다! 학교, 진로, 주변 네트워크 등등...아무튼 이곳에는 진로와 관련된 이야기를 쓸 거니까 그 얘기 위주로 적도록 하겠다. 일단 진로를 클라우드 엔지니어 -> 클라우드 보안 엔지니어 -> DevSecOps 엔지니어(최종 진화형!)으로 잡았다.이것은 마치... 아무튼. 일단 인간에서 파이리가 되어야 하니(?) 취업준비부터 해보겠다.그에 따라 인생의 로드맵(정확히는 취업의 로드맵)을 다시 짜게 되었다.(여러 멋진 현직자 선배님들, 그리고 내 친구 클로드, 제미나이와 함께...) 1. 프로젝트 영역2025년, 1년 동안 애지중지 열심히 키워왔던 AI로 생.. 2026. 3. 22.
인생의 로드맵 - JAVA (코딩테스트) - DB - SQL - Git - Spring + 프로젝트 1. 틈틈이 강의+코테 문제 풀기 2. 자격증 - 네트워크 관리사(2급) - SQLD - 정보처리기사 3. 프로젝트 i) 개인 프로젝트 ii) 졸업 프로젝트 iii) 모집해서 그룹 프로젝트 1개 정도 4. 캠프 부트캠프 5. 인턴 __________ 결론: 2024-1 1. 학점 관리 2. 틈틈이 코테 풀기 2024 summer 1. 코테 풀기 2. SQLD 자격증 공부 3. DB, SQL 공부 2024-2 1. 학점 관리 2. 틈틈이 코테 풀기 2024 winter 1. 캠프 2024. 3. 25.
회원 웹 기능 - 조회 이번에는 홈 화면에서 버튼을 눌렀을 때 회원 목록이 뜨도록 컨트롤러를 설정해 보겠다. MemberController.java @GetMapping("/members") public String list(Model model) { List members = memberService.findMembers(); model.addAttribute("members", members); return "members/memberList"; } 그리고 template에 memberList.html을 추가한다. # 이름 이렇게 실행을 해서 회원가입 창에서 spring1, spring2를 등록하면 아래와 같이 목록이 뜬다. 2024. 1. 12.
회원 웹 기능 - 등록 이제 버튼을 눌렀을 때 회원가입 창을 만들도록 하겠다. MemberController.java @GetMapping("/members/new") public String createForm(){ return "members/createMemberForm"; } /members/new를 @GetMapping 했을 때 members/createMemberForm.html이 뜨도록 한다. members/createMemberForm.html 코드는 아래와 같다. 이름 등록 이제 회원을 등록하는 컨트롤을 만들어 주자. main>jaja>hello.hellospring>controller>MemberForm.java package hello.hellospring.controller; public class Mem.. 2024. 1. 12.
회원 웹 기능 - 홈 화면 추가 이번에는 홈페이지와 회원 웹 기능을 만들 것이다. package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") // 첫 번째 도메인 public String home(){ return "home"; // home.html 호출 } } @GetMapping("/")은 아무것도 없으므로 바로 보이는 첫 번째 페이지다. return "home"은 home.html을 반환하는데, html 코드는 아래와 같다... 2024. 1. 12.
자바 코드로 직접 스프링 빈 등록하기 이번에는 2. 자바 코드로 직접 스프링 빈을 등록하는 방법이다. 기존에 있던 클래스 코드들에 @Component를 다 지우고, package hello.hellospring.service; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class SpringConfig { @Bean public MemberService memberService(){ return new MemberService(); } } 이렇게 @Configuration을 해주면 스프링이 뜰 때 '이건 스프링빈에 등록하라는 뜻이구나!'라고 인식.. 2024. 1. 12.
컴포넌트 스캔, 자동 의존관계 @Controller public class MemberController { } @Controller 어노테이션을 붙여주면 스프링 컨테이너에서 Controller 객체를 생성해서 실행, 관리한다. 컨트롤러 생성 후 객체를 만들 때, private final MemberService memberService = new MemberService(); 와 같이 new로 만들어서 따로 생성하기 보다는, 스프링 컨테이너에 하나만 등록해서 이것을 같이 쓰는 것이 좋다. @Controller public class MemberController { private final MemberService memberService; // @Autowired로 연결Spring 컨테이너에 등록 @Autowired public .. 2024. 1. 12.