sonnyit / Vietnamese_LLMs

Dự án bao gồm: 1. Xây dựng bộ dữ Instructions Vietnamese (chất lượng, nhiều, và đa dạng). 2.LLM Training, Finetuning, Evaluating & Testing trên Open-source mô hình ngôn ngữ: Bloomz,T5, UL2, LLaMA (1&2), OpenLLaMA, GPT-J pythia etc. 3. Ứng dụng và Giao diện Người dùng (UI)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🇻🇳 Cộng đồng LLMs Việt Nam - Vietnamese Language Models Community

💡 Get help - Q&A or Discord 💬

News:

  • [2023.09.02] We release LLaMA2 7B, 13B (8k Context Length 200k)fine-tuning on 200k Vietnamese Mix Instruction 🔥
  • [2023.07.28] We release LLaMA 13B, 30B (2k Context Length) on 52k Vietnamese alpaca and 200k Mix Instruction Dataset 🔥
  • [2023.08.27] We release BLOOMZ 1.7B, 7B instruction fine-tuning on 52k Vietnamese alpaca🔥🔥

We provide a number of model checkpoints that we trained. Please find them on Hugging Face here. Here are some quick links to the checkpoints that are finetuned from LLaMa 2:

Model Link
Vietnamese-LLaMa2 v1.0 13B 8K Context Length 🤗 Vietnamese_LLama2_13B_8K_SFT_General_Domain_Knowledge
Vietnamese-LLaMa2 v1.0 7B 8K Context Length 🤗 Vietnamese_llama2_7B_8K_SFT_General_domain
Vietnamese-LLaMa v1.0 30B 2K Context Length 🤗 Vietnamese_llama_30B_SFT
Vietnamese-BLOOMZ v1.0 7B 2K Context Length 🤗 Vietnamese_bloomz_7b

Data

Here are some quick links to the datasets that we used to train the models:

Dataset Link Note
200K Mix Instruction-tuning Vietnamese200k Mix Instructions
Vietnamese 52K Alpaca Vietnamese Alpaca 52k Translated using GPT-3.5
Vietnamese Lima 1K Vietnamese Lima 1K Translated by GPT-4
Vietnamese Dolly Vietnamese Dolly Translated by GPT-4
Vietnamese Instruction of How Vietnamese Instruction How Step by Step Extracted from Vietnamese WikiHow

Demo:

Nội Dung (Table of Contents)

Giới thiệu dự án (Project Introduction):

Chào bạn đến với dự án Cộng đồng LLMs Việt Nam! Dự án với mục tiêu tạo ra bộ dữ liệu Vietnamese instruction và thực hiện Supervised instruction fine-tuning trên các Open-source mô hình ngôn ngữ Bloom, OpenLLaMA, GPT-J, MPT, Pythia và nhiều mô hình khác.

  • [Dự án Tổng Quan] ()

Mục tiêu dự án (Project Goal):

  • Xây dựng Bộ dữ liệu Hướng dẫn tiếng Việt chất lượng cao
  • Huấn luyện, Tinh chỉnh và Đánh giá Mô hình Ngôn ngữ tiếng Việt (Training, Finetuning, Evaluation)
  • Thiết kế Ứng dụng với Giao diện Người dùng tối ưu hiệu suất

Cấu Trúc Của Dự Án (Project Structure)

Dưới đây là cấu trúc của dự án, mô tả các phần quan trọng và chức năng chính của chúng:

1. Tạo và Dịch Các Bộ Dữ liệu (Generate and Translate Dataset)

Thư mục /Generate_and_Translate_Dataset chứa các bộ dữ liệu và công cụ liên quan đến việc tạo và dịch các instruction dataset.

  • Phần Dịch (Translation Dataset)

    • Using_OpenAI_Translate_API.py: Sử dụng OpenAI GPT-3.5 và GPT-4 để dịch các bộ dữ liệu. Đây là một phương pháp cho kết quả tốt.

    • Using_NLLB_MetaAI_Translate.py: Sử dụng NLLB làm mô hình cho việc dịch. Bạn có thể sử dụng 54B model để đạt được kết quả tương đối.

  • Phần Tạo Instruction Dataset

    • Chi tiết kỹ thuật dùng tạo Instruction dataset từ Slide 8 tới slide 14

    • Generation_instruction_OpenAI_api.py: Sử dụng Stanford Alpaca template để tạo các instruction dataset. Gồm hơn 175 instruction tasks được tạo bởi con người.

    • Cập Nhập Sớm trong Tương Lai: Phần này dự kiến sẽ được cập nhật với thông tin về cách tạo thêm Instruction dataset từ các nguồn khác.

2. Training & Fine-tune LLM Model

Thư mục /LLMs chứa các tệp tin và công cụ để training và fine-tune các mô hình ngôn ngữ (Language Models).

  • Phần Fine-tuning dựa trên các Open-Source Based LLMs (BLOOMZ, Open-LLaMA, v.v.)

    • Finetune_llm_LoRA.py: Cung cấp công cụ để fine-tune các mô hình LLMs dựa trên các mã nguồn mở như BLOOMZ, Open-LLaMA, v.v.

    • Finetune_llm_QLoRA.py: Đây là một công cụ khác để fine-tune các mô hình LLMs dựa trên các mã nguồn mở.

3. Giao Diện Web (Web UI Interface)

Thư mục /WebUI chứa các tệp tin và công cụ liên quan đến giao diện người dùng qua Web.

  • Hiện tại, để nhanh chóng và thuận tiện cho việc demo và kiểm thử, chúng tôi sử dụng Gradio để phát triển giao diện.

    • assistant_gradio.py: Đây là ứng dụng đã được phát triển dựa trên Gradio, cho phép trải nghiệm trực quan và trò chuyện với trợ lý thông qua giao diện Web.

Hy vọng Với cấu trúc này, dự án có thể được quản lý một cách cụ thể và dễ đàng để cập nhập mọi người có thể góp ý để có một cấu trúc tốt hơn

Tầm Nhìn (Project Vision)

Chi Tiết về Vision & Roadmap

Xây dựng trợ lý thông minh tiếng Việt của tương lai, vượt trội và linh hoạt hơn bao giờ hết!

  • Chúng ta sẽ tạo ra một mô hình LLMs (Language Models) tiên tiến có khả năng xử lý tốt các tác vụ tiếng Việt. Mục tiêu của phát triển mạnh các LLMs ứng dụng khác trong Giáo dục, Y tế, Tài chính và Công nghiệp.

  • Điều đặc biệt là chúng ta muốn tạo ra mô hình trợ lý có khả năng tương tác nâng cao trên tiếng Việt. Hơn thế nữa chúng ta cũng đặt mục tiêu làm cho mô hình này nhỏ gọn và hiệu quả, để có thể chạy trên các người dùng cá nhân máy tính với các GPUs thế hệ thấp với ít memory.

  • Dự án này chúng ta mong muốn nhận được sự đóng góp và hỗ trợ cộng đồng. Hãy cùng nhau xây dựng một trợ lý thông minh nói riêng và mô hình ngôn ngữa thuần tiếng Việt nói chung và góp phần tạo ra những đóng góp ý nghĩa cho cộng đồng Việt Nam 🇻🇳.

Kế Hoạch (Project plan)

Bước 1: Dịch tập dữ liệu hướng dẫn

  • Mục tiêu: Dịch các bộ dữ liệu chuẩn và chất Lượng English based instructions dataset : Alpaca, Dolly 15k, OpenAssistant, Filtered_ShareGPT others dataset.
  • Xây dựng hệ thống, thống kê hiển thị các chủ đề khác nhau trong tập dữ liệu đã thu thập. Mục đích là loại bỏ dữ liệu chứa thông tin gây lặn, độc hại, spam, rác rưởi hoặc thông tin cá nhân hoặc các dữ không đạt yêu cầu.

Bước 2: Tạo tập dữ liệu hướng dẫn tự động

  • Sử dụng OpenAI GPT-3.5, GPT-4 để tạo tập dữ liệu hướng dẫn.
  • Mục tiêu: Thu thập 500.000 đến 1 triệu mẫu hướng dẫn đầu vào + phản hồi (Instructions, outputs)
  • Đồng thời, chúng tôi thu thập các hướng dẫn được tạo bởi con người có sẵn bằng tiếng Việt.

Bước 3: Kiểm định và tiền xử lý tập dữ liệu

  • Kết hợp tập dữ liệu từ Bước 1 và Bước 2.
  • Tiền xử lý tập dữ liệu để chuẩn bị cho các bước tiếp theo.

Bước 4: Tiến hành giai đoạn SFT (Supervised instruction Finetuning)

  • Dựa trên tập dữ liệu hướng dẫn tiếng Việt, tiến hành giai đoạn SFT để tinh chỉnh mô hình.

Bước 5: Tiếp tục huấn luyện mô hình với giai đoạn RLHF (Reinforcement Learning from Human Feedback)

  • Sau khi hoàn thành Bước 4, chúng ta có thể tiếp tục huấn luyện mô hình với giai đoạn RLHF dựa trên tập dữ liệu hướng dẫn từ con người thuộc dự án OpenAssistant công khai.

Hãy nhớ rằng các bước này đại diện cho quy trình chung và có thể được điều chỉnh và bổ sung theo yêu cầu cụ thể của dự án.

Làm Thế Nào Bạn Có Giúp Đỡ (How You can HELP)

Chúng ta có thể cùng nhau đóng góp tri thức và công nghệ của mình để mang lại lợi ích cho cộng đồng Việt Nam.

  1. bạn có thể cùng xây dựng dự án: Hãy xem hướng dẫn Đóng Góp Cho Dự Án để bắt đầu chung tay xây dựng dự án này.

  2. Bạn có thể hổ trợ về tài nguyên như máy chủ server hoặc các tài nguyên khác.

  • Dự án hiện rất cần các nguồn tài trợ tài nguyên GPUs để có thể tiến hành quá trình huấn luyện (Pretraining) và quá trình tinh chỉnh (Finetuning).
  • Nếu bạn Có thể giúp dự án kết nối với các công ty tư nhân để mang dự án này áp dụng rộng rãi.
  • Bạn có thể kết nối trực tiếp với Trần Nhiệm LinkedIn Facebook. email: tvnhiemhcmus@gmail.com .
@misc{vietnameseLLM,
    author={Tran Nhiem},
    title={Vietnamese Instruction Data Corpus for Large-Scale Finetuning of Language Models},
    year={2023},
    url={https://github.com/VietnamAIHub/Vietnamese_LLMs},
}

About

Dự án bao gồm: 1. Xây dựng bộ dữ Instructions Vietnamese (chất lượng, nhiều, và đa dạng). 2.LLM Training, Finetuning, Evaluating & Testing trên Open-source mô hình ngôn ngữ: Bloomz,T5, UL2, LLaMA (1&2), OpenLLaMA, GPT-J pythia etc. 3. Ứng dụng và Giao diện Người dùng (UI)

License:Apache License 2.0


Languages

Language:Python 100.0%