새로운 개념의 비교적 저렴한 가정용/산업용 로봇이 나올 것 같다. 기존의 로봇은 규칙 기반의 로봇이었지만, 이제는 생성형 인공지능을 이용하여 사람의 행위를 학습하고 모방하는 로봇이 등장했다. 이 로봇들은 청소부터 요리까지 사람이 가르쳐 준 대로 모방하여 작업을 수행한다. 특히 눈에 띄는 점은 이러한 학습 데이터를 로봇들 간에 공유할 수 있다는 것이다.
Alpaca는 52K data set를 제공하는데, GPT의 text-davinci-003 모델을 이용해 자동 생성했다고 합니다. 그런데, Nvidia A100정도의 GPU가 필요했습니다. 그런데, LoRA를 적용해서 게이밍 GPU에서도 fine-tuning할 방법이 나왔지요. https://github.com/tatsu-lab/stanford_alpaca
그것이 바로 Alpaca-LoRa이고 제가 fine-tuning에 성공한 모델이기 합니다.
Fine-tuning은 기계 학습에서 미리 훈련된 모델을 특정 작업이나 데이터에 맞게 조정하는 과정을 의미합니다. 대규모 언어 모델(예: GPT )을 사용할 때, 특정 작업 또는 도메인에 더 적합하게 만들어야 할 필요가 있습니다. 이때 fine-tuning이 사용됩니다.
GPT → ChatGPT (Fine-tuning)
LoRa
LoRa에 대해 Bard에게 물어보니 아래와 같이 알려주네요
---------------
LoRA(Low-rank Adaptation)는 비지도 학습 기반의 적응 알고리즘으로, 딥러닝 모델을 새로운 데이터 세트에 적응시키는 데 사용됩니다. LoRA는 모델의 가중치를 낮은 차원의 표현으로 축소한 다음, 새로운 데이터 세트에 맞게 재구성합니다. LoRA는 모델의 복잡성을 줄이고 새로운 데이터 세트에 대한 일반화 성능을 향상시킬 수 있습니다.
LoRA는 다음과 같은 단계로 구현됩니다.
모델의 가중치를 낮은 차원의 표현으로 축소합니다.
새로운 데이터 세트에 대한 손실 함수를 계산합니다.
손실 함수를 최소화하는 방향으로 모델의 가중치를 재구성합니다.
LoRA는 다양한 데이터 세트에서 효과적으로 작동하는 것으로 나타났습니다. 예를 들어, LoRA는 이미지 인식, 자연어 처리, 음성 인식 등 다양한 분야에서 성능을 향상시킨 것으로 나타났습니다.
LoRA는 딥러닝 모델을 새로운 데이터 세트에 적응시키는 데 유용한 도구입니다. LoRA는 모델의 복잡성을 줄이고 새로운 데이터 세트에 대한 일반화 성능을 향상시킬 수 있습니다.
아래 코드를 실행해서 GPU Driver, CUDA, Pytorch가 제대로 설치되었는 확인합니다.
import torch
# Check if CUDA is available
if torch.cuda.is_available():
print("CUDA is available.")
# Print the CUDA device count
print(f"Number of CUDA devices: {torch.cuda.device_count()}")
# Print the name of the current CUDA device
print(f"Current CUDA device name: {torch.cuda.get_device_name(torch.cuda.current_device())}")
else:
print("CUDA is not available.")
print("pytorch version")
print(torch.__version__)
$ python cuda.py
CUDA is available.
Number of CUDA devices: 1
Current CUDA device name: NVIDIA GeForce RTX 4090
pytorch version
2.0.1+cu117
Bill Gates is an American business magnate, investor, author, philanthropist, and humanitarian. Gates is the former CEO and current chairman of Microsoft, the software company he founded with Paul Allen. He is consistently ranked among the world's wealthiest people and was the wealthiest overall from 1995 to 2009, excluding 2008, when he was ranked third. During his career at Microsoft, Gates held the positions of CEO and chief software architect, and he remains the largest individual shareholder with more than 6 percent of
Max tokens: 300
Bill Gates is an American business magnate, investor, author, philanthropist, and humanitarian. Gates is the former CEO and current chairman of Microsoft, the software company he founded with Paul Allen. He is consistently ranked among the world's wealthiest people and was the wealthiest overall from 1995 to 2007, excluding 2008, when he was ranked third. During his career at Microsoft, Gates held the positions of CEO and chief software architect, and he remains the largest individual shareholder, with more than 6 percent of the common stock. He has also authored or co-authored several books.
Gates is one of the best-known entrepreneurs of the personal computer revolution. He has been criticized for his business tactics, which have been considered anti-competitive, an opinion that has in some cases been upheld by numerous court rulings. Later in his career Gates pursued a number of philanthropic endeavors, donating large amounts of money to various charitable organizations and scientific research programs through the Bill & Melinda Gates Fou128ndation, established in 2000.
Gates stepped down as chief executive officer of Microsoft in January 2000. He remained as chairman and created the position of chief software architect for himself. In June 2006, G
Max tokens에 따라 Output 길이가 달라집니다. GPU mermoy한계 때문에 Max Token은 계속 늘릴 수는 없습니다.
간단한 테스트를 해보았습니다.
Instruction: 1+1 output: 2 \end{code}</s>
Instruction: Write a Python program that prints the first 10 Fibonacci numbers. output:
\begin{code}
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
for i in range(10):
print(fibonacci(i))
\end{code}
Answer: \begin{code}
def fibonacci(n):
if n == 0:
return 0
elif n == 1
코드는 잘 작성했는데, 반복 되는 문제가 있네요. 아마 Max tokens값이 커서 그런 것 같습니다. 잘은 동작하는데, 결과가 나오기 까지 길게는 10초 이상의 시간이 걸리기도 합니다. ChatGPT나 Bard는 빠르게 응답 결과가 나오는데, 어떻게 상용 서비스를 하는지 궁금하네요.
코딩 트레이닝은 인사이트에서 나온 책인데, 처음 프로그래밍 언어를 배울때 참고하면 좋은 것 같다. 프로그래밍 언어는 배우기 보다 계속 머릿속에 기억하고 있는게 어렵다. 주력으로 사용하는 언어는 괜찮은데, 가끔 쓰는 파이썬 같은 경우 몇 달 안쓰면 문법을 금새 잊곤한다. 이런 경우를 대비해서 평소해도 꾸준히 코드도 보고 코딩도 해야 하는데, 기존 코딩 테스트에 나오는 알고리즘은 문제는 그렇게 실용적이지 않지만 이런식으로 작은 과제를 풀어보면 나중에 현업에서 도움이 될 수 있다.
많은 웹사이트가 웹폰트를 쓰고 있다. 시스템 폰트 보다 본래 웹페이지 디자인에 맞는 폰트로 웹페이지를 출력하고 싶은 사람들이 많기 때문에 웹폰트 사용이 증가하고 있다. 그런데, 웹폰트는 다운로드 받아야하므로 크기가 큰 경우 웹페이지가 먼저 렌더링되는 경우가 있다. 이럴 때, 레이아웃이 출렁거리는 것을 느낄 수 있다. 웹폰트를 다 받으면 시스템 폰트로 그린 페이지를 다시 그리기 때문이다.
위 사이트에서는 그러한 문제를 잘 설명했고, 어떻게 해결할 수 있는지 소개하고 있다..
In summary we need to prevent the layout shift by letting the browser render in a fallback system font if it doesn't get the web font in time, then optimise our fonts to try to get them to the browser before it needs them:
usefont-display: optionalto prevent layout shifts
subset fonts and serve aswoff2
use variable fonts or a limited set of weight variations
Apple Lisa 컴퓨터는 스티브 잡스가 제록스 팔로알토 연구소를 방문하여 Xerox Star라는 컴퓨터를 본 후, 본 따 만든 컴퓨터입니다. 애플 컴퓨터로는 처음으로 GUI를 도입하는 등 혁신적인 컴퓨터였지만, 너무 비싼 가격 때문에 시장에서는 실패합니다. 참고로 리사는 스티브 잡스 딸의 이름입니다.