Chuyển đến nội dung chính

Hướng dẫn Llama 3.2 90B: Ứng dụng tạo chú thích ảnh với Groq & Streamlit

Tìm hiểu cách xây dựng ứng dụng tạo chú thích ảnh sử dụng Streamlit cho giao diện, Llama 3.2 90B để tạo chú thích và Groq làm API.
Đã cập nhật 5 thg 10, 2026  · 12 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Meta cuối cùng đã bổ sung tính năng đa phương thức vào hệ sinh thái Llama bằng cách giới thiệu các mô hình thị giác Llama 3.2 11B & 90B. Hai mô hình này vượt trội trong việc xử lý cả văn bản và hình ảnh, vì vậy tôi đã thử xây dựng một dự án với phiên bản 90B.

Trong bài viết này, tôi sẽ chia sẻ công việc của mình và hướng dẫn bạn xây dựng một ứng dụng tạo chú thích ảnh tương tác, sử dụng Streamlit cho phần giao diện và Llama 3.2 90B làm động cơ tạo chú thích.

Vì sao dùng Llama 3.2 90B cho ứng dụng chú thích ảnh

Llama 3.2-Vision 90B là một mô hình ngôn ngữ lớn (LLM) đa phương thức tối tân, được xây dựng cho các tác vụ liên quan đến cả đầu vào hình ảnh và văn bản.

Điểm nổi bật của nó là khả năng xử lý các tác vụ phức tạp như suy luận thị giác, nhận diện hình ảnh và tạo chú thích ảnh. Mô hình được huấn luyện trên bộ dữ liệu khổng lồ gồm 6 tỷ cặp hình ảnh - văn bản.

Llama 3.2-Vision là lựa chọn tuyệt vời cho ứng dụng của chúng ta vì nó hỗ trợ nhiều ngôn ngữ cho các tác vụ văn bản, dù tiếng Anh vẫn là trọng tâm cho các ứng dụng liên quan đến hình ảnh. Những tính năng then chốt khiến nó trở thành lựa chọn xuất sắc cho các tác vụ như Trả lời Câu hỏi Thị giác (VQA), VQA Tài liệu và truy hồi hình ảnh - văn bản, trong đó tạo chú thích ảnh là một ứng dụng nổi bật.

Hãy cùng khám phá cách những khả năng này chuyển hóa thành một ứng dụng thực tế như tạo chú thích ảnh.

Quy trình tạo chú thích ảnh

Tạo chú thích ảnh là quá trình tự động sinh văn bản mô tả tóm tắt nội dung của một hình ảnh. Quy trình này kết hợp thị giác máy tính và xử lý ngôn ngữ tự nhiên để diễn giải và biểu đạt chi tiết thị giác bằng ngôn từ.

Truyền thống, việc tạo chú thích ảnh đòi hỏi một pipeline phức tạp, thường gồm các giai đoạn tách biệt cho xử lý hình ảnh và sinh ngôn ngữ. Cách tiếp cận tiêu chuẩn gồm ba bước chính: tiền xử lý ảnh, trích xuất đặc trưng và tạo chú thích.

  1. Tiền xử lý ảnh: Ảnh thường được thay đổi kích thước, chuẩn hóa và đôi khi cắt xén để phù hợp với yêu cầu đầu vào của mô hình.
  2. Trích xuất đặc trưng: Các đặc trưng thị giác được trích xuất để nhận diện đối tượng, bối cảnh hoặc chi tiết liên quan trong ảnh. Ở hầu hết mô hình, điều này cần một mô hình thị giác riêng để diễn giải ảnh và tạo dữ liệu có cấu trúc mà mô hình ngôn ngữ có thể hiểu.
  3. Tạo chú thích: Các đặc trưng trích xuất được mô hình ngôn ngữ sử dụng để soạn mô tả mạch lạc, kết hợp các đối tượng, ngữ cảnh và mối quan hệ được nhận diện trong dữ liệu thị giác.

Với Llama 3.2 90B, quy trình phức tạp truyền thống này trở nên đơn giản hơn. Bộ tiếp hợp thị giác của mô hình tích hợp các đặc trưng thị giác vào lõi mô hình ngôn ngữ, cho phép nó diễn giải ảnh trực tiếp và tạo chú thích thông qua các prompt đơn giản.

Bằng cách nhúng các lớp cross-attention vào kiến trúc, Llama 3.2 90B cho phép người dùng mô tả ảnh chỉ bằng cách đưa prompt cho mô hình—loại bỏ nhu cầu về các giai đoạn xử lý tách biệt. Sự đơn giản này giúp việc tạo chú thích ảnh trở nên dễ tiếp cận và hiệu quả hơn, nơi một prompt duy nhất có thể tạo ra một chú thích tự nhiên, giàu mô tả, nắm bắt hiệu quả bản chất của hình ảnh.

Tổng quan về ứng dụng chú thích ảnh

Để phát huy sức mạnh của Llama 3.2 90B, chúng ta sẽ xây dựng một ứng dụng tạo chú thích ảnh đơn giản nhưng hiệu quả, dùng Streamlit cho giao diện và Groq để tạo chú thích.

Ứng dụng cho phép người dùng tải lên một hình ảnh và nhận chú thích mô tả do mô hình sinh ra chỉ với hai lần nhấp. Thiết lập này thân thiện với người dùng và yêu cầu ít kiến thức mã hóa để bắt đầu.

Ứng dụng của chúng ta sẽ bao gồm các tính năng sau:

  1. Tiêu đề: Một tiêu đề nổi bật, Llama Captioner, để xác định mục đích của ứng dụng.
  2. Nút tải lên: Giao diện để tải ảnh từ thiết bị của người dùng.
  3. Nút tạo chú thích: Nút để bắt đầu quá trình tạo chú thích.
  4. Kết quả chú thích: Ứng dụng sẽ hiển thị chú thích được tạo trực tiếp trên giao diện.

Triển khai mã cho ứng dụng Llama 3.2 90B

Groq API sẽ đóng vai trò cầu nối giữa ảnh người dùng tải lên và mô hình Llama 3.2-Vision. Nếu bạn muốn làm theo và cùng viết mã, hãy đảm bảo trước tiên:

  1. Nhận khóa API Groq của bạn bằng cách đăng ký tại Groq Console.
  2. Lưu khóa API của bạn trong tệp credentials.json để đơn giản hóa việc truy cập.
  3. Làm theo hướng dẫn khởi động nhanh của Groq để cài đặt và cấu hình.

Đoạn mã Python dưới đây thiết lập một ứng dụng Streamlit để tương tác với Groq API. Nó bao gồm:

  1. Nhập các thư viện cho phát triển ứng dụng web (Streamlit), tương tác AI (Groq), xử lý ảnh (base64) và thao tác tệp (os, json).
  2. Đọc khóa API Groq từ một tệp JSON riêng để tăng cường bảo mật.
  3. Định nghĩa hàm mã hóa ảnh sang định dạng base64 để truyền và xử lý hiệu quả.
import streamlit as stfrom groq import Groqimport base64import osimport json# Set up Groq API Keyos.environ['GROQ_API_KEY'] = json.load(open('credentials.json', 'r'))['groq_token']# Function to encode the imagedef encode_image(image_path):   with open(image_path, "rb") as image_file:       return base64.b64encode(image_file.read()).decode('utf-8')

Tiếp theo, chúng ta viết hàm dưới đây để tạo mô tả văn bản cho ảnh đã tải lên bằng Groq API. Dưới đây là phần phân tích chức năng:

  1. Mã hóa ảnh: Ảnh được tải lên được chuyển thành chuỗi mã hóa base64. Định dạng này cho phép dữ liệu ảnh được truyền dễ dàng trong yêu cầu API.
  2. Tương tác với Groq API: Một client Groq được khởi tạo để giao tiếp với dịch vụ Groq. Yêu cầu hoàn thành hội thoại được tạo, bao gồm:
  • Một prompt cho người dùng: "What's in this image?"
  • Dữ liệu ảnh mã hóa base64, được nhúng trong một data URI. Mô hình llama-3.2-90b-vision-preview được chỉ định để xử lý ảnh và tạo mô tả văn bản.
  1. Trích xuất chú thích: Chú thích được tạo ra được trích xuất từ phản hồi của Groq API. Nội dung thông điệp của lựa chọn đầu tiên, chứa chú thích, sẽ được trả về.
# Function to generate captiondef generate_caption(uploaded_image):   base64_image = base64.b64encode(uploaded_image.read()).decode('utf-8')   client = Groq()   chat_completion = client.chat.completions.create(       messages=[           {               "role": "user",               "content": [                   {"type": "text", "text": "What's in this image?"},                   {                       "type": "image_url",                       "image_url": {                           "url": f"data:image/jpeg;base64,{base64_image}",                       },                   },               ],           }       ],       model="llama-3.2-90b-vision-preview",   )   return chat_completion.choices[0].message.content

Cuối cùng, chúng ta tạo ứng dụng web tương tác qua Streamlit:

# Streamlit Appst.title("Llama Captioner")uploaded_file = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"])if uploaded_file is not None:   # Show the uploaded image   st.image(uploaded_file, caption="Uploaded Image", use_container_width=True)   if st.button("Generate Caption"):       with st.spinner("Generating caption..."):           caption = generate_caption(uploaded_file)       st.success("Caption Generated!")       st.write("**Caption:**", caption)

Ứng dụng Streamlit hoàn chỉnh: Llama Captioner

Ứng dụng Streamlit này cung cấp giao diện thân thiện cho việc tạo chú thích ảnh. Dưới đây là phần phân tích chức năng:

  1. Tiêu đề và bộ tải tệp:
  • Ứng dụng hiển thị tiêu đề: "Llama Captioner".
  • Thành phần tải tệp cho phép người dùng chọn tệp hình ảnh (JPG, JPEG hoặc PNG).
  1. Hiển thị ảnh:
  • Khi ảnh được tải lên, ứng dụng hiển thị ảnh bằng hàm st.image.
  1. Tạo chú thích:
  • Một nút "Generate Caption" kích hoạt quá trình tạo chú thích.
  • Khi bấm, một vòng quay hiển thị trạng thái đang tạo chú thích.
  • Hàm generate_caption được gọi để xử lý ảnh đã tải lên và lấy chú thích.
  • Khi tạo thành công, thông báo thành công sẽ hiển thị, tiếp theo là chú thích được tạo.

Đoạn dưới đây là mã chạy thực tế với một ảnh của Eddie Hall được tải lên để tạo chú thích. Đáng ngạc nhiên là mô hình còn trích xuất được cả thông tin không rõ ràng như “Strongest Man” v.v.

Kết luận

Xây dựng ứng dụng tạo chú thích ảnh với Llama 3.2 90B và Streamlit cho thấy cách AI tiên tiến có thể đơn giản hóa các tác vụ khó. Dự án này kết hợp mô hình mạnh mẽ với giao diện đơn giản để tạo ra một công cụ trực quan và dễ dùng.

Với vai trò Kỹ sư AI, tôi thấy tiềm năng rất lớn ở những công cụ như thế này. Chúng có thể giúp công nghệ trở nên dễ tiếp cận hơn, hỗ trợ người dùng tương tác tốt hơn với nội dung và tự động hóa quy trình một cách thông minh hơn.

Để tiếp tục học về Llama, tôi gợi ý các tài nguyên sau:


Bhavishya Pandit's photo
Author
Bhavishya Pandit
LinkedIn
Twitter

Kỹ sư GenAI cao cấp và người sáng tạo nội dung, đã thu hút 20 triệu lượt xem nhờ chia sẻ kiến thức về GenAI và khoa học dữ liệu.

Chủ đề
Trí tuệ Nhân tạo
Mô hình Ngôn ngữ Lớn

Học Llama với các khóa học này!

Lộ trình

Cơ bản về Llama

4 giờ
Thử nghiệm với Llama 3 để thực hiện suy luận trên các mô hình đã được huấn luyện sẵn, tinh chỉnh chúng trên các tập dữ liệu tùy chỉnh và tối ưu hóa hiệu suất.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm