Skip to content

Instantly share code, notes, and snippets.

View sigridjineth's full-sized avatar
🧙
@thisissigrid

Sigrid Jin (ง'̀-'́)ง oO sigridjineth

🧙
@thisissigrid
View GitHub Profile
@sigridjineth
sigridjineth / embed_raft.py
Created March 1, 2024 20:42
raft embedding
import cupy as cp
import numpy as np
from pylibraft.distance import pairwise_distance
from pylibraft.knn import brute_force_knn
def main(num_elements, dim):
# 데이터 생성 및 정규화 (CuPy 사용)
cp.random.seed(42)
data = cp.random.random((num_elements, dim)).astype(cp.float32)
norm_data = data / cp.linalg.norm(data, axis=1, keepdims=True)
@sigridjineth
sigridjineth / hnswlib.py
Created March 1, 2024 20:38
hnswlIb_langcon
import argparse
import hnswlib
import numpy as np
def main(num_elements, dim):
# 데이터 생성 및 정규화
np.random.seed(42)
data = np.random.random((num_elements, dim)).astype(np.float32)
norm_data = data / np.linalg.norm(data, axis=1)[:, None]
@sigridjineth
sigridjineth / tcopl_deepmind.md
Created February 11, 2024 02:29
Training Compute-Optimal Large Language Models - DeepMind

2편: ‘모델 크기’와 ‘학습 토큰 수’의 적절한 비율은? | NeurIPS 2022 | 김택민

2편: ‘모델 크기’와 ‘학습 토큰 수’의 적절한 비율은? | NeurIPS 2022 | 김택민

Gopher만큼 계산량이 있다면 63B → 1.4T에서 학습하는 것이 최적이라고 한다. 실제 현업에서는 관점 2가 조금 더 현실성이 있는데, pretrain을 하기 전에 이미 GPU를 사용했으므로 계산량이 고정되어 있는 상태. 최고의 정확도를 내기 위해서 모델 크기를 어떻게 조정해야 하는지 그래프를 통해서 결론을 낼 수 있을 것이다. 안드레 카파시도 nanoGPT에서 관점 2를 좋아한다고 언급했다.

Figure 3 > Figure 2 더 이해하기 편하다.

관점 1과 관점 2에서 얻은 데이터를 조금 더 잘 해석하는 방향으로 제안하는 것인데, 우리가 데이터 포인트를 400개 모았는데 최종 로스를 예측할 수 있는 모델을 만들면 어떨까? 라는 생각이고 샘 알트만도 내부 인터뷰를 통해서 최초 학습 조금 하면 최종 로스를 알 수 있다는 내용 말했음. 로스 예측 모델을 잘 이야기하면 모델 크기는 얼마나 되어야 하고 데이터셋은 얼마나 필요한지 잘 예측할 수 있을 것이다. GPU 스케줄링이 쉬워진다던지, 이 사람에게 몇 대를 빌려주면 되는지 등 잘 빌려주는 것이 좋을 수 있다. 저자들은 로스 예측 모델을 저렇게 생길 수 있지 않을까? 이야기했고. L-BFGS 알고리즘을 이용해서 Huber 로스를 최소화하는 방향으로 학습하면 파라미터를 채울 수 있다고 한다.

Akka

  1. Actor model 을 기반으로 만들어진 Akka는 몇 가지 Component로 구성
  2. Dispatcher: Actor System 내에서 실행되는 모든 코드를 스케줄링하며 각 Actor의 처리량과 시간 점유율을 조정하여 각자에게 공정한 리소스를 제공
  3. Mailbox: Dispatcher에서 들어오는 메시지를 담는 메시징 큐로 Actor마다 Mailbox를 가지고 있으며 들어온 메시지의 순서대로 Actor에서 소비
  4. Actor: 시스템을 구성하는 일종의 행위 객체로 메시지를 실질적으로 필요로 하는 소비자 및 송/수신자

액터는 어떤 구조로 통신을 하는가?

  • 계층구조
  • Akka Actor 계층 구조는 트리 형태로 표현 가능
@sigridjineth
sigridjineth / llm_history.md
Last active February 1, 2024 01:50
LLM 역사를 함께 거꾸로 읽어보시죠 (강재욱) 1회차

1편: LLM 역사를 함께 거꾸로 읽어보시죠 ! | 강재욱

Pre-training for completion

  • 언어적 통계 정보를 뉴럴 네트워크로 인코딩 하는 것
  • 따라서 사전 학습 단계에서 언어적 통계 지식을 학습시키는 것
  • next token prediction (or language modeling)
    • 텍스트를 완성하는 것을 반복시키는 것
    • 언어의 통계 지식을 주입하는 행위임
  • 사람이 요청한 능력을 가지는 것이 pre training 때문
@sigridjineth
sigridjineth / mvt_inverss.md
Last active January 12, 2024 01:52
평균값 정리의 역

평균값 정리의 역

기본 성질

고등학교 과정에서 배우는 평균값 정리는 다음과 같다.

"함수 f가 닫힌구간 [a, b]에서 연속이고 열린구간 (a, b)에서 미분가능하면, f(b)-f(a)=f '(c)(b-a)를 만족하는 실수 c가 열린구간 (a, b)에 존재한다."

평균값 정리는 주어진 구간의 평균변화율과 접선의 기울기가 같아지는 어떤 점이 존재한다는 것을 말하고 있다. 반면에, 다음과 같은 명제는 어떨까?

"함수 f가 닫힌구간 [a, b]에서 연속이고 열린구간 (a, b)에서 미분가능하면, 열린구간 (a, b)에 속하는 임의의 c에 대하여 f(s)-f(t)=f '(c)(s-t), s<c<t를 만족하는 실수 s, t가 열린구간 (a, b)에 존재한다."

파이썬의 모든 것은 객체다. 당연하게 들릴 수 있으나 객체 지향 언어라고 하려 모든것이 객체인건 아니다. 예를 들어 자바의 거의 모든것은 객체지만, 원시 자료형 (Primitive Type)은 아니다. 그러나 파이썬은 숫자도 객체다.

>>> 42..__add__(3) # 점을 두개 붙어야 호출 가능하다 45.0


파이썬의 객체는 PyObject로 이뤄져 있다. PyObject는 Include 폴더의 object.h에 다음과 같이 정의 되어 있다.

@sigridjineth
sigridjineth / resolv_conf.md
Created December 29, 2023 01:38
resolv.conf

다음과 같은 PDO Exception 에러가 있다고 생각해보자.

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

RDS Host 이름을 찾을 수 없기 때문에 발생하는 문제이다.

가장 쉽게 해결하는 방법은 /etc/hosts에 아이피와 해당 호스트를 직접 입력하면 해결이 되지만, 이거는 특정 도메인을 못 찾는 문제가 아니라 DNS 조회를 못하는 것이다.

우리의 컴퓨터는 다음 방법을 통해 도메인을 조회한다.

@sigridjineth
sigridjineth / finetune_llama_v2.py
Created December 26, 2023 06:49 — forked from younesbelkada/finetune_llama_v2.py
Fine tune Llama v2 models on Guanaco Dataset
# coding=utf-8
# Copyright 2023 The HuggingFace Inc. team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software

인플루엔서

측정에 대하여

  • 집중과 측정 - 달성하고자 하는 결과에 대해 명확해야 하며, 진행 상황을 체계적으로 측정해야 합니다.
  • 초기에 영향력 있는 사람이 저지를 수 있는 일반적인 실수들은 다음과 같습니다:
  • 목표가 모호하고 설득력이 없음 (예: "직원들에게 권한 부여", "팀 구축")
  • 측정이 불충분하거나 전혀 없음
  • 잘못된 측정 - 잘못된 변수를 측정하여 부적절한 행동을 유도함.
  • 예를 들어, 회사에서 혁신을 늘리는 것이 목표라면, 분기별로 새로운 제품 제안 수를 측정하는 것이 당장 눈에 보이는 방법이겠으나
  • 하지만 아이디어 부족의 원인을 이해하기 위해 직원들의 피드백을 받아보면, 사람들이 비웃음이나 처벌을 두려워하여 의견을 제시하지 않는다는 결론에 도달할 것