[UCA수퍼컴아카데미] 라마3 llama3 70B 모델 텔레그램 연결 API 코딩--(2)
라마 3가 나오자마자 난리다.
오픈소스치고는 70B 성능이 너무 좋다는 의견이다.
주말 동안 이걸로 pre-trained 시킨 라마3 모델에 개발자 본인이 가진 한국어 데이터만 먹여서 만든 beomi님의 모델이 나왔고 , 이건 파인튜닝은 따로 안된거다. 본인의 한국어 데이터를 라마3 아키텍처에 적용시킨 사례같은거다.
sionic이 자사 모델에 사용하는 한국어 데이터를 습득시킨 xionic-ko-llama3등의 모델도 등장해서 이미 앞에서 한번 소개했다.
일단 라마3의 후속타인 400B 모델의 코드 제작 능력이 제일 궁금하다.
AI 파운데이션 모델은 데이터를 먹인만큼 흡족한 결과가 나오는거라서 돈을 써야 결과물이 잘 나온다. GPU는 삼성SDS클라우드에서 H100을 빌려쓰면 3시간에 30만원 정도 나오니깐 훈련에 16시간 걸렸다느니하면 다 돈인거다.
ollama로 로컬에 모델을 다운받아서 돌려야 전기세를 제외한 운영 유지비가 안드는 거고, 구글 바드때는 제미나이 이전 PaLM/ Bison 모델에 대해서 구글브라우저의 쿠키를 조작해서 백도어를 만들어서 맘껏 질의를 던지고 응답을 가져다 쓰는 방법이 존재했었다. 지금도 감자봇에서 쓰고 있다.
1. ollama-ui 사용
ollama-ui로는 4비트 양자화된 라마3 8B 모델과 채팅을 주고받는 응답이 가능하다. node.js를 쓸 줄 안다면 chatbot ollama등도 대체품으로 사용할 수 있다.
2. huggingface.co/chat 사용
허깅챗에서 llama3 70B 모델에 안유진의 키를 물어보면 163cm라고 나오는데, 허깅페이스내 다른 오픈소스 모델등도 키가 163cm라고 응답하는거보면 소스가 비슷한 훈련용 데이터를 사용한거같다.
RAG 검색증강생성용 웹서칭이 붙고, 안 붙고의 웹 서칭 결과가 다르게 나온다. RAG 검색증강생성 웹서칭이 추가로 붙으면 pann.nate.com이나 instiz.net의 인용자료를 통해 173cm라는 정답이 나온다.
웹서칭 결과도 한눈에 시도와 실패를 파악할 수 있다.
미스USA사이트부터 뽐뿌, 네이트 판, 인스티즈등을 주기적으로 검색에 사용한다.
llam3 70B에 한국의 대통령 이름과 재임 기간을 물어보면
굳이 웹서칭을 하지않아도 해당 데이터를 잘 알고 있다.
Here is the list of Presidents of South Korea, including their tenure:
이승만 (Syngman Rhee) - 1948.7.24 ~ 1960.4.26 (12년)
윤보선 (Yun Posun) - 1960.4.26 ~ 1962.3.22 (1년 10개월)
박정희 (Park Chung-hee) - 1962.3.22 ~ 1979.10.26 (17년 7개월)
최규하 (Choi Kyu-hah) - 1979.10.26 ~ 1980.8.16 (9개월)
전두환 (Chun Doo-hwan) - 1980.8.16 ~ 1988.2.25 (7년 6개월)
노태우 (Roh Tae-woo) - 1988.2.25 ~ 1993.2.25 (5년)
김영삼 (Kim Young-sam) - 1993.2.25 ~ 1998.2.25 (5년)
김대중 (Kim Dae-jung) - 1998.2.25 ~ 2003.2.25 (5년)
노무현 (Roh Moo-hyun) - 2003.2.25 ~ 2008.2.25 (5년)
이명박 (Lee Myung-bak) - 2008.2.25 ~ 2013.2.25 (5년)
박근혜 (Park Geun-hye) - 2013.2.25 ~ 2017.3.11 (4년 1개월)
문재인 (Moon Jae-in) - 2017.5.10 ~ 2022.5.10 (5년)
윤석열 (Yoon Suk-yeol) - 2022.5.10 ~ 현재 (현직)
Note: The dates are in the format of YYYY.MM.DD.
3. Xionic-ko-llama3 모델을 사용해 텔레그램 연동
일단 감사하게 sionic AI측이 사용가능한 API-KEY를 주기 때문에 바로 텔레그램 봇을 연결했다.
pip install python-telegram-bot==13.14
로 파이썬 텔레그램봇 패키지를 설치한다.
주의할 점은 파이썬 3.11.X 나 3.12.X 쓰는 사람중 Urllib3 관련 에러가 나는 경우가 있다.
스택오버플로에도 해당 에러가 나와서 찾아서 읽어보면 파이썬 인터프리터버전과 호환성 문제 인거같다.
필자는 파이썬 3.10.9 버전대를 쓰는데 에러가 없었음을 알려드린다.
YOUR_BOT_TOKEN = "YOUR_BOT_TOKEN"
여기에 텔레그램의 봇파더를 통해서 만든 본인의 텔레그램 봇 토큰값을 적어넣는다.
# 아래는 파이썬 텔레그램 봇과 llama3 OpenAI스타일 API를 연동하는 소스코드입니다.
# 먼저, 필요한 모듈을 import합니다.
import telegram
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from openai import OpenAI
client = OpenAI(
base_url = "http://sionic.chat:8001/v1",
api_key = "934c4bbc-c384-4bea-af82-1450d7f8128d"
)
YOUR_BOT_TOKEN = "YOUR_BOT_TOKEN"
# 이제 텔레그램 봇을 초기화합니다.
bot = telegram.Bot(token=YOUR_BOT_TOKEN)
# 텔레그램 봇의 CommandHandler와 MessageHandler를 정의합니다.
def start(update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="안녕하세요, 챗봇입니다!")
def answer_llama3(update, context):
message = update.message.text
responsz = client.chat.completions.create(
model="xionic-ko-llama-3-70b",
messages=[
{"role": "system", "content": "You are an AI assistant. You will be given a task.
You must generate a detailed and long answer in korean."},
{"role": "user", "content": f"{message}"}
]
)
response = responsz.choices[0].message.content
print(response)
context.bot.send_message(chat_id=update.effective_chat.id, text=response)
# 이제 bot에 핸들러를 추가하고 Polling을 실행합니다.
updater = Updater(token=YOUR_BOT_TOKEN, use_context=True)
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler('start', start))
dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, answer_llama3))
updater.start_polling()
# XIONIC LLAMA3 사용해 챗봇에 자연어로 대화를 할 수 있습니다!
VSCODE에서 코드를 동작시킨뒤, 텔레그램을 통해 물어보면 된다.
가장 핫이슈중 하나인 파이토치가 인텔 가우디2 추론칩을 지원하니 ? 로 물어봤다. 매우 길게 대답을 해준다.
xionic-ko-llama3-70b가 대답한 결과
파이토치(PyTorch)는 최근에 인텔(Intel)의 새로운 추론칩인 가우디2(Gaudi2)를 지원하게 되었는데, 이를 통해 딥 러닝 모델의 추론 성능을 크게 개선했다. 이 지원은 파이토치 1.9 버전부터 시작되었으며, 이를 통해 파이토치 사용자들은 인텔의 가우디2 추론칩을 활용하여 딥 러닝 모델의 추론을 가속화할 수 있게 되었다.
가우디2는 인텔이 개발한 새로운 추론칩으로, 딥 러닝 모델의 추론을 위해 특별히 설계되었다. 이 칩은 인텔의 3세대 추론칩으로, 이전세대인 가우디1에 비해 추론 성능이 크게 개선되었다. 가우디2는 24teraOPS의 추론 성능을 제공하며, 이는 이전세대보다 2배 이상의 성능 개선이다. 또한 가우디2는 저전력 설계를 적용하여 에너지 소비를 크게 줄였으며, 이를 통해 데이터 센터나 에지 디바이스 등의 다양한 환경에서 사용할 수 있게 되었다.
파이토치가 가우디2를 지원하게 되면서, 딥 러닝 모델의 추론 성능이 크게 개선되었다. 파이토치는 가우디2의 추론 엔진인 Intel Deep Learning Boost(Intel DL Boost)를 사용하여 딥 러닝 모델의 추론을 가속화할 수 있다. Intel DL Boost는 딥 러닝 모델의 추론을 위해 특별히 설계된 하드웨어 액셀러레이터로, 이를 통해 딥 러닝 모델의 추론 성능을 크게 개선할 수 있다.
파이토치가 가우디2를 지원하는 것은 딥 러닝 모델의 추론 성능을 개선하는 데에만 국한되지 않는다. 이를 통해 데이터 센터나 에지 디바이스 등의 다양한 환경에서 딥 러닝 모델을 배포하고 실행할 수 있게 되었으며, 이를 통해 다양한 산업에서 딥 러닝을 적용할 수 있게 되었다. 예를 들어, 의료 이미지 분석, tự동차, 로봇 등 다양한 산업에서 딥 러닝 모델을 적용할 수 있게 되었으며, 이를 통해 사업의 효율성을 개선하고 새로운 비즈니스 모델을 개발할 수 있게 되었다.
결론적으로, 파이토치가 인텔 가우디2 추론칩을 지원하게 되면서, 딥 러닝 모델의 추론 성능이 크게 개선되었다. 이를 통해 다양한 산업에서 딥 러닝을 적용할 수 있게 되었으며, 이를 통해 사업의 효율성을 개선하고 새로운 비즈니스 모델을 개발할 수 있게 되었다.
이번에도 최신 트렌드에 맞는 질문이다.
AMD ROCM에 대한 걸 상세하게 알려줘
AMD ROCm(Radeon Open Compute Platform)은 AMD가 개발한 오픈 소스 하드웨어 가속 플랫폼입니다.
ROCm은 높아진 컴퓨팅 성능과 에너지 효율성을 위해 디자인되어 있으며, 특히 AI, 머신 러닝, 고성능 컴퓨팅(HPC) 및 데이터 센터 애플리케이션에 최적화되어 있습니다.
ROCm은 AMD의 GPU, CPU, FPGA를 포함하는 다양한 하드웨어 아키텍처에서 실행할 수 있습니다. 또한, ROCm은 하드웨어 가속을 위한 오픈 소스 소프트웨어 스택을 제공하여 개발자들이 다양한 애플리케이션을 개발할 수 있도록 지원합니다.ROCm의 주요 기능은 다음과 같습니다.
AMD ROCm의 주요 기능 다 알려줘
ROCm(Radeon Open Compute Platform)은 AMD가 개발한 오픈 소스 소프트웨어 플랫폼으로, Radeon GPU를 기반으로 하는 다양한 컴퓨팅 애플리케이션 개발을 지원합니다. ROCm은 다음과 같은 주요 기능을 제공합니다.
**1. Heterogeneous-Ready Compiler (HCC)**:
ROCm은 HCC(Heterogeneous-Ready Compiler)를 통해 CPU와 GPU 간의 코드 공유를 가능하게 합니다. HCC는 C++와 열거형 프로그래밍을 지원하며,uela 코드를 생성하여 다양한 하드웨어 플랫폼에서 실행할 수 있습니다.
**2. HIP(Heterogeneous-compute Interface for Portability)**:*
HIP는 NVIDIA CUDA 코드를 ROCm에서 실행할 수 있도록 하는 인터페이스입니다. HIP는 CUDA 코드를 최소한의 수정으로 ROCm에서 실행할 수 있도록 하며, 이를 통해 개발자는 쉽게 플랫폼을 변경할 수 있습니다.
**3. OpenCL Support**:*
ROCm은 OpenCL 1.2를 완전히 지원하며, 이는 다양한 하드웨어 플랫폼에서 실행할 수 있는 오픈 소스 Parallel Computing Framework입니다. OpenCL을 통해 개발자는 GPU, CPU, FPGA 등 다양한 하드웨어 플랫폼에서 애플리케이션을 개발할 수 있습니다.
**4. MIOpen**:*
MIOpen은 ROCm에서 실행되는 Machine Intelligence(기계 학습) Library입니다. MIOpen은 다양한 기계 학습 알고리즘을 지원하며, 이를 통해 개발자는 쉽게 기계 학즘 모델을 개발하고 배포할 수 있습니다.
**5. rocBLAS**:
rocBLAS는 ROCm에서 실행되는 Basic Linear Algebra Subprograms(BLAS) Library입니다. rocBLAS는 다양한 선형 代수 연산을 지원하며, 이를 통해 개발자는 쉽게 과학 시뮬레이션, 데이터 분석, 기계 학즘 등 다양한 애플리케이션을 개발할 수 있습니다.
**6. rocFFT**:
rocFFT는 ROCm에서 실행되는 Fast Fourier Transform(FFT) Library입니다. rocFFT는 다양한 FFT 알고리즘을 지원하며, 이를 통해 개발자는 쉽게 신호 처리, 이미지 처리, 과학 시뮬레이션 등 다양한 애플리케이션을 개발할 수 있습니다.
**7. rocRAND**:
rocRAND는 ROCm에서 실행되는 Random Number Generation Library입니다. rocRAND는 다양한 난수 생성 알고리즘을 지원하며, 이를 통해 개발자는 쉽게 모의 실험, 과학 시뮬레이션, 기계 학즘 등 다양한 애플리케이션을 개발할 수 있습니다.
**8. ROCm Profiler**:
ROCm Profiler는 ROCm 애플리케이션의 성능 분석을 지원하는 도구입니다. ROCm Profiler는 애플리케이션의 실행 시간, 메모리 사용량, GPU 사용량 등 다양한 정보를 제공하며, 이를 통해 개발자는 쉽게 애플리케이션의 최적화를 수행할 수 있습니다.
**9. ROCm Debugger**:
ROCm Debugger는 ROCm 애플리케이션의 디버깅을 지원하는 도구입니다. ROCm Debugger는 애플리케이션의 실행 중단, 변수 확인, 코드 단계별 실행 등 다양한 기능을 지원하며, 이를 통해 개발자는 쉽게 애플리케이션의 버그를 확인하고 수정할 수 있습니다.
이러한 주요 기능을 통해 ROCm은 AMD Radeon GPU를 기반으로 하는 다양한 컴퓨팅 애플리케이션 개발을 지원합니다.
라마3 진짜 전문가스러운 매우 훌륭한 답변이다
짝!짝!짝!
텔레그램봇 파이썬 소스코드 다운로드
bot66-3.py
UCA수퍼컴아카데미
ulsancoding.com
교육문의052-708-0001