Tôi bắt đầu tóm tắt hàng chục cuốn sách bằng tay và nhận thấy rằng tôi sẽ mất hàng tuần cho mỗi bản tóm tắt. Sau đó, tôi nhớ lại cuộc cách mạng AI đang diễn ra và quyết định rằng mình đã quá muộn để nhảy xuống vùng nước này.
Khi tôi bắt đầu khám phá việc sử dụng các mô hình ngôn ngữ lớn (LLM) để tóm tắt các văn bản lớn, tôi không tìm thấy hướng dẫn rõ ràng nào về cách thực hiện điều đó .
Hướng dẫn này cung cấp một số chi tiết cụ thể về quá trình xác định và kiểm tra chi tiết của các biến được đề cập ở trên.
Tìm dữ liệu xếp hạng đầy đủ, hướng dẫn và tóm tắt kết quả trên GitHub .
Một số thuật ngữ này được sử dụng theo những cách khác nhau, tùy thuộc vào ngữ cảnh (không có ý định chơi chữ).
Mô hình ngôn ngữ lớn (LLM) : (Mô hình AKA) Một loại Trí tuệ nhân tạo đã được đào tạo dựa trên bộ dữ liệu khổng lồ để hiểu và tạo ra ngôn ngữ của con người.
Ví dụ : GPT3.5 và GPT4 của OpenAI đã gây bão trên toàn thế giới. (Trong trường hợp của chúng tôi, chúng tôi đang lựa chọn trong số các mô hình nguồn mở và\hoặc có thể tải xuống miễn phí được tìm thấy trên Ôm Mặt .)
Thế hệ tăng cường truy xuất (RAG) : Một kỹ thuật do Meta AI phát triển để lưu trữ tài liệu trong cơ sở dữ liệu mà LLM tìm kiếm trong số đó để tìm câu trả lời cho một truy vấn nhất định của người dùng (Tài liệu Q/A).
Hướng dẫn sử dụng: (Lời nhắc AKA hoặc Ngữ cảnh) là truy vấn do người dùng cung cấp.
Ví dụ: “Tóm tắt văn bản sau: { text }
”
Lời nhắc hệ thống: Các hướng dẫn đặc biệt được đưa ra trước lời nhắc của người dùng, giúp hình thành tính cách của trợ lý của bạn.
Ví dụ: “Bạn là một Trợ lý AI hữu ích.”
Bối cảnh: Hướng dẫn sử dụng và có thể là lời nhắc của hệ thống cũng như các vòng câu hỏi\câu trả lời trước đó. (Các cặp câu hỏi/trả lời trước đây cũng được gọi đơn giản là ngữ cảnh).
Kiểu nhắc nhở : Đây là những tổ hợp ký tự đặc biệt mà LLM được đào tạo để nhận ra sự khác biệt giữa hướng dẫn người dùng, lời nhắc hệ thống và ngữ cảnh so với các câu hỏi trước đó.
Ví dụ: <s>[INST] {systemPrompt} [INST] [INST] {previousQuestion} [/INST] {answer} </s> [INST] {userInstructions} [/INST]
7B: Cho biết số lượng tham số trong một mô hình nhất định (cao hơn thường là tốt hơn). Tham số là các biến nội bộ mà mô hình học được trong quá trình đào tạo và được sử dụng để đưa ra dự đoán. Theo mục đích của tôi, các mẫu 7B có thể phù hợp với GPU của tôi có VRAM 12GB.
GGUF: Đây là định dạng cụ thể cho LLM được thiết kế cho phần cứng tiêu dùng (CPU/GPU). Dù bạn quan tâm đến mô hình nào, để sử dụng trong PrivateGPT, bạn phải tìm phiên bản GGUF của nó (thường được tạo bởi TheBloke ).
Q2-Q8 0, K_M hoặc K_S: Khi duyệt các tệp của kho lưu trữ GGUF, bạn sẽ thấy các phiên bản khác nhau của cùng một mô hình. Số cao hơn có nghĩa là ít nén hơn và chất lượng tốt hơn. Chữ M trong K_M có nghĩa là “Trung bình” và chữ S trong K_S có nghĩa là “Nhỏ”.
VRAM: Đây là dung lượng bộ nhớ của GPU của bạn. Để tải nó hoàn toàn vào GPU, bạn sẽ cần một model có kích thước nhỏ hơn VRAM hiện có của mình.
Mã thông báo: Đây là số liệu LLM cân nhắc ngôn ngữ. Mỗi mã thông báo bao gồm khoảng 4 ký tự.
PrivateGPT (pgpt) là một dự án nguồn mở cung cấp giao diện người dùng và API có thể lập trình cho phép người dùng sử dụng LLM bằng phần cứng riêng tại nhà. Nó cho phép bạn tải tài liệu lên cơ sở dữ liệu cục bộ của riêng bạn để hỏi đáp tài liệu được RAG hỗ trợ.
Tài liệu PrivateGPT - Tổng quan :
PrivateGPT cung cấp API chứa tất cả các khối xây dựng cần thiết để xây dựng các ứng dụng AI riêng tư, nhận biết ngữ cảnh . API tuân theo và mở rộng tiêu chuẩn API OpenAI, đồng thời hỗ trợ cả phản hồi thông thường và phản hồi trực tuyến. Điều đó có nghĩa là, nếu bạn có thể sử dụng API OpenAI trong một trong các công cụ của mình, thì bạn có thể sử dụng API PrivateGPT của riêng mình mà không cần thay đổi mã và miễn phí nếu bạn đang chạy PrivateGPT ở chế độ
local
.
Tôi bắt đầu bằng việc đặt câu hỏi cho các chương sách bằng cách sử dụng PrivateGPT UI\RAG.
Sau đó thử chọn trước văn bản để tóm tắt. Đây là nguồn cảm hứng cho việc xếp hạng Vòng 1, để xem kết quả của tôi sẽ cho thấy sự khác biệt lớn như thế nào. (Tóm tắt các phần được chọn trước.)
Tiếp theo, tôi muốn tìm ra mẫu nào sẽ thực hiện tốt nhất nhiệm vụ này, dẫn đến bảng xếp hạng Vòng 2, trong đó Mistral-7B-Instruct-v0.2 là người chiến thắng rõ ràng.
Sau đó, tôi muốn nhận được kết quả tốt nhất từ mô hình này bằng cách xếp hạng các kiểu lời nhắc và viết mã để có được kiểu lời nhắc chính xác như mong đợi.
Tất nhiên, sau đó, tôi phải thử nghiệm nhiều lời nhắc hệ thống khác nhau để xem cái nào hoạt động tốt nhất.
Tiếp theo, tôi đã thử một vài lời nhắc của người dùng để xác định đâu là lời nhắc chính xác nhất để tạo ra các bản tóm tắt mà tôi yêu cầu ít quá trình xử lý hậu kỳ nhất.
Cuối cùng, loại thử nghiệm này phải được tiến hành cho từng LLM và để xác định tính hiệu quả của bất kỳ sàng lọc nào trong quy trình của chúng tôi. Theo tôi, chỉ khi mỗi mô hình đã được nhắm đến những điều kiện lý tưởng nhất thì chúng mới có thể được xếp hạng phù hợp với nhau.
Khi tôi bắt đầu thử nghiệm các biến thể LLM khác nhau, mistral-7b-instruct-v0.1.Q4_K_M.gguf
xuất hiện như một phần trong thiết lập mặc định của PrivateGPT (được tạo để chạy trên CPU của bạn). Ở đây, tôi thích các biến thể Q8_0 hơn.
Mặc dù tôi đã thử hơn 50 LLM khác nhau cho cùng một nhiệm vụ này, Mistral-7B-Instruct vẫn là một trong những LLM tốt nhất, đặc biệt kể từ khi v0.2 được phát hành, tôi không thấy cái nào tốt hơn.
TLDR: Mistral-7B-Instruct-v0.2 - là công cụ dẫn đầu hiện tại của tôi về nhiệm vụ tóm tắt.
Tôi nhanh chóng phát hiện ra khi thực hiện Q/A là tôi nhận được kết quả tốt hơn nhiều khi tải các khối dữ liệu nhỏ hơn lên cơ sở dữ liệu và bắt đầu với một phương tiện chặn rõ ràng mỗi lần. Vì vậy, tôi bắt đầu chia PDF thành các chương cho mục đích Hỏi đáp.
Trong phân tích đầu tiên của mình, tôi đã thử nghiệm 5 LLM khác nhau cho các nhiệm vụ sau:
Người mẫu | Xếp hạng | Tìm kiếm chính xác | Nhân vật | Giây | BS | chất làm đầy | Ngắn | BS tốt |
---|---|---|---|---|---|---|---|---|
Hermes-trismegistus-mistral-7b | 68 | 56 | 62141 | 298 | 3 | 4 | 0 | 6 |
synthia-7b-v2.0 | 63 | 59 | 28087 | 188 | 1 | 7 | 7 | 0 |
mistral-7b-guide-v0.1 | 51 | 56 | 21131 | 144 | 3 | 0 | 17 | 1 |
nhận thức tập thể-v1.1-mistral-7b | 56 | 57 | 59453 | 377 | 3 | 10 | 0 | 0 |
kai-7b-hướng dẫn | 44 | 56 | 21480 | 117 | 5 | 0 | 18 | 0 |
Đối với vòng đầu tiên này, tôi chia nội dung chương thành các phần có phạm vi
Mỗi ký tự 900-14000 (hoặc 225-3500 mã thông báo).
LƯU Ý: Mặc dù có rất nhiều mô hình ngữ cảnh lớn được phát hành nhưng hiện tại, tôi vẫn tin rằng ngữ cảnh nhỏ hơn sẽ mang lại bản tóm tắt tốt hơn. Tôi không thích nhiều hơn 2750 mã thông báo (11000 ký tự) cho mỗi tác vụ tóm tắt.
Không có gì ngạc nhiên khi các bản tóm tắt hoạt động tốt hơn nhiều so với Q/A, nhưng chúng cũng có bối cảnh được nhắm mục tiêu rõ ràng hơn.
Tên | Điểm | Ký tự được tạo | % Khác biệt so với OG | Giây để tạo | Ngắn | Rác | BS | Đổ đầy | Câu hỏi | Chi tiết |
---|---|---|---|---|---|---|---|---|---|---|
Hermes-trismegistus-mistral-7b | 74 | 45870 | -61 | 274 | 0 | 1 | 1 | 3 | 0 | 0 |
synthia-7b-v2.0 | 60 | 26849 | -77 | 171 | 7 | 1 | 0 | 0 | 0 | 1 |
mistral-7b-guide-v0.1 | 58 | 25797 | -78 | 174 | 7 | 2 | 0 | 0 | 0 | 0 |
kai-7b-hướng dẫn | 59 | 25057 | -79 | 168 | 5 | 1 | 0 | 0 | 0 | 0 |
nhận thức tập thể-v1.1-mistral-7b | 31 | 29509 | -75 | 214 | 0 | 1 | 1 | 2 | 17 | số 8 |
Tìm dữ liệu đầy đủ và thứ hạng trên Google Docs hoặc trên GitHub: QA Scores , Summary Ranks .
Một lần nữa, tôi thích phiên bản Q8 của mẫu 7B hơn.
Việc phát hiện ra rằng Mistral 7b Instruct v0.2 đã được phát hành rất đáng để tiến hành một đợt thử nghiệm mới.
Tôi cũng quyết định thử nghiệm phong cách nhắc nhở. PrivateGPT không đi kèm với lời nhắc Mistral và mặc dù lời nhắc Mistral tương tự như Lời nhắc Llama2, nhưng nó dường như hoạt động tốt hơn với lời nhắc (llama-index) mặc định.
Chỉ tóm tắt, Q/A chỉ kém hiệu quả hơn cho việc tóm tắt sách.
Người mẫu | % Sự khác biệt | Điểm | Bình luận |
---|---|---|---|
Synthia 7b V2 | -64.43790093 | 28 | Tốt |
Mistral 7b Instruct v0.2 (Dấu nhắc mặc định) | -60.81878508 | 33 | VTốt |
Mistral 7b Hướng dẫn v0.2 (Dấu nhắc Llama2) | -64.5871483 | 28 | Tốt |
Tess 7b v1.4 | -62.12938978 | 29 | Ít cấu trúc hơn |
Llama 2 7b 32k Hướng dẫn (Mặc định) | -61.39890553 | 27 | Ít cấu trúc hơn. Chậm |
Tìm dữ liệu đầy đủ và thứ hạng trên Google Docs hoặc trên GitHub .
Ở vòng trước, tôi nhận thấy Mistral 7b Instruct v0.2 hoạt động tốt hơn nhiều với lời nhắc mặc định so với llama2.
Thực ra, dấu nhắc mistral khá giống với llama2, nhưng không hoàn toàn giống nhau.
system: {{systemPrompt}} user: {{userInstructions}} assistant: {{assistantResponse}}
<s> [INST] <<SYS>> {{systemPrompt}} <</SYS>> {{userInstructions}} [/INST]
<s>[INST] {{systemPrompt}} [/INST]</s>[INST] {{userInstructions}} [/INST]
Tôi bắt đầu thử nghiệm đầu ra với các kiểu default
nhắc llama2
mặc định. Tiếp theo tôi bắt đầu viết mã mẫu mistral .
Kết quả xếp hạng đó giúp tôi tự tin rằng mình đã viết mã chính xác.
Phong cách nhắc nhở | % Sự khác biệt | Điểm | Ghi chú |
---|---|---|---|
Mistral | -50% | 51 | Hoàn hảo! |
Mặc định (llama-index) | -42% | 43 | Tiêu đề xấu |
Llama2 | -47% | 48 | Không có cấu trúc |
Tìm dữ liệu đầy đủ và thứ hạng trên Google Docs hoặc trên GitHub .
Sau khi tôi nhận được kiểu lời nhắc, tôi đã thử một vài lời nhắc hệ thống khác nhau và rất ngạc nhiên với kết quả!
Tên | Lời nhắc hệ thống | Thay đổi | Điểm | Bình luận |
---|---|---|---|---|
Không có | | -49,8 | 51 | Hoàn hảo |
Lời nhắc mặc định | Bạn là một trợ lý hữu ích, tôn trọng và trung thực. \nLuôn trả lời một cách hữu ích nhất có thể và làm theo TẤT CẢ các hướng dẫn được đưa ra. \nĐừng suy đoán hay bịa đặt thông tin. \nKhông tham khảo bất kỳ hướng dẫn hoặc ngữ cảnh cụ thể nào." | -58,5 | 39 | Ít đẹp hơn |
MyPrompt1 | "Bạn được yêu mến. Hãy hành động như một chuyên gia về tóm tắt, dàn ý và cấu trúc. \nPhong cách viết của bạn phải giàu thông tin và logic." | -54,4 | 44 | Ít đẹp hơn |
Đơn giản | "Bạn là một trợ lý AI hữu ích. Đừng bao gồm bất kỳ hướng dẫn sử dụng hoặc ngữ cảnh hệ thống nào như một phần trong kết quả đầu ra của bạn." | -52,5 | 42 | Ít đẹp hơn |
Cuối cùng, tôi thấy rằng Mistral 7b Instruct v0.2 hoạt động tốt nhất cho các bản tóm tắt của tôi mà không cần bất kỳ lời nhắc nào của hệ thống.
Có thể sẽ có kết quả khác cho một nhiệm vụ khác hoặc có thể là lời nhắc tốt hơn, nhưng cách này hoạt động tốt nên tôi không làm phiền nó.
Tìm dữ liệu đầy đủ và thứ hạng trên Google Docs hoặc trên GitHub .
Điều tôi bắt đầu nghi ngờ là tôi đạt được kết quả tốt hơn khi sử dụng ít từ hơn trong câu hỏi. Vì tôi đã tìm thấy lời nhắc hệ thống tốt nhất, đối với Mistral 7b Instruct v0.2 , tôi cũng đã kiểm tra lời nhắc người dùng nào phù hợp nhất với nó.
| Lời nhắc | đấu với OG | điểm | ghi chú |
---|---|---|---|---|
Lời nhắc0 | Viết ngắn gọn nhưng đầy đủ, ghi chú tóm tắt văn bản sau. Sử dụng các dấu đầu dòng lồng nhau: với các tiêu đề, thuật ngữ và khái niệm chính được in đậm. Tập trung vào kiến thức cần thiết từ văn bản này mà không cần thêm bất kỳ thông tin bên ngoài nào. | 43% | 11 | |
Nhắc 1 | Viết ngắn gọn nhưng đầy đủ, ghi chú tóm tắt văn bản sau. Sử dụng các dấu đầu dòng lồng nhau: với các tiêu đề, thuật ngữ và khái niệm chính được in đậm. Tập trung vào kiến thức cần thiết từ văn bản này mà không cần thêm bất kỳ thông tin bên ngoài nào. | 46% | 11 | Ghi chú bổ sung |
Nhắc2 | Viết ghi chú toàn diện tóm tắt văn bản sau. Sử dụng các dấu đầu dòng lồng nhau: với các tiêu đề, thuật ngữ và khái niệm chính được in đậm. | 58% | 15 | |
Nhắc 3 | Tạo ghi chú ngắn gọn bằng dấu đầu dòng tóm tắt các phần quan trọng của văn bản sau. Sử dụng các dấu đầu dòng lồng nhau, với các thuật ngữ tiêu đề và khái niệm chính được in đậm, bao gồm cả khoảng trắng để đảm bảo khả năng đọc. Tránh lặp lại. | 43% | 10 | |
Nhắc4 | Viết ghi chú ngắn gọn tóm tắt văn bản sau. Sử dụng các dấu đầu dòng lồng nhau: với các tiêu đề, thuật ngữ và khái niệm chính được in đậm. | 41% | 14 | |
Nhắc5 | Tạo các ghi chú toàn diện nhưng ngắn gọn để tóm tắt văn bản sau. Sử dụng các dấu đầu dòng lồng nhau: với các tiêu đề, thuật ngữ và khái niệm chính được in đậm. | 52% | 14 | Ghi chú bổ sung |
Tìm dữ liệu đầy đủ và thứ hạng trên Google Docs hoặc trên GitHub .
Có lẽ với phần cứng mạnh hơn có thể hỗ trợ các mô hình 11b hoặc 30b, tôi sẽ nhận được kết quả tốt hơn với nhiều lời nhắc mô tả hơn. Ngay cả với Mistral 7b Instruct v0.2, tôi vẫn sẵn sàng thử một số hướng dẫn sáng tạo, nhưng hiện tại tôi rất vui được tinh chỉnh quy trình hiện có của mình.
Viết ghi chú toàn diện tóm tắt văn bản sau. Sử dụng các dấu đầu dòng lồng nhau: với các tiêu đề, thuật ngữ và khái niệm chính được in đậm.
Trong trường hợp này, tính toàn diện hoạt động tốt hơn "súc tích" hoặc thậm chí hơn "toàn diện nhưng ngắn gọn".
Tuy nhiên, tôi lưu ý rằng điều này sẽ phụ thuộc vào trường hợp sử dụng của bạn. Những gì tôi đang tìm kiếm là những ghi chú rất cô đọng và dễ đọc bao gồm những kiến thức quan trọng.
Về cơ bản, nếu tôi không đọc bản gốc, tôi vẫn biết nó truyền tải thông tin gì, nếu không muốn nói là từng chi tiết cụ thể. Ngay cả khi tôi đã đọc bản gốc, sau này tôi sẽ không nhớ được phần lớn. Những ghi chú này là một tài liệu tham khảo nhanh chóng đến các chủ đề chính.
Sử dụng kiến thức thu được từ những bài kiểm tra này, tôi đã tóm tắt cuốn sách hoàn chỉnh đầu tiên của mình, 539 trang trong 5-6 giờ!!! Đáng kinh ngạc!
Thay vì dành hàng tuần cho mỗi bản tóm tắt, tôi đã hoàn thành 9 bản tóm tắt cuốn sách đầu tiên của mình chỉ trong 10 ngày.
Bạn có thể xem kết quả từ CopyLeaks bên dưới cho từng văn bản được xuất bản tại đây.
Đặc biệt xét đến việc đây không phải vì lợi nhuận mà vì mục đích giáo dục nên tôi tin rằng những con số này có thể chấp nhận được.
Sách | Người mẫu | Sự khác biệt về tính cách | Giống hệt nhau | Những thay đổi nhỏ | được diễn giải | Tổng số trận đấu |
---|---|---|---|---|---|---|
Thân phương Đông Tâm phương Tây | Synthia 7Bv2 | -75% | 3,5% | 1,1% | 0,8% | 5,4% |
Sức mạnh chữa lành dây thần kinh phế vị | Mistral-7B-Instruct-v0.2; SynthIA-7B-v2.0 | -81% | 1,2% | 0,8% | 2,5% | 4,5% |
Ayurveda và tâm trí | Mistral-7B-Instruct-v0.2; SynthIA-7B-v2.0 | -77% | 0,5% | 0,3% | 1,2% | 2% |
Chữa lành bản thân bị phân mảnh của những người sống sót sau chấn thương | Mistral-7B-Instruct-v0.2 | -75% | | | | 2% |
Một cơ sở an toàn | Mistral-7B-Instruct-v0.2 | -84% | 0,3% | 0,1% | 0,3% | 0,7% |
Cơ thể giữ điểm | Mistral-7B-Instruct-v0.2 | -74% | 0,1% | 0,2% | 0,3% | 0,5% |
Cuốn sách hoàn chỉnh về Luân xa | Mistral-7B-Instruct-v0.2 | -70% | 0,3% | 0,3% | 0,4% | 1,1% |
Lý thuyết gắn bó 50 năm | Mistral-7B-Instruct-v0.2 | -70% | 1,1% | 0,4% | 2,1% | 3,7% |
Rối loạn gắn bó ở người lớn | Mistral-7B-Instruct-v0.2 | -62% | 1,1% | 1,2% | 0,7% | 3,1% |
Bạn đồng hành của chuyên ngành tâm lý học | Mistral-7B-Instruct-v0.2 | -62% | 1,3% | 1,2% | 0,4% | 2,9% |
Tâm lý trong cuộc sống của bạn | Mistral-7B-Instruct-v0.2 | -74% | 0,6% | 0,4% | 0,5% | 1,6% |
Thay vì dành hàng tuần cho mỗi bản tóm tắt, tôi đã hoàn thành 9 bản tóm tắt cuốn sách đầu tiên của mình chỉ trong 10 ngày. Trong ngoặc là số trang của bản gốc.
Nếu bạn muốn theo dõi kỹ hơn các bước của tôi, hãy xem hướng dẫn trên GitHub, chứa các tập lệnh và ví dụ.
Bây giờ tôi đã tinh chỉnh các quy trình của mình và cảm thấy tự tin khi làm việc với các định dạng nhanh chóng, tôi sẽ tiến hành các thử nghiệm sâu hơn. Trên thực tế, tôi đã tiến hành các bài kiểm tra và xếp hạng sâu hơn (sẽ công bố những bài kiểm tra tiếp theo), nhưng tất nhiên sẽ làm lại nhiều bài kiểm tra hơn và tiếp tục học hỏi!
Tôi vẫn tin rằng nếu bạn muốn nhận được kết quả tốt nhất cho bất kỳ nhiệm vụ nào bạn thực hiện với AI, bạn nên chạy thử nghiệm của riêng mình và xem điều gì hoạt động tốt nhất. Đừng chỉ dựa vào bảng xếp hạng mô hình phổ biến mà hãy sử dụng chúng để định hướng nghiên cứu của riêng bạn.
Cũng xuất hiện ở đây .