Khóa học

Trong bài viết này, chúng ta sẽ khám phá năm dự án AI sinh có thể giúp bạn xây dựng và củng cố danh mục học máy và khoa học dữ liệu. Những dự án này được thiết kế để nâng cao hiểu biết của bạn về các công nghệ tiên tiến như Stable Diffusion, Segment Anything, LangChain, Alpaca-LoRA và nhiều hơn nữa.
Dù bạn mới làm quen với AI sinh hay đã có kinh nghiệm, các dự án này sẽ trang bị cho bạn những kỹ năng giá trị giúp bạn nổi bật trong hồ sơ ứng tuyển và phỏng vấn.
Bạn có thể tìm hiểu về dòng GPT, bao gồm GPT-1, GPT-2, GPT-3 và GPT-4, bằng cách xem bài viết 'GPT-4 là gì và vì sao nó quan trọng?' Bạn cũng có thể xem thêm một số dự án AI trong một bài viết khác.
1. StableSAM: Inpainting Stable Diffusion với Segment Anything
Trong dự án này, bạn sẽ dùng segment-anything của Meta, diffusers của Hugging Face và Gradio để tạo một ứng dụng có thể thay đổi nền, khuôn mặt, quần áo hoặc bất cứ phần nào bạn chọn. Ứng dụng chỉ cần ảnh, vùng được chọn và prompt.
Trường hợp sử dụng:
StableSAM rất phù hợp cho các chuyên gia sáng tạo trong tiếp thị số, thiết kế và giải trí. Nó cho phép người dùng chỉnh sửa chính xác các phần cụ thể của ảnh, lý tưởng cho các tác vụ như thay đổi phông nền, chỉnh sửa trang phục hoặc thay đổi đối tượng trong tài liệu quảng bá. Với người dùng đam mê, đây là công cụ tuyệt vời để tùy biến hình ảnh mà không cần kỹ năng thiết kế nâng cao.
Kỹ năng bạn sẽ học:
- Triển khai pipeline inpainting ảnh bằng Stable Diffusion
- Làm việc với Segment Anything Model (SAM) của Meta để phân đoạn ảnh
- Tạo ứng dụng web tương tác với Gradio
- Sử dụng diffusers của Hugging Face để triển khai mô hình
Tạo pipeline Stable Diffusion Inpainting
Chúng ta sẽ tạo một pipeline Stable Diffusion Inpainting bằng diffuser và trọng số mô hình có sẵn trên stabilityai/stable-diffusion-2-inpainting · Hugging Face. Sau đó, chúng ta sẽ thêm CUDA để tăng tốc bằng GPU.
Định nghĩa mặt nạ ảnh và hàm inpainting
Hàm mặt nạ ảnh được tạo bằng SAM Predictor. Hàm nhận một ảnh, phần ảnh được chọn và giá trị boolean is_backgroud để tạo ảnh đã che (mask) và phân đoạn.
Sau đó, hàm inpainting sử dụng pipeline Stable Diffusion Inpainting để thay đổi các phần được chọn của ảnh. Pipeline yêu cầu ảnh đầu vào, ảnh đã che, ảnh phân đoạn, văn bản prompt và văn bản prompt phủ định.
Tạo giao diện Gradio
Bạn sẽ tạo một hàng và thêm ba khối ảnh. Với phiên bản khả dụng tối thiểu, bạn cần thêm một hàng nữa với nút gửi. Sau đó, bạn cần chỉnh sửa đối tượng ảnh đầu vào để chọn điểm ảnh, tạo mask và phân đoạn, và thêm hành động cho nút gửi để chạy hàm inpainting.
Gradio khá dễ học. Bạn có thể nắm hết bằng cách đọc tài liệu Gradio.
Phiên bản nâng cấp của StableSAM
Phiên bản cải tiến của StableSAM có tại Hugging Face, bao gồm một pipeline inpainting tùy chỉnh sử dụng ControlNet. Nó dùng Runway ML Stable Diffusion Inpainting thay vì Stability AI.

Như bạn thấy, phiên bản cuối cùng có giao diện gọn gàng với khối phân đoạn, nút làm sạch, tùy chọn nền và prompt phủ định.

Tài nguyên:
- Demo trên Hugging Face: StableSAM
- Hướng dẫn trên Youtube: Inpainting Stable Diffusion với Segment Anything Model (SAM)
2. Alpaca-LoRA: Xây chatbot giống ChatGPT với tài nguyên tối thiểu
Alpaca-LoRA cung cấp mọi thành phần cần thiết để bạn tạo chatbot chuyên biệt giống ChatGPT chỉ với một GPU. Trong dự án này, chúng ta sẽ xem thiết lập ban đầu, huấn luyện, script suy luận và client gốc để chạy suy luận trên CPU.
Trường hợp sử dụng:
Dự án này rất phù hợp cho những ai quan tâm đến việc xây dựng hệ thống AI hội thoại tùy chỉnh. Dù bạn tạo chatbot chăm sóc khách hàng cho doanh nghiệp nhỏ hay phát triển trợ lý cá nhân, Alpaca-LoRA cung cấp cách hiệu quả để huấn luyện chatbot chuyên biệt với tài nguyên tính toán hạn chế. Dự án lý tưởng để thử nghiệm tinh chỉnh mô hình ngôn ngữ với chi phí thấp.
Kỹ năng bạn sẽ học:
- Tinh chỉnh mô hình ngôn ngữ với LoRA trên một GPU
- Thiết lập và sử dụng bộ dữ liệu Stanford Alpaca
- Chạy script suy luận trong môi trường ít tài nguyên (ví dụ: Raspberry Pi)
- Triển khai giao diện chatbot dựa trên Gradio
- Hiểu cách các mô hình ngôn ngữ lớn như LLaMA được huấn luyện và tối ưu
Thiết lập cục bộ
- Clone kho: tloen/alpaca-lora
- Cài đặt phụ thuộc bằng
pip install -r requirements.txt - Nếu bitsandbytes không hoạt động, hãy cài từ mã nguồn.
Huấn luyện
Trong phần này, chúng ta sẽ xem script tinh chỉnh mà bạn có thể chạy trên mô hình LLaMA sử dụng phiên bản đã làm sạch của mô hình Stanford Alpaca.
Bạn có thể xem trong kho để tinh chỉnh siêu tham số nhằm có hiệu năng tốt hơn.
python finetune.py \
--base_model 'decapoda-research/llama-7b-hf' \
--data_path 'yahma/alpaca-cleaned' \
--output_dir './lora-alpaca'
Suy luận
Script suy luận đọc mô hình nền tảng LLaMA từ Hugging Face và tải trọng số LoRA để chạy giao diện Gradio.
python generate.py \
--load_8bit \
--base_model 'decapoda-research/llama-7b-hf' \
--lora_weights 'tloen/alpaca-lora-7b'
Bạn cũng có thể dùng alpaca.cpp để chạy các mô hình alpaca trên CPU hoặc Raspberry Pi 4 RAM 4GB. Ngoài ra, bạn có thể dùng Alpaca-LoRA-Serve để tạo giao diện kiểu ChatGPT như bên dưới.

Tài nguyên:
- GitHub: tloen/alpaca-lora
- Model Card: tloen/alpaca-lora-7b
- Demo trên Hugging Face: Alpaca-LoRA-Serve
- Giao diện kiểu ChatGPT: Alpaca-LoRA-Serve
- Bộ dữ liệu Alpaca: AlpacaDataCleaned
3. Tự động hóa tương tác PDF với LangChain và ChatGPT
Tạo bản sao ChatPDF của riêng bạn bằng bộ nạp PDF của LangChain, OpenAI Embeddings và GPT-3.5. Bạn sẽ tạo chatbot có thể trò chuyện với sách, tài liệu pháp lý và các tài liệu PDF quan trọng khác.
Trường hợp sử dụng:
Dự án này hữu ích để tự động hóa quy trình làm việc dựa trên tài liệu, như phân tích bài báo nghiên cứu, hợp đồng pháp lý hoặc báo cáo tài chính. Bạn có thể xây dựng chatbot trả lời các câu hỏi cụ thể về tài liệu PDF, một công cụ mạnh mẽ trong các ngành như luật, học thuật hoặc phân tích kinh doanh, nơi việc xử lý lượng lớn văn bản là thiết yếu.
Kỹ năng bạn sẽ học:
- Nạp và xử lý tài liệu PDF bằng PyPDFLoader của LangChain
- Tạo embeddings và vector hóa dữ liệu tài liệu với OpenAIEmbeddings
- Xây dựng cơ sở dữ liệu vector để truy vấn tài liệu bằng Chroma
- Tích hợp ChatGPT với dữ liệu đã vector hóa để hỏi đáp
- Phát triển giao diện chatbot PDF đơn giản bằng Gradio
Nạp tài liệu
Chúng ta sẽ dùng bộ nạp tài liệu của LangChain để nạp PDF và đọc nội dung.
from langchain.document_loaders import PyPDFLoader
pdf_path = "./paper.pdf"
loader = PyPDFLoader(pdf_path)
pages = loader.load_and_split()
print(pages[0].page_content)
Tạo embeddings và vector hóa
Chúng ta sẽ tạo embeddings bằng lớp OpenAIEmbeddings từ API LangChain. Sau đó, truyền các embeddings này vào lớp Chroma để tạo cơ sở dữ liệu vector cho tài liệu PDF.
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma
embeddings = OpenAIEmbeddings()
vectordb = Chroma.from_documents(pages, embedding=embeddings, persist_directory=".")
vectordb.persist()
Truy vấn PDF
Chúng ta sẽ dùng lớp ChatVectorDBChain để tương tác với ChatGPT bằng cơ sở dữ liệu vector đã tạo.
from langchain.chains import ChatVectorDBChain
from langchain.llms import OpenAI
pdf_qa = ChatVectorDBChain.from_llm(
OpenAI(temperature=0.9, model_name="gpt-3.5-turbo"),
vectordb,
return_source_documents=True,
)
query = "What is the VideoTaskformer?"
result = pdf_qa({"question": query, "chat_history": ""})
print("Answer:")
print(result["answer"])
Bước tiếp theo không được đề cập trong video hướng dẫn. Bạn có thể dùng framework Gradio để tạo ứng dụng web và chia sẻ với đồng nghiệp, bạn bè.

Tài nguyên:
- Hướng dẫn trên Youtube: Cách trò chuyện với PDF bằng LangChain và ChatGPT
- Blog kèm mã nguồn: Tự động hóa tương tác PDF với LangChain và ChatGPT
- Xem thêm: Trò chuyện với CSV & Excel bằng LangChain
4. Trợ lý giọng nói Bing-GPT
Xây trợ lý cá nhân dùng AI giống J.A.R.V.I.S. Bạn sẽ cần OpenAI API, thư viện chuyển văn bản thành giọng nói, thư viện nhận dạng giọng nói và AI sinh.
Trường hợp sử dụng:
Bing-GPT Voice Assistant lý tưởng để xây trợ lý cá nhân điều khiển bằng giọng nói có thể xử lý các tác vụ như đặt nhắc nhở, trả lời câu hỏi hoặc điều khiển thiết bị nhà thông minh. Dự án này cũng có thể mở rộng để tự động hóa doanh nghiệp, tạo giải pháp chăm sóc khách hàng bằng giọng nói hoặc xây công cụ AI trợ năng cho người khuyết tật.
Kỹ năng bạn sẽ học:
- Sử dụng API của OpenAI để tạo phản hồi cho chatbot
- Triển khai tổng hợp và nhận dạng giọng nói bằng Whisper và Polly
- Thiết lập phát hiện từ kích hoạt cho tương tác bằng giọng nói
- Xây dựng trợ lý AI lai dùng EdgeGPT và ChatGPT
- Tích hợp công nghệ chuyển văn bản thành giọng nói và nhận dạng giọng nói trong Python
Sau khi nạp các thư viện cần thiết, bạn cần cung cấp khóa API OpenAI:
openai.api_key = "[paste your OpenAI API key here]"
Từ kích hoạt (wake word)
Tạo hàm từ kích hoạt để đánh thức AI. Ở đây, nhà phát triển dùng “‘bing” hoặc “gpt”.
Tổng hợp giọng nói
Hàm tổng hợp giọng nói cung cấp suy luận chuyển văn bản thành giọng nói. Bạn có thể truy cập polly (chuyển văn bản thành giọng nói) từ boto3 và phát âm thanh bằng pydub.
Phiên âm với Whisper
Nhận dạng giọng nói được thực hiện bởi openai/whisper. Bạn chỉ cần tìm hiểu API để thêm vào ứng dụng của mình.
ChatBot với EdgeGPT
Cuối cùng, bạn sẽ dùng acheong08/EdgeGPT và OpenAI API để tạo chatbot. Nếu người dùng dùng từ kích hoạt “bing'' thì sẽ dùng mô hình EdgeGPT, còn lại sẽ dùng mô hình ChatGPT.
Nếu bạn tìm kiếm bản triển khai Trợ lý giọng nói đơn giản hơn, hãy xem OpenAI Whisper, ChatGPT, TTS và Gradio Web UI.

Tài nguyên:
- Hướng dẫn trên Youtube: Tạo Trợ lý Giọng nói ChatGPT & Bing trong 7 phút
- GitHub: Ai-Austin/Bing-GPT-Voice-Assistant
- Giải pháp thay thế: youtube-stuffs/voiceGPT.ipynb
5. Một dự án khoa học dữ liệu end-to-end
Trong dự án này, chúng ta sẽ dùng ChatGPT để xây dựng ứng dụng phân loại phê duyệt khoản vay end-to-end. Tất cả những gì cần là quyền truy cập giao diện ChatGPT và máy cá nhân để chạy mã.
Trường hợp sử dụng:
Dự án này được thiết kế cho những nhà khoa học dữ liệu tương lai muốn xây dựng pipeline học máy hoàn chỉnh bằng AI. Bạn sẽ học cách dùng ChatGPT để lập kế hoạch, thực thi và triển khai mô hình học máy, là điểm cộng xuất sắc cho bất kỳ danh mục khoa học dữ liệu nào. Dùng dự án này để dự đoán phê duyệt khoản vay, dự đoán rời bỏ hoặc phát hiện gian lận.
Kỹ năng bạn sẽ học:
- Sử dụng ChatGPT để hỗ trợ phân tích khám phá dữ liệu (EDA)
- Tự động hóa kỹ thuật đặc trưng và tiền xử lý dữ liệu
- Xây dựng và tinh chỉnh mô hình học máy với sự hỗ trợ của ChatGPT
- Tạo ứng dụng web học máy bằng Gradio
Lập kế hoạch dự án
Ở giai đoạn lập kế hoạch, chúng ta sẽ mô tả bộ dữ liệu và mong muốn thu được từ đó. Đôi khi câu trả lời chưa hoàn hảo, nhưng bạn có thể tinh chỉnh bằng cách đưa thêm prompt tiếp nối.
Sau đó, chúng ta sẽ bắt đầu làm theo kế hoạch tóm tắt.
Phân tích khám phá dữ liệu (EDA)
Chúng ta sẽ nhờ ChatGPT tạo mã Python để nạp bộ dữ liệu và thực hiện EDA với nhiều kỹ thuật trực quan hóa. Bạn thậm chí có thể yêu cầu AI diễn giải kết quả.
Kỹ thuật đặc trưng
Chúng ta đã nhờ ChatGPT viết mã kỹ thuật đặc trưng, và thật ấn tượng là AI đã tạo ra hai đặc trưng mới từ các đặc trưng hiện có. Điều đó có nghĩa AI đã hiểu bộ dữ liệu.
Tiền xử lý và cân bằng dữ liệu
Chúng ta có bộ dữ liệu mất cân bằng, và ở phần này, chúng ta sẽ dùng ChatGPT để tạo mã tiền xử lý và cân bằng lớp.
Lựa chọn mô hình
Chúng ta chỉ định các mô hình học máy và nhờ ChatGPT viết mã lựa chọn mô hình. Sau khi chạy mã, chúng ta sẽ chọn mô hình có hiệu năng tốt nhất.
Điều chỉnh siêu tham số và đánh giá mô hình
Để cải thiện hiệu năng, chúng ta sẽ nhờ ChatGPT viết mã Python cho điều chỉnh siêu tham số và đánh giá mô hình, và lưu mô hình có hiệu năng tốt nhất.
Tạo ứng dụng web bằng Gradio
Chúng ta sẽ nhờ ChatGPT viết mã ứng dụng Gradio dùng mô hình và tiền xử lý đã lưu. AI hiểu các đặc trưng đầu vào và kết quả đầu ra. Kết quả là chúng ta có một ứng dụng web hoạt động đầy đủ.
Triển khai ứng dụng web lên Spaces
Ở bước cuối, chúng ta đã nhờ ChatGPT triển khai ứng dụng web lên space. AI cung cấp một vài bước để chúng ta làm theo và triển khai trong vài phút.

Dự án này cũng sẽ dạy các mẹo viết prompt hiệu quả, đang trở nên thiết yếu trong mọi lĩnh vực.
Tài nguyên:
- Hướng dẫn trên DataCamp: Hướng dẫn sử dụng ChatGPT cho các dự án khoa học dữ liệu
- Demo trên Hugging Face: Loan Classifier
Kết luận
Đây chỉ là khởi đầu cho những gì sẽ đến với các mô hình AI sinh. Cộng đồng mã nguồn mở đang nỗ lực phát triển các công cụ giúp bạn xây dựng mọi loại AI. Bạn thậm chí có thể dùng các công cụ này để tạo AGI (Trí tuệ nhân tạo tổng quát); hãy xem Auto-GPT (mã nguồn mở thử nghiệm để tạo GPT-4 tự chủ hoàn toàn) và babyagi (hệ thống quản lý tác vụ được hỗ trợ bởi AI).
Trong bài viết này, chúng tôi đã đề cập các dự án phù hợp với mọi trình độ và cần ít tài nguyên để bắt đầu. Tất cả đều dùng công cụ, mô hình, bộ dữ liệu và gói mã nguồn mở sẵn có cho mọi người.
Nếu bạn mới dùng ChatGPT, hãy cân nhắc tham gia khóa học Giới thiệu về ChatGPT. Hoặc nếu bạn đã quen với AI sinh, bạn có thể cải thiện kỹ năng viết prompt bằng cách xem Bảng gian lận ChatGPT cho Khoa học Dữ liệu toàn diện, hoặc xem các tài nguyên sau:
- Bắt đầu với ChatGPT trong khóa học Giới thiệu về ChatGPT của chúng tôi.
- Tải về bảng tham chiếu nhanh các prompt ChatGPT cho khoa học dữ liệu này.
- Nghe tập podcast về Cách ChatGPT và GPT-3 tăng cường quy trình làm việc để hiểu ChatGPT có thể mang lại lợi ích gì cho doanh nghiệp của bạn.
- Hướng dẫn về Whisper API
- Bắt đầu học AI
Câu hỏi thường gặp
Tôi có thể hoàn thành các dự án AI sinh này nếu tôi mới học máy và AI không?
Chắc chắn rồi! Dù một số dự án có thể liên quan đến công cụ và kỹ thuật nâng cao, các hướng dẫn từng bước trong bài viết sẽ dẫn dắt bạn xuyên suốt quá trình. Bạn không cần là chuyên gia để bắt đầu, và nhiều công cụ như Gradio, Hugging Face và LangChain được thiết kế thân thiện với người mới. Thêm vào đó, những dự án này sẽ giúp bạn xây nền tảng vững chắc về AI, khiến việc tiếp cận các chủ đề phức tạp hơn trong tương lai trở nên dễ dàng.
Tôi có cần GPU cao cấp để chạy các dự án AI sinh này không?
Không hẳn. Một số dự án, như Alpaca-LoRA, được thiết kế để chạy trên một GPU hoặc thậm chí là CPU, nghĩa là bạn không cần máy cấu hình cao để hoàn thành. Với các dự án cần nhiều sức mạnh tính toán hơn, bạn có thể dùng dịch vụ đám mây như Google Colab, AWS hoặc Hugging Face Spaces, những nơi cung cấp GPU miễn phí hoặc chi phí thấp.
Làm sao tôi có thể giới thiệu các dự án AI này trong danh mục để nổi bật khi ứng tuyển?
Những dự án này rất phù hợp để đưa vào danh mục của bạn vì chúng thể hiện khả năng làm việc với các công cụ AI tiên tiến. Khi thêm vào danh mục, hãy nhớ:
- Đưa ra giải thích chi tiết về dự án, mô tả vấn đề bạn giải quyết, công cụ bạn dùng và kết quả cuối cùng.
- Chia sẻ liên kết tới bản demo trực tiếp hoặc kho GitHub để nhà tuyển dụng có thể xem sản phẩm của bạn.
- Nhấn mạnh các thách thức độc đáo bạn gặp phải và cách bạn giải quyết chúng, thể hiện kỹ năng giải quyết vấn đề và tư duy phản biện.
Là một nhà khoa học dữ liệu được chứng nhận, tôi đam mê tận dụng công nghệ tiên tiến để tạo ra các ứng dụng học máy đổi mới. Với nền tảng vững chắc về nhận dạng giọng nói, phân tích và báo cáo dữ liệu, MLOps, AI hội thoại và NLP, tôi đã rèn giũa kỹ năng phát triển các hệ thống thông minh có thể tạo ra tác động thực sự. Bên cạnh chuyên môn kỹ thuật, tôi cũng là một người truyền đạt tốt, có khả năng chắt lọc các khái niệm phức tạp thành ngôn ngữ rõ ràng, súc tích. Nhờ đó, tôi trở thành một blogger được nhiều người quan tâm trong lĩnh vực khoa học dữ liệu, chia sẻ góc nhìn và kinh nghiệm với cộng đồng các chuyên gia dữ liệu ngày càng lớn. Hiện tại, tôi tập trung vào sáng tạo và biên tập nội dung, làm việc với các mô hình ngôn ngữ lớn để phát triển nội dung mạnh mẽ và hấp dẫn, giúp doanh nghiệp và cá nhân tận dụng tối đa dữ liệu của mình.
