paint-brush
AI 100일, 12일차: Gen AI 실험을 빠르게 시연하여 피드백을 받는 방법by@sindamnataraj
641
641

AI 100일, 12일차: Gen AI 실험을 빠르게 시연하여 피드백을 받는 방법

Nataraj5m2024/03/01
Read on Terminal Reader

이 게시물에서는 AI 실험을 가능한 데모로 쉽게 변환하고 피드백을 받는 방법을 살펴보겠습니다.
featured image - AI 100일, 12일차: Gen AI 실험을 빠르게 시연하여 피드백을 받는 방법
Nataraj HackerNoon profile picture

안녕 모두들! 저는 Nataraj입니다 . 여러분과 마찬가지로 저도 최근 인공 지능의 발전에 매료되었습니다. 일어나는 모든 발전을 따라잡아야 한다는 것을 깨닫고 개인적인 학습 여정을 시작하기로 결정하여 100일의 AI가 탄생했습니다! 이 시리즈를 통해 저는 LLM에 대해 배우고 블로그 게시물을 통해 아이디어, 실험, 의견, 동향 및 학습 내용을 공유할 것입니다. HackerNoon( 여기) 또는 내 개인 웹사이트 (여기) 에서 여정을 따라가실 수 있습니다. 오늘 기사에서는 GPT-4의 도움으로 시맨틱 커널을 구축해 보겠습니다.


AI 100일 시리즈를 읽고 계시다면 대부분의 게시물에 일종의 실험이나 데모가 포함되어 있다는 것을 알게 되실 공통 주제를 작성하고 있습니다. 게시물 끝에는 제가 탐구한 기술로 가능한 아이디어도 나열합니다. 그렇다면 다음 질문은 '이러한 실험을 데모 가능한 제품으로 쉽게 포장하고 사람들과 공유하고 피드백을 받을 수 있는 방법이 있습니까?'입니다.


이번 포스팅에서는 AI 실험을 가능한 데모로 쉽게 변환하고 피드백을 받는 방법을 살펴보겠습니다.


텍스트를 입력받아 요약을 반환하는 AI 앱을 만들고 싶다고 가정해 보겠습니다. 그리고 이를 사람들과 공유하고 피드백을 받고 싶습니다. 이 앱을 위한 웹 앱을 만들어야 한다면 UI를 코딩하여 호스팅 솔루션을 찾고 전체 스택이 어떻게 될지 파악해야 합니다. 물론 더 빠르게 작업을 수행할 수 있는 웹앱 스택이 시작되었지만 사용 사례에 그렇게 복잡할 필요는 없습니다. 대신 우리는 이 앱에 대한 코드를 작성하지 않고 인터페이스와 같은 웹 앱을 생성하는 Gradio를 사용할 것입니다.

그라디오란 무엇인가요?

Gradio는 AI 앱의 데모를 쉽게 만들고 이를 웹 앱 형태로 청중과 공유할 수 있는 Python 라이브러리입니다.

Gradio를 사용하여 Gen AI 실험을 쉽게 시연하는 방법을 이해하기 위해 앱에 긴 텍스트를 제공할 수 있고 앱에서 해당 긴 텍스트의 요약을 출력할 수 있는 요약 웹 앱을 구축합니다.

1단계: 설정

Gradio와 함께 포옹 얼굴 앱을 사용할 것이므로 포옹 얼굴 API 키를 편리하게 보관하세요. 시작하려면 .env 파일에서 API 키를 로드하고 필요한 Python 모듈을 추가하세요.

 import os import io from IPython.display import Image, display, HTML #from PIL import Image import base64 import openai env_path = '../.env' from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv(env_path)) # read local .env file hf_api_key = os.environ['HF_API_KEY']

2단계: 요약 함수 정의

우리가 달성하려는 핵심 논리는 긴 텍스트를 모델에 보내고 텍스트 요약을 얻는 것입니다. 긴 텍스트를 입력으로 받아들이고 distilbart 라는 포옹 얼굴 모델을 호출하는 함수를 정의하겠습니다. 이를 수행하는 기능은 다음과 같습니다.

 def get_completion(inputs, parameters=None, ENDPOINT_URL=os.environ['HF_API_SUMMARY_BASE']): headers = { "Authorization": f"Bearer {hf_api_key}", "Content-Type": "application/json" } data = { "inputs": inputs } if parameters is not None: data.update({"parameters": parameters}) response = requests.request("POST", ENDPOINT_URL, headers=headers, data=json.dumps(data) ) return json.loads(response.content.decode("utf-8"))

3단계: Gradio를 사용하여 데모 요약 앱 사용

Gradio와 상호 작용하는 주요 방법은 인터페이스 기능을 이용하는 것입니다. 함수와 해당 입력 및 출력을 전달해야 합니다. 이 목적을 위해 summary 라는 새로운 함수를 정의했습니다. 이 함수는 요약할 긴 텍스트인 입력을 취하고, 함수는 2단계에서 get_completion 함수를 호출하여 입력 텍스트의 요약을 가져오고 이를 출력 으로 반환합니다. 마지막 줄에서 우리는 Gradio에게 이 앱의 데모를 실행하도록 요청하고 있습니다. share=True를 제공함으로써 우리는 gradi에게 다른 사람과 공유할 수 있는 공개 링크를 생성하도록 지시하고 로컬 웹 호스트가 실행되어야 하는 server_port도 제공합니다. 아래 코드에서는 출력에서 확인할 수 있는 입력 및 출력 필드의 제목, 설명 및 레이블도 사용자 정의합니다.

 import gradio as gr def summarize(input): output = get_completion(input) return output[0]['summary_text'] gr.close_all() demo = gr.Interface(fn=summarize, inputs=[gr.Textbox(label="Text to summarize", lines=6)], outputs=[gr.Textbox(label="Result", lines=3)], title="Text summarization with distilbart-cnn", description="Summarize any text using the `shleifer/distilbart-cnn-12-6` model under the hood!" ) demo.launch(share=True, server_port=int(os.environ['PORT1']))

이를 실행하면 이제 브라우저의 http://127.0.0.1:<포트 번호>에 출력이 표시됩니다.

그라디오 출력


Gradio를 사용하면 프로젝트를 시연하는 것이 그만큼 쉽습니다. 여기서의 장점은 개발자가 UI 스택을 생각해내고 해당 스택을 학습하고 이를 프로덕션으로 가져가는 복잡성을 겪을 필요가 없다는 것입니다. Gradio가 당신을 위해 그것을합니다.


Gradio는 쉽게 공유할 수 있는 더욱 복잡하고 흥미로운 데모를 만들 수 있는 다양한 입력 및 출력 유형을 제공합니다. 다음 게시물에서는 Gradio 및 기타 도구를 사용하여 더 많은 데모를 살펴보겠습니다.


이것이 AI 100일의 12일차입니다.


나는 대형 기술 분야에서 일어나는 모든 일 뒤에 숨어 있는 2차 통찰력에 대해 이야기하는 Above Average라는 뉴스레터를 작성합니다. 기술 분야에 종사하고 평범해지고 싶지 않다면 구독하세요 .


AI 100일에 대한 최신 업데이트를 보려면 Twitter , LinkedIn 또는 HackerNoon 에서 저를 팔로우하세요. 기술 분야에 종사하는 분이라면 여기에서 제 기술 전문가 커뮤니티에 가입하는 데 관심이 있으실 것입니다.