[질문 내용] 제가 지금 이해한 내용으로는 Parent parent = new child(); 가 있을때 메모리에는 Child를 기준으로 상위 부모 클래스만 메모리에 적재되고 (편의상 Child 메모리라고 하겠습니다), parent의 참조 주소는 생성된 Child 메모리 안의 Parent 클래스를 참조하며, parent의 멤버변수는 Parent 클래스의 멤버변수만 가질 수 있고, 오버라이딩된 메소드가 존재한다면 무조건 오버라이딩된 메소드가 우선권을 가진다 라고이해했는데, 덧붙일 개념들이 혹시 있을까요? 아, 그리고 만약 오버라이딩된 메소드가 부모클래스에서 실행할 수 없는 메소드라면 어떻게되는지도 궁금합니다. (혹시, 오버라이딩된 메소드가 부모클래스에서 실행되지않을 가능성은 아예 없나요?)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 강의 16분 즈음부터 @Table(name = "MBR") 같은 것들은 런타임에 영향을 주지만 @Column(unique = true) 같은 제약조건들은 런타임에 영향을 주지 않는다는 말이 왜 그런 건지 이해가 잘 안 가는데 조금 더 설명해주실 수 있을까요?? 둘 다 데이터베이스에 어떤 쿼리를 날려야 하는데 하나는 런타임에 영향을 주고 하나는 그렇지 않다는 게 이해가 잘 가지 않습니다.
예를들어 id값이 20~30인 member를 가져올때 영속성 컨테스트안의 1차캐시에는 값들이 어떻게 저장이 되나요? 일단 강의에서는 em.persist 와 em.find 인 경우 1차 캐시에 값을 저장한다고 해서 위와 같이 jpql을 사용했을때 일단 영속성 컨테스트에 값이 저장되는지 확인해보았습니다. 영속성 컨테스트에 값이 저장되었다면 commit시 1.flush 발생 2.스냅샷과 비교해서 변경감지. 3.변경이있었다면(setter) 쓰기 지연 SQL 저장소에 UPDATE쿼리 생성 및 저장 4.쓰기 지연 SQL 저장소에 있는 모든 쿼리를 실행. 5.커밋(실제DB반영) 위 과정이 일어나서 NAME 값이 changeMember로 변경되어야하는데 확인해보니 실제로 값이 변경되는걸 확인할 수 있었습니다. update 쿼리도 2번일어나는데 그럼 위의 예시에서 executeQuery로 jpql 실행 시 1차 캐시에 값이 @id Entity 20 member(20,memberA) 30 member(30,memberB) 이렇게 저장되는 거 같은데 맞나요??(리스트로 가져오면 , 하나씩 풀어서 저장) 그리고 commit시 위에 제가 생각한 과정대로 이해한게 맞을까요?
외래키 사용을 지양하라는 내용이 있어서 링크된 글을 읽어봤는데 궁금증이 있습니다. 외래키를 지양한다면 PK 값을 다른 테이블에 넣으면서 그 값으로 조인을 사용하는건가요? 외래키를 지양했을 때 성능상의 이점은 알겠는데 결국 데이터 정합성 부분에서 문제가 발생합니다. RDB에서 데이터 정합성이 깨지면 사용하는 의미가 없다고 하는데 이부분에선 어떻게 생각하시나요? 외래키를 안쓸경우 JPA에서 ManyToOne같은 메소드도 사용하지 않는건가요? 그리고 해당 주장에 대해 반박하는 아래의 링크도 있는데 이 의견은 어떠신가요? https://gdsc-university-of-seoul.github.io/foreign-key/
안녕하세요 강의를 듣던 와중에 궁금한 점이 생겨 질문 남깁니다. 실제로 그렇다면 추상 클래스와 인터페이스 중에 인터페이스를 사용하는게 이점일 것 같은데. 대부분의 경우 인터페이스로 구현되고, 추상 클래스는 사용하지 않는 것인가요 ? 백엔드 개발 시에도 인터페이스 구현을 통해서만 작성하는 것 같아 여쭤봅니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 맥 터미널에서 권한 부여까지 한후 실행을 했는데 ./bin/ h2.sh : line 3: 3667 Trace/BPT trap: 5 java -cp "$dir/h2-2.2.224.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools .Console "$@" 이와 같은 메세지가 뜨면서 아예 화면도 안뜨네요ㅜㅜ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 강의 잘 듣고 있습니다.강의 도중 궁금한 점이 생겨 질문드립니다. 강의에서는 POST나 PUT요청에서도 Response DTO 객체를 생성해서 전달하셨는데, 실제 실무에서도 이렇게 하는지 궁금합니다. 질문드린 이유는 HTTP Response code상 201이나 204 등의 응답코드가 있는 것으로 알고있는데, Response를 매번 생성하는게 실질적으로 좋은 설계이기 때문인지, 아니면 변경이 완료된 것을 실제로 조회하면서 이해를 돕기 위함인지 궁금했습니다. 감사합니다.
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
파인튜닝을 진행하다가 어떠한 이유로 서버가 꺼진다거나, 중간에 모델을 확인하고 싶어서 학습을 중단하고 싶을때, 현재까지 학습된 내용을 저장하려면 어떻게 해야할까요? 예를들어 학습도중 서버가 중단되어 학습이 멈춰버리면 현재까지 학습된 내용에서 이어서 학습을 하고싶으면 어떻게해야하는지 궁금합니다.
혹시 deepspeed로 학습중에 checkpoint가 ssd 용량을 너무 많이 잡아먹지 않게 하려면 어떻게 해야 하나요?? 클라우드 머신으로 10시간짜리 학습중간에 멈춰버려서.. 넉넉찮은 주머니 사정에 타격이 오고 있습니다. 체크포인팅을 할려고 해도 이상하게 용량이 순식간에 300GB를 먹어버리더라구요. 그래서 용량 초과로 에러가 나서 학습이 멈춰버리는 상황입니다. 혹시 이러한 경험 해보셨다면 지혜를 나눠주시면 정말 감사드리겠습니다(- -)(_ _)
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 안녕하세요, localhost:8080/members/new에 접근하면 whitelabel에러가 떠서 이유가 무엇인지 질문 드립니다. 오타같은 것도 없고 구조도 정확한 것 같은데 어떤 부분이 문제인건지 전혀 모르겠습니다... hello.hellospring/controller/HomeController hello.hellospring/controller/MemberController resources/templates/home.html resources/templates/members/createMemberForm.html 폴더 구조 실행 결과
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
!pip install -q autotrain-advanced 를 통해서 autotrain-advanced를 설치하려고 하면 다음과 같은 에러가 뜨는데 어떻게 해결해야 하나요? ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. lida 0.0.10 requires kaleido, which is not installed. llmx 0.0.15a0 requires cohere, which is not installed. llmx 0.0.15a0 requires openai, which is not installed. tensorflow-metadata 1.14.0 requires protobuf<4.21,>=3.20.3, but you have protobuf 4.23.4 which is incompatible. tensorflow-probability 0.22.0 requires typing-extensions<4.6.0, but you have typing-extensions 4.9.0 which is incompatible. !autotrain llm --train \ --project_name "llama2-korquad-finetuning-da" \ --model "TinyPixel/Llama-2-7B-bf16-sharded" \ --data_path "data" \ --text_column "text" \ --use_peft \ --use_int4 \ --learning_rate 2e-4 \ --train_batch_size 8 \ --num_train_epochs 40 \ --trainer sft \ --model_max_length 256 이 부분에서는 다음과 같은 에러가 나옵니다. usage: autotrain <command> [<args>] AutoTrain advanced CLI: error: unrecognized arguments: --use_peft --use_int4
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
안녕하세요. 저는 현재 llama2 모델을 KorQuad 데이터셋을 이용하여 파인튜닝하는 실습을 진행중에 있습니다. 파인튜닝 후에 궁금한게 생겼는데, 강의에서 처럼 KorQuad 데이터셋을 이용하여 llama2 모델을 파인튜닝을 한 뒤에 Chat GPT API 처럼 Maximum length 나 Temperature 등을 파라미터로 넣어서 답변의 길이나 Temperature 를 조절 할 수 있을까요?
안녕하세요! 최근 스프링 시큐리티가 패치되면서, 기존 메서드 체이닝 방식이 아닌 람다식을 통해 함수형으로 설정하도록 바뀌었는데요. 다른 설정 부분은 새롭게 바뀐 방식을 찾았으나.... 아래 사진의 마지막 apply() 는 도저히 찾을 수가 없더라고요...ㅠ 혹시 아시는 분계실까요? ('apply(C)' is deprecated since version 6.2 and marked for removal )
우선 좋은 강의 감사드립니다. 강의내용중 running -> runnable 로 이동하는 방법에 yield, I/O 가 있다고 하셨는데, DB query 등을 하면 응답이 올때까지 waiting으로 상태변경이 되는게 아닐까 싶어 샘플코드를 짜보니 정말로 running-> runnable 상태이던데, 1) 응답이 올때까지 기다리는 것이기도 하고 2) runnable 이면 언제라도 running이 될수 있는데, 이 경우 running -> runnable -> running 으로 상태변경되었는데 아직 응답이 오지 않았으면 다시 runnable 로 넘어가고.. 이런게 반복되는건가요? 샘플코드는 아래와 같이 만들어봤습니다. RestTemplate template = new RestTemplate(); template.getEntity(xxx); // 응답이 10초 걸리는 api 호출 10초 내에 위 작업을 하는 쓰레드의 상태를 log 로 찍으니 runnable 로 나왔습니다.
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
이번 강의의 다음 코드에서 왜 prompt 의 instruction 과 response 앞에 ### 을 넣어주는건가요? # 빠른 학습을 위해 20개만 추출 num_items = 20 final_prompt_list = [] for idx, (question, answer) in enumerate(refined_dict.items()): if idx >= num_items: break prompt = f"Below is an instruction that describes a task. Write a response that appropriately completes the request. ### Instruction: {question} ### Response: {answer}" print(idx, prompt) prompt_dict = {} prompt_dict['text'] = prompt final_prompt_list.append(prompt_dict)
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
LLama2 모델을 이용하여 특정 분야의 리포트를 작성해주는 모델로 파인튜닝 하고 싶습니다.(Chat GPT 의 complete 모델 처럼) 너무 막연한 질문이긴 하지만.. 이때 필요한 데이터 셋의 형태는 어떤 형태이며, 어떤 모델을 어떤식으로 파인튜닝을 진행해야하는지 가이드를 주실 수 있을까요? 예를들어 제가 원하는 모델은 input 으로 "안녕하세요. 이번 보고서" 라는 텍스트를 넣으면 output 으로 "에서는 다음과 같은 내용을 다룰예정입니다." 의 텍스트가 나오는 것 입니다. input 텍스트를 넣으면 input 텍스트 이후에 올 수 있는 특정 분야에 관련된 텍스트를 자동으로 완성해주는 모델을 만들기 위해서 어떤식으로 접근해야 할까요?