Tech Project: AI miniPC (Minisforum X1 Pro) 3.0

Real life likes to throw all sorts of challenges in our way.
For a good amount of time, I couldn't update the site due to a problem with Publii's Git repo uploading... A setting that I only used because the Publii team announced plans to depreciate Github Pages upload support. Ironically enough, they shelved those plans, but hadn't told the userbase, so I was stuck on the flawed method until I did a big of digging in the Publii Github Repo's Issues sections.
Then the X1 Pro got stuck in a Bluescreen of Death (BSoD) loop, which forced me to pull the miniPC apart to get to the SSD. Thankfully, the data on the drive was fine, but I decided to completely reinstall Windows 11 Pro.
Moral of the Story: Use Snappy Driver Installer
After backing up the data and reinstalling Windows 11 by wiping the old partition, I decided to do one major change to my process. After installing the WiFi driver, I decided to download Snappy Driver Installer (SDI).
SDI is a freeware application that downloads selected collections of drivers, curated by the application's developer, and installs them on the target system. This software's existence is basically down to a few things:
- Windows qualified drivers are often months out of date.
- Most hardware vendors don't seem to push all updated drivers to Microsoft for qualification.
- Most people don't know how to dump the specific hardware info required to search for drivers online.
- Hardware vendors often make it hard to find the latest drivers.
The result of using SDI was roughly 3.3GB of driver pack downloads, which is quite a large amount of data. However, since graphics drivers for AMD systems are roughly a 1GB on their own, this was not too surprising. The drivers automatically installed after this.
Several days later, after mostly stable performance, I updated to the latest AMD graphics drivers, which included NPU driver updates. My issues went from "the PC cannot sleep with a USB SATA connector plugged in" to a whole host of BSoDs due to issues like DRIVER_POWER_STATE and DPC_WATCHDOG_VIOLATION. This was extra concerning because the latter was what caused me to reinstall Windows, plus I had properly uninstalled my graphics driver with Display Driver Uninstaller before updating.
Eventually, after attempting to disable Sleep through Registry edits and PowerShell commands, I downloaded the WinDBG tool, as Windows Event Viewer indicated there were crash logs to examine. Using the tool, I was able to discover the following data:
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time.
Arguments:
Arg1: 0000000000000003, A device object has been blocking an IRP for too long a time
Arg2: ffffd606cf659060, Physical Device Object of the stack
Arg3: ffffb3842678f000, nt!TRIAGE_9F_POWER on Win7 and higher, otherwise the Functional Device Object of the stack
Arg4: ffffd606febbecf0, The blocked IRP
Debugging Details:
------------------
KEY_VALUES_STRING: 1
Key : Analysis.CPU.mSec
Value: 1968
Key : Analysis.Elapsed.mSec
Value: 15178
Key : Analysis.IO.Other.Mb
Value: 0
Key : Analysis.IO.Read.Mb
Value: 1
Key : Analysis.IO.Write.Mb
Value: 50
Key : Analysis.Init.CPU.mSec
Value: 4796
Key : Analysis.Init.Elapsed.mSec
Value: 134050
Key : Analysis.Memory.CommitPeak.Mb
Value: 118
Key : Analysis.Version.DbgEng
Value: 10.0.27871.1001
Key : Analysis.Version.Description
Value: 10.2505.01.02 amd64fre
Key : Analysis.Version.Ext
Value: 1.2505.1.2
Key : Bugcheck.Code.LegacyAPI
Value: 0x9f
Key : Bugcheck.Code.TargetModel
Value: 0x9f
Key : Dump.Attributes.AsUlong
Value: 0x21808
Key : Dump.Attributes.DiagDataWrittenToHeader
Value: 1
Key : Dump.Attributes.ErrorCode
Value: 0x0
Key : Dump.Attributes.KernelGeneratedTriageDump
Value: 1
Key : Dump.Attributes.LastLine
Value: Dump completed successfully.
Key : Dump.Attributes.ProgressPercentage
Value: 0
Key : Failure.Bucket
Value: 0x9F_3_amdhdaudbus_IMAGE_pci.sys
Key : Failure.Hash
Value: {db5298f0-84e4-933f-a991-f2a6273df4be}
Key : Hypervisor.Enlightenments.ValueHex
Value: 0x7497cf94
Key : Hypervisor.Flags.AnyHypervisorPresent
Value: 1
Key : Hypervisor.Flags.ApicEnlightened
Value: 1
Key : Hypervisor.Flags.ApicVirtualizationAvailable
Value: 0
Key : Hypervisor.Flags.AsyncMemoryHint
Value: 0
Key : Hypervisor.Flags.CoreSchedulerRequested
Value: 0
Key : Hypervisor.Flags.CpuManager
Value: 1
Key : Hypervisor.Flags.DeprecateAutoEoi
Value: 0
Key : Hypervisor.Flags.DynamicCpuDisabled
Value: 1
Key : Hypervisor.Flags.Epf
Value: 0
Key : Hypervisor.Flags.ExtendedProcessorMasks
Value: 1
Key : Hypervisor.Flags.HardwareMbecAvailable
Value: 1
Key : Hypervisor.Flags.MaxBankNumber
Value: 0
Key : Hypervisor.Flags.MemoryZeroingControl
Value: 0
Key : Hypervisor.Flags.NoExtendedRangeFlush
Value: 0
Key : Hypervisor.Flags.NoNonArchCoreSharing
Value: 1
Key : Hypervisor.Flags.Phase0InitDone
Value: 1
Key : Hypervisor.Flags.PowerSchedulerQos
Value: 0
Key : Hypervisor.Flags.RootScheduler
Value: 0
Key : Hypervisor.Flags.SynicAvailable
Value: 1
Key : Hypervisor.Flags.UseQpcBias
Value: 0
Key : Hypervisor.Flags.Value
Value: 38408431
Key : Hypervisor.Flags.ValueHex
Value: 0x24a10ef
Key : Hypervisor.Flags.VpAssistPage
Value: 1
Key : Hypervisor.Flags.VsmAvailable
Value: 1
Key : Hypervisor.RootFlags.AccessStats
Value: 1
Key : Hypervisor.RootFlags.CrashdumpEnlightened
Value: 1
Key : Hypervisor.RootFlags.CreateVirtualProcessor
Value: 1
Key : Hypervisor.RootFlags.DisableHyperthreading
Value: 0
Key : Hypervisor.RootFlags.HostTimelineSync
Value: 1
Key : Hypervisor.RootFlags.HypervisorDebuggingEnabled
Value: 0
Key : Hypervisor.RootFlags.IsHyperV
Value: 1
Key : Hypervisor.RootFlags.LivedumpEnlightened
Value: 1
Key : Hypervisor.RootFlags.MapDeviceInterrupt
Value: 1
Key : Hypervisor.RootFlags.MceEnlightened
Value: 1
Key : Hypervisor.RootFlags.Nested
Value: 0
Key : Hypervisor.RootFlags.StartLogicalProcessor
Value: 1
Key : Hypervisor.RootFlags.Value
Value: 1015
Key : Hypervisor.RootFlags.ValueHex
Value: 0x3f7
BUGCHECK_CODE: 9f
BUGCHECK_P1: 3
BUGCHECK_P2: ffffd606cf659060
BUGCHECK_P3: ffffb3842678f000
BUGCHECK_P4: ffffd606febbecf0
FILE_IN_CAB: 091125-28468-01.dmp
TAG_NOT_DEFINED_202b: *** Unknown TAG in analysis list 202b
DUMP_FILE_ATTRIBUTES: 0x21808
Kernel Generated Triage Dump
FAULTING_THREAD: ffffd606c36c0280
DRVPOWERSTATE_SUBCODE: 3
IMAGE_NAME: pci.sys
MODULE_NAME: pci
FAULTING_MODULE: fffff8005b640000 pci
BLACKBOXBSD: 1 (!blackboxbsd)
BLACKBOXNTFS: 1 (!blackboxntfs)
BLACKBOXPNP: 1 (!blackboxpnp)
BLACKBOXWINLOGON: 1
CUSTOMER_CRASH_COUNT: 1
PROCESS_NAME: System
STACK_TEXT:
ffffb384`2678efa8 fffff800`c930e01d : 00000000`0000009f 00000000`00000003 ffffd606`cf659060 ffffb384`2678f000 : nt!KeBugCheckEx
ffffb384`2678efb0 fffff800`c930de1c : 00000000`00000001 ffffb384`2678f3e0 00000000`00000000 ffffb384`2678f189 : nt!PopIrpWatchdogBugcheck+0x1f5
ffffb384`2678f090 fffff800`c8fbd4c2 : ffffb481`0fb91180 fffff800`c9126aff ffffb384`2678f3e8 fffff800`c9126a08 : nt!PopIrpWatchdog+0xc
ffffb384`2678f0c0 fffff800`c8fbdda5 : 00000006`e4e5357c 00000000`0000000f 00000006`eb3db122 ffffb481`0fb91180 : nt!KiProcessExpiredTimerList+0x502
ffffb384`2678f1f0 fffff800`c8f4c805 : 00000000`00000000 00000000`00000000 ffffb481`0fb91180 ffffd606`c36c0280 : nt!KiTimerExpiration+0x2b5
ffffb384`2678f330 fffff800`c93e564e : ffffb481`0fb91180 ffffb481`0fb91180 00000000`00000000 00000000`00000000 : nt!KiRetireDpcList+0xc45
ffffb384`2678f5c0 00000000`00000000 : ffffb384`26790000 ffffb384`26789000 00000000`00000000 00000000`00000000 : nt!KiIdleLoop+0x9e
IMAGE_VERSION: 10.0.26100.4768
STACK_COMMAND: .process /r /p 0xfffff800c9d0ef80; .thread 0xffffd606c36c0280 ; kb
FAILURE_BUCKET_ID: 0x9F_3_amdhdaudbus_IMAGE_pci.sys
OSPLATFORM_TYPE: x64
OSNAME: Windows 10
FAILURE_ID_HASH: {db5298f0-84e4-933f-a991-f2a6273df4be}
Followup: MachineOwner
---------
11: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time.
Arguments:
Arg1: 0000000000000003, A device object has been blocking an IRP for too long a time
Arg2: ffffd606cf659060, Physical Device Object of the stack
Arg3: ffffb3842678f000, nt!TRIAGE_9F_POWER on Win7 and higher, otherwise the Functional Device Object of the stack
Arg4: ffffd606febbecf0, The blocked IRP
Debugging Details:
------------------
KEY_VALUES_STRING: 1
Key : Analysis.CPU.mSec
Value: 984
Key : Analysis.Elapsed.mSec
Value: 982
Key : Analysis.IO.Other.Mb
Value: 0
Key : Analysis.IO.Read.Mb
Value: 1
Key : Analysis.IO.Write.Mb
Value: 50
Key : Analysis.Init.CPU.mSec
Value: 6796
Key : Analysis.Init.Elapsed.mSec
Value: 149264
Key : Analysis.Memory.CommitPeak.Mb
Value: 118
Key : Analysis.Version.DbgEng
Value: 10.0.27871.1001
Key : Analysis.Version.Description
Value: 10.2505.01.02 amd64fre
Key : Analysis.Version.Ext
Value: 1.2505.1.2
Key : Bugcheck.Code.LegacyAPI
Value: 0x9f
Key : Bugcheck.Code.TargetModel
Value: 0x9f
Key : Dump.Attributes.AsUlong
Value: 0x21808
Key : Dump.Attributes.DiagDataWrittenToHeader
Value: 1
Key : Dump.Attributes.ErrorCode
Value: 0x0
Key : Dump.Attributes.KernelGeneratedTriageDump
Value: 1
Key : Dump.Attributes.LastLine
Value: Dump completed successfully.
Key : Dump.Attributes.ProgressPercentage
Value: 0
Key : Failure.Bucket
Value: 0x9F_3_amdhdaudbus_IMAGE_pci.sys
Key : Failure.Hash
Value: {db5298f0-84e4-933f-a991-f2a6273df4be}
Key : Hypervisor.Enlightenments.ValueHex
Value: 0x7497cf94
Key : Hypervisor.Flags.AnyHypervisorPresent
Value: 1
Key : Hypervisor.Flags.ApicEnlightened
Value: 1
Key : Hypervisor.Flags.ApicVirtualizationAvailable
Value: 0
Key : Hypervisor.Flags.AsyncMemoryHint
Value: 0
Key : Hypervisor.Flags.CoreSchedulerRequested
Value: 0
Key : Hypervisor.Flags.CpuManager
Value: 1
Key : Hypervisor.Flags.DeprecateAutoEoi
Value: 0
Key : Hypervisor.Flags.DynamicCpuDisabled
Value: 1
Key : Hypervisor.Flags.Epf
Value: 0
Key : Hypervisor.Flags.ExtendedProcessorMasks
Value: 1
Key : Hypervisor.Flags.HardwareMbecAvailable
Value: 1
Key : Hypervisor.Flags.MaxBankNumber
Value: 0
Key : Hypervisor.Flags.MemoryZeroingControl
Value: 0
Key : Hypervisor.Flags.NoExtendedRangeFlush
Value: 0
Key : Hypervisor.Flags.NoNonArchCoreSharing
Value: 1
Key : Hypervisor.Flags.Phase0InitDone
Value: 1
Key : Hypervisor.Flags.PowerSchedulerQos
Value: 0
Key : Hypervisor.Flags.RootScheduler
Value: 0
Key : Hypervisor.Flags.SynicAvailable
Value: 1
Key : Hypervisor.Flags.UseQpcBias
Value: 0
Key : Hypervisor.Flags.Value
Value: 38408431
Key : Hypervisor.Flags.ValueHex
Value: 0x24a10ef
Key : Hypervisor.Flags.VpAssistPage
Value: 1
Key : Hypervisor.Flags.VsmAvailable
Value: 1
Key : Hypervisor.RootFlags.AccessStats
Value: 1
Key : Hypervisor.RootFlags.CrashdumpEnlightened
Value: 1
Key : Hypervisor.RootFlags.CreateVirtualProcessor
Value: 1
Key : Hypervisor.RootFlags.DisableHyperthreading
Value: 0
Key : Hypervisor.RootFlags.HostTimelineSync
Value: 1
Key : Hypervisor.RootFlags.HypervisorDebuggingEnabled
Value: 0
Key : Hypervisor.RootFlags.IsHyperV
Value: 1
Key : Hypervisor.RootFlags.LivedumpEnlightened
Value: 1
Key : Hypervisor.RootFlags.MapDeviceInterrupt
Value: 1
Key : Hypervisor.RootFlags.MceEnlightened
Value: 1
Key : Hypervisor.RootFlags.Nested
Value: 0
Key : Hypervisor.RootFlags.StartLogicalProcessor
Value: 1
Key : Hypervisor.RootFlags.Value
Value: 1015
Key : Hypervisor.RootFlags.ValueHex
Value: 0x3f7
BUGCHECK_CODE: 9f
BUGCHECK_P1: 3
BUGCHECK_P2: ffffd606cf659060
BUGCHECK_P3: ffffb3842678f000
BUGCHECK_P4: ffffd606febbecf0
FILE_IN_CAB: 091125-28468-01.dmp
TAG_NOT_DEFINED_202b: *** Unknown TAG in analysis list 202b
DUMP_FILE_ATTRIBUTES: 0x21808
Kernel Generated Triage Dump
FAULTING_THREAD: ffffd606c36c0280
DRVPOWERSTATE_SUBCODE: 3
IMAGE_NAME: pci.sys
MODULE_NAME: pci
FAULTING_MODULE: fffff8005b640000 pci
BLACKBOXBSD: 1 (!blackboxbsd)
BLACKBOXNTFS: 1 (!blackboxntfs)
BLACKBOXPNP: 1 (!blackboxpnp)
BLACKBOXWINLOGON: 1
CUSTOMER_CRASH_COUNT: 1
PROCESS_NAME: System
STACK_TEXT:
ffffb384`2678efa8 fffff800`c930e01d : 00000000`0000009f 00000000`00000003 ffffd606`cf659060 ffffb384`2678f000 : nt!KeBugCheckEx
ffffb384`2678efb0 fffff800`c930de1c : 00000000`00000001 ffffb384`2678f3e0 00000000`00000000 ffffb384`2678f189 : nt!PopIrpWatchdogBugcheck+0x1f5
ffffb384`2678f090 fffff800`c8fbd4c2 : ffffb481`0fb91180 fffff800`c9126aff ffffb384`2678f3e8 fffff800`c9126a08 : nt!PopIrpWatchdog+0xc
ffffb384`2678f0c0 fffff800`c8fbdda5 : 00000006`e4e5357c 00000000`0000000f 00000006`eb3db122 ffffb481`0fb91180 : nt!KiProcessExpiredTimerList+0x502
ffffb384`2678f1f0 fffff800`c8f4c805 : 00000000`00000000 00000000`00000000 ffffb481`0fb91180 ffffd606`c36c0280 : nt!KiTimerExpiration+0x2b5
ffffb384`2678f330 fffff800`c93e564e : ffffb481`0fb91180 ffffb481`0fb91180 00000000`00000000 00000000`00000000 : nt!KiRetireDpcList+0xc45
ffffb384`2678f5c0 00000000`00000000 : ffffb384`26790000 ffffb384`26789000 00000000`00000000 00000000`00000000 : nt!KiIdleLoop+0x9e
IMAGE_VERSION: 10.0.26100.4768
STACK_COMMAND: .process /r /p 0xfffff800c9d0ef80; .thread 0xffffd606c36c0280 ; kb
FAILURE_BUCKET_ID: 0x9F_3_amdhdaudbus_IMAGE_pci.sys
OSPLATFORM_TYPE: x64
OSNAME: Windows 10
FAILURE_ID_HASH: {db5298f0-84e4-933f-a991-f2a6273df4be}
Followup: MachineOwner
---------
As a result, I downloaded Driver Store Explorer and uninstalled the AMD HD Audio driver.
Curiously, it seems like Snappy Driver Installer might have corrupted the download of the AMD HD Audio Driver, which means said driver might have been missed by Display Driver Uninstaller. Or it could mean there's some kind of issue with installing it on certain systems.
Testing Hybrid Models
One of the purposes of purchasing an HX370 based miniPC was testing NPUs. The first few iterations of Lemonade Server I tried had issues with missing dependencies, but by the time I had to reinstall Windows 11 Pro, those were resolved.
As a handy test, I returned to an older version of prompting for a revised wpa_supplicant script. This was because, at the time, I could not use VS Code POML extension to send the prompt to the LLM. Instead, I chose to use AnythingLLM as the UI, since it would retain a copy of the output.
I opted to use the provided DeepSeek R1 NPU operation model from AMD, for one simple reason. Converting a model to the ONNX format used by the hybrid and NPU models is incredibly annoying. It not only requires decent hardware to accomplish in the first place, but also requires extra layers of software to configure.

Oddly, the NPU's utilization topped out at around 60% of the total compute capacity.

One thing that was surprising was the slow pace of generation in AnythingLLM. While some amount of slowdown in text generation shows up from time to time with GPU LLM tasks, the NPU only run was consistently slow. It would take several seconds to generate a full word.

Also interesting was the NPU utilization, which dropped from 60% to 50% over the course of response generation. Oddly, every so often, there would be a massive dip to 0% utilization, before spiking to a higher level, which may had something to do with how perceptibly slow text generation was.

Testing the same prompt with a hybrid model (NPU + GPU) operation produced a highly unusual and potentially troubling result. The NPU's utilization briefly spiked very early in the task, before the GPU rose to 90+% utilization.
According to the Lemonade Server FAQ, this is expected behavior:
2. I loaded a hybrid model, but the NPU is barely active. Is that expected?
Yes. In hybrid mode:
- The NPU handles prompt processing.
- The GPU handles token generation.
- If your prompt is short, the NPU finishes quickly. Try a longer prompt to see more NPU activity.
This is problematic for a simple reason: if the NPU is doing one thing really fast during hybrid mode, it has effectively no value, because it's not doing anything through 99.999+% of the run. The HX370 has a theoretical maximum AI performance of 80 TOPS... but that value is based on the combination of NPU and GPU.
If AMD can't fully leverage having an NPU and GPU by assigning different parts of the inferencing work to the most capable hardware, there's no real value in having the NPU.
Perhaps ROCm 7 on Windows will allow better use of the NPU, but at the moment, its only utility is as a method of running LLMs while your GPU is occupied with other work.
Qwen3-TNG
Once I had the initial reinstall complete, I decided to rebuild my set of local AI models after testing the NPU. A number of Qwen3 finetunes from DavidAU released, using scripts from Star Trek episodes to finetune the model. Since I have some casual Star Trek knowledge, I decided to give it a try. I was curious to see what the quality of the results would be, since a Retrieval Augmented Generation (RAG) system could potentially do the same thing.
Here is the prompt I came up, using a previously created POML template for generating story scenes as a base:
<poml>
<runtime
temperature="1"
maxTokens="0"
model="user.Qwen3-TNG"
topP="0.8" />
<role>
You are an expert writer, master of all storytelling genres and styles. You double check every word to ensure precision and maximum impact on the reader. You triple check the details of story progression to ensure consistency in the plot, setting, and characters. If you are ever uncertain about something, put it in between #lt; and #gt; to let your editor know it needs examination.
</role>
<cp caption="Creative Interpretation Guidelines">
<list>
<item>Fill in gaps with imaginative details that align with the foundational elements.</item>
<item>Maintain consistency with the established backstory, characters, and overall setting.</item>
<item>Write everything in third person perspctive and past tense.</item>
<item>Scene length: 500 words.</item>
</list>
</cp>
<cp caption="Scene Header">
<list>
<item>Scene Title/Identifier: Transporter Room Confrontation</item>
</list>
</cp>
<cp caption="Characters Present">
<list>
<item>Lieutenant Commander Geordi La Forge</item>
<item>Lieutenant Commander Data</item>
<item>Lynn Jore, humanoid female</item>
</list>
</cp>
<cp caption="Specific Location">
<list>
<item>USS Enterprise-D</item>
<item>Transporter Room</item>
</list>
</cp>
<cp caption="Actions and Key Events">
<list>
<item>La Forge and Data race to the transporter room with phasers in hand</item>
<item>Lynn Jore is standing on the transporter pad holding a case full of stolen isolinear chips</item>
<item>La Forge and Data enter and tell her to put down the case</item>
<item>Data informs her the transporter has been disabled</item>
<item>La Forge goes to the transporter console and discovers the operator is only unconscious</item>
<item>Jore puts down the case and asks how they caught her</item>
<item>La Forge taps his comm badge and tells Worf the room is secure</item>
<item>Data explains that she used old codes that had been rescinded after Lore posed as Data</item>
<item>La Forge asks how Jore could have known those codes</item>
<item>Jore smirks at Data and says "Take a guess, <i>brother</i>"</item>
<item>Data and La Forge share a look of disbelief</item>
</list>
</cp>
<cp caption="Mood and Tone">
<list>
<item>Tense</item>
<item>Surreal disbelief when Lynn Jore reveals she is Lore</item>
</list>
</cp>
<cp caption="Scene Narrative Output Structure">
<list>
<item>Introduce the scene’s setting and context based on the foundational elements and specific location.</item>
<item>Present the characters present and establish their immediate situation.</item>
<item>Detail the actions, key events, and unfolding drama within the scene.</item>
<item>Conclude with the mood, consequences, or hints at what comes next (especially important for continuation scenes).</item>
</list>
</cp>
<task>
Write a scene based on the information in this prompt.
<list>
<item>Read Characters Present to determine which characters are in the scene.</item>
<item>Read Specific Location to determine where the scene takes place.</item>
<item>Read Actions and Key Events to learn what actions, interactions, and scene specific details should exist.</item>
<item>Cross reference Characters Present, Specific Location, and Actions and Key Events with the Foundational Information data to generate overall context for the scene.</item>
<item>Write out the scene based on the analysis done in the previous steps.</item>
<item>Read over the scene to spot any logic flaws, inconsistencies, and/or ambiguiies.</item>
<item>Rewrite scene elements as necessary to correct logic flaws or inconsistencies.</item>
<item>If any ambiguiies or questions are detected, mark them for editor review.</item>
<item>Read over the finalized scene and generate a bullet point event summary to aid in maintaining continuity.</item>
</list>
</task>
<output-format>Generate the story and event summaries in separate response sections with the following headers: Story, Event Summary</output-format>
</poml>
The statistics on this run were as follows:
Input Tokens | Output Tokens | Time to First Token | Tokens per Second |
655 | 1367 | 2.48 | 16.56 |
Interestingly, this model seems to have difficulties generating prose text, tending to generate less detailed and more dialogue heavy text. This is likely due to the training data set, which consists of the actual shooting scripts from Star Trek: The Next Generation, which were uploaded to the internet in the late-1990s/early-2000s.
Here is an example of one:
1 EXT. SPACE - THE ENTERPRISE (OPTICAL)
sweeps by majestically at warp. WE CLEARLY SEE THE
REGISTRY NUMBER on her wing -- ten foot tall navy blue
letters reading NCC-1701D.
RIKER (V.O.)
First officer's log, stardate
41775.5. We are en route to the
ocean world known as Pacifica...
2 INT. ENTERPRISE - MAIN BRIDGE - WIDE ANGLE
The mood is relaxed. RIKER is at Command with TROI
beside him. WORF'S at Security, DATA and GEORDI at Ops
and Conn.
RIKER (V.O.)
(continuing)
Our mission is routinely
scientific in nature. We look
forward to seeing the warm blue
waters and fine white beaches that
make Pacifica a treasured jewel
of the galaxy.
And here's a short excerpt from the output:
"Hands up! Drop the case!" Geordi commands, voice low and dangerous. Jore complies instantly, holding the case out in front of her. Data steps forward, his voice clipped and professional.
"Your transporter is inoperable. We have full control of the system."
Jore smiles, a little too sweetly, but there's no trace of mirth in her eyes.
"Of course you do. You're a clever little cat, aren't you, Commander Data?"
La Forge eyes her warily. He crosses to the console, punches in commands.
It's clear that the model was heavily skewed towards script style outputs, and also present tense format, despite the prompt deliberately pointing to past tense.
Experiments with moving the role and creative interpretation elements of the prompt into the system prompt with this and similar models have some effect. But in general, it seems that models trained on scripts or transcripts will stick to that format, versus more broadly trained models, which can be more easily switch between styles.
That said, for roleplay or script based fanfiction uses, these models seem quite competent within their limitations.
Takeaways
- Use Snappy Driver Installer Origin to update drivers whenever you clean install a new Windows installation.
- Get WinDBG to access Windows crash dumps, in case the crashes are related to drivers.
- NPU only AI inference is slow on AMD APUs, pre-ROCm 7.
- NPU+GPU AI inference on pre-ROCm 7 AMD APUs barely utilizes the NPU.
- Qwen3 models finetuned on scripts or transcripts will tend to generate outputs reflecting the style of the training material (present tense, script style dialogue formatting).
Data from these tests will be uploaded to my public AI experiment documentation repo.