분류 전체보기40 [자료구조] HashMap ▶ Java Collection 자료구조 전체 구조 ▶ HashMap이란? Key와 value 쌍으로 구성된 비선형 자료구조이다. ▶ 언제 쓰나? - Key : Value 형태로 저장되기 때문에 Key를 직접 설정하고 접근하는 일이 잦을 때 사용한다. - 검색, 삽입, 제거 연산의 시간 복잡도가 O(1)이기 때문에 해당 연산이 많은 경우 효율적이다. - 하지만 들어온 순서를 반영하지 않기 때문에 들어온 순서 정보가 필요 없을 때 사용해야 한다. ▶ 어떻게 쓰나? 선형 자료구조가 아니기 때문에 버킷에 저장되는 위치를 Hash 함수를 이용해 구한다. 버킷의 해당 인덱스에 데이터를 저장한다. ▶ HashMap의 문제점 - 충돌 이 때 Key는 String이 될 수도 있고, 객체도 될 수 있기 때문에 가능한 경.. 2024. 4. 15. [SpringBoot] 영속성 컨텍스트(persistence context)란? ▶ 영속성이란? 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말한다. -> 영속성이라는 개념은 다양한 소프트웨어 분야에서 데이터의 보존과 관리를 위해 사용되는 필수적인 개념이다. ▶ 영속성 컨텍스트란? (-> 여기서 컨텍스트란 환경, 상황을 뜻한다. ) 영속성 컨텍스트는 데이터를 영구적으로 저장하기 위한 환경이다. 어플리케이션과 DB 사이에서 객체를 보존하는 가상의 DB역할을 한다. (app과 DB 사이에 중간에 있는 것.. ! ) ▶ 엔터티 매니저와 영속성 컨텍스트 객체(entity)를 영속성 컨텍스트에서 관리하기 위해 엔터티 매니저 팩토리로 엔터티 매니저를 만든다. 엔터티 매니저는 트랜잭션의 단위이며 영속성 컨텍스트에 접근하여 엔터티의 저장, 수정, 삭제, 관리, 조회 등을 모두 담당한다. .. 2024. 4. 12. [DevPrep] 6. koalpaca 모델 저장 모델이 제대로 저장이 안되는 이유가 뭘까..? ▶ 시도 1 - 그냥 torch 모델 저장하는 방법 대로 저장함 model = TheModelClass(*args, **kwargs) model.load_state_dict(torch.load(PATH)) model.eval() 여기서 모델이 빈 상태로라도 정의가 되어 있어야 저장한 걸 불러올 수 있는데.... 일단 저 부분을 모른다 그럼 어떻게 저장하지? 라는 생각에서 transformers 라이브러리를 사용한 모델의 저장 방법을 검색해봤다! 실제로 transformers 라이브러리를 사용한 모델은 다른 방법을 사용해야 했다. transformers 라이브러리 사용한 모델을 그냥 model.load_state_dict(torch.load(PATH)) 하면 .. 2024. 3. 28. [알고리즘] 그리디 알고리즘이란? 그리디 알고리즘이란 무엇인가? (What) 현재 상태에서 최선의 선택을 반복하는 알고리즘. 아이디어가 간단하다. 전체는 모르겠고 지금 눈 앞의 선택들 중 가장 좋은 선택을 하겠다는 것. 특징 -> 구현이 매우 쉬움 (How는 쉬움) -> dp나 분할 정복과 같이 목적이 한정되지 않고 범용적으로 쓰일 수 있는 알고리즘. 언제 쓰는가? (Why) 항상 최적해를 보장하지 않는다. 때문에 언제 쓸 수 있는지를 파악하는 것이 중요하다. 조건 2가지 optional substructure 최적 부분 구조 가질 때 greedy choice property 그리디 우선 선택 - 한번의 선택이 다음 선택과 무관할 때(영향을 주지 않을 때) 최적 부분 구조란 무엇인가? 부분 문제의 최적해가 전체 문제의 최적해를 구성하는 .. 2024. 3. 27. [DevPrep] 5. koalpaca fine-tuning test gpt를 사용했을 때 api 사용시 비용이 발생하기 때문에 혹시 사용을 못하게 될 경우를 대비하여 koalpaca의 파인튜닝 기법에 따라 lm을 파인튜닝하는 것을 테스트해보고자 함. colab pro A100이랑 V100 둘 다 가능했음! 한국어 기반 lm 파인튜닝한 koalpaca Alpaca Instruct Set으로 명령에 따르는 능력을 갖도록 한 것. Llama 모델은 이미 수많은 정보를 알고 있지만, 어떻게 말할지 모른다. 데이터셋 생성 방법 52000개의 데이터 davinci로 생성 -> 자동 생성 & 중복 제거 Llama 모델 파인튜닝 -> 작은 파라미터수로 상당히 괜찮은 결과가 나옴. Beomi님> 한국어 버전을 만들어보자! 한국어 LM에 instruction set 학습 시킨 것 두가지 .. 2024. 3. 7. [DevPrep] 4. gpt 프롬프팅 테스트 & 데이터 모범 답안 프롬프트 테스트 Array와 LinkedList의 차이가 무엇인가요? 에 대한 모범 답안 생성 당신은 google의 프론트엔드 개발자를 뽑는 면접관입니다. 당신은 지원자에게 "Array와 LinkedList의 차이가 무엇인가요?" 라고 질문을 하였습니다. 이 때 당신이 뽑을 만한 가장 적절한 대답을 5줄 이내로 만들어주세요. Array는 연속된 메모리 공간에 요소들을 저장하고, 인덱스를 사용하여 빠르게 접근할 수 있습니다. 반면 LinkedList는 각 요소가 다음 요소를 가리키는 링크로 연결되어 있어, 중간에 요소를 삽입 또는 삭제할 때 유연하게 처리할 수 있습니다. Array는 빠른 접근이 가능하지만 삽입/삭제에 취약하며, LinkedList는 삽입/삭제가 용이하지만 접근 시간이 더 많이 .. 2024. 3. 4. 이전 1 2 3 4 5 6 7 다음