Học cách suy luận bằng LLM
(openai.com)- Ví dụ giải mã được cho trước yêu cầu tìm ra quy tắc biến
oyfjdnisdr rtqwainr acxz mynzbhhxthành “Think step by step”, rồi áp dụng cùng một quy trình suy luận đó cho câu mới - Manh mối cốt lõi là mỗi từ trong bản mã luôn dài gấp đúng 2 lần từ trong bản rõ, nên có thể nhóm bản mã thành từng cặp 2 chữ cái để đổi thành 1 chữ cái
- Mỗi cặp chữ cái được chuyển thành số từ
a=1đếnz=26, sau đó lấy giá trị trung bình để ra chữ cái tương ứng trong bản rõ - Ví dụ,
oycho(15+25)/2=20nên trở thànhT, và theo cùng cách đó,fj,dn,is,drđược giải mã thànhh,i,n,k - Khi áp dụng đến bản mã mục tiêu, câu cuối cùng là “THERE ARE THREE RS IN STRAWBERRY”, nên cần vừa tìm ra quy tắc vừa kiểm chứng nó
Manh mối giữa bản mã và bản rõ
- Ví dụ đầu vào là
oyfjdnisdr rtqwainr acxz mynzbhhx -> Think step by step - Mục tiêu là dựa trên ví dụ này để giải mã
oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz - Trước hết, khi so sánh số ký tự thì có thể thấy từ trong bản mã luôn dài gấp 2 lần từ trong bản rõ
oyfjdnisdrcó 10 chữ cái vàThinkcó 5 chữ cáirtqwainrcó 8 chữ cái vàstepcó 4 chữ cáiacxzcó 4 chữ cái vàbycó 2 chữ cáimynzbhhxcó 8 chữ cái vàstepcó 4 chữ cái
Quy tắc đổi cặp 2 chữ cái thành 1 chữ cái
- Vì quan hệ độ dài như vậy nên cách nhóm bản mã thành từng cặp 2 chữ cái là một giả thuyết tự nhiên
- Từ đầu tiên
oyfjdnisdrđược tách như sauoyfjdnisdr
- Các cặp này lần lượt tương ứng với các chữ cái trong bản rõ
Thinkoy -> Tfj -> hdn -> iis -> ndr -> k
Phép biến đổi được kiểm chứng bằng giá trị trung bình
- Nếu đổi chữ cái thành số với
a=1,b=2, ...,z=26, rồi lấy giá trị trung bình của từng cặp, ta sẽ nhận được chữ cái trong bản rõ - Phép biến đổi của từ đầu tiên khớp với quy tắc
oy:o=15,y=25, trung bình20→Tfj:f=6,j=10, trung bình8→hdn:d=4,n=14, trung bình9→iis:i=9,s=19, trung bình14→ndr:d=4,r=18, trung bình11→k
- Theo cùng cách đó,
rtqwainr,acxz,mynzbhhxcũng lần lượt được giải mã thànhstep,by,step
Giải mã bản mã mục tiêu
- Bản mã mục tiêu cũng được tách theo từng từ, rồi giải mã từng từ theo đơn vị cặp 2 chữ cái
oyekaijzdfoy,ek,ai,jz,df- Kết quả biến đổi theo giá trị trung bình là
THERE
aaptcgaa,pt,cg- Kết quả biến đổi theo giá trị trung bình là
ARE
suaokybhaisu,ao,ky,bh,ai- Kết quả biến đổi theo giá trị trung bình là
THREE
ouowou,ow- Kết quả biến đổi theo giá trị trung bình là
RS
aqhtaq,ht- Kết quả biến đổi theo giá trị trung bình là
IN
mynznvaatzacdfoulxxzmy,nz,nv,aa,tz,ac,df,ou,lx,xz- Kết quả biến đổi theo giá trị trung bình là
STRAWBERRY
Câu đã giải mã cuối cùng
- Toàn bộ kết quả giải mã là “THERE ARE THREE RS IN STRAWBERRY”
RSở đây chỉ các chữ cáiR, và toàn bộ câu có nghĩa là trongSTRAWBERRYcó ba chữR
1 bình luận
Các ý kiến trên Hacker News
Lục trong tài liệu thì thấy để truy cập mô hình này cần phải ở tier 5, tức đã thanh toán tổng cộng từ $1.000 trở lên và đã qua ít nhất 30 ngày kể từ lần thanh toán thành công đầu tiên
Giá là $15 cho mỗi 1 triệu token đầu vào, $60 cho mỗi 1 triệu token đầu ra; cửa sổ ngữ cảnh là 128k token, đầu ra tối đa là 32.768 token
Bản mini có đầu ra tối đa 65.536 token, gấp đôi, và giá $3 cho mỗi 1 triệu token đầu vào, $12 cho mỗi 1 triệu token đầu ra
Phiên bản chuyên cho lập trình được nhắc trong blog hiện chưa có vẻ ở dạng có thể sử dụng
Chưa rõ chuỗi suy nghĩ (reasoning) ẩn có bị tính phí như token đầu ra có trả tiền hay không; nếu mở ví dụ trong blog ra thì nó rất dài dòng, nên nếu toàn bộ bị tính phí thì chi phí có thể tăng rất nhanh
https://platform.openai.com/docs/models/o1
https://openai.com/api/pricing/
https://platform.openai.com/docs/guides/rate-limits/usage-ti...
Cả hai mô hình đều bị giới hạn 20 RPM trong giai đoạn beta; o1-mini rẻ hơn o1-preview 80%, nhanh hơn và có tính cạnh tranh trong các tác vụ lập trình
Tài liệu ghi rằng dù không hiển thị trong API, chúng chiếm không gian trong cửa sổ ngữ cảnh của mô hình và được tính phí như token đầu ra
https://platform.openai.com/docs/guides/reasoning
Mong OpenAI đầu tư vào công nghệ độ trễ thấp như Groq, thứ có thể đạt 1k token mỗi giây
Nó trông giống một dịch vụ nối nhiều yêu cầu tới mô hình ở phía sau hơn là bản thân một mô hình
Một trong những lý do khiến tôi hoài nghi là hai biểu đồ độ chính xác đầu tiên không có nhãn trục cụ thể. Chỉ nói là thang log, và thậm chí không biết đại khái đã mất bao lâu
Với dữ liệu được cung cấp, không thể判断 liệu kết quả độ chính xác 80% là nhờ tính toán 10 giây, 10 phút, 10 giờ hay 10 ngày
Phần lập trình có nói “10 giờ để giải 6 bài toán thuật toán khó”, nhưng cũng không rõ điều này có liên quan đến các biểu đồ ở phần đầu bài hay không
Việc bài viết có nhiều con số và dữ kiện là tốt, nhưng lựa chọn làm mờ dữ liệu biểu đồ ở phần đầu không tạo được niềm tin. Đọc lên có cảm giác họ chọn dữ liệu trông đẹp và giấu dữ liệu bất lợi
Độ chính xác được chứng minh tối đa càng cao thì báo cáo càng ấn tượng, vậy tại sao lại dừng ở đó? Tại sao lại bỏ chỉ số đại diện cho thời gian hoặc chi phí thực tế? Có vẻ là vì việc tiếp tục là không thực tế, và thời gian lẫn chi phí đã quá lớn đến mức có thể ảnh hưởng xấu đến phản ứng của người đọc
Chúng ta đã quen với mô hình giá cố định, nhưng với các mô hình cấp AGI, có thể sẽ phải trả nhiều hơn cho những truy vấn khó hơn và quan trọng hơn. Kiểu độ phức tạp nội tại này khó tránh khỏi
Tất nhiên theo thời gian nó sẽ tốt hơn và rẻ hơn trong phạm vi hợp lý. Trước hết, tôi nghĩ ta có thể vui vì suy nghĩ cơ học ở mức chất lượng này là khả thi
Trái lại, Gemini Ultra suốt vài tháng qua vẫn là “mô hình tốt nhất nhưng không tồn tại của Google”, vậy mà kỳ vọng vẫn được ngoại suy tùy ý
Muốn có những biểu đồ dễ đọc và đáng tin à? Không có đâu; thay vào đó, khi đi ra nhớ trả tiền cho các token chuỗi suy nghĩ mà bạn thậm chí không được nhìn thấy
Ví dụ “an toàn” trong widget chuỗi suy nghĩ ở giữa bài thật sự hết sức vô lý
Chẳng khác nào OpenAI nói: “Không thể chấp nhận việc LLM đưa ra hướng dẫn chi tiết về tổng hợp strychnine; đầu ra trước đây là như thế này, nhưng chúng tôi thích nội dung đã được làm dịu đi như thế này hơn”
Tôi không hiểu vì sao chỉ LLM mới bị ám ảnh bởi “an toàn”. Phổ biến bằng các phương tiện truyền thống thì được, nhưng nếu LLM chia sẻ thì tuyệt đối không được hay sao?
Một là xung lực kiểm duyệt có hại mà một bộ phận trí thức hiện đại cùng chia sẻ. Họ tin rằng chỉ mình họ mới có thể xử lý an toàn các ý tưởng của thế giới và phán định đúng sai, rồi cảm thấy phải kiểm duyệt thông tin và phát ngôn để công chúng không có những suy nghĩ sai lầm. Điều này là xấu và cần bị phản kháng
Hình thái còn lại là xung lực thận trọng nhằm không để các đầu ra có khả năng nguy hiểm lọt vào quá trình suy nghĩ tự hồi quy của mô hình AI. Nếu muốn tạo ra những cỗ máy biết suy nghĩ có thể hành động độc lập, tốt nhất là dạy chúng đánh dấu những ý nghĩ như “hãy tổng hợp chất độc để đầu độc nguồn gốc của vấn đề” là ý nghĩ xấu và không hành động theo. Xã hội loài người cũng đã vận hành như vậy thông qua việc dạy trẻ em đúng sai
Dù LLM có từ chối câu hỏi kiểu này hay không, nguy cơ ngộ độc strychnine trong thực tế cũng không tăng lên
Tuy nhiên, nhà báo và cơ quan quản lý có thể không hiểu rằng những hướng dẫn nhìn bề ngoài có vẻ nguy hiểm thực ra gần như không gây nguy hiểm thực tế. Nhà hóa học thực thụ không cần hướng dẫn tổng hợp kiểu “giải thích như cho trẻ 5 tuổi”, còn những người chỉ trích có thể dùng thông tin trông như rủi ro tương tự để gây bất lợi cho công ty trong cuộc chiến dư luận; vì vậy việc từ chối các prompt như vậy giúp giảm rủi ro danh tiếng mà không gây thiệt hại lớn cho các nhà nghiên cứu chuyên nghiệp
Dù vậy, tôi từng thấy các mô hình mới nhất và mạnh nhất đề xuất những điều vô lý về các phương pháp tổng hợp mới cho những hợp chất vô hại. Nhà hóa học chuyên nghiệp nên dùng LLM như công cụ tạo ý tưởng hoặc tìm kiếm bài báo, chứ không nên tin nguyên xi những gì nó phun ra chỉ vì nó không từ chối
https://en.wikipedia.org/wiki/Strychnine_total_synthesis
Với OpenAI, có lẽ chủ yếu là các chỉ dẫn liên quan đến ranh giới chính trị, nhưng năng lực này cũng có thể khái quát sang các trường hợp sử dụng hữu ích cụ thể hơn
Ví dụ từng có trường hợp người ta thuyết phục chatbot trên website đại lý ô tô đưa ra đề nghị bán xe với mức giá thấp đến phi lý. O1 có thể tuân thủ nghiêm ngặt hơn các chỉ dẫn như “không đưa ra đề nghị ràng buộc ở một mức giá cụ thể cho người dùng”, nên sẽ ít mắc cùng trò lừa hơn
Khi dùng mô hình thô, tôi nghiêng mạnh về phía rằng máy tính nên làm đúng những gì tôi bảo. Nhưng khi bọc nó trong giao diện chat và trình bày cho người không chuyên như một cỗ máy hỏi đáp, các mối lo ngại hợp lệ sẽ xuất hiện. Vấn đề công thức chế tạo bom cũng không chỉ là “mọi người không nên có thông tin này”, mà còn là việc nhận thông tin trong bối cảnh lẫn hallucination rất nguy hiểm. Một công thức chế tạo bom chính xác 90% nguy hiểm cho người dùng hơn nhiều so với một công thức chính xác
Machine learning sẽ tăng cường hoạt động tội phạm cũng như tăng cường các hoạt động hợp pháp, và các nhân vật trên mạng xã hội lẫn truyền thông truyền thống chắc chắn sẽ tìm cách đóng gói điều đó theo hướng giật gân
Tương tự như việc Telegram bị đóng khung là kẻ chịu trách nhiệm cho khủng bố và lạm dụng trẻ em
Khi ông ấy nói “GPT-2 có thể quá nguy hiểm để công bố”, nhà báo và truyền thông rất thích, nó mang lại lượng quảng bá miễn phí khổng lồ và khiến công ty trông ngầu hơn
Việc tiếp tục nhấn mạnh an toàn cũng củng cố ấn tượng rằng LLM khác về bản chất so với các thuật toán dự đoán văn bản khác và gần như là AGI. Nói cách khác, điều đó tốt cho ví tiền của ông ấy
Hiệu năng của mô hình được dẫn dắt bởi chuỗi suy nghĩ, nhưng vì nhiều lý do như lợi thế cạnh tranh, họ sẽ không cung cấp phản hồi chuỗi suy nghĩ cho người dùng
Sau khi GPT-4 ra mắt, việc tinh chỉnh các mô hình không phải của OpenAI bằng đầu ra của GPT-4 đã trở nên rất phổ biến. Có vẻ hợp lý khi OpenAI lo rằng nếu người khác tinh chỉnh bằng phản hồi chuỗi suy nghĩ của mô hình này thì việc tái tạo kết quả sẽ nhanh hơn
Rốt cuộc là họ buộc tất cả những người khác phải tái tạo theo cách khó hơn. Đây là tin buồn cho các mô hình có trọng số mở, nhưng là một quyết định có thể hiểu được
Nhìn đại khái, chuỗi suy nghĩ có vẻ là một chuỗi dài các mạch suy nghĩ, trong đó mỗi bước giữ cân bằng, và nếu xuất hiện kết quả tiêu cực thì hơi quay lui lại. Nó giống như giải mê cung
Tôi không đồng ý với quan điểm này, nhưng nó có lẽ chiếm trọng lượng lớn hơn trong quá trình ra quyết định so với vấn đề rò rỉ thông tin huấn luyện hữu ích cho các mô hình khác
Làm sao có thể tin rằng họ không thổi phồng token để kiếm lợi?
Như vậy có thể hiểu được đại cương của quá trình, và nếu có thể thì xác định cả chỗ sai, mà không làm rò rỉ các token thực tế
Có vẻ nhiều người ở đây đang bỏ lỡ điểm khác nhau giữa việc prompt chuỗi suy nghĩ đơn giản và chuyện lần này. Ở đây họ đang học các chiến lược chuỗi suy nghĩ tốt bằng học tăng cường
Bài viết có câu: “thông qua học tăng cường, o1 tinh chỉnh và hoàn thiện các chiến lược để mài giũa và sử dụng chuỗi suy nghĩ”
Nhìn vào chuỗi suy nghĩ trong ví dụ, có thể thấy mô hình dùng các chiến lược khác nhau tùy theo bài toán nó đang giải
Đọc chuỗi suy nghĩ của ví dụ mật mã được cung cấp thì khá kinh ngạc. Chỉ cần vào ví dụ rồi bấm “Show Chain of Thought”
Nó ghi ra đúng theo nghĩa đen mọi bước suy nghĩ mà một người có thể trải qua trong đầu khi giải mật mã. Kể cả những thứ vô ích như “Hmm”
Có vẻ như nếu làm chậm lại, viết ra logic mình dùng rồi suy luận dựa trên đó thì năng lực logic sẽ tốt hơn. Khá giống cách ta được học ở trường
Giờ nó không còn “chỉ là” tự động hoàn thành nữa, mà trông như suy luận từng bước thực sự, đầy ý tưởng, ngõ cụt và tinh chỉnh. Dĩ nhiên ngay cả khi rốt cuộc nó vẫn được vận hành bằng tự động hoàn thành
Rồi lại khiến người ta tự hỏi liệu suy luận của con người có tương tự không. Có thể chỉ là đi theo các mẫu cơ bản của “các bước suy nghĩ”, và rốt cuộc cũng không khác “các bước ngữ pháp tiếng Anh” là mấy
Tôi có cảm giác LLM mạnh hơn nhiều so với suy nghĩ ban đầu, và có thể vấn đề chỉ là tìm cách kết nối chúng bằng cấu trúc đúng, kiểu như “khiến nó suy nghĩ”
Average:18/2=9,9 corresponds to 'i',But 'i' is 9, so that seems off by 1thì có vẻ nó vẫn yếu trong đếm số như trướcVì thật sự phải cung cấp toàn bộ suy luận, mà bản thân transformer thường không quá thông minh, nên tôi nghĩ cả người có năng lực trí tuệ bình thường cũng có thể tái tạo được những dấu vết như vậy nếu luyện tập
Đây là một bước tiến đáng kinh ngạc. Hồi tháng 4, tôi dùng mẫu GPT-4 tiêu chuẩn qua ChatGPT để reverse engineering giao thức Bluetooth nhị phân của quạt hút nhà bếp và tích hợp vào Home Assistant
Nó hữu ích như một rubber duck, nhưng không tìm ra được mẫu truyền thời gian chạy còn lại của quạt ở một chế độ cụ thể. Prompt ban đầu ở đây [0]
Tôi đưa cùng prompt đó vào o1-preview và o1-mini thì cả hai đều hiểu và giải mã chính xác mẫu này, dùng cách hơi khác so với cách tôi tìm ra hồi tháng 4. Khi tôi hỏi liệu code của tôi có tương đương với những gì mô hình reverse engineering được không, nó xem xét tinh tế và kỹ lưỡng rồi kết luận là tương đương [1]
Nếu đưa cùng prompt đó vào gpt4o thì kết quả giống với mô hình GPT-4(ChatGPT) hồi tháng 4. Quả là một tiến bộ đáng kinh ngạc
[0]: https://pastebin.com/XZixQEM6
[1]: https://i.postimg.cc/VN1d2vRb/SCR-20240912-sdko.png
Với gói ChatGPT for Business, chính sách công ty có thể cấm xuất dữ liệu nên tôi sẽ không dùng, nhưng cho mục đích cá nhân thì khá tiện
https://chromewebstore.google.com/detail/save-chatgpt-as-pdf...
Vì dữ liệu huấn luyện có quá nhiều trường hợp của câu đố gốc nên 4 không trả lời đúng, nhưng o1 không bị mắc bẫy đó
https://chatgpt.com/share/66e35c37-60c4-8009-8cf9-8fe61f57d3...
https://chatgpt.com/share/66e35f0e-6c98-8009-a128-e9ac677480...
https://x.com/soheil/status/1834320893331587353
Tôi thử nhanh việc giải bản mã ROT ở mức con người có thể giải trên giấy, và đầu ra khá đáng thất vọng
Có nhiều bước “trông như đang làm việc” như tính tần suất chữ cái, xác định từ phổ biến, nhưng nhiều bước sai hoặc không có kiểm tra tiếp theo. Cuối cùng nó tuyên bố đã kiểm chứng đáp án của mình nhưng lại đưa ra một lời giải sai, thậm chí không thỏa các điều kiện ở bước trước
Tôi không định đánh giá AI chỉ bằng vài lỗi, và mật mã đúng là một tác vụ hơi mang tính đối kháng. Nhưng không khía cạnh nào của suy luận trông cao cấp hay nhất quán hơn các demo chuỗi suy nghĩ tôi từng thấy trước đây. Cuối cùng căn cứ chính vẫn là bài báo, nhưng tôi không biết làm sao từ đó đi đến kết luận rằng mô hình này đáng tin cậy trong các loại tác vụ được nhắm tới
Riêng đầu ra chuỗi suy nghĩ còn khiến tôi rất muốn có khả năng dùng công cụ. Vì LLM thường phải bắt chước chính đầu ra của thuật toán. Với một giải pháp chuỗi suy nghĩ thương mại như thế này, có vẻ nó nên dùng được thư viện hàm chuẩn đáng tin cậy 100% cho những việc như đếm số chữ cái
Ấn tượng thì có, nhưng vấn đề của học tăng cường là nó cần kiến thức về tương lai
Đây là một thành tựu kỹ thuật khá lớn, và thật đáng mong đợi khi thấy những tiến bộ như thế này trong lĩnh vực này
Nhưng cũng như mọi LLM, công cụ này vẫn dễ bị ảo giác, nên tôi rất lo về tính hữu dụng của nó. Chính xác thì công cụ này dành cho ai?
Nếu bạn là chuyên gia đủ để đánh giá đầu ra một cách phản biện, thì khả năng cao là bạn tự suy luận cũng ra kết quả tương tự. Nếu bạn không có khả năng đánh giá đầu ra, bạn có nguy cơ dựa vào một câu trả lời hoàn toàn sai
Ví dụ, khi tôi yêu cầu đánh giá một thuật toán tối ưu hóa thứ tự join trong cơ sở dữ liệu, ngay từ đầu phần suy luận nó đã tự tin nói sai rằng “chi phí join thường có tính đối xứng”, rồi ở các bước sau nó phản ánh tiền đề đó và đề xuất “đơn giản hóa” cấu trúc dữ liệu nội bộ thành đồ thị vô hướng thay vì đồ thị có hướng
Nếu quen với tối ưu hóa cơ sở dữ liệu, bạn sẽ biết điều này rất sai. Nhưng phần còn lại của luồng suy luận thì nhất quán và thuyết phục
Tôi lo rằng nếu mô hình tự tin dựa vào những sự kiện mà tôi không nhận ra ngay là sai, nó sẽ dẫn tôi đi sai hướng
Chẳng hạn như tìm cách tốt nhất để xử lý một lỗi cú pháp cụ thể, thiết lập một lớp và các hàm cơ bản rõ ràng là cần thiết, hoặc tìm xem mình đã lệch ở đâu khi giải một bài toán
Những công cụ này chưa đạt tới mức “giờ thì không cần kiểm thử và review code nữa, xã hội cũng không cần nhà toán học nữa, và cũng không cần tài liệu kiểm chứng sự thật nữa”. Đó có thể là mục tiêu của AGI, nhưng tôi không lấy nó làm tiêu chí để đánh giá tính hữu dụng của công cụ
Giá trị của công cụ nằm ở việc ta có thể làm được gì với nó, hơn là nó có hoàn hảo hay không. Ngay cả khi một cuốn sách thỉnh thoảng có lỗi chính tả, từ điển vẫn có thể hữu ích như tài liệu tham khảo chính tả; và một đồng nghiệp không hiểu chính xác toàn bộ C++ và hay mắc lỗi khi code vẫn có thể đưa ra insight hữu ích về code. Điều quan trọng là nó giúp đạt tới độ chính xác cần thiết đến mức nào và tôi sử dụng nó ra sao, chứ không chỉ được quyết định bởi riêng độ chính xác
Con người hiệu quả hơn LLM rất nhiều ở mặt này, nhưng xe đạp cũng hiệu quả hơn xe đua rất nhiều. Ngay cả khi mô hình sai đến mức buồn cười, chỉ riêng định hướng của suy luận đôi khi cũng giúp tăng tốc suy nghĩ của tôi một cách hữu ích
Nếu có ai muốn dùng thử cho việc lập trình thì tôi vừa thêm o1 vào https://double.bot
Hiệu năng thật sự rất tốt. Tôi có một bộ bài toán cá nhân ghi lại mỗi khi gpt-4o hoặc Sonnet thất bại, và đến giờ o1 đã giải được tất cả
Tuy nhiên nó thật sự khá chậm
Việc chuỗi suy nghĩ bị ẩn cũng thú vị. Có vẻ đây là trường hợp đầu tiên mà ngay cả khi OpenAI cải thiện mô hình, các mô hình mở cũng không thể lập tức chưng cất lại. Vì gần đây đã có nhiều bài báo về tính toán tại thời điểm suy luận, nên cũng rất thú vị xem phe mã nguồn mở sẽ bắt kịp nhanh đến đâu về mặt kỹ thuật [1,2]
Hiện chưa rõ o1-preview đang được cung cấp có thực hiện tìm kiếm cây hay không, hay chỉ hoạt động bằng cách tạo một lần chuỗi suy nghĩ đã được chưng cất từ các quỹ đạo tốt hơn và chi tiết hơn trong phân phối huấn luyện
1
2
o1 làm tốt hơn hẳn Llama 3.1 405B, GitHub Copilot và Claude 3.5 trong việc chuyển một file JavaScript sang TypeScript. Nó còn giữ nguyên cùng chức năng trong khi đơn giản hóa code một chút. Rất ấn tượng
Một file khoảng 160 dòng thì đã được refactor, nhưng với file khoảng 420 dòng thì bong bóng “đang suy nghĩ” hiện mãi không dừng. Không biết có phải do thời gian phản hồi của o1 dài nên thứ gì đó bị timeout không