+2

Tôi đã sử dụng Chatgpt để tạo ứng dụng AI trên AWS

Mô hình ngôn ngữ mới này có thể là người lập trình viên cùng bạn trong tương lai

ChatGPT một mô hình ngôn ngữ mới là phiên bản cải tiến của GPT-3, và có thể, cho chúng ta cái nhìn sơ lược về những gì GPT-4 sẽ có khả năng khi nó được phát hành vào đầu năm tới (như được đồn đại). Với ChatGPT, có thể có cuộc trò chuyện thực tế với mô hình, tham khảo lại các điểm trước đó trong cuộc trò chuyện.

Tôi muốn dùng thử nếu tôi có thể sử dụng mô hình này như một đồng nghiệp lập trình viên mà tôi có thể đưa ra một số hướng dẫn và nó tạo ra code cho tôi. Tất nhiên, tôi vẫn sẽ kiểm tra lại những đoạn mã đó, nhưng ít nhất tôi sẽ không phải viết chúng từ đầu nữa.

Vì vậy, trong bài đăng này, tôi mô tả cách tôi đã sử dụng ChatGPT để tạo một ứng dụng phân tích cảm xúc đơn giản từ đầu. Ứng dụng sẽ chạy trên phiên bản EC2 và sử dụng mô hình NLP hiện đại từ Hugging Face Model Hub. Kết quả thật đáng kinh ngạc 😮

Tôi đã phải thử và tinh chỉnh lời nhắc một vài lần để có được kết quả tôi muốn. Điều đó đang được nói, nó thường chỉ mất các tinh chỉnh nhỏ để có được kết quả mong muốn. Lời nhắc của tôi và mã được tạo bởi mô hình có thể được tìm thấy trong GitHub repo này!

Bắt đầu thôi!

Trước tiên hãy kiểm tra xem Chatgpt có sẵn sàng chưa: image.png

Hãy đi sâu vào chi tiết, theo yêu cầu của người bạn đồng hành này!

Tạo mẫu CloudFormation cho EC2 instance

Chúng ta muốn chạy ứng dụng này trên phiên bản EC2, nhưng chúng ta không muốn nhấp qua bảng điều khiển AWS để tạo phiên bản EC2 này. Do đó, nhiệm vụ đầu tiên của chúng ta đối với ChatGPT là tạo một mẫu CloudFormation thiết lập EC2 instance: image.png

image.png

Hướng dẫn khá cụ thể (ví dụ: tôi phải tự mình tra cứu AMI ID), nhưng tôi vẫn khá ngạc nhiên khi nó xuất hiện với một mẫu CF gần như hoàn hảo. Lưu ý rằng ChatGPT cũng đặt một số tuyên bố từ chối trách nhiệm ở cuối mã! Toàn bộ mã được tạo ra bởi Chatgpt:

AWSTemplateFormatVersion: '2010-09-09'
Description: A simple CloudFormation template for creating a security group and launching an EC2 instance

Resources:
  SecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupName: chatgpt-demo-sg
      GroupDescription: Security group for chatgpt-demo EC2 instance
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 22
          ToPort: 22
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 8501
          ToPort: 8501
          CidrIp: 0.0.0.0/0

  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: g4dn.xlarge
      ImageId: ami-09f85944838b438c5
      SecurityGroups:
        - Ref: SecurityGroup
      UserData:
        'Fn::Base64': |
          #!/bin/bash
          # Activate the pre-built pytorch environment
          source activate pytorch_p36

          # Install the libraries "transformers" and "streamlit" via pip
          pip install transformers streamlit

Lưu ý rằng phiên bản EC2 thực sự không nhận được tên chúng tôi đã chỉ định trong dấu nhắc. Một "lỗi" khác trong mẫu này là môi trường pytorch được cài đặt sẵn trên AMI được gọi là "pytorch" không phải "pytorch_36". Hãy sửa nó bằng cách thay thế tên môi trường. image.png

Ok, chạy dòng này đã khởi động việc tạo Stack bằng cách sử dụng mẫu CF. Sau vài phút, chúng ta thấy phiên bản EC2 đang hoạt động. Lưu ý rằng mẫu đã tạo một nhóm bảo mật và phiên bản EC2 sử dụng nhóm bảo mật đó như được chỉ định: image.png

SSH vào EC2 instance để xem các package chúng ta cần đã được cài đặt chưa image.png Có vẻ như mọi thứ được thiết lập cho ứng dụng Streamlit 😊

Ứng dụng Streamlit

Bây giờ chúng ta cần một ứng dụng chạy trên Streamlit và phân tích cảm xúc của văn bản. Trước sự ngạc nhiên của tôi, điều này thậm chí còn dễ dàng hơn tôi mong đợi: image.png

image.png

Một lần nữa, từ chối trách nhiệm tốt đẹp ở cuối. Toàn bộ mã:

import streamlit as st
from transformers import pipeline

# Set the title of the application
st.title("A sentiment analyser written by ChatGPT")

# Create the input text field
text = st.text_input("Enter some text to analyse:")

# Use the Hugging Face Pipeline API to create a sentiment classifier
sentiment_classifier = pipeline("text-classification", model="distilbert-base-uncased-finetuned-sst-2-english")

# Evaluate the text entered by the user and display the result
if text:
    result = sentiment_classifier(text)[0]
    st.write(f"Predicted sentiment: {result['label']}")

Điều này thực sự có vẻ tốt với tôi, chúng ta hãy cố gắng chạy điều này mà không cần sửa đổi. Sao chép và dán mã này vào một tệp trên EC2 có tên là 'app.py'. Nhưng làm cách nào để chạy lại ứng dụng Streamlit? Hãy hỏi 'đồng nghiệp' của tôi: image.png

Tôi đã cài đặt Streamlit, vì vậy hãy tiếp tục và chạy 'streamlit run app.py': image.png Có vẻ tốt!

Kết luận

Điều này đã rất thú vị và khả năng là vô tận. Tôi sẽ cố gắng thử nghiệm nhiều hơn với mô hình này trong tương lai!

Kham khảo

https://towardsdatascience.com/i-used-chatgpt-to-create-an-entire-ai-application-on-aws-5b90e34c3d50


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí