지지플랏의 DataScience

[글또] LLM 관련 모듈 동향 살펴보기- OPEN AI, Langchain , Pandas AI 본문

Data Science

[글또] LLM 관련 모듈 동향 살펴보기- OPEN AI, Langchain , Pandas AI

지지플랏 2024. 3. 31. 22:41

예상독자

  • LLM 서비스 활용방법을 알아가려는 사람
  • Langchain, Pandas AI를 활용하려는 사람

1. 대 LLM 시대

LLM이란? Large Language Model의 약자로 거대 언어모델입니다.ChatGPT 서비스가 등장한 22년 12월보다 훨씬 전에 지속적인 언어모델의 발전이 있었습니다.

이젠 너무 고전이 되어버린 LLM 발전 짤

최근에는 ChatGPT뿐 아니라 다양한 서비스가 있습니다.

 

Claude 3.0: Anthropic의 AI 혁명, 새로운 지평을 열다

GPT-4보다 더 좋은 모델인 Claude 3.0이 공개되었습니다. Claude 3.0은 Opus, Sonnet, Haiku라는 3가지 모델로 이루어져있으며 각 모델은 성능뿐만 아니라 자체적인 윤리성도 검증했다고 합니다!

modulabs.co.kr

GPT-4보다 더 좋은 모델인 Claude 3.0이 공개되었습니다. Claude 3.0은 Opus, Sonnet, Haiku라는 3가지 모델로 이루어져있으며 각 모델은 성능뿐만 아니라 자체적인 윤리성도 검증했다고 합니다

  • Gemma: 구글이 공개한 오픈소스 경량 대규모 언어모델(SLLM). 2B/7B 모델이 있음.Keras모듈에 탑재됨.
    • 구글이 공개한 오픈 모델이라는 것에 의의가 있음
    • Gemini: 구글 딥마인드에서 만든 언어모델, 최근 발매된 갤럭시 S24에 경량모델이 들어갔다고 알려짐
    • https://keras.io/api/keras_nlp/
 

Keras documentation: KerasNLP

 

keras.io

 

Introducing Gemma models in Keras

Get started with Gemma models – fine tune with LoRA and on multiple GPUs/TPUs using this introductory how-to guide.

developers.googleblog.com

 

2. Chat gpt API 활용 방법

우리가 사용하는 Chat GPT는 대화형 인터페이스를 이용한 방법입니다. 이는 진입장벽을 매우 낮춰 빠른 유저 확보에 성공하였습니다. 이외에도 OPEN AI 자체에서 제공하는 API 서비스들이 있습니다. 다양한 기업들이 이미 OPEN AI가 공개한 API를 이용해서 서비스를 하고 있습니다.

일반 유저 역시 이 API를 이용해서 직접 서비스를 구현할 수 도 있습니다. Python으로 API를 이용하는 것은 잘 나와있습니다. (Quick start Tutorial)

OPEN AI까 제공하는 API


다음은 OPEN AI가 제공하는 API 콜 코드입니다.

!pip install openai

#Colab에 KEY 설정 
from google.coalb import userdata
from openai import OpenAI
OPENAI_API_KEY = userdata.get('OPENAI_KEY')
client = OpenAI(api_key= OPENAI_API_KEY)

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "너는 데이터 분석가야"},
    {"role": "user", "content": "데이터분석 자동화 기술에 대해서 알려줘"}
  ]
)

completion.choices[0].message

'물론입니다! 데이터 분석 자동화 기술은 데이터 과학 및 분석 작업을 자동화하여 효율성을 향상시키고 인간의 개입을 최소화하는 기술을 말합니다. 데이터 분석 자동화 기술은 다음과 같은 기능을 제공할 수 있습니다 데이터 수집 및 전처리 자동화: 데이터를 수집하고 전처리하는 작업을 자동화하여 데이터 분석가가 직접 수작업으로 수행할 필요가 없도록 도와줍니다.

(생략)

이러한 데이터 분석 자동화 기술을 활용하면 데이터 분석 작업을 더욱 효율적으로 수행할 수 있고, 신속하고 정확한 결정을 내릴 수 있습니다.



Chatgpt API를 이용 한다는건 별로 대단한 일은 아닙니다. API 개념만 이해하면 누구든 사용할 수 있기 때문이죠. 중요한 것은 GPT 자체보다는 DALL-E와 같은 Text to Image, Wisper 라는 audio to text 등 다양한 모델을 적용할 수 있다는 점이고 이를 활용한 비즈니스 모델을 상상하고 활용할 수 있다는 점입니다. 

OPEN AI가 제공하는 다양한 모델들

 

3. Langchain 모듈

API를 자체 개발하는 것은 개발자들이 주로 하겠지만, 때로 나만의 모델이나 프로젝트에 사용할 수도 있는 장점이 있습니다. 또한 OPEN AI는 LLM의 선두 기업이기 때문에 비즈니스 전략에 대해서 공부해볼 수 있습니다. 요즘은 단일 API를 넘어서 LLM 모듈을 편하게 이어주는 Langchain 이라는 SDK(Software Development kit) 이 등장했습니다.

Langchain 아키텍처

Langchain은 LLM과 어플리케이션간의 통합을 간소화하기 위한 SDK로 개발자들은 코드를 바꾸지 않고 쉽게 모델을 교체할 수 있는 장점이 있습니다. Langchian의 기능은 총 4단계로 요약할 수 있습니다.

  1. 데이터 소스: LLM 컨텍스트를 구축하기 위해서 다양한 데이터 소스에서 액세스하고 검색할 수 있도록 한다.
  2. 단어 임베딩: 텍스트를 벡터로 변환하여 모델에 넣는다.
  3. 벡터 데이터베이스: 임베딩된 텍스트는 유사성 검색을 위해서 벡터 데이터베이스에 저장된다.
  4. 언어모델: OPEN AI,허깅페이스에서 제공되는 LLM 을 지원하며 API 엔드포인트 목록을 빠르게 업데이트 한다.

https://www.samsungsds.com/kr/insights/what-is-langchain.html

 

랭체인(LangChain)이란 무엇인가? | 인사이트리포트 | 삼성SDS

랭체인(LangChain)은 노출하여 대규모 언어 모델과 애플리케이션의 통합을 간소화하는 SDK입니다. 대규모 언어 모델의 부상과 함께 중요성이 커지고 있다. 대규모 언어 모델에 대한 최신 트렌드를

www.samsungsds.com

 

 

4. Pandas AI 활용 방법

API가 나온뒤로 Pandas AI라는 분석 자동화 모듈이 개발되고 있습니다. 다음은 공식 홈페이지에서 제공하는 코드 스니펫 입니다. 

https://docs.pandas-ai.com/en/latest/

 

PandasAI

PandasAI is a Python library that makes it easy to ask questions to your data (CSV, XLSX, PostgreSQL, MySQL, BigQuery, Databrick, Snowflake, etc.) in natural language. xIt helps you to explore, clean, and analyze your data using generative AI. Beyond query

docs.pandas-ai.com

 

import os
import pandasai
import pandasai.pandas as pd
from pandasai import Agent
from google.colab import userdata
from pandasai.llm import OpenAI
from pandasai import SmartDataframe
print(pandasai.__version__)
df = pd.DataFrame({
    "country": ["United States","United Kingdom","France","Germany","Italy","Spain","Canada","Australia","Japan","China"],
    "gdp": [19294482071552,2891615567872,2411255037952,3435817336832,1745433788416,1181205135360,1607402389504,1490967855104,4380756541440,14631844184064],
    "happiness_index": [6.94, 7.16, 6.66, 7.07, 6.38, 6.4, 7.23, 7.22, 5.87, 5.12]})
display(df)

OPENAI_API_KEY = userdata.get('OPENAI_KEY')
llm = OpenAI(api_token=OPENAI_API_KEY)
sdf = SmartDataframe(df, config={"llm": llm})
sdf.chat("Plot a chart of the gdp by country")

5. 마무리

Pandas AI도 2.0 버전으로 넘어가고 다양한 LLM이 나오는 걸 보니 참으로 발전속도가 빠르네요!  Langchain 공부를 차일피일 미루고 있었는데 강의도 만들겸 한번 날잡고 공부해봐야겠습니다. LLM 모델이 빠르게 변하는 만큼 Langchain, Pandas AI등과 같은 모듈들도 함께 성장해가니 활용하기 참 좋은 시대인 것 같습니다. 

6. 출처

7. 글또 9기 글 모음