Nè mọi người! Tôi là Nataraj , và cũng giống như bạn, tôi rất thích thú với những tiến bộ gần đây của trí tuệ nhân tạo. Nhận thấy rằng tôi cần phải theo kịp mọi sự phát triển đang diễn ra, tôi quyết định bắt tay vào hành trình học tập cá nhân, thế là 100 ngày AI đã ra đời! Với loạt bài này, tôi sẽ tìm hiểu về LLM và chia sẻ ý tưởng, thử nghiệm, ý kiến, xu hướng và bài học thông qua các bài đăng trên blog của mình. Bạn có thể theo dõi hành trình trên HackerNoon tại đây hoặc trang web cá nhân của tôi tại đây . Trong bài viết hôm nay, chúng ta sẽ tìm cách xây dựng Hạt nhân ngữ nghĩa với sự trợ giúp của GPT-4.
Nếu bạn đang đọc loạt bài 100 ngày của AI, tôi đang viết một chủ đề chung mà bạn sẽ nhận thấy là hầu hết các bài đăng đều có một số loại thử nghiệm hoặc bản demo. Ở cuối bài viết, tôi cũng liệt kê những ý tưởng có thể thực hiện được với những công nghệ mà tôi đã khám phá. Vì vậy, câu hỏi tiếp theo rõ ràng là, có cách nào dễ dàng gói gọn những thử nghiệm này thành các sản phẩm có thể demo và chia sẻ chúng với mọi người cũng như nhận phản hồi không?
Trong bài đăng này, chúng ta sẽ khám phá cách dễ dàng chuyển đổi thử nghiệm AI thành bản demo có thể thực hiện được và nhận phản hồi.
Giả sử bạn muốn tạo một ứng dụng AI nhận văn bản và trả về bản tóm tắt. Và bạn muốn chia sẻ nó với mọi người và nhận được phản hồi. Nếu bạn phải tạo một ứng dụng web cho ứng dụng này, bạn phải viết mã giao diện người dùng, đảm bảo bạn tìm được giải pháp lưu trữ và tìm hiểu xem toàn bộ ngăn xếp sẽ như thế nào. Tất nhiên, có những ngăn xếp ứng dụng web đã khởi động sẽ cho phép thực hiện việc đó nhanh hơn nhưng bạn không cần tất cả sự phức tạp đó cho trường hợp sử dụng của mình. Thay vào đó, chúng tôi sẽ sử dụng Gradio để tạo giao diện giống như ứng dụng web mà không cần viết bất kỳ mã nào cho ứng dụng này.
Gradio là một thư viện python cho phép bạn dễ dàng tạo các bản demo của ứng dụng AI và chia sẻ nó với khán giả dưới dạng ứng dụng web.
Để hiểu cách dễ dàng giới thiệu thử nghiệm AI thế hệ mới với Gradio, chúng tôi sẽ xây dựng một ứng dụng web tóm tắt trong đó bạn có thể cung cấp cho ứng dụng một văn bản dài và ứng dụng sẽ xuất ra bản tóm tắt của văn bản dài đó.
Cùng với Gradio, chúng tôi sẽ sử dụng ứng dụng ôm mặt, vì vậy, hãy đảm bảo rằng bạn luôn có sẵn khóa api ôm mặt. Để bắt đầu, hãy tải khóa API từ tệp .env và thêm các mô-đun python cần thiết.
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']
Logic cốt lõi của những gì chúng tôi muốn đạt được là gửi một văn bản dài đến một mô hình và nhận được bản tóm tắt của văn bản. Chúng ta sẽ định nghĩa một hàm lấy văn bản dài làm đầu vào và gọi một mô hình trên khuôn mặt ôm được gọi là distilbart . Đây là chức năng để làm điều này.
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"))
Cách chính để tương tác với Gradio là thông qua chức năng giao diện . Chúng ta cần truyền một hàm và các đầu vào và đầu ra tương ứng của nó. Lưu ý rằng chúng tôi đã xác định một hàm mới gọi là tóm tắt cho mục đích này. Hàm này nhận đầu vào, đây sẽ là văn bản dài cần được tóm tắt và hàm sẽ gọi hàm get_completion từ bước 2 để lấy bản tóm tắt của văn bản đầu vào và trả về làm đầu ra . Ở dòng cuối cùng, chúng tôi yêu cầu gradio khởi chạy bản demo của ứng dụng này. Bằng cách cung cấp share=True , chúng tôi đang yêu cầu gradio tạo một liên kết công khai có thể được chia sẻ với những người khác và cũng cung cấp server_port mà máy chủ web cục bộ sẽ chạy trên đó. Trong đoạn mã bên dưới, chúng tôi cũng tùy chỉnh tiêu đề, mô tả và nhãn của các trường đầu vào và đầu ra mà bạn sẽ thấy ở phần đầu ra.
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']))
Sau khi bạn chạy chương trình này, đây là kết quả đầu ra trong trình duyệt của bạn tại http://127.0.0.1:<your port number>.
Thật dễ dàng để demo một dự án với Gradio. Điều thú vị ở đây là bạn, với tư cách là nhà phát triển, không cần phải nghĩ ra ngăn xếp giao diện người dùng và trải qua sự phức tạp của việc tìm hiểu ngăn xếp đó và đưa nó vào sản xuất. Gradio làm điều đó cho bạn.
Gradio cung cấp các loại đầu vào và đầu ra khác nhau, nhờ đó bạn có thể tạo các bản demo phức tạp và thú vị hơn để có thể dễ dàng chia sẻ. Chúng ta sẽ khám phá thêm các bản demo với Gradio và các công cụ khác trong các bài đăng sắp tới.
Thế là xong Ngày thứ 12 trong 100 Ngày của AI.
Tôi viết một bản tin có tên Trên mức trung bình, nơi tôi nói về những hiểu biết sâu sắc thứ hai đằng sau mọi thứ đang diễn ra trong ngành công nghệ lớn. Nếu bạn làm trong lĩnh vực công nghệ và không muốn ở mức trung bình, hãy đăng ký theo dõi .
Theo dõi tôi trên Twitter , LinkedIn hoặc HackerNoon để biết thông tin cập nhật mới nhất về 100 ngày của AI. Nếu bạn làm trong lĩnh vực công nghệ, bạn có thể muốn tham gia cộng đồng các chuyên gia công nghệ của tôi tại đây .