목차

오늘의 TIL목차는

  1. 시작전 마음가짐
  2. LLM&RAG 강의
  3. 수준별 학습반
  4. 회고

입니다.

 

오늘의 강의 필기와 코드는 GITHUB링크를 참고해주세요.

 

TIL/ML at main · Onesword-Jang/TIL

오늘 배운 것은?! Contribute to Onesword-Jang/TIL development by creating an account on GitHub.

github.com

 

 

TIL/LLM/LLM_RAG_1.ipynb at main · Onesword-Jang/TIL

오늘 배운 것은?! Contribute to Onesword-Jang/TIL development by creating an account on GitHub.

github.com

 

 


시작전 마음가짐

오늘은 새로운 팀으로 이동하게 되는 날입니다.

 

다른분들에게 피해를 주지 않으려면 학습에 대한 열정가지고 열심히 해야겟습니다.

 

또한 오늘부터는 복습보단 새로운 강의를 듣는 것을 목표로 하며 수준별 학습반 강의 내용을 완벽히 이해하는것이 목표입니다.

 

그럼 학습을 시작하겟습니다.


LLM&RAG 강의

LLM & RAG 강의를 4주차까지 완강했습니다.

 

내일(토요일)을 사용해서 5주차 까지 완강예정입니다.

 

오늘 강의를 듣기 전에는 아직 앞선 강의들에 대한 이해도가 매우 맞다고 생각하고있어 벌써 다른 주제의 강의를 듣기에는 부담스럽다라고 생각했습니다.

 

하지만 막상 들어보니 강의 내용 자체는 지금까지 들어보았던 강의 중에서 가장 이해하기 쉬웠으며 실습 또한 매우 간단하여 재미있게 들었습니다.

 

아직 완강한게 아니라서 쉽다고 생각하는게 섣부를 수 있지만 재미있고 유익한 시간이였다고 생각합니다.

 

오늘 실습을 진행하며 만난 트러블은 System에 정보를 전달했음에도 Assistant의 답변에 적용이 되지 않았습니다.

 

이를 해결하기 위해 강의 내용을 생각하다가 이전 대화 내용을 기억하고 학습한다는 부분이 생각나 이전의 대화내용을 전부 삭제하고 실행하니 해결이 되었습니다.

 


수준별 학습반

1. 문자열 붙여서 출력하기

  • 문제없이 해결
str1, str2 = input().strip().split(' ')

if 1 <= len(str1) <= 10 and 1 <= len(str2) <= 10:
    print(str1, end="")
    print(str2)

다른 사람 정답

  • replace(): 특정 값을 다른 값으로 대체할 때 사용하는 함수
  • 문자열.replace(바꿀문자열, 새문자열, 바꿀_횟수)
print(input().strip().replace(' ', ''))

튜터님 풀이

result = "".join([str1, str2])
print(result)

2. 문자열 돌리기

  • 전혀 모르겟어서 검색을 통해 해결
str = input()
for char in str:
    print(char)

다른사람 정답

  • join메서드: 문자열을 결합할 때 사용하는 메서드
print('\n'.join(input()))

3. 홀 짝 구분하기

  • if문법이 헷갈렸지만 혼자 해냄
  • != 문법이 생각 나지않아 필기 찾아 봄
a = int(input())

a_1 = a % 2

if a_1 == 0:
    print(f"{a} is even")

elif a_1 != 0:
    print(f"{a} is odd")

다른사람 정답

  • 비트 연산자 &: 두 비트가 모두 1일 때만 결과가 1이 된다.
  • n&1을 이용해 n이 짝수인지 아닌지 검증 가능(짝수일때 0, 홀수일 때 1)
  • n & (1 << k)을 사용해 n의 k번째 비트가 1인지 확인가능
  • 이진법에 대한 공부 필요
  • 슬라이싱 기법: n&1 값을 시작 인덱스로 삼고, 그 이후에 2칸 간격으로 문자를 선택
n=int(input())
print(f"{n} is {'eovdedn'[n&1::2]}")

총평

  • 지금까지 배운 내용으로 충분히 해결 가능한 문제들도 틀림
  • 응용력이 많이 부족해보임

머신러닝 복습(t-SEN, LDA)

1. t-SEN 코드 중

tsne = TSNE(n_components=2, random_state=42)
  1. n_components=2는 TSNE 클래스의 매개변수로, 몇 차원으로 축소할 것인지 지정
sns.scatterplot(x=X_tsne[:, 0], y=X_tsne[:, 1], hue=y, palette='viridis', legend=None)
  1. legend=None은 데이터에 대한 범례가 그래프에 표시되지 않는다. (표시하려면 'full' 또는 'auto')
  2. 범례란? 데이터 그룹의 이름을 그래프에 표시하는 것을 의미
  3. [:, 0]은 첫 번째 열에 해당하는 모든 값을 선택

2. LDA 결과 해석

  • 우선 정리가 아직 끝나지 않았다.
  • 학습을 마무리하며 정리 내용을 확인 해본 결과 의도를 이해할 수 없고 내용이 뒤죽박죽이다.
  • 정확히 어떤걸 위해 사용하고 그 원리가 무엇인지 모르겟다.(어렴풋이는 알겟는데 다른 설명을 찾아보면 아니고...)
  • 내일 강의를 다 듣고 나서 다시 한번 도전 해볼 것이다.

회고

LLM&RAG 강의를 들으며

 

생각보다 접근하기 쉽고 이해하기 좋아서 빨리 끝낫고 Ai모델 활용을 통해 해보고 싶던 AI에게 인생상담 받아보기도 진행해서 아주 만족입니다.

 

그리고 강의 듣는 시간이 빨리 끝나 계획에 없던 머신러닝에 대한 복습도 진행했습니다.

 

머신러닝을 공부하며

 

t-SEN과 LDA의 코드는 이해가 완벽하게 끝났지만 결과 해석을 아직 이해하지 못했습니다. (아쉽..)

 

내일 마저 도전해보고 2개 중 1개는 이해하고싶습니다.

 

수준별 학습을 들으며

 

파이썬 기본 문법 등을 활용해서 문제풀이 강의였습니다.

 

과제롤 받아 혼자 풀어보고 다른 사람들의 풀이도 보며 굉장히 다양한 풀이 방법들이있구나 싶었는데 튜터님께서 보여주시는 방법도 또 다른 방법이여서 매우 놀랐습니다. (join함수와 %나머지 값을 활용하기)

 

자주 문제를 풀어보고 내 것으로 만들고 싶습니다.

 

감사합니다

+ Recent posts