Spaces:
Sleeping
Sleeping
| # --- COPY NỘI DUNG NÀY VÀO GOOGLE COLAB --- | |
| # !pip install pandas pyarrow sentence-transformers | |
| import pandas as pd | |
| from sentence_transformers import SentenceTransformer | |
| import torch | |
| import os | |
| # 1. Cấu hình | |
| INPUT_FILE = 'legal_segments_for_colab.parquet' # Tên file bạn vừa upload lên Colab | |
| OUTPUT_FILE = 'legal_embeddings_results.parquet' | |
| MODEL_NAME = 'mainguyen9/vietlegal-harrier-0.6b' # Model bạn đã chọn | |
| def main(): | |
| if not os.path.exists(INPUT_FILE): | |
| print(f"ERROR: Không tìm thấy file {INPUT_FILE}. Hãy upload file lên Colab trước.") | |
| return | |
| # 2. Đọc dữ liệu | |
| print("Đang đọc dữ liệu từ Parquet...") | |
| df = pd.read_parquet(INPUT_FILE) | |
| print(f"Tổng số đoạn văn bản: {len(df)}") | |
| # 3. Load Model lên GPU | |
| print(f"Đang tải model {MODEL_NAME}...") | |
| device = 'cuda' if torch.cuda.is_available() else 'cpu' | |
| model = SentenceTransformer(MODEL_NAME, device=device) | |
| print(f"Đang sử dụng thiết bị: {device.upper()}") | |
| # 4. Tạo Embedding | |
| print("Bắt đầu tạo embedding (quá trình này có thể mất vài phút)...") | |
| # Chúng ta chỉ lấy cột 'text' để embed | |
| sentences = df['text'].tolist() | |
| embeddings = model.encode(sentences, show_progress_bar=True, batch_size=64) | |
| # 5. Đóng gói kết quả | |
| # Chỉ giữ lại UID và Embedding để giảm dung lượng file | |
| output_df = pd.DataFrame({ | |
| 'uid': df['uid'], | |
| 'embedding': embeddings.tolist() | |
| }) | |
| # 6. Lưu kết quả | |
| print(f"Đang lưu kết quả ra {OUTPUT_FILE}...") | |
| output_df.to_parquet(OUTPUT_FILE, index=False) | |
| print("=== HOÀN THÀNH! Hãy tải file legal_embeddings_results.parquet về máy cục bộ. ===") | |
| if __name__ == "__main__": | |
| main() | |