IT&컴퓨터/IT 인터넷

watsonx.ai python 이용해보기, watsonx.ai 를 이용한 ChatGPT

누한 2023. 10. 27. 00:28
반응형

안녕하세요

 

오늘도 watsonx.ai 에 대해서 다룹니다.

 

watson.ai 는 이전 포스트에도 이야기 했지만 openai 와 같은 생성형 AI 기반 서비스를 제공합니다.

 

좀더 쉽게 이야기하자면 ChatGPT 와 같은 서비스를 제공할 수 있습니다.

(물론 개발이 좀 필요합니다.)

 

우선 간단히 개발 준비 그리고 사용 가능한 모델 확인 마지막으로 질문&답변 3가지로 정리했습니다.

 

 

1. 개발 준비

 

가장먼저 개발을 준비하기 위해 watsonx.ai 를 사용하기 위한 패키지 설치가 필요합니다.

저는 python 기반 개발이므로 이에 대해서 패키지를 설치합니다.

 

(python virtual env 설정 등 기초적인 내용은 넘어가도록 하겠습니다. )

 

$ pip install ibm-watson-machine-learning

 

watsonx.ai 의 python 패키지는 아래 URL에 설명이 되어 있습니다.

https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-python-lib.html?context=wx&audience=wdp

 

Foundation 모델 Python 라이브러리 | IBM watsonx

로그아웃하시겠습니까?

dataplatform.cloud.ibm.com

 

 

 

2. 사용 가능한 LLM 모델 확인

 

watsonx.ai 에서는 foundation model 이란 형식으로 다양한 LLM 모델을 제공하고 있습니다.

아래 코드에서는 watsonx.ai에 접속 후 사용 가능한 모델의 리스트를 요청하는 내용이 포함되어 있습니다.

 

결과를 보면 현재 LLAMA2_70B_CHAT 모델을 포함해서 다양한 모델을 제공하고 있습니다.

각 LLM 모델별로 특화된 서비스가 있으므로, 자신에게 적합한 모델을 찾아서 사용하면 됩니다.

 

#추가로 IBM 에서는 향후 LLM 을 업로드해서 사용할수도 있고 huggingface 와 연동하는것도 준비 중입니다.

 

[get watsonx.ai LLM model list]

from ibm_watson_machine_learning.foundation_models.utils.enums import ModelTypes, DecodingMethods

print([model.name for model in ModelTypes])

[result]

['FLAN_T5_XXL', 'FLAN_UL2', 'MT0_XXL', 'GPT_NEOX', 'MPT_7B_INSTRUCT2', 'STARCODER', 'LLAMA_2_70B_CHAT', 'GRANITE_13B_INSTRUCT', 'GRANITE_13B_CHAT']

 

 

 

3. ChatGPT 처럼 질문 해보기

 

마지막으로 ChatGPT 처럼 질문과 답을 하기 위해서 위에 코드를 수정해 보도록 하겠습니다.

 

먼저 인증 정보가 필요합니다.

watsonx.ai는 인증을 위해 3가지 정보가 필요합니다.

 

[URL], [apikey], [project_id]

#호출할 서비스에 대한 기본 URL 정보입니다.
#여기서는 기본적으로 아래의 값을 사용합니다.
"url": "https://us-south.ml.cloud.ibm.com",
#apikey 는 https://cloud.ibm.com 에서 확인 가능한 사용자 인증 키입니다.
# 인증관리 메뉴에서 확인 가능합니다. 
"apikey": "<your_apikey>"
# https://dataplatform.cloud.ibm.com/projects 에서 확인 가능한 프로젝트의 ID 값입니다.
project_id = "bea15b0a-7333-45e5-83e3-66548c948078"

 

위 세가지 정보를 코드에 추가 합니다.

코드 추가에 앞서 필요한 패키지를 추가 합니다.

from ibm_watson_machine_learning.foundation_models.utils.enums import ModelTypes
from ibm_watson_machine_learning.foundation_models import Model
from ibm_watson_machine_learning.metanames import GenTextParamsMetaNames as GenParams

my_credentials = {
    "url": "https://us-south.ml.cloud.ibm.com",
    "apikey": "<your_apikey>"
}

project_id = "<your_project_id>"

 

저는 사용할 모델로 LLAMA 를 사용하겠습니다.

model_id = ModelTypes.LLAMA_2_70B_CHAT

 

LLM 모델 호출을 위한 기본 parameter를 설정합니다.

parameters = {
    GenParams.DECODING_METHOD: "greedy",
    GenParams.MAX_NEW_TOKENS: 512,
    GenParams.REPETITION_PENALTY: 1,
}

 

이제 설정한 내용들을 이용해서 모델을 초기화 합니다.

model = Model(
    model_id=model_id,
    params=parameters,
    credentials=my_credentials,
    project_id=project_id)

 

이제 메세지를 호출합니다.

저는 watsonx.ai 에 대해서 질문했습니다.

question = "질문:와슨x.ai 가 무엇인가요 간단히 설명하세요."

# -*- coding: utf-8 -*-
result = model.generate_text(question)
print(result)

 

[답변]

답변:와슨x.ai는 인공지능(AI) 기술을 이용하여 웹 애플리케이션 및 모바일 애플리케이션에서 사용자 대화를 자동화하는 플랫폼입니다. 이 플랫폼은 사용자의 질문에 대한 답변을 자동으로 제공하거나 사용자와 대화를 하는 데 사용될 수 있습니다.

와슨x.ai는 머신러닝 알고리즘을 사용하여 사용자의 질문을 분석하고 적절한 답변을 생성합니다. 또한, 이 플랫폼은 사용자와 대화를 하는 데 사용되는 채널을 제공하여 사용자가 직접 질문을 하고 답변을 받을 수 있습니다.

와슨x.ai는 다양한 애플리케이션에 사용될 수 있으며, 예를 들어 고객 서비스, 온라인 상담, 의료 서비스 등에 사용될 수 있습니다.

 

 

생각보다 괜찮습니다. 물론 LLAMA 모델을 사용하므로 질문에 대한 답변이 영문으로 나오는 경우가 많습니다.

이런 부분은 프롬프트의 조정이 필요합니다.

 

아래는 전체 코드 입니다.

from ibm_watson_machine_learning.foundation_models.utils.enums import ModelTypes, DecodingMethods
from ibm_watson_machine_learning.foundation_models import Model
from ibm_watson_machine_learning.metanames import GenTextParamsMetaNames as GenParams

my_credentials = {
    "url": "https://us-south.ml.cloud.ibm.com",
    "apikey": "<your_apikey>"
}

#ibm_cloud account
project_id = "<your_project_id>"

model_id = ModelTypes.LLAMA_2_70B_CHAT

parameters = {
    GenParams.DECODING_METHOD: "greedy",
    GenParams.MAX_NEW_TOKENS: 512,
    GenParams.REPETITION_PENALTY: 1,
}

model = Model(
    model_id=model_id,
    params=parameters,
    credentials=my_credentials,
    project_id=project_id)

question = "질문:와슨x.ai 가 무엇인가요 간단히 설명하세요."

# -*- coding: utf-8 -*-
result = model.generate_text(question)
print(result)

 

 

### api key 확인

https://cloud.ibm.com 에서 개인 확인 가능합니다.

 

### project_id 확인

https://dataplatform.cloud.ibm.com/projects 에서 확인 가능합니다.

 

반응형