v2: add 1024-token long context test
This commit is contained in:
@@ -53,4 +53,37 @@ final class LongContext12BTest: XCTestCase {
|
||||
print(" gen[\(i)]: token=\(maxIdx) logit=\(maxVal)")
|
||||
}
|
||||
}
|
||||
|
||||
func testLongContext1024Tokens() throws {
|
||||
try XCTSkipIf(model == nil, "12B model not found")
|
||||
|
||||
let promptLength = 1024
|
||||
var tokens = [Int]()
|
||||
for i in 0..<promptLength {
|
||||
tokens.append(100 + (i % 1000))
|
||||
}
|
||||
|
||||
for (pos, tokenId) in tokens.enumerated() {
|
||||
let logits = try model.forward(tokenId: tokenId, position: pos)
|
||||
if pos == 0 || pos == promptLength - 1 || pos % 128 == 0 {
|
||||
let nanCount = logits.filter { $0.isNaN }.count
|
||||
XCTAssertEqual(nanCount, 0, "NaN at pos=\(pos)")
|
||||
print(" pos=\(pos): logits[0..3]=\(logits.prefix(3)) NaN=\(nanCount)")
|
||||
}
|
||||
}
|
||||
|
||||
var genTokens = tokens
|
||||
for i in 0..<5 {
|
||||
let logits = try model.forward(tokenId: genTokens.last ?? 0, position: genTokens.count - 1)
|
||||
let nanCount = logits.filter { $0.isNaN }.count
|
||||
XCTAssertEqual(nanCount, 0, "NaN at gen step \(i)")
|
||||
var maxIdx = 0
|
||||
var maxVal = logits[0]
|
||||
for j in 1..<logits.count {
|
||||
if logits[j] > maxVal { maxVal = logits[j]; maxIdx = j }
|
||||
}
|
||||
genTokens.append(maxIdx)
|
||||
print(" gen[\(i)]: token=\(maxIdx) logit=\(maxVal)")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user