inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Embedding và Mini GPT do một nhà phát triển ở Thung lũng Silicon giới thiệu

Vừa thử nghiệm vừa dùng mô hình chúng ta tạo để tìm kiếm ngữ nghĩa, qua đó hiểu tại sao kết quả lại kỳ lạ.

실습 결과 차이 | 테스트 해보면서 우리가 만든 모델로 의미 검색 해보면서 왜 이상한지 이해하기

Đã giải quyết

18

blueBird

1 câu hỏi đã được viết

1

제공해 주신 코드를 그대로 사용했을 뿐인데, 이 정도로 차이 나는 이유가 무엇인지 알 수 있을까요?
이번 수업의 실습에서 나온 결과가 아래와 같습니다.

npx tsx train.ts
문장 150개, 어휘 94개, 학습 쌍 1240개
epoch 1  평균 손실 0.6931
epoch 5  평균 손실 0.5178
epoch 10  평균 손실 0.4135
epoch 15  평균 손실 0.2569
epoch 20  평균 손실 0.2025
epoch 25  평균 손실 0.1867
epoch 30  평균 손실 0.1710
epoch 35  평균 손실 0.1687
epoch 40  평균 손실 0.1588
vectors.json 저장 완료

 npx tsx similar.ts 고양이
"고양이"와 가까운 단어:
  햄스터  0.988
  앵무새  0.983
  강아지  0.982
  토끼  0.978
  한다  0.733

npx tsx similar.ts 김치찌개
"김치찌개"와 가까운 단어:
  떡볶이  0.987
  된장찌개  0.982
  불고기  0.980
  비빔밥  0.980
  사료  0.673

npx tsx chroma-search.ts 고양이
ChromaDB에서 "고양이"와 가까운 단어:
  햄스터  distance 0.012
  앵무새  distance 0.017
  강아지  distance 0.018
  토끼  distance 0.022
  한다  distance 0.267

npx tsx chroma-search.ts 김치찌개
ChromaDB에서 "김치찌개"와 가까운 단어:
  떡볶이  distance 0.013
  된장찌개  distance 0.018
  불고기  distance 0.020
  비빔밥  distance 0.020
  사료  distance 0.327
 
npx tsx chroma-search.ts 자동차
ChromaDB에서 "자동차"와 가까운 단어:
  기차  distance 0.013
  자전거  distance 0.018
  버스  distance 0.018
  지하철  distance 0.020
  향한다  distance 0.221

Câu trả lời 1

0

Hong

안녕하세요 blueBird님 질문 남겨주셔서 감사합니다!! 우선 제가 결론부터 말씀드릴게요.

코드가 절대 잘못된게 아닙니다. 학습 자체가 원래 돌릴떄마다 다른 값이 나오는게 정상적이에요.


  1. 숫자가 다른 이유

학습 자체가 확률적이기 떄문입니다. 기본적으로 train.ts 파일을 보시면 난수가 들어가는 부분들이 크게 세가지가 있어요.

  • model.ts의 초기화 : Math.random으로 인해서 랜덤 초기화를 진행합니다.

  • 에폭마다 학습 쌍을 섞는 셔플도 Math.radom을 사용하고 있어요

    • 에폭 : 학습 데이터 전체를 처음부터 끝까지 한 번 다 훑는 단위

  • negative sampling에서도 가짜 쌍을 뽑는데, 이것도 Math.random입니다.


그렇다고 시드를 고정하지는 않아요.

  • 시드 : 난수 생성기 시작 지점


그래서 실행할 떄마다 출발하는 부분이 다른거고, 중간에 보는 순서도 다른거고 쌍도 매번 다르기 떄문에 수치가 다른게 맞습니다. bludBird님이 계속 실행해보셔도 다른 값이 나올꺼에요


  1. 그러기 떄문에 수치 자체를 보기 보다는 순위를 집중적으로 보시면 됩니다.

실행마다 수치는 달라지니깐 결국 어떤 방향으로 가고있냐를 보는것이 모델 학습이에요. 그 부분에 집중해서 보는것이 분포 가설이 잘 보이냐라는 관점인거죠. 그래서 동물 단어 순위를 집중적으로 보시면 됩니다.


이렇게 답변 드릴 수 있을꺼 같은데, 추가적인 질문이 있다면 편하게 댓글로 남겨주시거나 추가 질문으로 남겨주세요!!

  • 질문 주제가 다르다면 추가적인 질문으로 논의 열어주시면 감사하겠습니다!! 다양한 분들이 참고 하실 수 있는 자료로써 활용이 될 수 있을꺼같아요!!


오늘도 좋은하루 보내세요!! 감사합니다!

강의자료

1

152

1

aws 계정 생성 질문

1

54

1

[강의 2. QGIS 설치 및 기본 설정]에서 필터링 안함 설정

1

36

2

실습 결과 차이 | 테스트 해보면서 우리가 만든 모델로 의미 검색 해보면서 왜 이상한지 이해하기

1

18

1