g1 - Tạo chuỗi suy luận giống o1 bằng Llama-3.1 70B trên Groq
(github.com/bklieger-groq)- g1 là một nguyên mẫu ban đầu dùng Llama-3.1 70B trên Groq cùng chiến lược prompt để tạo ra chuỗi suy luận kiểu o1 nơi LLM “suy nghĩ” theo từng bước
- Khác với OpenAI o1, hệ thống hiển thị cho người dùng toàn bộ token suy luận, sử dụng mô hình mã nguồn mở, nhưng đây không phải bản sao hoàn chỉnh hay so sánh trực tiếp với o1 mà là một thử nghiệm suy luận dựa trên prompt
- Ở mỗi bước, mô hình sẽ chọn tiếp tục sang bước suy luận kế tiếp hay đưa ra câu trả lời cuối cùng, và được thiết kế để trả về tiêu đề cùng nội dung của từng bước dưới dạng JSON
- Prompt yêu cầu tối thiểu 3 bước, khám phá phương án thay thế, tự kiểm tra khả năng sai sót và dùng ít nhất 3 cách tiếp cận; trên bài toán Strawberry, hệ thống đạt khoảng 70% độ chính xác (n=10), so với 0% của Llama-3.1-70B chạy đơn lẻ và 30% của ChatGPT-4o
- Trong các thử nghiệm ban đầu, hệ thống đạt 60–80% độ chính xác trên các bài toán logic đơn giản, nhưng độ chính xác vẫn chưa được đánh giá chính thức và g1 cũng chưa hoàn hảo
Vấn đề mà g1 muốn giải quyết
- g1 là một nguyên mẫu ban đầu nhằm cải thiện năng lực suy luận của LLM chỉ bằng chiến lược prompt
- Mục tiêu là khiến LLM giải các bài toán logic mà chúng thường gặp khó bằng chuỗi suy luận kiểu o1
- Tài liệu nêu rõ những điểm khác với OpenAI o1
- g1 hiển thị cho người dùng toàn bộ token suy luận
- g1 sử dụng mô hình mã nguồn mở
- g1 không phải bản sao hoàn chỉnh hay phép so sánh hiệu năng với o1
- OpenAI o1 hoạt động bằng cách học suy luận Chain of Thought thông qua huấn luyện tăng cường quy mô lớn để đạt hiệu năng hàng đầu trên các bài toán phức tạp cấp độ tiến sĩ
Cách hoạt động
- g1 dựa trên Llama3.1-70b để tạo ra chuỗi suy luận gần với Chain of Thought động
- Mỗi bước suy luận đều được hiển thị cho người dùng và có tiêu đề riêng
- Ở mỗi bước, mô hình chọn một trong hai hướng
- Tiếp tục sang bước suy luận tiếp theo
- Đưa ra câu trả lời cuối cùng
- Prompt hệ thống chứa các chỉ dẫn giúp mô hình suy luận tốt hơn
- Khám phá câu trả lời thay thế
- Suy ra đáp án bằng ít nhất 3 cách
- Đặt nghi vấn với lời giải nháp trước đó
- Cân nhắc các giới hạn của LLM
Chiến lược prompt
- Prompt gán cho mô hình vai trò trợ lý AI chuyên gia giải thích reasoning theo từng bước
- Mỗi bước phải phản hồi theo định dạng JSON với các khóa
title,content,next_action- Giá trị của
next_actionlàcontinuehoặcfinal_answer
- Giá trị của
- Các chỉ dẫn được nhấn mạnh bằng chữ in hoa nhằm tăng mức độ tuân thủ prompt
- Dùng càng nhiều bước suy luận càng tốt nhưng tối thiểu 3 bước
- Nhận thức được điều gì LLM có thể và không thể làm
- Khám phá câu trả lời thay thế và xem xét những điểm mà suy luận của chính nó có thể sai
- Khi nói đang xem xét lại thì phải thực sự xem xét lại bằng cách tiếp cận khác
- Suy ra đáp án bằng ít nhất 3 cách
- Sử dụng các thực hành tốt nhất
- Sau khi thêm bài toán vào tin nhắn người dùng, hệ thống chèn một câu mở đầu tiêu chuẩn vào tin nhắn assistant để bắt đầu quá trình sinh
Ví dụ và kết quả ban đầu
- g1 xử lý các bài toán logic đơn giản như bài toán Strawberry “có bao nhiêu chữ R trong strawberry?” vốn khó giải nếu không có prompt
- Các số liệu ban đầu cho bài toán này được nêu như sau
- g1: khoảng 70% độ chính xác, n=10
- Llama-3.1-70B không có prompt: 0% độ chính xác
- ChatGPT-4o: 30% độ chính xác
- Trong các thử nghiệm ban đầu, g1 giải được những bài toán logic đơn giản mà LLM thường gặp khó với độ chính xác 60–80%
- Độ chính xác vẫn chưa được đánh giá chính thức
- Các bài toán ví dụ gồm
How many Rs are in strawberry?vàWhich is larger, .9 or .11?
Cách chạy và các fork liên quan
- Quy trình chạy giao diện Streamlit
python3 -m venv venvsource venv/bin/activatepip3 install -r requirements.txtexport GROQ_API_KEY=gsk...streamlit run app.py
- Quy trình chạy giao diện Gradio
cd gradiopip3 install -r requirements.txtpython3 app.py
- Các fork và bản demo liên quan
- Hugging Face Spaces Demo
- Mult1: tạo chuỗi suy luận kiểu o1 bằng nhiều nhà cung cấp AI
- thinkR: triển khai Chain of Thought kiểu o1 bằng LLM cục bộ trong R
1 bình luận
Ý kiến trên Hacker News
Cái này hoàn toàn không đúng và khá lạc đề. Nó chỉ ở mức chạy chuỗi suy nghĩ trong một vòng lặp
Tree of Thoughts là phương pháp tinh vi hơn, xem bài báo tại https://arxiv.org/pdf/2305.10601
Từ lâu đã có dấu hiệu cho thấy OpenAI dùng tìm kiếm trên cây, và việc họ tuyển Noam Brown cùng các công trình trước đây của ông đều chỉ về hướng đó. Q có vẻ rõ ràng là tìm kiếm trên cây kiểu A*. Dựng một cây bằng thứ như CoT rồi tìm nghiệm tối ưu trong đó chính là suy luận hệ 2
Bảo mô hình suy nghĩ từng bước không khiến suy luận kiểu o1 tự nhiên xuất hiện. Đây là mẹo cũ đã dùng với GPT-3 từ năm 2020, và nếu đơn giản như vậy thì OpenAI đã không mất ngần ấy thời gian mới phát hành
Hơn nữa, một phần prompt có thể phản tác dụng. Những chỉ thị như “hãy nhận thức giới hạn của một LLM và điều nó có thể/không thể làm” không có nghĩa là LLM thật sự hiểu rõ giới hạn của mình, nên mô hình có thể trở nên quá dè dặt và tạo ra từ chối sai
DeepMind tập trung nhiều hơn vào nghiên cứu và công bố bài báo, nhưng trong môi trường cạnh tranh nơi OpenAI và Anthropic có thể lấy kết quả nghiên cứu từ bài báo mà không trả lại gì cho cộng đồng nghiên cứu, đó là một bất lợi
Có thể họ đã mở rộng thành cây trong lúc huấn luyện để học suy luận vững hơn, nhưng ở thời điểm suy luận thì rốt cuộc vẫn quy về một mô hình Transformer thông thường
Cái kiểu “viết TẤT CẢ bằng chữ in hoa để nhấn mạnh tầm quan trọng của chỉ thị và tăng độ tuân thủ prompt” vẫn buồn cười quá mức
Tôi cũng tự hỏi liệu người đầu tiên kích hoạt AGI có thể nhận ra rằng chỉ cần nói bằng CHỮ IN HOA kiểu “mạng sống thú cưng của tôi phụ thuộc vào câu trả lời này” là độ tin cậy của LLM sẽ vượt ngưỡng hay không
Điểm đột phá của o1 không phải là bản thân chuỗi suy nghĩ. Mà là thay vì chỉ giả vờ như vậy, họ đã dạy mô hình làm CoT tốt bằng lượng lớn phản hồi từ con người
Chỉ riêng prompt engineering thì không thể đạt đến hiệu năng của o1
Tuy vậy, những người nói về chủ đề STEM thường có xu hướng thông minh hơn, nhưng cũng lẫn nhiều học sinh điểm kém đi hỏi bài tập về nhà. Muốn có đầu ra thông minh hơn, có thể phải phê bình và loại bỏ nhiều câu trả lời kém thông minh hơn, đồng thời ưu tiên câu trả lời thông minh hơn. Hoặc cũng có thể huấn luyện mạnh hơn trên giáo trình và tài liệu tương tự. Vấn đề còn là làm sao từ chối lỗi, hoặc huấn luyện bằng dữ liệu tổng hợp được tạo ra mà không có suy luận sai lỗi
Có thể họ đang vận hành o1 bằng định tuyến mô hình và prompt engineering mà chúng ta không hề biết
Nếu thực ra chỉ là prompt engineering và suy luận nhiều lần, thì họ hẳn muốn giữ điều đó như bí mật cạnh tranh, đồng thời đẩy các nhà phát triển mã nguồn mở đi sai hướng hoặc khiến họ tiếp tục đoán mò cách sao chép Q-Star
Cái này trông giống CoT thông thường đã được dùng từ khá lâu. o1 tận dụng chuỗi suy nghĩ tốt hơn nhiều vì được huấn luyện tăng cường với một chính sách chưa được biết đến
Trông ổn đấy. Tôi cũng đã làm thứ tương tự trong optillm: https://github.com/codelion/optillm
Có thể dùng với bất kỳ LLM nào, và dùng nhiều kỹ thuật tối ưu hóa như cot_reflection, Monte Carlo tree search, plansearch, moa
Tôi luôn đi tìm định nghĩa của “suy luận”. Theo tôi, nếu tìm được một định nghĩa tốt thì có thể xây dựng một hệ thống kết hợp kiểu suy nghĩ mơ hồ của LLM với các thuật toán cổ điển để giải “suy luận”
Những bài toán mà LLM không suy luận được như lập kế hoạch, đếm ký tự, suy luận diễn dịch thì lại dễ với thuật toán cổ điển. Cần có cách chia quá trình tư duy thành hai phần và chạy mỗi phần trên mô hình phù hợp
Hai thế kỷ trước chưa có máy tính nên con người phải tự làm mọi thứ. Trước khi lấy code ra, trước hết phải đạt được mức đó đã
Tôi đã sửa để chạy 100% cục bộ bằng ollama:8b: https://github.com/punnerud/g1
Readme vẫn chưa được cập nhật
Nhân tiện, đây chỉ là system prompt, không phải mô hình fine-tune
“Prompt: .9 và .11, cái nào lớn hơn?”
“Kết quả: .9 lớn hơn .11”
Cuối cùng cũng đã phá được rào cản semantic versioning
Cho vui, tôi đã fork dự án để chạy Llama-3.1 7B hoặc các mô hình khác cục bộ bằng Ollama
Nó không giải được bài toán strawberry, nhưng có thể nhận ra 0.9 lớn hơn
https://github.com/esoltys/o1lama