cùng câu hỏi, search dc vài chỗ thì thấy có kích hoạt bằng mail cá nhân được luôn, nhưng mà mỗi lần dùng có phải bật VPN không các bác ?
GPT4 thì phải trả phí. Còn GPT thường muốn xài ko phải bật vpn thì xài trang này cũng được nè https://poe.com .
Đã tìm ra giải pháp vừa ý, share nếu như các bác cần. Dùng agent, mỗi chunk sẽ là 1 tool/chain. Description của nó sẽ là tóm tắt và tên file hay chapter. Còn extract data theo mẫu từ file thì có thể dùng loader và custom prompt tạo thành 1 cái tool nữa rồi cho agent dùng nó.
Tùy mục đích ông dùng làm gì nữa. Nếu là chỉnh văn phong, câu cú, làm report mình thấy 3.5 ok. Nếu là code, giải toán, làm những thứ cần thông minh và logic thì con 4 hơn 3.5 rất nhiều.
Con 4 còn dễ guide nó hơn, và nó reflect rất tốt nữa. Có nhiều task mình ko thể viết prompt cho con 3.5 nhưng con 4 làm được, vd như bảo làm 1 task song song, gen ra 2 câu trả lời, 1 là fix grammar, 1 là tiếp tục phản hồi câu mình nói thì mình chỉ làm được ở con 4.
Trong khi đó con AI của Google vẫn chỉ mới hỗ trợ tiếng Anh. Còn chưa hỗ trợ các thứ tiếng khác. Hỏi han nó khó vl. Chứng từ openAI đã vượt rất xa đội ngũ Google. anh em nào muốn test thì test ở đây: https://bard.google.com/?hl=en
thua thật, nhưng giá API của nó rẻ gấp 10 lần (chính xác là 12) so với OpenAI đấy. Nên nhiều ứng dụng chắc cũng cân nhắc dùng của Google
code cũng đơn giản à bác. Em đang dùng bản JS. Ngon hơn nữa thì làm một cái graph từ mấy cái vector này rồi dùng nó cho search chung chung. Lúc này bác sẽ có 1 agent chính lo việc search căn bản. Sau khi search lần đầu rồi nó sẽ xác định chính xác (hơn) cần dùng các document nào, sau đó chỉ việc gọi các tool tương ứng thôi. Đoạn này cũng có thể dùng map reduce để hạn chế tình trạng vượt quá lượng max token của model Mã: // Create docs with a loader const splitter = new TokenTextSplitter({ encodingName: "gpt2", chunkSize: 750, chunkOverlap: 50, }); // Define the loaders type LoaderFunctions = { [extension: string]: (blob: Blob) => any; }; const loaders: LoaderFunctions = { ".json": (blob: Blob) => new JSONLoader(blob, "/texts"), ".jsonl": (blob: Blob) => new JSONLinesLoader(blob, "/html"), ".txt": (blob: Blob) => new TextLoader(blob), ".csv": (blob: Blob) => new CSVLoader(blob, "text"), ".docx": (blob: Blob) => new DocxLoader(blob), ".doc": (blob: Blob) => new DocxLoader(blob), ".pdf": (blob: Blob) => new PDFLoader(blob), }; for (const [file, blob] of files.entries()) { const fileExtension = path.extname(file); // Check if we have a loader for this file type if (fileExtension && loaders[fileExtension]) { // Load the file using the appropriate loader const loader = loaders[fileExtension]; const output = await loader(blob).loadAndSplit(splitter); if (output.length != 0) { output.metadata = { ...output.metadata, title: file }; let embeddings = new OpenAIEmbeddings(); embeddings.azureOpenAIApiVersion = '2023-05-15'; let vectorStore = await HNSWLib.fromTexts([output[0].pageContent], output[0].metadata, embeddings); for (let i = 1; i < output.length; i++) { vectorStore.addDocuments([output[i]]); } const summary = await chat.call([new HumanChatMessage('provide a brief summary of this text below and what is it purpose : ' + output[0].pageContent)]); //Create tool for this document/chunk then add to the tool list const chain = VectorDBQAChain.fromLLM(chat, vectorStore); chain.k = 3; tools.push(new ChainTool({ name: file, description: file + ' ' + summary.text, chain: chain, })); } } else { console.warn(`No loader defined for file type ${fileExtension}`); } const executor = await initializeAgentExecutorWithOptions(tools, chatLLM, { agentType: "chat-conversational-react-description", memory : memory, }); const agentResponse = await executor.call({ input: userMessage.content });
Fen check giá kiểu gì đấy ) mình check thế này: Bison vs gpt3.5: Bison Chat: 0.0005/1k chars, quy ra khoảng 0.0015/1k tokens Bison text: 0.001/1k chars, quy ra khoảng 0.003/1k tokens 3.5 chat: 0.002/1k tokens Giá xêm xêm, và mình đánh giá 3.5 thì tốt hơn rất nhiều. Nên nhớ model palm2 to nhất là unicorn chứ ko phải bison. Gpt4 thì giờ đang vô đối thì không tính rùi. Giá embedding thì gg đắt hơn, nhưng mình nghĩ chất lượng tốt hơn.
1 token trung bình khoảng 3-4 character mà phen. Dùng token calculator của OpenAI và TikToken sample thử 1 đoạn 1000 character thì chỉ có hơn 300 token thôi. p/s tính nhầm nhân 10 là 1.2 thì khoảng 20% chứ không phải 12 lần )))
Có thằng khách hàng đang đòi làm con AI proofread như này. Có bác nào biết cách giải quyết ko? Nhận đc job có hậu tạ https://lawrify.io/ Đang tính finetune model, xong kêu nó viết lại, rồi tìm khác biệt rồi bỏ đoạn khác vào hỏi lại tại sao. Cơ mà nếu file dài thì phải split ra lại thiếu context, dùng summarize thì lại mất chữ.
Cái này fine tune phí lắm bác. Căn bản cái LLM vẫn cần biết LÝ DO nó khác. Cách dễ nhất cho POC/MVP như demo của cái web này là prompt engineering thôi. Em vừa thử thì kết quả khá ok. Tương đối ổn so với demo của nó. System prompt thì cứ nói nó là lawyer và paralegal có kinh nghiệm chuyên "review language of legal documents. Be critical of any error such as inconsistent, unclearness, using undefined terms etc..." Promp thì bắt đầu kêu nó review contract. Sau đó "list out any legal redflag that either side might want to review if exist". Về lâu dài thì vẫn là dùng agent, build khoảng 2-3 cái tool. 1 tool sẽ soi thẳng vào phần definition/terminology của contract. 1 tool chuyên check format. 1 tool sẽ lấy output 2 thẳng trên, rà toàn bộ cái file và xem có điểm nào contract nó viết chưa rõ ý, sai từ, sai definition hay không. Tool thứ 3 là khó nhất. Đại loại nó sẽ có 1 list definition từ tool 1 rồi, search từng lần xuất hiện của từng cái definition rồi xem cách dùng có nhất quán hay không.
Bác có fb hay zalo gì ko? Để add rồi mình lấy demo đi bid job đấy thử xem, rồi nếu được thì đưa bác làm, hoặc bác thích thì làm chung. Tại thấy rate 1h cũng cao nên ham ko muốn skip
https://www.facebook.com/duy.nguyen21?mibextid=ZbWKwL Khả năng thì em consult bác thôi chứ nhiều khi cũng méo có thời gian làm Với trình frontend hơi cùi